CN115062309A - 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质 - Google Patents

一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质 Download PDF

Info

Publication number
CN115062309A
CN115062309A CN202210654687.5A CN202210654687A CN115062309A CN 115062309 A CN115062309 A CN 115062309A CN 202210654687 A CN202210654687 A CN 202210654687A CN 115062309 A CN115062309 A CN 115062309A
Authority
CN
China
Prior art keywords
firmware
file
information
simulation
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210654687.5A
Other languages
English (en)
Other versions
CN115062309B (zh
Inventor
周超
庄岭
王梓莹
顾智敏
郭静
姜海涛
黄伟
赵新冬
郭雅娟
娄征
徐江涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Jiangsu Electric Power Co Ltd
Electric Power Research Institute of State Grid Jiangsu Electric Power Co Ltd
Original Assignee
State Grid Jiangsu Electric Power Co Ltd
Electric Power Research Institute of State Grid Jiangsu Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Jiangsu Electric Power Co Ltd, Electric Power Research Institute of State Grid Jiangsu Electric Power Co Ltd filed Critical State Grid Jiangsu Electric Power Co Ltd
Priority to CN202210654687.5A priority Critical patent/CN115062309B/zh
Publication of CN115062309A publication Critical patent/CN115062309A/zh
Application granted granted Critical
Publication of CN115062309B publication Critical patent/CN115062309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质,方法包括:获取待仿真的设备固件的文件系统;对固件进行架构识别;通过本发明所包含的修复程序创建仿真所需的磁盘镜像;通过本发明所包含的调试程序配置仿真所需的网络;基于以上工作内容,使用配套的策略执行仿真工作:通过黑盒与白盒角度,针对固件进行渗透与代码安全检测,对固件敏感信息、固件服务、固件内核以及程序代码等分别进行安全漏洞检测;输出安全漏洞检测结果。利用本发明能够实现电力物联设备的固件仿真以及仿真过程中的漏洞挖掘,提升电力物联设备的安全强度。

Description

一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存 储介质
技术领域
本发明涉及电力物联网安全防护技术领域,特别是一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质。
背景技术
新型电力系统是以新能源为供给主体、以确保能源电力安全为基本前提、以满足经济社会发展电力需求为首要目标,以坚强智能电网为枢纽平台,以源网荷储互动与多能互补为支撑,具有清洁低碳、安全可控、灵活高效、智能友好、开放互动基本特征的电力系统。
电网智能终端是新型电力系统的重要组成部分,它们通过监测、控制、保护等功能影响着电力的生产过程,但目前电力智能终端尚存在安全性欠缺的弱点,这不仅会导致电力物联网设备本身易遭到攻击,还可能成为各种恶意行为的起点,这些恶意行为可能包括分布式拒绝服务攻击、恶意软件分发、垃圾邮件、网络钓鱼、点击欺诈以及信用卡诈骗等等。电网智能终端设备的安全漏洞可能给电网公司和用户带来很大的潜在危害。
电网智能终端的绝大部分漏洞都存在于设备固件中,由于电力物联终端在硬件芯片、固件加密和定制化等方面具有特殊性,电力固件场景具有多样化等特点,一般的漏洞挖掘技术不能很好的适应物联网设备。现有的固件仿真技术在用于电网智能终端时,往往还存在着文件定位不精准、CPU架构指令少、加密解析不支持、无电力场景适配等缺陷。
名词解释
QEMU,Quick Emulator,是一款开源的模拟器及虚拟机监管器(Virtual MachineMonitor, VMM)。它主要提供两种功能给用户使用:一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码;二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen,KVM,etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。
发明内容
本发明的目的是提供一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质,能够实现电力物联设备的固件仿真以及仿真过程中的漏洞挖掘,提升电力物联设备的安全强度。本发明采用的技术方案如下。
一方面,本发明提供一种新型电力系统下基于设备固件仿真的漏洞挖掘方法,包括:
获取待仿真电网智能终端的设备固件文件;
基于获取到的设备固件文件数据,对设备固件进行固件格式分析,定位固件文件系统;
根据文件系统的定位结果,提取用于仿真分析的可执行文件;
基于提取到的可执行文件进行文件系统修复,创建磁盘镜像;
根据设备固件的网络配置信息,生成QEMU仿真的启动脚本;
在QEMU仿真环境中执行所述启动脚本仿真电网智能终端的运行,在仿真过程中对固件敏感信息、固件配置信息以及程度代码分别进行安全漏洞检测;
输出安全漏洞检测结果。
可选的,所述设备固件文件格式包括:zip、bin、elf、hex、rar、img、so、tar、gz、tar.gz和gzip格式,以及其它电网智能终端设备固件的文件形式。
可选的,所述待仿真的电网智能终端设备固件的来源途径包括:通过官网或联系售后索取固件包;或在线升级方式提取固件包;或逆向升级软件,获取软件内置解包和通讯算法,通过软件内置解包和通讯算法获取固件包;或调试接口:JTAG/SWD获取固件包;或拆flash、SD/TF卡、硬盘,用编程器/读卡器获取固件包;或从串口UART调试口获取固件包;或利用网页和通讯漏洞获取固件的敏感信息,基于敏感信息获取固件包;或采用逻辑分析仪监听flash,ram获取固件包。
可选的,所述基于获取到的设备固件文件数据,对设备固件进行固件格式分析,包括:
获取设备固件的头文件,根据头文件中的头部特征信息确定文件系统的存储位置,实现文件系统定位;
其中,在文件系统定位时,根据字节序列计算熵的熵值判断文件是否经过压缩及加密处理;根据文件系统的压缩类型适配相应的解压方式进行文件解压,包括:对于LZMA压缩型Squashfs文件系统,使用hexdump和grep命令获取固件的起始地址;利用Binwalk中的-M选项和-e选项,按照预设的提取规则提取指定的相应文件系统。
查找固件中的高熵字节序列,根据高熵字节序列位置查找解密程序,对固件进行解密。
可选的,所述根据文件系统的定位结果,提取用于仿真分析的可执行文件,包括:对于目标服务程序,将对应的二进制代码转换成汇编代码,再转换为统一的VEX中间语言,完成程序表示;
基于程序表示,提取出程序的控制流、函数调用、字串常量、地址访问信息。
可选的,所述基于提取到的可执行文件进行文件系统修复,创建磁盘镜像,包括:恢复固件运行时的加载地址以及程序入口地址;
所述恢复固件运行时的加载地址方法为:识别间接跳转表,根据预先确定的间接跳转指令寻址与间接跳转表之间的关系,推断得到程序加载地址;
所述恢复程序入口地址方法为:根据特定指令架构的函数入口、返回指令特征,识别所有的函数,并构造函数调用关系;对于没有被调用的函数(可能是中断处理函数),将其入口地址识别为整个程序可能的入口地址。
可选的,所述基于提取到的可执行文件进行文件系统修复,创建磁盘镜像,还包括:拦截固件二进制程序的NVRAM库调用,并返回有效数据,并使用firmadyne 实现一个新的 libnvram.so 库文件,通过代码模拟固件启动时加载 nvram 配置信息的过程。此处考虑了传统qemu平台对存储器和外设的虚拟是欠缺的,若固件运行涉及这些资源,则漏洞无法复现。
可选的,所述QEMU仿真平台中集成有对应不同固件CPU架构的指令集,包括SSE指令集、X86指令集、EM64T指令集、RISC指令集、AVX指令集、3D Now扩展指令集中的多种;所述多种指令集通过异构指令翻译方法进行异构指令的集成。
可选的,所述对设备固件进行固件格式分析还包括,识别得到固件敏感信息、固件配置信息、程度代码、固件基本信息以及固件集成的第三方软件库信息;
所述固件基本信息包括名称、版本、大小、提测时间,通过检测文件哈希值、固件对应设备的CPU架构以及固件对应设备的文件系统得到;
方法还包括,根据识别得到的固件基本信息进行固件对应设备的信息管理。如记录安全漏洞检测结果到对应的设备信息中,又如输出安全漏洞检测结果时同时输出对应固件设备的基本信息等。
可选的,所述固件敏感信息至少包括用户密码、加密证书中的一种或多种;所述第三方软件库信息包括软件名称、版本信息和所在文件;
对所述固件敏感信息进行安全漏洞检测包括:利用预先配置的漏洞库判断固件敏感信息是否存在泄露风险,并确定对应的固件敏感信息漏洞。
对所述程度代码进行安全漏洞检测包括:检测程序代码是否存在整数溢出、空指针引用、危险函数调用问题中的任意一个或多个问题,以及是否存在恶意代码。具体检测过程和依据可参考现有技术。还包括,利用预先配置的漏洞库对第三方软件库中的第三方软件进行漏洞检测,得到漏洞编号、风险等级、风险秒速和漏洞定位信息。
对所述固件配置信息进行安全漏洞检测包括:判断是否存在硬编码风险以及网络配置风险。
第二方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面所述的基于设备固件仿真的漏洞挖掘方法。
有益效果
本发明可实现在不拆卸设备及芯片的情况下,对设备固件进行仿真,并在仿真过程中实现安全漏洞测试,避免芯片拆装过程中受损,同时可以对固件程序及文件系统进行较为全面的信息获取和安全漏洞分析,以提前发现设备安全问题,提升电力物联网设备的安全强度,避免固件漏洞被恶意利用导致信息泄露、设备功能故障等,降低厂商的更新、回收和升级成本。此外还方便实现对电力智能终端固件的统一管理,可为终端固件的修复提供技术支撑。
同时,针对现有固件提取方法随机性太强和未形成规范化流程的问题,本发明通过寻找固件存在的共性,建立了一套电力物联网终端固件的自动适配规则,能够提升电力固件提取成功率,提升电力固件启动镜像管理、固件修复运行等能力,实现管理效率的提高。具体表现为以下几点:
1. 能够实现电力固件文件系统精准定位;
2.支持NVRAM库,且能够加载电力场景特定硬件参数;
3.支持多种CPU架构指令;
4. 可提供有效固件修复与启动方法;
5. 具备电力固件运行所需环境适配能力。
附图说明
图1所示为本发明基于设备固件仿真的漏洞挖掘方法中固件仿真原理示意图;
图2所示为本发明基于设备固件仿真的漏洞挖掘方法的一种实施例流程示意图;
图3所示为基于本发明设备固件仿真的漏洞挖掘方法的一种漏洞挖掘平台架构示意图;
图4所示为考虑固件类型的固件分析及漏洞挖掘流程示意图;
图5所示为同源性分析流程示意图;
图6所示为同源性分析中指纹与漏洞关联示意图;
图7所示为通过指纹检测实现同源性分析及漏洞挖掘的原理示意图;
图8所示为QEMU基本框架中异构指令集成示意图。
具体实施方式
以下结合附图和具体实施例进一步描述。
固件是指一段只读代码和数据,一般位于 ROM 或者 FLASH 存储器中,方便用户通过多种便捷的形式来操作嵌入式设备及系统。嵌入式系统是由固件系统集成的,集嵌入式软件系统与嵌入式硬件部分于一体,并可独立执行。嵌入式固件系统是软件系统的重要核心组成部分,其位置极为特殊,连接各上层应用程序与底层物理硬件,因此固件的权限极高,如果固件存在漏洞,则危害极大。
本发明通过对电力智能终端设备固件的操作系统、协议栈、可执行脚本和软件组件、CPU架构、数据表和代码量、第三方组件、证书和密钥、静态行为、二进制缓解措施、终端和API、引导程序、访问权限、网络守护程序、凭证信息、配置文件等,进行信息收集、文件系统提取、代码审计、固件仿真、静态与动态二进制分析等操作,支持并进一步地实现对电力物联终端固件的漏洞挖掘。
本发明基于QEMU(Quick Emulator)技术实现对电网智能终端的固件仿真以及漏洞挖掘。通过采用异构指令翻译技术,具备在多种不同宿主机上仿真多种不同目标 CPU 架构的特性。QEMU可扩展,可自定义指令集,开源可移植,仿真速度快。所以用 QEMU 进行处理器的指令集仿真,通过建立一个虚拟硬件环境,使得目标系统运行在仿真环境中就好像运行在真实的物理环境一样。图8是本实施例QEMU基本框架示意图,其中,QEMU的控制核心主要由设备管理,中断处理,源文件读取和目标文件的缓存组成,负责对目标执行文件加载,对外设管理以及对中断的仿真。翻译核心是对目标二进制指令数据进行反汇编和翻译,生成对应指令对应且与平台无关的 TCG 中间码,并将中间码翻译成目标架构。
同时,本发明还分别从硬件层面和固件文件系统层面进行仿真环境的增强,如下:
硬件层面,基于基址解析文件系统定位、 NVRAM库加载硬件信息、CPU架构指令支持、二进制解析固件解密技术,对电力物联终端的仿真分析与实践,通过符号特征匹配规则确定相应固件所需的增强技术。针对不同电力物联网场景固件,设置增强场景任务调度引擎,达到自适配虚拟化的效果;
固件文件系统层面,通过固件文件系统基址解析实现对固件文件系统判定和增强。如针对RTOS和FreeRTOS系统,当通过固件文件系统判断为FreeRTOS系统时,则仿真平台将FreeRTOS系统内核代码、应用逻辑代码、二进制文件区分开,并将操作系统任务管理的功能编译生成一个带符号表的程序,利用IDA的bindiff插件对比识别固件中的FreeRTOS操作系统的相似函数,实现增强。
实施例1
本实施例介绍一种基于设备固件仿真的漏洞挖掘方法,参考图1所示,包括以下内容。
S1,获取待仿真的设备固件。
本发明可基于 B/S 架构实现,用户可通过浏览器上传设备固件,固件仿真以及漏洞挖掘服务通过 HTTP 协议和Vue提供固件解析和漏洞挖掘的前端服务。利用本发明可实现一种物联终端固件漏洞挖掘系统平台,具备一键上传固件文件功能,固件文件的格式支持zip、bin、elf、hex、rar、img、so、tar、gz、tar.gz、gzip等格式。用户上传固件到平台之后,平台能够自动分析固件的厂商、固件名称、固件属性、版本等与固件有关的文件信息。
待仿真设备固件的获得方法有多种,包括:通过官网或联系售后索取固件包;或在线升级方式提取固件包;或逆向升级软件,获取软件内置解包和通讯算法,通过软件内置解包和通讯算法获取固件包;或通过调试接口JTAG(Joint Test Action Group)/SWD(SerialWire Debug)获取固件包;或拆flash、SD卡(Secure Digital Memory Card)/TF(TransFLash)卡、硬盘,用编程器/读卡器获取固件包;或从串口UART(UniversalAsynchronous Receiver/Transmitter)调试口获取固件包;或利用网页和通讯漏洞获取固件的敏感信息,基于敏感信息获取固件包;或采用逻辑分析仪监听flash,ram获取固件包。固件分析工具 Firmadyne 的数据库已提供超过 11000 固件的信息和下载地址。
S2,对获取到的设备固件进行固件格式分析,提取文件系统。
2.1相关基础知识
电力智能终端设备固件内部组成结构主要包含固件头(Header)、引导程序(BootLoader)、内核代码 (Kernel Code)、根文件系统部分(Boot File system)以及其他数据(Other Data)等,其中:
1)固件头部:固件头部主要由 2 部分构成,整体固件描述信息和固件内部数据模块信息。其中整体固件描述信息即固件公共信息,包括固件整体长度、特定魔数(Magic)、CRC 校验码和版本信息等;固件内部数据模块信息一般用来准确定位固件中的各个数据模块,如操作系统偏移量、压缩数据对于固件起始位置的偏移量等;
2)引导程序:是一段可执行的二进制程序文件,主要进行初始化工作、建立内存映射等过程,为固件系统的内核启动和执行做好硬件基本环境准备。引导程序与设备硬件密切关联,需要依赖硬件才能良好执行;
3)内核代码:受限于嵌入式设备的软硬件性能,操作系统内核一般经过裁剪,使其在文件设备管理等方面具有更好的适用性,并提供常用的、扩展性强的应用程序接口;
4)根文件系统:用于存放操作系统运行所需要的各系统软件相关的文件及目录;
5)其他数据:除了上述系统软件外,还包含了多种应用软件,如 FTP Server、WebServer 等,这些软件多以压缩形式存放于工控固件中。
固件格式分析包括分析固件的组织形式和数据内容。固件按照组织形式通常分为两类:包含操作系统的固件和不包含操作系统的固件。在包含操作系统的固件中,大部分终端设备功能由用户程序完成,系统调用操作、程序加载过程、库函数调用均有规范的定义。其中,操作系统可以是通用操作系统,如定制化的 Linux,也可以是特定嵌入式操作系统,如实时操作系统,如VxWorks。在不包含特定操作系统的固件中,固件直接工作在设备上,包含了简单的任务调度等类操作系统功能。
对于包含操作系统的固件,固件格式分析需要识别和分离操作系统、文件系统,由于操作系统和文件系统通常都在头部含有特征码或特征字符串,因此可以通过基于签名匹配的方式识别出操作系统镜像和文件系统,后续可进一步对文件系统进行解压, 提取出所有文件和程序。
2.2文件系统定位
目前 Binwalk工具可以很好地支持固件格式识别,操作系统、文件系统的识别与分离,文件系统的解析和提取,并且允许特定格式分析插件的加载与使用。 Firmware ModKit 工具可以支持 Sasquash 和 Jefferson 等嵌入式文件系统的解析提取。此外,Binnary Analysis Toolkit也能很好地支持通用操作系统固件的解析。
文件系统是存储配置文件、服务、账号口令、哈希、应用程序代码及启动脚本的地方,通过分析头文件得出固件是那种类型文件系统。以linnx文件系统为例,有:
Cramfs文件系统----头部特征字符为"0x28cd3d45"
squashfs 文件系统----头部特征sqsh、hsqs、qshs、shsq、hsqt、tqsh、sqlz 7种。
2.3固件解压、解密
设备中的文件系统通常会被压缩处理,以节省空间。由于物联网智能终端设备固件本身有一定的封闭性。各个设备厂商采用的文件系统各不相同,生成二进制镜像文件时也可能使用了非标准的压缩算法,甚至对固件进行加密。因此,目前固件扫描装置或平台存在无法识别和提取出固件文件系统的问题,对于固件的扫描成功率很低。
因此,本实施例中,无论是哪一类型的固件,还需要判断固件是否被压缩,若固件压缩,需先解压,然后再进一步分析。因此,本实施例提出二进制解析自适配技术,通过字符串匹配、横向比较、熵值建模等方法,对二进制文件进行适配解析。例如,利用熵值确定固件是经过压缩、加密、还是混淆处理,以支撑后续的二进制文件解读、寻找解密程序等任务。
智能终端设备文件系统中最常见的压缩技术是LZMA、GZIP、Zlib、Zip和ARJ等等,本发明针对这些不同的压缩技术,本发明可自适配相应的解压方式。以LZMA压缩型Squashfs文件系统使用幻数shsq加密的场景为例。本实施例通过固件仿真功能组件Qemupluser在固件中使用hexdump和grep命令来获取固件的起始地址,即可实现固件的解压,接下来可执行在固件中寻找解密程序的任务。
解密固件最简单的方法就是在固件中寻找解密程序。电力物联终端如果可以解密固件更新包并进行更新,那么解密程序就肯定位于固件镜像中的某个地方。固件中有一部分具有高熵,表明这些地方经过了加密处理。一段低熵字节则代表的是低随机性、结构化和可预测性。当将其与其他分析相结合时,可以帮助我们确定固件是经过压缩得、加密得还是混淆处理得。由此,本实施例此实现对传统QEMU的完善,得以仿真而更多固件。
在文件系统的定位方面,本实施例提出一种基于固件基址解析的文件系统定位方式,通过综合分析多种电力物联终端固件特性,收集不同固件的文件头、文件系统特征、压缩算法、文件系统结构等信息,尽可能充实以上类型的数据,建立固件文件特征库。在实际固件分析时,通过电力固件的二进制规则匹配,结合文件头提取、文件分割、进制转化等方法,实现适合于多类电力物联终端的固件文件系统自适配。
具体的,文件系统定位通过文件头提取,file、binwalk、lzma、strings、hexdump等工具或技术进行分析。文件头一般是一些CRC32检验码,来检验程序的正确性,通过分析头文件得出固件是那种类型文件系统。查看固件支持的CPU、RAM、ROM信息,接下去是一些uImage信息,再接下去可以看到许多数据是被进行了那种技术压缩,并且同时也可以看到文件系统的大小和块的信息。通过这些技术获得已知固件二进制镜像文件的头部信息及魔法值,并能了解根文件系统的压缩算法,就可以提取出二进制镜像内的根文件系统。
以Squashfs格式的只读Linux系统场景为例,固件基址解析自适配将收集设备固件BSS区域、文件头等信息,结合file、strings等文件解析结果进行文件系统定位,基于定位结果,平台将自动加载hexdump、lzma等工具进行仿真尝试。
2.3固件分析效率优化
传统的binwalk工具,在对设备固件解包时,不同操作方式、同样的方式面对不同的系统,或者一部分相关的编译流程都会产生不同的结果。如,采用花指令和base64,如果使用传统的人工去操作,只能得到一些简单的固件。或者存在固件提取效率不高的情形。
本实施例则通过采用启发式分析、功能扩展和场景优化等措施,扩展binwalk的解包能力,形成一种固件提取加速及兼容技术。
启发式分析是将提取过程中的人工经验操作过程,用脚本方式进行自动化实现,提升工作效率。利用解包工具binwalk开放接口,通过建立递归扫描提取数据和由外部解压文件,通过指定-M选项和-e选项,达到启发式操作脚本化,实现8层递归的功能。
Binwalk中的-e选项可以用来在自动数据提取的基础上提取规则中指定的默认extract.conf文件。 例如:
命令:binwalk -e firmware.bin ------> 选项“-e"和“--extract"用于按照定义的配置文件中的提取方法从固件中提取探测到的文件系统。
命令:binwalk -Me firmware.bin -----> 选项“-M"和“--matryoshka"用于根据magic签名扫描结果进行递归提取,仅对"-e"和“--dd"选项有效。
命令:binwalk -Me -d 5 firmware.bin ----> 选项“-d"和“--depth=<int>"用于限制递归提取深度,默认深度为8,仅当“-M"选项存在时有效。
S3,提取用于仿真分析的可执行文件,即目标程序提取
通过前述的固件格式分析,可以获知待仿真的固件的组织形式是否包含操作系统,在包含操作系统的固件中,大部分设备功能由用户程序完成,系统调用操作、程序加载过程、库函数调用均有规范的定义。其中,操作系统可以是通用操作系统(如定制化的Linux),也可以是特定嵌入式操作系统(如实时操作系统 VxWorks)。在不包含特定操作系统的固件中,固件直接工作在设备上,包含了简单的任务调度等类操作系统功能。
在目标程序提取时,对于含有操作系统的固件首先提取出所有程序和文件集合,然后进一步提取出待分析的目标程序。传统目标程序提取主要是通过搜寻特定文件名实现,若目标程序是终端服务程序,只需搜索文件名包含 http 的文件,即可找到目标程序,还可结果现有基于半监督学习的固件中二进制程序功能的分类器实现目标程序的识别提取。
同时,参考图4所示,无论是对于无操作系统的固件或是待分析的目标服务程序,均需将二进制代码转换成汇编代码。为了屏蔽汇编指令格式的差异性,需进一步转化为统一的中间语言,完成程序表示。此外,还需提取出程序的控制流、函数调用、字串常量信息等信息。目前 IDA pro可以支持 X86、ARM、MIPS、 PowerPC 等多种指令格式二进制汇编代码的转换,涵盖大量物联网设备的指令集。同时可以恢复出物联网设备服务程序和无操作系统固件的控制流,提取函数调用关系、字符串引用、地址访问等信息。本实施例利用Angr 工具将目标程序转化为统一的 VEX 中间语言用于进一步分析。
S4,基于提取到的可执行文件进行文件系统修复,创建磁盘镜像
这一步还包括执行信息恢复,需要恢复程序的加载地址、入口地址等执行信息,以及其它仿真相关的文件系统修复,此处修复包含了针对NVRAM场景的修复、针对实时操作系统的修复,该修复不是指修复固件本身存在问题,而是指在仿真过程中,补充该固件仿真所需的通用方法中未具备的相应支持组件等,使得目标固件能够在QEMU仿真环境中运行。
对于包含操作系统的固件,其目标服务程序的文件格式通常是标准、公开的,逆向技术已经相当成熟。而对于无操作系统的固件程序,由于缺少固件执行的描述信息,导致程序信息恢复不完整,无法进一步实现精准的程序分析。缺失的信息包括:(1)固件运行时的加载地址,这将导致很多跳转无法被解析,即使已恢复出指令信息,控制流信息仍不完整;(2)程序入口地址。对于第(1)点,由于间接跳转表具有数值连续特征,因此本发明通过识别间接跳转表,再根据间接跳转指令寻址与表之间的关系,推断出较为准确的程序加载地址。对于第(2)点,本发明首先根据特定指令架构的函数入口、返回指令特征,识别出所有的函数,并构造函数调用关系。对于没有被调用的函数(可能是中断处理函数),将其入口地址识别为整个程序可能的入口地址。
针对文件系统在提取过程中数据遭到丢失、损坏以及编码方式不同等问题,本实施例通过对提取出来的数据更改引导代码、修补操作系统内核、删除、添加等方式对固件进行修复,并设计适配的启动方式,使它在仿真环境顺利启动运行。
固件启动过程中并不是所有固件都能成功模拟,有一些固件因为硬件依赖等原因导致QEMU、Firmadyne、Fat、 FirmAE等仿真平台无法正确启动。为了支持更多电力物联终端固件,本实施例采用相应修补策略修复固件,从而成功模拟固件运行。例如:固件启动时由于软件模拟没有Flash硬件,导致传统仿真环境中apmib_init读取数据失败返回0,赋值给%v0,然后bnez命令对$v0进行检测,若为0,则回显初始化失败,仿真进程将报错退出。本实施例针对这种情形的解决方法为:在IDA中对字节码进行修改,将bnez(0x14)用命令改成beqz(0x10)。
针对异构固件启动问题,本实施例采取以下两方面设计方案,实现一种异构固件快速启动方法:
(1)通过设计镜像的特征匹配规则,在较低的集合范围内处理bios、 uefi、 efi、mbr等固件,并以规范化、接口化的方式融入固件解包功能组件(Unpacker)与分析器功能组件(Analyzer);
(2)通过初始化处理器内核,建立固件运行的基础环境,确定固件的启动位置,根据启动位置构建上层软件传递参数,根据上层软件传递参数运行固件中的操作系统自启动函数。
为了能够适应大部分电网智能终端的固件仿真,本实施例对于仿真环境进行了增强设计,包括CPU架构指令增强以及仿真环境场景增强。
其中,CPU架构指令增强考虑了不同电力固件有不同的CPU架构,对应于不同的指令集。因此在传统QEMU仿真环境基础上,本发明针对不同CPU提供不同的指令集,包括SSE指令集、X86指令集、EM64T指令集、RISC指令集、AVX指令集、3D Now扩展指令集等,通过采用异构指令翻译技术,参考图8所示,对异构指令进行集成,补充电力物联网设备固件CPU架构指令集,优化仿真平台对电力固件兼容能力,提高仿真平台对不同电力固件仿真运行的支撑能力。
仿真环境场景增强从硬件层面上,包括基于基址解析文件系统定位、 NVRAM库加载硬件信息、CPU架构指令支持、二进制解析固件解密技术,对电力物联终端的仿真分析与实践,通过符号特征匹配规则确定相应固件所需的增强技术。针对不同电力物联网场景固件,设置增强场景任务调度引擎,达到自适配虚拟化的效果。
从固件文件系统层面上,通过固件文件系统基址解析实现对固件文件系统判定和增强。如针对RTOS和FreeRTOS系统,当通过固件文件系统判断为FreeRTOS系统时,则仿真平台将FreeRTOS系统内核代码、应用逻辑代码、二进制文件区分开,并将操作系统任务管理的功能编译生成一个带符号表的程序,利用IDA的bindiff插件对比识别固件中的FreeRTOS操作系统的相似函数,实现增强。
关于前述针对NVRAM场景的修复,由于二进制文件在仿真平台中运行,而不是在目标设备上运行,因此实际没有要读取的NVRAM库文件。而缺失NVRAM文件和配置数据,许多电力物联网终端固件包含的程序将无法正常运行。本实施例通过使用firmadyne 实现一个新的 libnvram.so 库文件-NVRAM库,作为加载硬件信息共享库,通过代码模拟固件启动时加载 nvram 配置信息的过程,与包含设备当前配置设置的MTD分区接口交互信息,实现拦截NVRAM库调用并返回有效数据,达到固件在仿真平台中的虚拟化调用NVRAM库配置参数的效果,支撑平台仿真功能实现。
S5,生成QEMU仿真的启动脚本
经过以上S4所介绍的修复方式,可得到用于QEMU仿真的磁盘镜像,打包镜像后,获取目标固件的网络配置信息,进而可生成新QEMU的启动脚本,执行生成的启动脚本,即开始仿真。
目标固件的网络配置信息根据对应的电力物联网设备确定,所需进行的网络调试包括:选择用户协议栈、套接字方式、TAP模式、VDE模式中的一种,并根据选择的模式,配置网桥等。
在以上所介绍的电力物联网设备全数字仿真环境下,其外部设备的仿真也将全部由软件模拟实现。由软件模拟的好处在于可以非常灵活的更改、添加、管理所有外部设备。并且软件具有容易复制分发的特点,也易于快速搭建模拟平台。和对处理器的仿真实现一样,在对外设仿真时,需要对外设的收发机制,内部逻辑,行为特征进行相应的抽象,并据此设计仿真实现的模型。用插件的方式实现,为不同的外设构建动态链接库,虚拟机初始化时按需加载,每个动态链接库对应着一个外设类型,该类型实现类似于面向对象语言的类,在结构体中定义相应的数据属性以及使用函数指针实现相应外设的行为方法和内部逻辑。并且通过向外提供访问其内部结构体的接口,而上位机正是通过这些接口来访问 访问到插件的内部数据以及回调外设的内部函数,外设仿真流程包括:
步骤一:虚拟外设注册过程:创建设备结构体,并挂接在设备树里;
步骤二:调用设备特定的初始化函数来为设备初始化配置空间、分配 IRQ 号,同时注册设备端口读写函数等;
步骤三:通过消息代理模块(UDP 数据收发功能接收虚拟验证总线上的数据,按照通信协议解析,设置到对应的读寄存器中,并产生接收中断;将要发送的数据按照 UDP 数据格式打包,通过消息代理发送到虚拟验证总线上的其他节点,同时产生发送中断。
S6,安全漏洞检测
本实施例在进行固件安全漏洞检测时,从黑盒与白盒角度,针对固件进行渗透与代码进行安全检测,包括:检测固件服务、固件内核以及程序代码是否存在CVE漏洞、注入问题、拒绝服务问题、硬编码问题、逻辑漏洞、空指针引用、危险函数调用问题中的任意一个或多个问题,以及是否存在恶意代码。具体检测过程和依据可参考现有技术。
前述固件分析可识别得到固件敏感信息、固件配置信息、程度代码、固件基本信息以及固件集成的第三方软件库信息。固件基本信息包括名称、版本、大小、提测时间,第三方软件库信息包括软件名称、版本信息和所在文件。固件基本信息的取得可方便进行固件对应设备的信息管理,如记录安全漏洞检测结果到对应的设备信息中,又如输出安全漏洞检测结果时同时输出对应固件设备的基本信息等。固件敏感信息包括用户密码、加密证书等,固件配置信息主要包括网络协议配置等。
本实施例需要对固件敏感信息、固件配置信息以及程度代码分别进行安全漏洞检测。
结合图2和图3所示,对固件敏感信息进行的安全漏洞检测包括:利用预先配置的漏洞库判断固件敏感信息用户密码、加密证书等是否存在泄露风险,并确定对应的固件敏感信息漏洞。
对程度代码进行的安全漏洞检测包括第三方软件漏洞检测和已知安全缺陷检测,其中:已知安全缺陷检测即检测程序代码是否存在整数溢出、空指针引用、危险函数调用问题;第三方软件漏洞检测则为,利用预先配置的漏洞库对第三方软件库中的第三方软件进行漏洞检测,得到漏洞编号、风险等级、风险秒速和漏洞定位信息。对程度代码进行的安全漏洞检测还包括检测是否存在恶意代码。
对固件配置信息进行安全漏洞检测包括:判断是否存在硬编码风险以及网络配置风险。
电力物联网嵌入式设备的制造过程研产分离,使得不同的固件可能包含相同的框架结构、库调用、组件调用等,造成批量设备相同甚至不同版本、不同设备固件中存在大量相同的安全问题。但由于安全通告的封闭性,厂商A与厂商B的相似漏洞并不能及时同步,导致许多漏洞出现在利用同源设备的情况。
针对上述情形,本发明设计系统分析器功能组件(Analyzer)通过符号特征匹配规则、二进制规则匹配,根据固件指纹识别依赖框架,建立固件指纹模型库,开展同源漏洞分析。 实现对同源设备的漏洞扫描与挖掘,发现未知安全问题,并提升针对相似架构待测目标固件的检测效率。
同源性分析技术是基于固件代码中的函数、文件、代码块的相似性分析,结合固件漏洞库,快速发现跨厂商、跨平台的同源漏洞。对此,相似性分析是关键技术,同源性分析过程包括基于二进制文件的相似性比较(颗粒度较粗)、基于代码片段的相似性比较(颗粒度较细)2 类方法。同源性分析方法简要流程参考图5所示。
同时,参考图6,通过建立漏洞特征指纹库收集设备指纹信息,参考图7,当有新的固件要进行检测时,根据指纹判断固件是所属于那个厂商和固件序列,进而对此系列固件出现过的漏洞进行着重检查,提高检测效率和检测准确性。
S7,输出安全漏洞检测结果。
本实施例的方法可实现对新型电力系统下电力系统智能端漏洞的审查和自动扫描,基于此方法可构建一套自动化仿真及漏洞挖掘平台,平台架构如图2所示,通过该平台可实现电力物联网终端的管理、漏洞的管理、固件的管理等,方便实现对电力智能终端固件的统一管理,并能够为终端固件的修复提供技术支撑。
本发明可基于 B/S 架构进行实现,通过浏览器上传固件,采用插件式分析,经过分析处理后,将分析结果返回至浏览器端。
终端漏洞信息展示信息包括:漏洞名称、CVE 编号、本地编号、漏洞类型、发布时间、更新时间、漏洞评分、危害等级、攻击前提、攻击途径、漏洞描述、受影响对象域名、受影响对象类型、攻击代码、修复状态、漏洞镜像。
漏洞报告页面:通过分析每周、每月、每年的终端漏洞信息,得到各时间段内的终端安全形势并对下个阶段进行安全形势预测,给出漏洞报告。终端漏洞论坛与发布平台这两部分前端服务架设在 IIS 服务器上,并响应浏览器的请求。网站前端接受终端请求,并通过内置对象 Active Data Object (ADO) 对后台数据库进行查询并响应。
终端漏洞库使用 B/S 架构(Browser/ Server),通过 HTTP 协议和Vue提供前端服务。这样既为用户的使用提供了方便,使得浏览提交漏洞信息和查询检索等操作提高了效率,也使数据库系统在降低成本的同时,管理维护也更加简单,系统的升级和扩展也更加便捷。
实施例2
与实施例1基于相同的发明构思,本实施例介绍一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面所述的新型电力系统下基于设备固件仿真的漏洞挖掘方法。
综上实施例,本发明能够支持解压缩任意固件文件并进行多项分析,对固件的完全解压与逆向成功率超过百分之70,同时,针对物联网设备固件的拆包、漏洞分析和安全性比较,均基于插件分析的方式,可确保最大的灵活性和可扩展性。
固件漏洞的分析功能支持CVE漏洞、典型漏洞分析、Firmadyne模拟分析、映像匹配、逐行漏洞检测、基础逻辑漏洞、文件间关联安全分析以及组合漏洞尝试。并支持显示漏洞扫描结果、显示漏洞总数、CVE漏洞编号、漏洞详情等与漏洞相关的具体信息。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种新型电力系统下基于设备固件仿真的漏洞挖掘方法,其特征是,包括:
获取待仿真电网智能终端的设备固件文件;
基于获取到的设备固件文件数据,对设备固件进行固件格式分析,定位固件文件系统;
根据文件系统的定位结果,提取用于仿真分析的可执行文件;
基于提取到的可执行文件进行文件系统修复,创建磁盘镜像;
根据设备固件的网络配置信息,生成QEMU仿真的启动脚本;
在QEMU仿真环境中执行所述启动脚本仿真电网智能终端的运行,在仿真过程中对固件敏感信息、固件配置信息以及程度代码分别进行安全漏洞检测;
输出安全漏洞检测结果。
2.根据权利要求1所述的方法,其特征是,所述设备固件文件格式包括:zip、bin、elf、hex、rar、img、so、tar、gz、tar.gz和gzip格式;
所述待仿真的电网智能终端设备固件的来源途径包括:通过官网或联系售后索取固件包;或在线升级方式提取固件包;或逆向升级软件,获取软件内置解包和通讯算法,通过软件内置解包和通讯算法获取固件包;或调试接口:JTAG/SWD获取固件包;或拆flash、SD/TF卡、硬盘,用编程器/读卡器获取固件包;或从串口UART调试口获取固件包;或利用网页和通讯漏洞获取固件的敏感信息,基于敏感信息获取固件包;或采用逻辑分析仪监听flash,ram获取固件包。
3.根据权利要求1所述的方法,其特征是,所述基于获取到的设备固件文件数据,对设备固件进行固件格式分析,包括:
获取设备固件的头文件,根据头文件中的头部特征信息确定文件系统的存储位置,实现文件系统定位;
其中,在文件系统定位时,根据字节序列计算熵的熵值判断文件是否经过压缩及加密处理;
根据文件系统的压缩类型适配相应的解压方式进行文件解压,包括:对于LZMA压缩型Squashfs文件系统,使用hexdump和grep命令获取固件的起始地址;利用Binwalk中的-M选项和-e选项,按照预设的提取规则提取指定的相应文件系统;
以及,查找固件中的高熵字节序列,根据高熵字节序列位置查找解密程序,对固件进行解密。
4.根据权利要求1所述的方法,其特征是,所述根据文件系统的定位结果,提取用于仿真分析的可执行文件,包括:对于目标服务程序,将对应的二进制代码转换成汇编代码,再转换为统一的VEX中间语言,完成程序表示;
基于程序表示,提取出程序的控制流、函数调用、字串常量、地址访问信息。
5.根据权利要求1所述的方法,其特征是,所述基于提取到的可执行文件进行文件系统修复,创建磁盘镜像,包括:恢复固件运行时的加载地址以及程序入口地址;
所述恢复固件运行时的加载地址方法为:识别间接跳转表,根据预先确定的间接跳转指令寻址与间接跳转表之间的关系,推断得到程序加载地址;
所述恢复程序入口地址方法为:根据特定指令架构的函数入口、返回指令特征,识别所有的函数,并构造函数调用关系;对于没有被调用的函数,将其入口地址识别为整个程序可能的入口地址。
6.根据权利要求5所述的方法,其特征是,所述基于提取到的可执行文件进行文件系统修复,创建磁盘镜像,还包括:拦截固件二进制程序的NVRAM库调用,并返回有效数据,并使用firmadyne 实现一个新的 libnvram.so 库文件,通过代码模拟固件启动时加载 nvram配置信息的过程。
7.根据权利要求1所述的方法,其特征是,所述QEMU仿真平台中集成有对应不同固件CPU架构的指令集,包括SSE指令集、X86指令集、EM64T指令集、RISC指令集、AVX指令集、3DNow扩展指令集中的多种;所述多种指令集通过异构指令翻译方法进行异构指令的集成。
8.根据权利要求1所述的方法,其特征是,所述对设备固件进行固件格式分析还包括,识别得到固件敏感信息、固件配置信息、程度代码、固件基本信息以及固件集成的第三方软件库信息;
所述固件基本信息包括名称、版本、大小、提测时间,通过检测文件哈希值、固件对应设备的CPU架构以及固件对应设备的文件系统得到;
方法还包括,根据识别得到的固件基本信息进行固件对应设备的信息管理。
9.根据权利要求1所述的方法,其特征是,所述固件敏感信息至少包括用户密码、加密证书中的一种或多种;所述第三方软件库信息包括软件名称、版本信息和所在文件;
对所述固件敏感信息进行安全漏洞检测包括:利用预先配置的漏洞库判断固件敏感信息是否存在泄露风险,并确定对应的固件敏感信息漏洞;
对所述程度代码进行安全漏洞检测包括:检测程序代码是否存在整数溢出、空指针引用、危险函数调用问题中的任意一个或多个问题,以及是否存在恶意代码;
还包括,利用预先配置的漏洞库对第三方软件库中的第三方软件进行漏洞检测,得到漏洞编号、风险等级、风险秒速和漏洞定位信息;
对所述固件配置信息进行安全漏洞检测包括:判断是否存在硬编码风险以及网络配置风险。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征是,该计算机程序被处理器执行时,实现如权利要求1-9任一项所述的基于设备固件仿真的漏洞挖掘方法。
CN202210654687.5A 2022-06-10 2022-06-10 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质 Active CN115062309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210654687.5A CN115062309B (zh) 2022-06-10 2022-06-10 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210654687.5A CN115062309B (zh) 2022-06-10 2022-06-10 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质

Publications (2)

Publication Number Publication Date
CN115062309A true CN115062309A (zh) 2022-09-16
CN115062309B CN115062309B (zh) 2023-02-24

Family

ID=83199740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210654687.5A Active CN115062309B (zh) 2022-06-10 2022-06-10 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质

Country Status (1)

Country Link
CN (1) CN115062309B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522368A (zh) * 2023-06-29 2023-08-01 浙江大学 一种物联网设备固件解密解析方法、电子设备、介质
CN117494148A (zh) * 2024-01-03 2024-02-02 中国软件评测中心(工业和信息化部软件与集成电路促进中心) 安全检测方法、装置、终端设备及计算机可读存储介质
CN118069296A (zh) * 2024-04-17 2024-05-24 中国信息通信研究院 一种基于软件的全系统虚拟化模拟系统及其构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103380A1 (en) * 2011-10-19 2013-04-25 Hob Gmbh & Co. Kg System and method for controlling multiple computer peripheral devices using a generic driver
CN112134761A (zh) * 2020-09-23 2020-12-25 国网四川省电力公司电力科学研究院 基于固件分析的电力物联网终端脆弱性检测方法及系统
CN114579457A (zh) * 2022-03-08 2022-06-03 国网江苏省电力有限公司电力科学研究院 新型电力系统固件运行仿真平台及仿真方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103380A1 (en) * 2011-10-19 2013-04-25 Hob Gmbh & Co. Kg System and method for controlling multiple computer peripheral devices using a generic driver
CN112134761A (zh) * 2020-09-23 2020-12-25 国网四川省电力公司电力科学研究院 基于固件分析的电力物联网终端脆弱性检测方法及系统
CN114579457A (zh) * 2022-03-08 2022-06-03 国网江苏省电力有限公司电力科学研究院 新型电力系统固件运行仿真平台及仿真方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522368A (zh) * 2023-06-29 2023-08-01 浙江大学 一种物联网设备固件解密解析方法、电子设备、介质
CN117494148A (zh) * 2024-01-03 2024-02-02 中国软件评测中心(工业和信息化部软件与集成电路促进中心) 安全检测方法、装置、终端设备及计算机可读存储介质
CN117494148B (zh) * 2024-01-03 2024-03-26 中国软件评测中心(工业和信息化部软件与集成电路促进中心) 安全检测方法、装置、终端设备及计算机可读存储介质
CN118069296A (zh) * 2024-04-17 2024-05-24 中国信息通信研究院 一种基于软件的全系统虚拟化模拟系统及其构建方法

Also Published As

Publication number Publication date
CN115062309B (zh) 2023-02-24

Similar Documents

Publication Publication Date Title
CN115062309B (zh) 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
EP2955658B1 (en) System and methods for detecting harmful files of different formats
Cesare et al. Classification of malware using structured control flow
RU91213U1 (ru) Система автоматического составления описания и кластеризации различных, в том числе и вредоносных, объектов
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
CN104462968A (zh) 恶意应用程序的扫描方法、装置和系统
CN112287342A (zh) 物联网固件动态检测方法、装置、电子设备以及存储介质
CN111428233B (zh) 一种嵌入式设备固件的安全性分析方法
CN114969760A (zh) 漏洞检测方法及装置、计算机可读介质和电子设备
Yang et al. A tool for volatile memory acquisition from Android devices
CN109857520B (zh) 一种虚拟机自省中的语义重构改进方法及系统
KR101431192B1 (ko) 모바일 단말의 루팅 공격 이벤트 검출 방법
CN111291377A (zh) 一种应用漏洞的检测方法及系统
Franzen et al. Katana: Robust, automated, binary-only forensic analysis of linux memory snapshots
CN115552401A (zh) 一种快应用检测方法、装置、设备及存储介质
Ul Haq et al. A survey on IoT & embedded device firmware security: architecture, extraction techniques, and vulnerability analysis frameworks
US11573887B2 (en) Extracting code patches from binary code for fuzz testing
Wang et al. Research on intelligent reverse analysis technology of firmware of internet of things
CN113438273A (zh) 一种物联网设备中应用程序的用户级仿真方法及装置
Dong et al. What did you pack in my app? a systematic analysis of commercial android packers
CN113378182A (zh) 一种提权漏洞检测方法、装置、设备及介质
Palavicini Jr et al. Towards firmware analysis of industrial Internet of Things (IIoT)
CN116305131B (zh) 脚本静态去混淆方法及系统
Borek Intrusion Detection System for Android: Linux Kernel System Salls Analysis

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant