电力物联终端固件系统仿真及漏洞自动挖掘技术研究

发表时间:2020/12/22   来源:《中国电业》2020年24期   作者:吴雪 戴欣
[导读] 本文研究一种泛化能力强的终端硬件安全漏洞扫描技术,
        戴 欣,吴 雪
        江苏省电力有限公司淮安供电分公司,江苏省 淮安市 223002
        江苏省电力有限公司淮安供电分公司,江苏省 淮安市 223002
摘要
        本文研究一种泛化能力强的终端硬件安全漏洞扫描技术,适用于常见的系统架构和平台,能够方便快速的部署在海量终端上,以更低的成本和代价解决电网潜在的安全问题,使电网安全无死角,更大程度上提升电网公司的安全生产水平,产生较大的经济和社会效益。
        
        
        新兴智能设备正迅速推动智能生活的普及,同时在能源互联网中作为重要组成部分对电网的智能化、自动化生产起到了至关重要的作用,诸如数据终端单元、远程终端单元、馈线终端单元、智能电表、智能电表集中器、继电保护装置等。电网智能终端通过监测、控制、保护的作用影响着电力的生产过程,RTU可以通过开闭当前线路来对电力生产进行影响,同时监测当前线路的电压、电流情况,实时对电力生产进行保护和控制。在万物互联高速发展的同时,背后的安全问题也日益浮现。这些可联网的智能设备可以让人们的生活更加便捷,但安全漏洞可能给电网公司和用户带来很大的潜在危害。
        1 研究内容
        1.1智能终端固件仿真系统
        智能终端固件仿真系统是用来运行某个目标平台的一个或者多个应用的软件,通常是基于一个平台来运行其他平台的程序。一般是通过软件模拟硬件处理器的功能和指令系统实现的。
        部分仿真系统可以模拟目标机的处理器、硬盘和输入输出设备等,可以完整的运行一个操作系统,与仿真系统类似的是虚拟机,虚拟机也可以完整的运行操作系统,但是他们只能在真实的CPU中执行指令,而仿真系统是通过软件模拟全部指令,虚拟机是通过“虚拟化”所依赖的硬件,所以不能执行不同指令集编译的程序,而仿真系统是通过模拟CPU,从而可以在同一台机器中执行不同指令集的程序。
        根据模拟对象的不同,仿真系统通常被分为三类,即系统级、API级模拟和API&CPU级模拟。系统级仿真系统提供了完整的软硬件接口来供操作系统调用,硬件设备可以通过特定的CPU指令访问。API级模拟目标机操作系统提供的大部分API函数,但并不模拟CPU,所有程序的指令是通过真实的CPU执行的,对模拟的性能影响较小。同时模拟API函数和CPU用于模拟不同操作系统和处理器类型的程序。
        1.2智能终端固件及适配
        本本是通过搭建虚拟环境仿真设备固件运行所需的基本硬件环境。为了能使设备固件正常运行,需要对设备固件进行深入解析,以获取其中的基本信息,比如操作系统类型、内核版本信息、根文件系统格式类型、处理器架构类型等,这些都是必不可少的要素条件。嵌入式设备固件针对文件系统解析主要是根据文件数据块与文件索引块之间的关系,识别分析并读取设备固件内部文件存储实际数据起始位置,最后将取得的数据进行转换存储的过程。以下简要介绍其涉及的原理。
        嵌入式设备固件文件主要是以二进制数据流的形式存在的,根据这些二进制信息流构成嵌入式固件文件的基本组成部分,主要包含固件头、引导程序、内核、根文件系统和应用程序等,同时这些二进制的信息流按照偏移量的不同代表了不同的含义,具有其独有的特征,称为特征字段。
        嵌入式设备固件特征值是固件的标志性字段信息,固件是以非常规的特殊技术手段烧录到ROM等存储设备之中,读取固件文件中的内容,获取的数据是以二进制数据流的形式存在,对于二进制数据流按照不同的偏移量组合,经过对二进制编码得到特征字段数据值,该值的含义表示固件设备各方面不同的属性。
        针对嵌入式设备固件压缩格式类型识别解析首先是通过解析固件镜像二进制文件内部组成结构,得出二进制数据流的一些基本分布特征信息。最后利用嵌入式固件文件不同种类的固件格式类型模块特征收集起来建立一个特征字段值数据表,实现对固件镜像固件头部分与固件主体部分的分离。
        通常针对嵌入式设备固件的解析主要是解析出固件内部的一些组织结构以及固件内部的数据存储方式,数据结构等,其中最重要的是针对固件中的文件系统的解析识别。针对非特殊压缩的嵌入式固件中的文件系统识别的方式主要是采用固件镜像内部挂载进行模拟还原以及依据固件中的根文件系统存储的应用程序内容进行回滚的方式,也可以使用一种针对特定设备固件文件系统的容错分析方法。
        嵌入式设备固件的解析主要是先依据设备固件中的文件系统镜像进行内部结构分析,得到文件索引块之后(索引记录着文件系统内部数据存储规则),然后针对索引信息进行解析,根据索引指向的数据存储位置的地址取出相应的数据文件或者取出一个二级索引,如果得到的是文件数据那么直接通过文件转存恢复的方式进行文件转存,如果得到的是一个二级的索引,那么继续进一步去取对应的数据信息。此时,结合预先构建的特征数据表,定位不同数据信息的起始和结束地址,最终将解析出来的数据转存到表中。


        1.3漏洞挖掘技术
        漏洞挖掘技术分为静态漏洞挖掘和动态漏洞挖掘。
        静态漏洞挖掘是指通过静态扫描分析程序的源代码或二进制文件,查找其中存在的词法、语义、语法中存在的安全问题。静态挖掘的重点是检查程序中使用的易出问题的函数调用或缺陷代码片段,如错误的函数调用、大数操作以及边界检查不严格等。在整个挖掘的过程中不需要执行程序的代码。
        对有源代码的程序的静态漏洞挖掘需要熟练掌握相应编程语言,定义出针对不安全代码的检测规则,然后利用正则表达式的方法查找源码中存在的安全问题。对没有源代码的二进制程序的静态漏洞挖掘,是通过反汇编目标代码,得到中间状态的汇编代码,然后利用上下文关联、代码汇聚等方法进行切片,最后通过设计的模型分析和匹配来判断程序中是否存在漏洞。
        静态漏洞挖掘能够快速的检查程序中的某些缺陷,可以不用深究程序的实现方法,一般情况下适用于自动化的工具去完成。但是静态漏洞挖掘也存在着较大的局限性,如误报率较高,无法检测程序运行过程中的特定环境下的漏洞等。
        动态漏洞挖掘是指在程序运行过程中检测各寄存器、内存模块的状态来判断是否存在漏洞。一般通过构造畸形的测试数据,对比程序运行的结果和理论的结果,找出存在差距的原因,进而挖掘出其中潜在的安全缺陷。
        动态漏洞挖掘一般情况下从代码流和数据流两个方面出发,通过插桩或断点动态跟踪目标程序的代码执行过程,以检测错误的函数调用;通过跟踪整个污点数据的处理过程,来查找程序设计中的问题。
        常见动态漏洞挖掘包括堆栈比较法、故障注入分析法、输入追踪测试法等。动态漏洞挖掘是通过分析程序的执行过程查找安全问题,准确率较高,可以有针对性地对程序中的某个模块进行检查,进而准确分析相应模块的安全性,同时动态漏洞挖掘无需知道程序的源代码,通过观察分析输入和输出结果,就可以查找程序中的漏洞,此方法对缓冲区溢出漏洞、堆溢出漏洞等效果明显。
        1.4网络漏洞挖掘
        网络漏洞己经成为智能硬件漏洞的最重要的组成部分,而且大部分基于嵌入式Linux的智能硬件系统都提供了供用户配置的网络接口,而这个接口也是当前对智能硬件攻击的主要切入点,网络漏洞的挖掘是本项目研究的重点之一。
        常见的网络漏洞类型包括sql注入、跨站脚本攻击(XSS)、跨站请求伪造攻击(CSRF)以及命令执行等。Sql注入漏洞是指攻击者可以通过构造特殊的表单,欺骗服务器设备执行恶意的数据库命令,sql注入能够轻易的绕过防火墙等安全防护,从而直接访问数据库,造成数据库信息的泄露和修改,甚至可以获取数据库服务器所具有的系统权限。
        通过比较多种不同的网络访问漏洞动态挖掘工具,结合电力物联终端硬件固件的特性,本项目选择sqlmap、w3af、Arachni和IronWASP等免费的测试工具,这些漏洞挖掘工具能够有效的挖掘不同类别的网络访问漏洞,包括sql注入、XSS和CSRF等漏洞。同时利用sqlmap工具对sql注入漏洞进行验证,利用Arachni其他类型漏洞。
        由于部分智能硬件设备对盲测做
        了一系列保护,例如禁止频繁地尝试登录设备、部分网页仅允许管理员登录后才可以访问以及部分文件禁止直接访问等,本项目分别采用修改代码实现认证绕过与不修改代码两种方式结合来挖掘漏洞,首先在未修改任何文件系统情况下测试,然后再通过人工修改root文件系统中的部分文件实现保护的绕过。两种方式相结合全面的挖掘网络访问中的漏洞,如部分sql注入漏洞只能在登录的情况下才能注入,通过上述办法就能有效的解决此类问题。
        在整个漏洞挖掘的过程中,本项目利用tcpdump采集所有的网络通信数据包。一方面便于后续人工分析通信过程中存在的问题,另一方面也便于查找模拟过程中的不足和缺陷。
        
        2总结
        本文旨在解决电力物联终端系统信息安全的问题,项目研究成果具备很好的通用能力能够快速部署在目前常见的终端系统架构上,保证了电网智能设备的信息安全。项目所研发的软件产品拟在2022年淮安公司信通运检班实际应用,大幅度提升信息系统以及物联系统的安全性,产生明显的社会和经济效益,提升公司安全生产的质量和效率。
        
参考文献
[1] 毛安家,张戈力,吕跃春,等.2011年9月8日美墨大停电事故的分析及其对我国电力调度运行管理的启示[J].电网技术,2012,36(4):74—78.
[2] 葛睿,董昱,吕跃春.欧洲“11.4"大停电事故分析及对我国电网运行工作的启示[J].电网技术,2007,3l(3):l-6.
[3] 印永华,郭剑波,赵建军,等.美加“8.14"大停电事故初步分析以及应吸取的教训[J].电网技术,2003,27(10):8-11.
[4] Independent Security Evaluators. SOHO Network Equipment (Technical Report), 2013.
[5] C. Heffner. Reverse Engineering a D-Link Backdoor, October 2013.
[6] Slashdot: Backdoor found in TP-Link routers, March 2013.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: