-
-
[原创]看我如何挖到国产工控软件的十几个漏洞
-
发表于:
2020-9-25 10:19
13627
-
在工控系统安全越来越重要的今天,工业自主可控化成了越来越重要的方向,为了提前发现现在存在国产工控软件存在的安全漏洞并且进行修复,所以这次选取了中国市场占有率最大的SCADA软件进行漏洞挖掘,在该产品上面发现了十几个严重的安全问题后,并第一时间上报给CNVD,现在所有漏洞已经得到了及时的修复。本文从实战出发,以该款软件作为例子,来介绍安全评估思路。
能够远程触发的漏洞往往比能被本地触发的危害性要高,所以为了尽最大可能挖掘危害性高的漏洞,应该先从暴露的端口出发,分析对应的服务以及协议:
从上面可以看到,该SCADA软件暴露出多个端口,可以说每个端口都是一个攻击面,除了一个http端口外,其他都是私有的协议。
为了了解每个端口对应的服务,需要调试分析,但是有些数据包往往需要在特定的环境架构中才能产生,譬如说历史数据库的协议数据包必须设置数据库地址才能产生,而其他的官方未披露的服务只能通过逆向调试确定。在调试之前,可以编写并运行一个测试脚本,该测试脚本会向指定端口发送一个数据包,在服务端通过下recv之类的断点就能找到解析的地方。
1.手动对危险函数进行审计,分析每个功能码对应的处理逻辑,即可在审计阶段把能够用肉眼看到的漏洞挖掘出来。
2.通过对抓取的数据包进行变异,结合逆向出来的报文格式,编写模糊测试模块进行模糊测试(Fuzz),模糊测试的效果取决于种子数据的好坏和协议的复杂度。
通过上面提到的研究方法发现了十几个严重的安全漏洞,超过半数都是远程拒绝服务漏洞。这里选取了几个典型例子,来简单介绍一下相关的安全问题。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-9-25 10:26
被wmsuper编辑
,原因: