工业控制系统模糊测试研究与应用

2018-09-27 11:08崔欣温彦龙
信息安全与通信保密 2018年9期
关键词:分片工控漏洞

崔欣,温彦龙

(1.国家知识产权局专利局, 北京 100083;2.中国电子信息产业集团有限公司, 北京100190)

随着“两化”融合的推进和以太网技术在工业控制系统中得到大量使用,进而引发的病毒和木马攻击工控设备的事件不断出现,严重威胁基础工业控制设备的安全运行,其造成的损失可能非常巨大,甚至不可估量。2010年10月,伊朗“震网”(Stuxnet)病毒事件,引起了各国对工控设备安全的高度重视。面对安全形势日益严峻,国内外生产企业都把工业控制系统安全防护建设提上了日程。而在工业控制系统中,工控网络存在着特殊性,导致商用IT网络的安全技术无法适应工业控制系统。所以,必须要针对工业控制系统设备进行安全性模糊测试,发现潜在安全风险,以便及时采取风险应对措施,防止安全风险被进一步利用,降低工业控制系统安全风险被利用的概率。

1 安全事件

近年来,越来越多工控设备被攻击事件频繁被媒体曝光。2015年12月,某黑客组织使用BlackEnergy恶意程序对乌克兰电力系统进行攻击破坏,造成严重的电力安全事故。该安全事件导致伊万诺-弗兰科夫斯克、 霍洛登卡、卡卢什、多丽娜、 科西夫、纳维尔纳及亚列姆恰等地区停电3小时以上,数十万户受到事件影响。这是第一次由于工控设备受到网络攻击而导致的大面积停电事故,具有非常重要的历史意义。

2 工控设备安全风险分析

2.1 工控设备存在的主要安全风险

当前工控设备或系统存在的主要安全风险有以下几个方面:

(1)多数工控设备采用通用的通信协议

多数工控设备或系统采用TCP/IP等通用的通信协议,通用通信协议存在的安全风险也势必会影响到工控设备或系统的安全。

(2)调试终端大多采用通用操作系统

目前,大部分的工控设备操作站或调试终端均安装Windows、Linux等通用操作系统。再加上,日常安全管理不到位,致使多数操作系统长时间不升级、不安装系统补丁,形成了大量的安全漏洞。

(3)日常安全管理策略不到位

缺少针对工控设备的日常安全管理策略及制度要求,工控设备使用无章可循,为安全事件留下了大量安全隐患。

(4)工控软件本身缺少安全性设计

多数工控设备更重视设备功能、性能,安全性设计考虑缺失,甚至连最基本的杀毒软件都不安装,或及时安装也不会及时更新系统补丁,是大多数工控软件存在的共性问题,这都为工控设备安全事件埋下严重隐患,见图1。

图1 典型工控系统的安全问题

2.2 国内外工控设备安全研发情况

目前,在工控设备的风险分析及漏洞发现方面,欧美国家仍处于领先地位。

加拿大的伍尔德泰克公司的Achilles的模糊测试功能已相对成熟,且形成了相对完整的认证管理体系,在国际上有一定的知名度。国内外知名工控厂商,多数已通过其认证。

芬兰科诺康公司的漏洞挖掘、扫描技术在全球也有一定的技术优势。2014年,科诺康公司利用其技术优势,成功发现震惊世界的互联网漏洞——心脏出血漏洞。

目前,国内有关工控设备的漏洞挖掘、扫描分析技术,仍处于研究、探索阶段,少部分科研单位已开展相关课题研究。

2.3 必要性及意义

目前,大量嵌入式工控设备被广泛应用,如通信保护装置、工控交换机、计量监测等。这些被广泛应用的嵌入式设备多数基于通用芯片、操作系统、通用协议进行设计、开发,产品厂商重点关注工控设备的功能、性能及易用性,工控设备的安全设计及实现,往往被忽略。随着工控设备或系统安全风险不断突出,嵌入式设备潜在的安全风险、漏洞也被不断发现,势必对工控设备或系统安全形成重要的威胁。

