电力物联网智能终端安全检测应用研究
2021-02-24孙昌华汤晓冬
孙昌华,李 景,戴 桦,汤晓冬,崔 崟
(1.国网浙江省电力有限公司电力科学研究院,杭州 310014;2.上海物盾信息科技有限公司,上海 200000)
0 引言
物联网[1-3]概念于1999 年被首次提出,并且随着工业4.0[4]、新基建[5]等政策的进一步刺激,物联网技术和电力行业生产有机结合,越来越多的物联网设备在生产中发挥更加重要的作用。现阶段配电网存在量测覆盖率低、网架结构灵活性不足、配电网设备规模庞大的特征。除此之外,配电网还存在标准化程度低、间歇性能源与可变新型负荷接纳能力差、用户多样化需求服务能力不足等问题[6]。综上所述,现阶段配电网升级改造的当务之急是进一步提升信息化水平和自动化水平[7],加强实时感知与精细化控制,从而达到向用户提供多样化、差异性的用能服务。
近年来,电力物联网技术在带来便利的同时,也带来了更多的安全隐患,针对电力物联网的攻击也越来越多,如2015 年乌克兰电力部门发生恶意软件入侵和DDoS 攻击,导致大停电[8]。近年来的电力系统安全事件[9-11]表明,单纯使用网络隔离、单向传输等技术手段很难实现真正的网络安全,相对封闭的专用信息系统开始成为新型攻击手段的攻击对象。
电力物联网的开放性和包容性决定了网络安全隐患不可避免,电网安全甚至会关系到一个国家的战略安全。如何应对新形势下电网的安全威胁、如何寻求更加先进的安全技术来保护电网的安全,已经逐渐成为现今需要考虑的重要问题。
本文首先对目前电力物联网智能终端市场进行调研,然后针对物联网架构中最容易被攻击的物联网感知层终端设备进行研究并设计实现了电力物联网终端安全检测平台。该平台一是对电力物联网智能终端设备固件进行安全测试、安全分析,实现对常规漏洞、硬编码口令、潜在安全风险等方面的检测;二是利用模糊测试、远程扫描等策略实现对电力物联网智能终端在线设备的漏洞挖掘测试,并通过多次实验对平台应用进行测试。
1 电力物联网智能终端安全概述
从技术视角看,电力物联网的安全架构由感知层安全、网络层安全、平台层安全和应用层安全组成[12]。感知层终端设备数量巨大,并且一般为嵌入式系统,设备的计算能力、通信能力、存储能力等受限,复杂的安全技术无法直接应用,使得感知层的终端设备成为物联网架构安全的薄弱环节。在电力物联网架构中,感知层承载了数据采集、智能终端等功能,在配电侧、用电侧采集监控深度覆盖,同时通过网络层与平台层及应用层直达。电力物联网智能终端的安全态势对电力物联网乃至整个能源互联网都会有重大影响。
而固件[13]作为智能终端设备的核心,存储着设备操作系统、初始化文件、配置文件、协议栈、可执行二进制程序等内容。通过固件获取、解包、逆向分析等手段,攻击者就能够分析出终端设备的行为逻辑,获得设备的口令、密钥、私有协议格式等敏感信息,甚至能够分析得到设备的未知漏洞,并利用该漏洞实施攻击。在设备开发过程中以及接入物联网之前,应对设备固件进行安全分析,防止高危风险发布上线,降低终端设备接入后被攻击造成的损失。
针对当前的固件安全现状,国内外研究人员提出了静态漏洞挖掘技术[14]。该技术是指在不运行固件的情况下,依据推导规则、模式匹配、模型检测等技术实现对固件源代码或二进制程序的漏洞挖掘,但是该技术只针对固件某一方面的安全性进行分析,没有形成全面可用的安全分析,并且不能适应固件类型多样性特点。
同时在电力物联网智能终端设备漏洞挖掘过程中,现有的动态漏洞挖掘[15]技术是针对运行的设备进行漏洞挖掘,主要包括符号执行、模糊测试等常用技术,但缺乏对电力物联网智能终端设备自动化威胁的探测,不能全面有效地评估使用终端设备所面临的安全风险并提供相应的应对策略,降低物联网安全风险隐患。
基于此,本文对电力物联网智能终端安全检测应用进行研究,开展了电力物联网智能终端设备固件安全检测和电力物联网智能终端设备漏洞挖掘测试两方面研究,通过评估使用电力物联网智能终端时所面临的安全风险并提供相应的应对策略,对设备安全作出深入的评估和分析。
2 电力物联网智能终端安全检测框架
2.1 电力物联网智能终端固件安全检测框架
本文提出了一种电力物联网智能终端固件安全检测框架,主要针对电力物联网智能终端固件脆弱性进行安全分析。图1 是本文提出的安全检测框架的组织架构,主要由调度器模块、解包模块、分析模块、固件安全分析辅助模块组成,由调度器负责统一调度管理。检测流程如下:
图1 组织架构
(1)调度解包模块通过自定义的mime文件对待检测固件文件格式进行识别,调用Binwalk 等工具解包,初步获取固件硬件版本、处理器架构、内核版本、文件系统、系统架构、系统组件等基本信息。
(2)调度器调用分析模块,通过Yara 引擎、已知漏洞库特征规则匹配、开源组件cwe_checker等方式对生成的系统文件树进行反汇编,对文件系统、系统组件等进行安全性以及关联度分析,提取版本信息、特征代码、配置文件、有意义的字符串、私钥等,并进行包括但不限于恶意软件检测、漏洞检测、弱点分析等工作。具体来说,主要使用CWE-190,CWE-332 和CWE-676 模块实现了以下4 个功能:
①事先收集10 万条常用用户名和密码,大量的口令积累有利于提高后续匹配的准确性,根据积累的口令利用正则表达式来匹配固件中存在的硬编码问题。
②针对不安全的第三方库或组件调用,研究利用已知漏洞建立yara 特征库,通过yara 引擎进行特征匹配。
③针对危险初始化进程,通过检索“system/”或“etc/init.d”等文件夹,以及yara 规则进行匹配分析。
④针对潜在危险字符处理函数,不安全的伪随机数、数值溢出计算,以及其他潜在的危险函数,主要使用开源工具cwe checker 帮助安全分析人员快速找到易受攻击的代码路径。
(3)针对发现的潜在安全隐患,根据固件系统信息、配置信息等数据,通过QEMU 模拟器加载等方式加载固件及特定的二进制程序,并根据静态分析的结果进行验证测试,对暴露出来的攻击面等相关模块进行逆向分析,进行漏洞可利用评估,寻找更多可能的安全风险。
(4)固件的最终分析结果存放在MongoDB 数据库中,并对外进行展示。最终,平台形成一个可覆盖CVE 漏洞、密钥安全、配置安全、隐私数据等安全风险的评估报告,并提供快速的不同维度的分析与数据统计。
2.2 电力物联网智能终端漏洞挖掘测试框架
2.2.1 技术架构
本文提出了一种基于模糊测试的电力物联网智能终端设备漏洞挖掘技术,该技术主要面向电力物联网智能终端协议的安全测试,针对电力物联网智能终端使用的ModBus,MQTT 等常见主流物联网协议,利用模糊测试技术,通过随机或半随机的方式生成模糊测试数据,后台自动对被测试终端执行模糊测试操作,判断潜在的安全漏洞。具体的技术架构如图2 所示。该测试架构主要由基础能力层、安全能力层、安全数据层、业务逻辑层和用户交互层组成:
(1)基础能力层,导入基础软件能力,为上层提供技术基础。
(2)安全能力层,实现网络扫描、设备访问、模糊测试等基础安全能力。
(3)安全数据层,这一层将安全测试的经验、对协议的理解以及漏洞库的积累等,以脚本、数据、代码等多种形式固化到软件中。
(4)业务逻辑层,基于下层的技术实现,以及需求的理解,实现项目目标用户需要的检测能力。
(5)用户交互层,为WEB 方式实现与用户的交互。
图2 技术架构
2.2.2 实现方法
该框架主要实现了网络扫描、设备访问、模糊测试等基础安全能力,具体实现方法如下:
(1)封装当前主流的Nmap,Openvas Scanner等扫描工具,对测试IP 地址及其所在网段执行端口扫描,确定攻击面。攻击面通常包括设备的默认开放端口,例如FTP(文件传输协议)对应的21 端口,远程连接对应的3389 端口等。
(2)在线扫描电力物联网智能终端设备,获取更多设备操作系统和应用服务版本等设备信息,生成设备行为特征。利用CVE,CNNVD,NVD 等漏洞库信息以及其他可以获取的安全情报,建立电力物联网智能终端的漏洞特征库。通过终端特征与漏洞特征库比对,发现终端常规漏洞。
(3)模糊测试模块用来检测未知漏洞。该策略充分利用计算机随机生成和发送数据的能力,同时将安全测试的经验、对协议的理解以及漏洞库的积累等,以脚本、数据、代码等多种形式固化到其中。针对RTSP,COAP,MQTT 等主流电力物联网协议,采用随机或半随机的方式生成大量测试数据,发送给被测设备,并根据设备响应状态不断优化测试数据的生成策略,扩大平台的测试效率以及协议字段覆盖率。
2.2.3 模糊测试策略
研究使用3 种不同策略的模糊测试方法,具体为:
(1)基于变种的模糊测试策略,已知合法的输入进行随机化变形,从而产生不可预测的随机的测试输入。
(2)基于模版的模糊测试策略,这种策略有赖于安全人员的专业知识,针对特定的漏洞,例如整数溢出或缓冲区溢出来制定输入数据模版,构造丰富的输入测试数据。
(3)基于反馈演进的模糊测试策略,记录前两种测试输入样例对于目标程序测试的覆盖程度,从而不断调整当前模糊测试输入。
3 实验验证
为了验证电力物联网智能终端安全检测应用效果,以海康威视和大华的摄像头等主流物联终端设备作为测试样本进行了一系列的实验。其中,实验过程中使用的设备硬件配置为Intel-i7处理器和64G 运行内存,操作系统平台为Ubuntu18.04。
3.1 电力物联网智能终端固件安全检测应用验证
电力物联网智能终端固件安全检测应用研究以漏洞特征库为基础,以固件分析引擎为核心,将固件进行剥离,通过自动化扫描,对固件中各个模块进行定位,并依照已知的漏洞特征库,对主要的文件系统和应用程序进行必要的反汇编操作和安全分析,固件安全检测平台整体架构如图3 所示,数据输出架构如图4 所示,实现了物联智能终端固件的自动化检测。样本检测结果如表1 所示。
图3 检测平台整体架构
图4 数据输出架构
表1 电力物联网智能终端固件安全检测结果
实验表明,硬编码和危险进程(在固件中运行的可能对固件系统产生危害的进程)在物联网设备固件安全隐患比重较大。同时,研究将探索相关的程序分析技术(例如condicolic 执行、程序切片等),以在漏洞检测期间自动验证真假。
3.2 电力物联网智能终端漏洞挖掘测试应用验证
电力物联网智能终端设备漏洞挖掘测试应用验证以漏洞特征库为基础,对测试样本进行漏洞挖掘测试。通过对测试样本进行扫描分析,基于模糊测试理论,结合协议特点对主流协议字段进行变换,实现测试样本安全性和健壮性测试,深度挖掘测试样本中存在的各类已知和未知漏洞,定位问题根源,提高测试样本的安全等级。多个样本测试结果表明,漏洞挖掘测试可以很好地对智能设备安全性进行评估,及时发现设备安全隐患。
在实验中对FTP,RTSP(实时流传输协议),ONVIF(接入标准),UPNP(通用即插即用协议),RTP(视频传输协议),RTCP(视频传输控制协议)等制作了模版,对电力物联网中主流品牌(包括大华、海康、宇视等)的摄像头设备进行模糊测试,发现了包括CVE-2019-7729,CVE-2019-7728在内的多个CVE 漏洞,对100 个设备的固件进行了随机检测,检测结果如表2 所示。
表2 物联终端固件模糊测试检测结果
4 结语
本文基于电力物联网架构中最容易被攻击的感知层电力物联网智能终端设备安全风险,从电力物联网智能终端固件安全检测和电力物联网智能终端设备漏洞挖掘测试两方面开展了研究。基于仿黑客思维建立了通用的研究检测框架和方法,适用于多样化的电力物联网智能终端设备,实现了不依赖于特定设备和平台对电力物联网智能终端设备和固件进行安全评估并进行了实验验证,表明本文设计的电力物联网智能终端安全检测平台能对电力物联网智能终端进行很好的安全检测,及时发现潜在的安全问题,具备一定的实用价值。