面向工业嵌入式设备的漏洞分析方法研究

2015-05-08 01:22尚文利赵剑明乔全胜
自动化仪表 2015年10期
关键词:通信协议测试用例嵌入式

尚文利 万 明 赵剑明 乔全胜 曾 鹏

(中国科学院沈阳自动化研究所1,辽宁 沈阳 110016;中科院网络化控制系统重点实验室2,辽宁 沈阳 110016;沈阳建筑大学信息与控制工程学院3,辽宁 沈阳 110168)

面向工业嵌入式设备的漏洞分析方法研究

尚文利1,2万 明1,2赵剑明1,2乔全胜2,3曾 鹏1,2

(中国科学院沈阳自动化研究所1,辽宁 沈阳 110016;中科院网络化控制系统重点实验室2,辽宁 沈阳 110016;沈阳建筑大学信息与控制工程学院3,辽宁 沈阳 110168)

目前现役和在售的嵌入式电子设备大多处于不设防状态,系统安全面临威胁。针对工业嵌入式设备自身防护能力较弱的特点,以PLC为例说明嵌入式设备存在的漏洞风险。设计了石化液位控制系统,演示了工业病毒利用漏洞进行攻击的方法与途径。设计了漏洞分析系统,包括工业协议状态模型、未知漏洞挖掘、已知漏洞扫描、漏洞识别模型、安全评估分析和监测与控制等六个部分,为工业控制系统漏洞分析系统开发提供了理论方法。

工业嵌入式设备 漏洞分析 PLC 工业病毒 安全测试

0 引言

嵌入式电子设备是实现工业测控系统控制功能的核心。以PLC为代表的嵌入式电子设备自身防护能力弱,已经成为影响我国工业控制系统安全的主要问题[1-2]。现役和在售的嵌入式电子设备大多处于不设防状态,而且可编程嵌入式电子设备越来越多地采用通用协议、通用硬件和通用软件,并且全面实现数字化和网络化,为恶意入侵提供了更多的可能。如2010年出现的伊朗“震网”事件,直接攻击了西门子的S7 300和400系列PLC设备,导致严重的系统安全问题[3]。

本文分析了国内外针对工业嵌入式设备漏洞分析的研究工作,阐述了工业嵌入式设备漏洞存在的关键因素,以PLC为例说明了工业病毒如何利用漏洞进行攻击。介绍了设计与开发的面向工业嵌入式设备的漏洞分析系统,以及涉及的关键技术、求解方法。

1 国内外研究现状

工业嵌入式设备产生安全攻击的根源在于网络、系统、设备或主机,甚至管理中存在各种安全漏洞。工业控制系统自身的漏洞和攻击面的日益增大也是由于工业控制系统设计时未考虑安全、长生命周期、采用商业IT产品和系统以及同外界连网等趋势所导致,因此关于工业控制系统的漏洞研究也成为当前工业控制信息安全风险评估的重点。一般可将工业控制系统的漏洞分为策略和指南漏洞、平台漏洞(包括平台配置漏洞、平台硬件漏洞、平台软件漏洞和平台恶意软件防护漏洞)和网络漏洞(包括网络配置漏洞、网络硬件漏洞、网络边界漏洞、网络监测和记录漏洞、通信漏洞和无线连接漏洞)。

目前漏洞分析与挖掘主要集中在操作系统、数据库软件和传输协议三个大方向,还有新兴的基于以下几个方面的漏洞分析与挖掘,如基于ActiveX的漏洞挖掘、基于即时通信的漏洞挖掘、基于虚拟技术的漏洞挖掘、基于设备硬件驱动的漏洞挖掘、基于移动应用的漏洞挖掘等。美国国土安全部控制系统安全计划(CSSP)、美国能源部国家SCADA系统测试床计划(NSTB)等根据其所执行的工业系统评估发布了工业控制系统漏洞分析报告,详细描述了工业控制系统中的主要共性漏洞、漏洞分类、具体漏洞描述、相关漏洞来源以及漏洞评分方法等。美国在信息安全方面起步较早,2002年即将“控制系统安全”作为需要“紧急关注”的事项[4],并分别于2004年、2006年、2009年发布相关计划并成立专项[5-8]。欧共体委员会则在2004年~2010年发布一系列关于关键基础设施保护的报告[9-11]。我国也于2013年建设成立了工业控制系统安全技术国家工程重点实验室。由此可见,工业系统中的安全问题已成为世界广泛关注的重要问题。