基于此,有必要对工控系统所使用的各类嵌入式设备进行安全风险研究和测试,提前发现工控设备或系统存在的安全风险或漏洞,不断提升工控设备或系统的风险应对能力,进一步确保工控设备或系统的安全稳定运行。

3 工业控制系统模糊测试

3.1 理论依据

工业控制系统的的模糊测试是自动化生成可用于输入被测试工控设备或系统的测试数据,进而检验工控设备或系统的安全性。

3.2 测试方法

根据预期的测试目标,明确怎样通过标准协议进行模糊测试。模糊测试方法一般为如下三种:

(1)白盒测试。

(2)黑盒测试。

(3)灰盒测试。

白盒测试:此方法需要根据被测工控系统的全部代码、设计文档等资源进行全透明测试。此方法高度依赖代码开放度,属于代码级测试。

方法优势:针对完整代码进行评审、测试,覆盖程度最高。

方法劣势:分析完整开发代码复杂性太高,不可避免地会产生误报。测试人员的业务水平对测试结果也会产生比较大的影响。而且,多数厂商并不愿意提供完整的源代码给测试人员。

黑盒测试:此方法可完全忽略被测工控系统的内部逻辑,仅通过对被测系统进行外部扫描进行安全性验证、测试。测试者模拟用户行为进行输入,通过输出结果分析工控设备的安全性。

方法优势:可操作性、可实现性非常高,适用于各种不同类型的工控设备;方法简单,可在不了解工控设备内部逻辑的基础上开展测试工作;结果可重现,此方法可在任何情况下重现测试结果。

方法劣势:对工控设备的安全分析结果不全面。

灰盒测试:该方法是以上两种方法的折中,包含黑盒测试逻辑的同时,也包含通过各种途径获得的系统内部逻辑。

方法优势:既具有良好的可用性,也有比较高的覆盖率。

方法劣势:测试方法复杂性较高,对测试人员业务素养有较高要求。

综合考虑到复杂性、可实现性、易用性及可重现性,选择黑盒测试方法作为模糊测试的方法。

3.3 技术路线

模糊测试通过向工控设备或系统应用程序逆向输入污染数据,同时监控工控设备的输出异常,对发现工控系统、设备、协议的存在的安全风险具有重大意义,使得风险发现不再完全依赖于CVE/CNVD等公开漏洞库。

测试用污染数据的生成主要有以下几种方法:

3.3.1 预先生成测试用例

该方法首先对工控设备协议规则进行研究、分析,理解该协议规则所支持的数据类型、结构以及可以接受的数值范围。然后,根据协议规则生成用于测试被测试工控设备的边界范围或违规范围测试用例。

创建预先生成测试用例需要大量的工作量,但是测试用例一旦形成,就具备很高的复用性,用于测试某种工控设备协议、规则的不同实现。但是,这种方法的局限性在于缺乏随机性,测试用例执行完成,测试工作便结束。

3.3.2 生成随机数据输入

随机生成数据的方法是效率比较低的方法,但是,该防范可以迅速识别目标设备或系统中是否有存在严重安全风险。随机生成数据方法可以简单地向目标设备或系统发送伪随机数据,期望得到正常或非正常的结果。

3.3.3 强制性测试

此方法是一种相对有效的模糊测试方法,此方法基本不需了解工控设备相关知识。该方法关键在于不断修改数据发送给被测设备或系统。除了不断发送数据外,该方法还加入了必要的错误检测、日志分析等手段。但是,该方法效率相对较低,在生成垃圾数据处理上会形成很多不必要的浪费。但是,该防范的优势也是比较明显的,具体如下:

(1)该方法的测试过程可以完全实现自动化。

(2)使用该方法的代码覆盖程度依赖于一致的合法数据包,即使要达到较低的覆盖率,对样本的需求量也比较大。

3.3.4 自动协议生成测试

自动协议生成测试可以理解为强制性测试的升级版。使用该测试方法,首先要研究被测工控设备或系统的协议、规则。

