联网工业控制系统主动感知预警技术研究
2018-01-29殷顺尧羊依银
马 强,殷顺尧,羊依银
(中国电子科技网络信息安全有限公司,四川 成都 610207)
0 引言
工业控制系统广泛应用于石油、电力、交通、国防等关系到国家和社会稳定、经济正常运行的重要领域。智能制造背景下的“工业互联网”、“工业4.0”、“中国制造2025”等技术革命,推动着工业朝着数字化、网络化、开放化、集成化的工业互联方向发展。高度网络化、开放协议和异构组件互联,带来了更多的攻击路径和攻击方式,使得网络安全问题直接延伸到工业控制系统中,工控系统面临更加复杂的信息安全威胁。
传统的工业控制系统网络安全解决方案中采用防火墙、IDS、IPS、安全网关等安全设备进行被动防护。主动感知预警技术的应用,丰富了工业控制系统网络安全防护体系。目前国内外涌现出一些强大的联网工控系统网络搜索引擎,如Shodan[1]、Zoomeye[2]、ICS Radar[3]等,能够发现互联网空间里的工业控制系统资产,但对工业控制系统的监测能力仍然有限。主要表现在:(1)工控系统协议广度不够:协议支持数量、指纹识别广度有限,导致一些接入互联网的工控系统无法被探知;(2)工控系统探测准确度不够:部分工控系统仅记录简单的应答报文,且部分应答报文是错误码;(3)工控系统分析深度不够:工控系统扫描应答报文未进行深度分析,无法对一些特定应用进行支撑,如设备存活性、区域设备关联性、潜在应用领域等。
联网工业控制系统主动感知预警技术研究,首先从分析工业通信协议入手,编写协议专用扫描探测脚本,提取工控指纹特征,创建工控指纹库。其次利用快速扫描机制发现互联网空间里的工业控制系统,识别相应的系统或设备种类、型号、操作系统、固件版本等信息,同时深度挖掘系统或设备开放的其他服务。最后融合CNVD、CNNVD、CVE及中国网安自主工控安全漏洞库,分析联网工控系统或设备存在的漏洞情况,对联网工控系统进行威胁预警。
1 工业通信协议分析
工业通信协议种类繁多,不同行业、不同领域通信协议差别很大,有的是公有协议,如:Modbus、IEC60870-5-104等;有的是私有协议,如:Siemens S7,GE SRTP等。针对公有协议分析可以参照IEC、GB或HB等协议标准解析,难度系数低、准确度高;而对于私有协议分析,则需要利用硬件设备或模拟软件,搭建工控系统仿真运行环境,通过抓包工具捕获数据包,对通信报文采用盲识别、协议逆向等方法进行分析,难度系数高、准确度低。本文以Modbus/TCP[4]为例,分析公有协议的分析方法。
Modbus/TCP是Modbus协议的网络通信标准,属于OSI模型中第七层的应用层协议。RFC1700规定了用于自动化信息传输的Modbus协议端口为502,是工业自动化公司唯一所拥有的常用端口号。Modbus在TCP/IP以太网上传输,支持EthernetⅡ和802.3两种帧格式,如图1所示,Modbus/TCP数据帧包含MBAP报文头、功能码和数据三部分。
图1 Modbus/TCP协议帧格式
MBAP报文头由TI(传输标识)、PI(协议标识)、LEN(长度)、UI(单元标识)四部分组成,共占7 B。基于TCP/IP协议的客户端与服务器端通信过程中,由客户端生成相应MBAP报文头信息,服务器端在应答过程中,除LEN重新生成外,其他部分MBAP报文头复制客户端生成值。功能码(FUNC)分为公共功能码、用户定义功能码、保留功能码三类,占1 B。
以常用功能码43(0x2b)读取设备标识信息为例,对Modbus/TCP报文交互以及协议分析过程进行详细说明,如图2所示。
图2 Modbus/TCP 读设备标识应用层报文交互解析
通过wireshark抓包工具,捕获Modbus/TCP读设备标识应用层交互报文,如图3所示。通过分析可以读出设备厂商为:Rockwell Automation Allen-Bradley,产品代码:180,版本:08.0B。
图3 Modbus/TCP读设备标识应答报文
在深度分析Modbus/TCP协议的基础上,开发Modbus/TCP协议专用扫描探测脚本,为互联网空间工控系统探测提供方法支撑。该扫描探测脚本中主要包括:客户端与服务端的TCP连接、资产请求、业务交互、数据解析、特征信息提取、TCP关闭等。
2 工控系统指纹库构建
当前网络搜索引擎存在一些问题,如:采集到的原始报文数据不全面,报文解析不彻底,部分资产被遗漏;新探测到的资产无法正常识别厂商等关键资产数据;能够识别的资产数量偏少,识别成功率偏低。通过创建工控系统指纹库,维护指纹库字典,利用模糊匹配技术,可以提高资产的识别速度及广度,能够获取到厂商、型号、版本等重要资产数据,具备灵活性强、易于扩展等特性,解决了联网工控系统识别成功率低的问题。
工控系统指纹库在构建过程中,部分公有协议可以通过向目标设备发送特定的请求报文,对设备应答信息进行解析,从而得到工控设备的全面资产信息数据。常用工业通信协议中通过发送请求包读取指纹的方式主要包括:Modbus/TCP、MMS、Ethernet/IP、FINS等,如表1所示。部分公有协议如IEC60870-5-104、DNP3.0等,则无法通过报文交互的方式获取相关设备厂商、软件版本等信息,该类工控资产则无法识别厂商、软件版本,但是协议本身也是一种指纹特征。
工控系统指纹库通过对工控通信协议的交互报文深度分析,封装工控系统基础数据,抽象出设备的特征参数值,以类型、厂商名称、设备型号作为关键字,设备特征字符串作为特征值,建立指纹库。该指纹库涵盖工业控制设备、系统主机及服务器、应用软件、智能设备、网络设备等,如表2所示。
表1 标准协议请求命令及应答信息
表2 工控系统指纹库对照表
图4 联网工业控制系统快速扫描机制
3 快速扫描机制
目前流行的网络扫描工具如Nmap、Zmap、Masscan[5]等,都可以对整个互联网空间工控设备资产情况进行探测。其中Nmap可以发现存活主机、开发端口、支持多端口、多网段对目标域的扫描,还能进一步识别出端口服务类型、版本、操作系统等,不仅可以用于扫描TCP协议端口,也可以用于扫描UDP协议端口;Masscan在专用硬件网卡设备及网络条件满足的情况下,可以在3 min内扫描全部IPv4地址空间,是目前最快的TCP协议端口扫描工具,可以用于扫描TCP协议端口,但是无法扫描UDP协议端口;Zmap是扫描速度仅次于Masscan的扫描工具,在满足最大扫描能力的前提条件下,可以在44 min内扫描完IPv4地址空间,既可以扫描TCP协议端口,也可以扫描UDP协议端口。
针对以上三种常用扫描工具的特点,联网工业控制系统主动感知技术采用端口存活扫描、资产识别扫描相结合的快速扫描机制,如图4所示。首先利用Masscan对IPv4地址空间内TCP协议端口进行探测,利用Zmap对IPv4地址空间内UDP协议端口进行探测,并将相关探测结果汇总到端口存活结果地址库,完成端口存活性扫描。其次利用Nmap对端口存活性结果进行资产识别性扫描,同时结合工控系统指纹库,发现目标设备的设备类型、版本、型号、工控应用协议等信息。
Masscan扫描TCP协议端口过程中,采用了无状态扫描技术,仅发送了TCP/IP三步握手中SYN包,当对端端口存在ACK应答时,扫描端才会发送RST包,主动结束该连接。当以较高发包率进行扫描探测时,需要考虑组网网络设备的性能,如有防火墙、路由器,则需要考虑防火墙中新建连接数、并发连接数的限制、路由器中内存大小等因素。Zmap扫描UDP协议端口时,需要该端口服务有应答,才能发现该端口。针对工控系统,采用UDP协议的工控协议数量不多,主要包括BACNet、DDP、HART-IP、FFHSE等,在进行工控协议端口扫描时,需要发送对应工控协议相关请求报文探测。
4 威胁预警
联网工业控制系统经过资产识别扫描之后,部分设备的厂商、产品、版本、协议、端口、服务等信息都已经被探测出来。从网络安全的角度上看,分析当前资产中存在的安全漏洞,根据漏洞的存在状况、漏洞的危险等级对联网工控系统进行威胁预警,指导政府监管部门做好漏洞安全防范具有积极的意义。
目前CNVD、CNNVD是权威的国家信息安全漏洞共享平台、国家信息安全漏洞库,CVE是国际著名的安全漏洞库,公开的工业控制系统安全漏洞可以从以上平台中获取,如图5所示。中国电子科技网络信息安全有限公司工控安全事业部是专业从事工业控制系统网络信息安全的技术团队,目前已拥有自主挖掘工控漏洞200多个,且多为零DAY漏洞,融合CNVD、CNNVD、CVE等权威漏洞库,形成了联网工控系统的专用漏洞库。
图5 CNVD上发布的工控漏洞示例图
根据在工控系统漏洞利用过程中所用到的无损检测方法,采用积极的、非破坏性的办法来检验系统是否存在工控漏洞。在此基础之上构成相应的漏洞匹配规则,形成一套标准的工控系统漏洞检验方法,由程序自动进行系统漏洞扫描的分析工作。最终完成对联网工控资产的漏洞关联匹配,实现对联网工业控制系统的主动预警。
为了更加准确地统计行政区域内联网资产情况及安全漏洞威胁情况,引入了IP定位库来实现对联网工业控制系统的准确定位。国内区域定位精度支持区县级,国外区域定位精度可支持到市。IP定位的引入,有力地支撑了政府监管部门对区域内工业控制系统安全漏洞情况进行宏观把握。
5 结论
通过对联网工控系统主动感知预警技术研究,实现了对扫描探测脚本的插件式扩充,工控指纹库、漏洞库的批量导入,IP定位库的自动更新、人工校正,自动生成主动感知报表,自动推送威胁报警,为实现国家层面的联网工业控制系统威胁感知预警平台提供了强有力的技术支撑。但是,联网工业控制系统主动感知预警技术依赖于专用工控协议探测脚本的准确度,尤其是工控私有协议存在解析识别不能完全覆盖的风险,会存在一定的联网工控系统资产及威胁漏报情况。加强对私有协议研究成果的互通互用,或通过社会力量、第三方共享平台,实现对私有协议扫描探测脚本的不断完善、扩充,快速提升联网工控系统的主动感知预警能力。
[1] Industrial control systems[DB/OL].https://www.shodan.io/explore/category/industrial-control-systems.
[2] 通过ZoomEye搜索世界各地工业控制系统[DB/OL].https://www.zoomeye.org/topic?id=ics_project.
[3] 工业互联网雷达[DB/OL].https://radar.winicssec.com/html/map/china_map.html.
[4] GB/T 19582.3-2008 基于Modbus协议的工业自动化网络规范 第3部分:Modbus协议在TCP/IP上的实现指南[S]. 北京:中国标准出版社,2008.
[5] 冉世伟. 基于Masscan漏洞扫描技术的研究[D]. 天津:南开大学,2016.