在理论研究方面,国内外已有关于信息安全方面的研究工作。Ten使用攻击树对一个工业SCADA系统的信息安全脆弱性进行了评估[12]。Park[13]利用攻击树模型来分析一个反应器保护系统的信息安全。Byres[14]使用攻击树建模方法对一个基于Modbus协议栈的工业控制SCADA系统的通信系统进行了漏洞分析。在威胁建模方面,Howard等人[15]提出了一种面向过程的威胁建模方法,采用拓展活动图和统一威胁模型作为基础,利用威胁树进行威胁模型的建立,用DREAD方法评估风险等级。王华忠[16]等人采用攻击树建模方法,建立污水处理厂计算机控制系统攻击树模型,对该控制系统的信息安全进行分析,最后提出了提高该控制系统信息安全水平的措施。向騻[17]等人提出了一种改进的Fuzzing架构,通过引入置信度的概念对测试用例进行量化,将其作为分类器的输入进行分类,从而预先筛选出可能有效的测试用例,实现了减少输入空间、增加命中率的目的。

在安全产品方面,国际上知名的工业安全测试公司主要有加拿大Wurldtech和芬兰科诺康Codenomicon Defensics。其中加拿大 Wurldtech的Achilles 测试工具采用的是漏洞扫描和模糊测试的方法,主要测试工控系统中设备和软件的安全问题。芬兰科诺康Codenomicon Defensics工控健壮性/安全性测试平台,则采用基于主动性安全漏洞挖掘的健壮性评估与管理方案的方法,并与ISA Secure合作,遵循IEC 62443标准。Achilles与Defensics均支持IP网络的工业嵌入式设备,如PLC、RTU、DCS Controller、SIS、Smart Meter等,并均可对工控设备的应用层协议进行安全性测试,支持协议包括Modbus TCP、Profinet、DNP3、IEC 60870-5-101/104、IEC 61850等。

2 工业嵌入式设备漏洞风险

本节以PLC为例说明嵌入式设备存在的漏洞问题。基于美国国家漏洞库(National Vulnerability Database,NVD)[18]与国家信息安全漏洞共享平台(China National Vulnerability Database,CNVD)[19]两个漏洞库中关于PLC设备的漏洞库数据,针对PLC设备的漏洞信息可以分为拒绝服务漏洞、远程代码执行漏洞、用户访问权限漏洞、信息泄漏漏洞四类。

① 拒绝服务漏洞。如Siemens Simatic S7-1200拒绝服务漏洞、Siemens Simatic S7-1500 1.x拒绝服务漏洞、Siemens Simatic S7-1200 PLCs 2.x and 3.x 拒绝服务漏洞、Siemens Simatic TCP报文拒绝服务漏洞、Nano-10 PLC远程拒绝服务漏洞、Galil RIO-47100 'Pocket PLC'组件拒绝服务漏洞、Schneider Electric M340 PLC模块拒绝服务漏洞、Schneider Electric M340 BMXNOE01xx/BMXP3420xx PLC模块拒绝服务漏洞、OPTIMA PLC死循环拒绝服务漏洞、Triangle Research Nano-10 PLC特制报文数据长度处理远程拒绝服务漏洞等。

② 远程代码执行漏洞。如Siemens Simatic S7-1500存在未明跨站请求伪造漏洞、Siemens Simatic S7-1500重定向漏洞、Siemens Simatic 网络服务器跨站脚本漏洞、Schneider Electric多个产品跨站请求伪造漏洞等。

③ 用户访问权限漏洞。如Siemens Simatic S7 PLC系统密码泄漏漏洞、Siemens Simatic S7-300硬编码证书安全绕过漏洞、Rockwell Automation RSLogix 5000安全绕过漏洞、Schneider Electric Modicon M340多个默认账户漏洞、Schneider Electric多个产品不正确验证漏洞等。

④ 信息泄漏漏洞。如Siemens Simatic S7-1200信息泄漏漏洞、Siemens Simatic S7-1500不充分熵漏洞等。

下面以PLC为例说明工业病毒如何利用漏洞进行攻击。石化液位控制系统演示平台如图1所示。

图1 石化液位控制系统演示平台

液位控制系统演示平台模拟炼油、化工生产工艺中液体净化中液位控制过程。上游净化罐中液体达到警戒线后进行一次净化处理,处理完毕后向下游净化罐输送,其中,净化罐中液位在警戒线以上是危险的。此演示平台针对上位机软件的漏洞,模拟“Stuxnet”病毒攻击的效果,使底层净化罐设备液位失控,但是上位机监控画面仍然显示正常。

漏洞信息如表1所示。

表1 SCADA系统漏洞信息

漏洞简介:KingView中存在基于堆的缓冲区溢出漏洞,该漏洞源于对用户提供的输入未经正确验证。攻击者可利用该漏洞在运行应用程序的用户上下文中执行任意代码,攻击失败时可能导致拒绝服务。KingView 6.53.2010.18018版本中存在该漏洞,其他版本也可能受影响。攻击者可以借助对TCP端口777的超长请求执行任意代码。

当插入带有病毒的U盘后,系统感染工业病毒,系统运行状态如图2所示。

从以上的例子可以得出结论,由于KingView中存在基于堆的缓冲区溢出漏洞,病毒利用该漏洞执行恶意代码,使得上位机人机接口(human machine interface,HMI)显示与实际显示不符。当液位控制系统可能出现液位已经超过警戒线时,该漏洞的存在可

使在中控室中的HMI仍然显示正常,在工作人员无法察觉的情况下,造成一定的经济损失,严重时可能导致重大安全事故。

图2 系统被病毒感染后运行状态图

3 面向工业嵌入式设备的漏洞分析方法

通过以PLC为例说明工业病毒攻击嵌入式设备的过程与结论,本文设计如下的漏洞分析系统,如图3所示。系统分为工业协议状态模型、未知漏洞挖掘、已知漏洞扫描、漏洞识别模型、安全评估分析和监测与控制软件等六个部分。

① 工业协议状态模型。采用有限状态机(finite state machine,FSM),建立工业通信协议状态模型,提供完整的协议状态转移图,构造和维护全面的协议状态空间,为测试用例的生成提供基本条件。

图3 漏洞分析框架

工业通信协议的测试具有特殊性。首先,工业通信协议是一种有状态的协议,无状态协议测试的测试用例仅仅是一个文件或网络报文,而状态协议的测试用例则是一组相关的报文序列。其次,对工业通信协议的测试需要对其状态空间中的每一个状态进行测试,生成测试用例需要能够尽可能地覆盖所有协议状态路径。因此,需要在测试之初,建立完整的工业协议状态模型,使得测试用例能够遍历每个协议状态,保障测试用例的全面性。

协议状态空间如图4所示。

图4 协议状态空间

② 未知漏洞挖掘。基于异常变异树,通过工业通信协议状态模型,构造未知漏洞挖掘的Fuzzing测试用例,挖掘“零日”漏洞,解决工业通信协议实现缺陷的问题。基于异常变异树的未知漏洞挖掘流图如图5所示。

图5 基于异常变异树的未知漏洞挖掘

采用人工分析与计算机辅助相结合的建树方法,构造异常变异树,降低测试用例规模,提高执行效率。

未知漏洞挖掘框架是一种面向工业通信协议规约的Fuzzing测试框架。该测试框架完成了基于缺陷注入的自动测试,通常以大小相关的部分、字符串、标志字符串开始或结束的二进制块等为重点,使用边界值附近的值对目标进行测试。Fuzzing的输入可以是完全随机的或精心构造的。

③ 已知漏洞扫描。基于工业通信协议状态模型,利用已知漏洞人工分析以及病毒攻击自动模拟的方式,构造测试用例,发现已知漏洞,排除安全隐患。

利用病毒样本确认攻击源的行为,通过序列联配方法跟踪病毒过程,解决工业病毒的行为分析、状态跟踪的难题。

自主构建工业控制系统已知漏洞库信息,按需提取、分类漏洞攻击字段信息,如漏洞名称、漏洞日期、漏洞类型与端口、漏洞确认状态、漏洞特征值等。通过专家知识分析,按照公布的漏洞攻击字段特征,构造攻击数据包,生成测试用例。