测试者需要区别数据包中的静态部分和动态部分,动态部分可以被模糊化变量替代。模糊测试器动态生成测试数据,并将输入到被测设备。

该方法的测试结果对测试者的依赖程度较高,测试者需要能够了解协议、规则中最容易发生故障的部分。

模糊测试方法对数据结构了解得越多,就越能够在模糊测试中关注那些易于引发异常的协议中的部分,所以必须要了解工控系统通信协议的组成与规范,这样才能生成一个更好的模糊测试数据。

例如:在IP分片的测试中,主要在如下两个方面做了变异,第一是标识符(Identifier)字段,第二个标记(Flags)字段,一方面,在标记字段中,MF位是用来说明是否有更多的分片,正常情况下,如果所有的分片都发送完毕后这个位会被置成0,标识所有的分片都已经就绪,可以重组所有的分片,而在变异的数据包中这个位并没有去理会是否所有的分片都收到,而是一直标识为后续片,导致接收方需要不断缓存分片,另一方面,除了上述处理外,还不断的改变标识符字段,导致了会产生很多组这样的无法重组的报文,当这样的报文所需要的空间超过系统可以承受的空间而又无法正确处理这样的错误的时候就会导致缓冲区溢出,进而导致系统崩溃。

综上所述,从模糊测试的原理进行深度研究。基于测试用例的程序编译实现变异报文的构建,借以对工控系统协议的错误或缺陷进行检查。本文设计了一个自动化测试框架以实现其可拓展性和完备性,实现测试目标的全方面监控,测试结果的全方位管理。

3.4 测试效果

基于本文设计实现的工业控制系统模糊测试框架(见图2),对工控系统中广泛使用的某型号变压器保护设备、某型号测控装置进行了漏洞挖掘,发现了MMS协议语法漏洞、IP分片报文漏洞等多个原创高危漏洞。

图2 工业控制系统模糊测试框架

以下是对某款设备进行测试的结果:

00ARP监视器显示被测设备ARP请求的响应时间(见图3),X轴是时间轴,Y轴标识响应时间,单位为毫秒(ms)。被测设备在17:57:48及之前工作正常,ARP响应时间在0.5ms左右,在17:57:48之后已经无法对ARP请求作出响应,说明被测设备已经出现故障。

图3 ARP监视器

图4 ICMP监视器

ICMP监视器显示被测设备对ICMP请求的响应时间(见图4),X轴是时间轴,Y轴标识响应时间,单位为毫秒(ms)。被测设备在17:57:48及之前工作正常,ICMP响应时间在0.5ms左右,在17:57:48之后已经无法对ICMP请求作出响应,说明被测设备已经出现故障。

TCP监视器显示被测设备开放的TCP端口的数量(见图5),X轴是时间轴,Y轴标识TCP端口的数量。被测设备在17:57:49及之前工作正常,开放的TCP端口为2个,在17:57:49之后无法探测到开放的TCP端口,说明被测设备已经出现故障。

图5 TCP监视器

综上所述,在测试过程中,用于监视协议栈的ICMP和ARP监视器突然超时,而用于监视服务的TCP监视器的端口开放数量也从2个变为0个,说明所有的服务已经关闭,由此可以推断,此款设备已经宕机。

4 结语

本文在研究模糊测试的理论方法的基础上,选择适当的技术路线,设计实现了一个工业控制系统模糊测试框架,基于此框架发现了工控领域中使用的部分设备的原创高危漏洞。这说明,对工业控制系统进行健壮性测试,对提高工控安全性具有积极的意义,是一个重要的努力方向。

猜你喜欢
分片工控漏洞
上下分片與詞的時空佈局
漏洞
降低跨分片交易回滚概率的多轮验证方案
基于模糊二分查找的帧分片算法设计与实现
锐翔工控(天津)自动化机械设备有限公司
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
三明:“两票制”堵住加价漏洞
漏洞在哪儿
基于攻击图的工控系统脆弱性量化方法