孙易安++胡仁豪
【 摘 要 】 文章分析了工业控制系统漏洞来源、现状及分类,指出了针对已知漏洞扫描的技术和未知漏洞挖掘的动态、静态分析技术。通过工业控制系统漏洞扫描与挖掘技术可以对工业控制系统中漏洞进行检测,并提前进行安全防护,避免因工业控制系统漏洞被利用造成严重后果。
【 关键词 】 工业控制系统;工控安全;安全漏洞;漏洞扫描;漏洞挖掘
【 中图分类号 】 TP309
【 文献标识码 】 A
Research on Vulnerability Scanning and Discovering Technology of Industrial Control System
Sun Yi-an Hu Ren-hao
(Beijing KuangEn Network Co., Ltd. Beijing 100191)
【 Abstract 】 This article analyzes the source, present situation and classification of industrial control system vulnerabilities, and points out the technology of dynamic and static analysis of known vulnerability scanning and unknown vulnerability discovering. Industrial control system vulnerability scanning and discovering technology can be used in the industrial control system to detect vulnerabilities and security protection in advance, to avoid vulnerability in industrial control system was exploited to cause serious consequences.
【 Keywords 】 industrial control system; industrial control system security; security vulnerability; vulnerability scanning; vulnerability discovering
1 引言
工業控制系统漏洞是在其生命周期的各个阶段(设计、实现、运维等过程)中引入的某类问题,比如设计阶段引入的一个设计的非常容易被破解的加密算法,实现阶段引入的一个代码缓冲区溢出问题,运维阶段的一个错误的安全配置,这些都有可能最终成为工业控制系统漏洞,这些漏洞会对工业控制系统的安全(可用性、完整性、机密性)产生严重影响。
当工业控制网络遭受攻击时,无论是攻击操作系统或底层控制器设备,还是利用网络协议和病毒进行攻击,归根结底都是利用各类工业控制系统安全漏洞的来完成的。同时,入侵途径可以通过办公网络、互联网或者是虚拟的专网、拨号连接、“可信”的第三方连接、无线网络、公共通信设施等。即使现场设备不接入任何网络,是一个“孤岛”的状态,仍有可能受到通过可移动存储和工程师维护使接入设备所传播的恶意软件利用工业控制系统安全漏洞进行攻击。
2 工业控制系统漏洞现状
近几年,走进公众视线的工业控制网络安全问题越来越多,尤其在2010年震网事件之后,工业控制网络安全事件呈现稳步增长的趋势,2015年被ICS-CERT收录的攻击事件达到了295件。如图1所示。
据统计,从2012年到 2015年,互联网上总共披露的工业控制系统漏洞近千个。这些漏洞涵盖了大多数知名工控设备生产厂家的产品,并且大部分是中高危类型漏洞 (高危:47%, 中危47%)涉及到的工业控制设备、系统包括SCADA、DCS、PLC、工业控制网络交换机、防火墙、路由器等。工业控制系统被发现的漏洞呈现总体上升的趋势,但由于工业控制系统漏洞具有更高的价值,仍有大量的工业控制系统漏洞已被发现,却未被曝光,因此实际的工控漏洞数量应超出统计。在这些已公布漏洞中,SCADA、HMI、PLC、工业交换机等占曝光的漏洞数的前几位。截至2015年底,我们以中国国家信息安全漏洞共享平台所发布的2015年新增漏洞信息[CNVD],共整理出2015年新增的工业控制系统相关的漏洞108个。如图2所示。
3 工业控制系统漏洞分类
工业控制系统漏洞分类按设备在工控系统的位置分为上位机漏洞(操作系统漏洞、应用软件漏洞),下位机漏洞(协议漏洞、后门、HMI漏洞);按设备、系统类型分为软件漏洞,远程终端单元(RTU)漏洞,PLC漏洞,网络设备(交换机、路由器、防火墙等)漏洞,其他设备漏洞;按漏洞产生原因分为缓冲区溢出,DLL劫持,固件后门,提权,暴力破解,安全绕过,包回放攻击,明文密码传输,Web类安全漏洞(远程命令执行、SQL注入、代码注入、文件包含、任意文件上传、跨站脚本、跨站伪造请求)等。
4 工业控制系统漏洞扫描与挖掘技术
目前工业控制系统漏洞挖掘集中在操作系统、工控协议、Activex控件、文件格式、Web HMI、数据库、固件后门、移动应用等几个方向。其中操作系统、工控协议、Activex控件、文件格式、数据库这些漏洞的挖掘用到的主要是模糊测试技术;固件后门、移动应用等漏洞挖掘更多是静态分析技术和逆向技术;Web HMI可以使用模糊测试和静态分析技术。
4.1 工业控制系统漏洞扫描技术
工业控制系统漏洞扫描技术,首先收集和分析形成专业的工业控制系统安全漏洞指纹库,库中包含相关已公布工控漏洞的指纹信息如固件版本、通讯协议、漏洞特征信息等,当进行扫描时,根据被测设备的型号、固件、通讯协议等指纹信息进行检测规则的自动匹配,从而检测是否存在已知漏洞。漏洞扫描技术除了进行已知漏洞特征匹配功能还包括工控通信协议支持、存活判断、端口扫描、服务识别、操作系统判断等,同时具备PLC、DCS、SCADA等工业控制系统和软件识别功能。
4.2 工业控制系统漏洞挖掘技术
4.2.1动态测试技术
针对工业控制系统的动态测试技术是指在工业控制系统运行状态下,通过基于工业控制协议的模糊测试、风暴测试、双向测试等进行漏洞挖掘的方法。
模糊测试是一种通过向目标输入大量非预期的数据,并监控目标以期发现安全漏洞的一种技术。模糊测试是一种自动或半自动化的技术,这个技术需要反复的不断的向目标设备进行输入。
在工业控制系统上进行未知漏洞挖掘主要是基于工业控制协议的模糊测试技术,基于工业控制协议的模糊测试技术是指针对工业控制系統的通信协议进行突变或分析协议特点构造特定的包,然后发送给工控协议上位机服务器或下位机,监控被测目标响应,根据响应的异常来进行漏洞挖掘。基于工控协议的模糊测试是在深入理解各个工控协议规约特征的基础上生成输入数据和测试用例去遍历协议实现的各个方面,包括在数据内容、结构、消息、序列中引入各种异常。同时,挖掘过程中需引入了大数据分析和人工智能算法,将初始的变形范围主要集中在该厂商设备最容易发生故障的范围内进行密集测试,测试中动态追踪被测设备的异常反应,智能选择更有效的输入属性构造新样本进行测试。
双向测试技术是一种基于突变的强制性模糊测试方法,这种方法通过在已有数据样本基础上插入或修改变异字节来改变正常工业控制系统中上位机和目标设备间的交互数据,并同时监视上位机和目标设备的状态。
风暴测试技术是通过在短时间内向目标设备发送大量完全相同数据包的一种压力测试,目标设备处理能力可能根据包发送频率改变而改变,薄弱的目标设备将在风暴测试中因为无法处理大量数据而出现无法响应等故障。测试时发包的速率将从低到高逐渐增加,最终得出目标设备的最大抗压值。
4.2.2静态分析技术
针对工业控制系统的静态分析技术,是指在工业控制系统在非运行状态下,进行漏洞挖掘的技术,包括静态代码审计、逆向分析,二进制补丁比对等通用漏洞挖掘方法。
静态代码审计:指使用静态代码审计工具结合人工代码审计的方法分析软件、系统源代码,从而发现软件、系统漏洞的方法。该方法只能适用于提供源码的工业控制系统的检测。
逆向分析:指通过固件分析工具对固件解压,逆向汇编二进制代码,分析二进制代码函数及其逻辑,通过这些综合手段挖掘固件、二进制可执行程序安全漏洞的方法。
二进制补丁对比:当工业控制系统厂商发现漏洞之后提供了修复漏洞的补丁,但并没有公布该漏洞。这个时候,可以使用二进制程序比对工具。通过比较补丁和原程序的不同点,可以发现原程序的安全漏洞。
5 结束语
工业控制系统安全漏洞的威胁性主要体现在被恶意利用后导致的各类后果。如果攻击者利用工业控制系统中存在的漏洞入侵,轻则使操作系统某些功能不能正常使用,重则会盗取大量用户隐私信息,控制和破坏关键基础设施的硬件设备,造成巨大的经济损失和人员伤亡,甚至威胁到国家安全。
因此,针对工业控制系统中漏洞要及时进行安全检测和提前发现,可以通过上述的漏洞扫描和挖掘技术进行检测。同时,一旦在工业控制系统中发现漏洞,就需要立刻进行漏洞修复。根据漏洞的性质及特点,可以采取打软件补丁、进行安全加固和防范、调整配置或者移除等方法进行漏洞修补。
参考文献
[1] 2015年工业控制网络安全态势报告[R].匡恩网络,2016.
[2] Michael Sutton,Adam Greene,Pedram Amini. Fuzzing: Brute Force Vulnerability Discovery. 1st Edition[M]. USA: Addison-Wesley, 2007.
[3] Guideto Industrial Control Systems(ICS) Security[S]. NIST SP800-82.
[4] Industrial Network and System Security[S]. ISA/IEC 62443.
[5] CNVD [EB/OL]. http://www.cnvd.org.cn/.
[6] CNNVD [EB/OL].http://www.cnnvd.org.cn/.
作者介绍:
孙易安(1972-),男,天津人,汉族,毕业于北京大学,本科,学士学位,匡恩技术委员会主席兼首席战略官;主要研究方向和关注领域:信息网络及工业网络安全相关技术和产品。
胡仁豪(1984-),男,汉族,安徽天长人,毕业于中国石油大学,硕士,北京匡恩网络科技有限责任公司产品总监;主要研究方向和关注领域:安全漏洞扫描与漏洞挖掘技术。