通过研究病毒行为特征提取与攻击模拟的方法,根据网络流量情况、具体协议内容、交互模式以及设备行为,实现工控环境特种工业病毒行为判定。基于工业通信协议状态模型,提取工业病毒行为特征,解决工业病毒的行为分析、状态跟踪的难题,同时解决人工分析方式难于构建工业病毒利用漏洞的测试用例生成问题。如图6所示为基于通信协议的已知漏洞扫描。

图6 基于通信协议的已知漏洞扫描

④ 漏洞识别模型。通过以太网信号和工业特有电平信号的融合分析,实现双重漏洞识别,全面分析检测漏洞测试反馈信号,解决电平信号异常导致的漏报问题。利用非线性回归校正、自由定标校正等方法,构建精准漏洞识别模型,提高对目标漏洞识别结果的准确性。 漏洞模型识别如图7所示。

图7 漏洞模型识别

针对工业嵌入式设备的漏洞识别,较传统IT增加了特有的电平信号输出。电平信号的正常与否同样是判断设备是否存在漏洞的重要标志。通过以太网信号和工业特有电平信号的融合分析,全面分析检测漏洞测试反馈信号,解决电平信号异常导致的漏报问题。

在测试过程中,主要研究一种精确的漏洞识别模型,对返回应答数据包与漏洞数据库中的漏洞特征进行比较,监测返回应答数据包,检测电平信号的阻态波形,监测电平信号。通过校正模型,提高对被测目标漏洞识别结果的准确率。

⑤ 安全评估与分析。安全评估与分析系统主要包括安全漏洞报告、安全评估、安全建议三个部分。已知漏洞扫描与未知漏洞挖掘的测试结果,用于生成安全漏洞报告,提取安全漏洞报告的属性信息,用于安全评估,之后对安全漏洞给出合理的建议。

安全漏洞报告通过可扩展标志语言(extensible markup language,XML)传输测试结果,以树形方式组织测试结果的保存,并提供自动保存PDF格式文件功能。

安全评估先对被测对象资产信息进行设置,同时自动提取安全漏洞报告中的漏洞信息安全等级、漏洞信息被利用可能性、漏洞信息生命周期等属性信息。设置各个属性信息评估参数,将测试发现的漏洞信息针对以上各个属性进行权重分配。计算测试的漏洞信息的评估结果,提供整体风险评估和对比风险情况呈现。

安全建议首选构建辅助决策专家知识库,针对已知漏洞,通过漏洞的精确定位获取已知漏洞库中公布的修复建议。针对未知漏洞,通过Fuzzing测试结果定位,给出数据包应用层数据构造,指导用户修复。根据安全漏洞报告和安全评估的结果,定位问题产生的原因,查询辅助决策专家知识库匹配项,给出修复建议。

⑥ 监测与控制软件。监测与控制软件主要由C/S通信模块、用户交互与显示模块、核心控制模块、漏洞管理模块以及实时状态监测模块等部分组成。

C/S通信模块采用客户端/服务器结构,应用“请求/响应”的应答模式,在监测与控制软件系统与安全测试仪器之间建立通信信道,完成对安全测试仪器的管理、控制和监测。用户交互与显示模块构造合理的用户界面,综合多模块功能,实现与用户友好的交互和简洁的操作。核心控制模块用于控制变异测试用例的构造,制定测试的过程及执行步骤,管理测试报文的交互流程,并对测试用例的工作状态进行监视。漏洞管理模块基于自主构建的已知漏洞库,实现对已知漏洞库的漏洞信息的管理,以及对漏洞信息的更新、删除、修改等操作。实时状态监测模块在测试用例执行时,实现对被测对象活跃状态的监测。

4 结束语

本文以PLC为例分析了嵌入式设备存在的漏洞问题,利用石化液位控制系统阐述了工业病毒利用漏洞进行攻击的过程,说明了漏洞信息的危害性和潜在的安全威胁。针对漏洞发现问题,设计与开发了面向工业嵌入式设备的漏洞分析系统,包括工业协议状态模型、未知漏洞挖掘、已知漏洞扫描、漏洞识别模型、安全评估分析和监测与控制软件等模块,为工业控制系统漏洞分析系统开发提供了理论方法。

[1] 彭勇, 江常青, 谢丰,等.工业控制系统信息安全研究进展[J].清华大学学报:自然科学版,2012(10):1396-1408.

[2] IEC 62443 Network and system security for industrial-process measurement and control[S].2012.

[3] 蒲石, 陈周国, 祝世雄. 震网病毒分析与防范[J]. 信息网络安全, 2012(2): 40-43.

[4] The National Research Council. Making the nation safer: the role of science and technology in countering terrorism[R].Washington DC, USA: the National Research Council, 2002.

[5] United States General Accounting Office. Critical infrastructure protection: challenges and efforts to secure control systems, GAO-04-354[R].Washington DC, USA: General Accounting Office (GAO), 2004.

[6] Eisenhauer J, Donnelly P, Ellis M, et al. Roadmap to secure control systems in the energy sector[R].Washington DC, USA: Energetic Incorporated, the US Department of Energy and the US Department of Homeland Security, 2006.

[7] Department of Homeland Security. National infrastructure protection plan[R].Washington DC, USA: Department of Homeland Security, 2009.

[8] Energy Sector Control Systems Working Group (ESCSWG). Roadmap to achieve energy delivery systems cyber security[R].Washington DC, USA: Office of Electricity Delivery and Energy Reliability, 2011.

[9] Commission of the European Communities, Communication from the Commission to the Council and the European Parliament. Critical infrastructure protection in the fight against terrorism, COM (2004) 702 final[R].Brussels, Belgium: Commission of the European communicaties, 2004.

[10]Commission of the European Communities. Communication from the commission on a european programme for critical infrastructure protection, COM (2006) 786 Final[R].Brussels, Belgium: Commission of the European communicaties, 2006.

[11]Commission of the European Communities. Communication from the commission to the european parliament, the council, The european economic and social committee and the committee of the regions-a digital agenda for Europe, COM (2010) 245 Final[R].Brussels, Belgium: Commission of the European Communicaties, 2010.

[12]Chee-W T, Chen C L. Vulnerability assessment of cybersecurity for SCADA systems using attack trees. Power Engineering Society General Meeting. IEEE,2007:1-8.

[13]Park G Y, Lee C K, Choi J G,et al. Cyber security analysis by attack trees for a reactor protection system [C]//Proceedings of the Korean Nuclear Society, 2008.

[14]Byres E J, Franz Miller. The use of attack trees in assessing vulnerabilities in SCADA system[C]// International Infrastructure Survivability Workshop (IISW’04). Lisbon, Portugal: Institute of Electrical Electronics Engineering, 2008.

[15]Howard M, LeBlanc D.Writing secure code [M].Remond, Washington; Microsoft Press, 2005.

[16]王华忠, 颜秉勇, 夏春明. 基于攻击树模型的工业控制系统信息安全分析[J]. 化工自动化及仪表, 2013(2): 219-221.

[17]向騻, 赵波, 纪祥敏, 等. 一种基于改进Fuzzing架构的工业控制设备漏洞挖掘框架[J]. 武汉大学学报: 理学版, 2013(5): 411-415.

[18]National Institute of Standards and Techonology.National vulnerability database(NVD)[EB/OL][2014-12-25]. http://nvd.nist.gov.

[19]CNCERT.China national vulnerability database(CNVD)[EB/OL][2014-12-25]. http://www.cnvd.org.cn.

Study on the Vulnerability Analysis Method for Industrial Embedded Devices

At present, most of the embedded electronic devices, active duty or commercial available, are in undefended state, the system security is facing threats. In accordance with the feature of industrial embedded devices, i.e., the self-protection capability is weak, the vulnerability risks exist in embedded devices are described with PLC as example. The level control system for petrochemical industry is designed, and the attack method and path of industrial viruses through loopholes are demonstrated. The vulnerability analysis system is designed, including six parts: industrial protocol state model, unknown vulnerability mining, known vulnerability scanning, vulnerability identification model, security evaluation analysis and monitoring and control; it provides theoretical method for developing vulnerability analysis system of industrial control systems.

Industrial embedded device Vulnerability analysis PLC Industrial virus Security test

TP29;TH6

A

10.16086/j.cnki.issn1000-0380.201510016

猜你喜欢
通信协议测试用例嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
搭建基于Qt的嵌入式开发平台
车载网络通信协议标准化问题研究
电动汽车充电接口及通信协议新国标发布
基于依赖结构的测试用例优先级技术