CN113935042A - 跨平台模拟的IoT设备安全性分析系统及方法 - Google Patents
跨平台模拟的IoT设备安全性分析系统及方法 Download PDFInfo
- Publication number
- CN113935042A CN113935042A CN202111211584.3A CN202111211584A CN113935042A CN 113935042 A CN113935042 A CN 113935042A CN 202111211584 A CN202111211584 A CN 202111211584A CN 113935042 A CN113935042 A CN 113935042A
- Authority
- CN
- China
- Prior art keywords
- analysis
- simulation
- module
- firmware
- file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种跨平台模拟的IoT设备安全性分析系统及方法,该系统和方法可用于分析和模拟不同平台和架构的IoT设备安全性问题。首先解包输入的设备固件,解析其架构,对基于Linux的嵌入式系统,采用共享关键字感知污点检测的静态分析方法,追踪前端和后端之间的用户输入,可视化输出系统可能存在的安全脆弱点,基于输出结果系统自动选择全系统模式或用户模式对涉及的安全脆弱性二进制文件进行动态仿真模拟;对基于RTOS的嵌入式系统,采用基地址重定位和函数语义恢复的方法定位输出文件安全脆弱点,并基于输出结果对涉及到的二进制文件进行片段化仿真模拟。最后在不同系统和架构环境下对相应漏洞进行挖掘和验证。
Description
技术领域
本发明涉及网络安全的技术领域,具体地,涉及跨平台模拟的IoT设备安全性分析系统及方法。
背景技术
随着IoT时代的来临,IoT终端设备得以迅速发展和广泛应用,同时针对IoT设备的安全攻击事件也在逐年攀升。因此,对IoT设备进行安全分析和模拟漏洞挖掘与验证将对IoT设备系统甚至整个IoT的安全建设提供重要依据。通过对IoT设备采取自动化安全分析方法,可以大幅提升产品的安全性检测效率,方便开发者在第一时间对设备进行风险评估和安全加固,通过仿真模拟可以迅速帮助技术人员定位系统安全脆弱点和触发逻辑,全面保证产品设备安全检测有效性。
在公开号为CN110768944A的专利文献中公开了一种基于FPGA技术的IOT设备防护系统及方法,通过FPGA硬件资源的配置,获取外部应用端数据流量或IOT设备数据流量;将获取的数据流量进行初步过滤;对过滤后的数据流量进行分析、通信行为的解析和监控,实现对IOT设备行为及数据流量的有效控制及实时数据流量监控分析。
针对上述中的相关技术,发明人认为IoT设备和恶意软件同时运行于各种不同的操作系统与CPU架构中,现有工具并不支持多系统或多架构的分析操作,使得技术人员需要耗费大量时间和精力搭建各种各样的虚拟环境,大大降低了分析效率,并且绝大多数安全分析工具与设备固件仿真模拟技术是完全分离的,这导致针对IoT设备和恶意代码的分析体验是完全支离破碎的。因此,需要提出一种技术方案以改善上述技术问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种跨平台模拟的IoT设备安全性分析系统及方法。
根据本发明提供的一种跨平台模拟的IoT设备安全性分析系统,包括基于不同系统平台架构的分析路线,分析路线依据具体功能分为嵌入式Linux系统环境分析模拟和RTOS系统环境分析模拟,针对输入设备固件系统架构,系统自动化选择分析路线并对其进行安全性分析和动态仿真模拟;
所述嵌入式Linux系统环境分析模拟完成对用户输入设备固件解包、系统架构解析、静态安全性分析、分析结果展示、基于分析结果自动化仿真模拟并进行漏洞挖掘与验证;
所述RTOS系统环境分析模拟完成对用户输入设备固件解包、系统架构解析、基地址重定位、函数语义恢复、分析结果展示、基于分析结果片段化仿真模拟并进行漏洞挖掘与验证。
优选地,所述Linux系统环境分析路线包括用户交互模块、固件解包模块、静态安全性分析模块、分析结果展示模块和自动化仿真模块;
所述用户交互模块提供输入设备固件接口;
所述固件解包分析模块对用户输入设备固件解包分析,并自动识别其所属嵌入式系统类型;
所述静态安全性分析模块将已解包的Linux嵌入式设备文件系统作为输入,利用共享关键字感知污点检测的静态分析方法,追踪前端和后端之间的用户输入,自动化解析系统存在的安全脆弱点;
所述分析结果展示模块对静态安全性分析模块中已解析得到的系统安全脆弱点进行可视化展示,内容包括涉及的危险二进制文件、危险函数和参数和危险函数执行路径;
所述自动化仿真模块基于分析结果,对涉及到的危险二进制文件自动化选择用户模式或全系统模式两类方式进行模拟,恢复其服务或系统,进行漏洞挖掘和验证。
优选地,所述RTOS系统环境分析路线包括用户交互模块、固件解包分析模块、基地址重定位模块、函数语义恢复模块、分析结果展示模块和片段化仿真模块;
所述用户交互模块提供输入设备固件接口;
所述固件解包分析模块对用户输入设备固件解包分析,并自动识别其所属的嵌入式系统类型;
所述基地址重定位模块将已解包设备固件文件系统中的二进制文件作为输入,自动化重定位其加载基地址;
所述函数语义恢复模块根据已解析二进制文件基地址,对其包含的污点函数进行定位和语义恢复;
所述分析结果展示模块对函数语义恢复模块执行结果进行可视化展示,内容包括可解析的二进制文件基地址、此类二进制文件包含的污点函数位置和类型;
所述片段化仿真模块基于基地址重定位结果和函数语义恢复结果,对涉及到的二进制文件中的相关程序片段进行片段化模拟执行,恢复其部分服务,进行漏洞挖掘和验证。
本发明还提供一种跨平台模拟的IoT设备安全性分析方法,所述方法应用上述中的跨平台模拟的IoT设备安全性分析系统,所述方法包括如下步骤:
步骤S1:获取用户输入IoT设备固件,对其进行自动化解包;使用binwalk开源工具集,解包完成后检索解包日志关键字信息自动化识别其对应嵌入式操作系统类型;
步骤S2:分析接口根据已识别的嵌入式系统类型,自动匹配相应系统环境分析路线;
步骤S3:基于静态分析结果,将自动定位存在问题的二进制文件。
优选地,所述步骤S1包括如下步骤:
步骤S1.1:如果是Linux系统环境,则对其文件系统静态安全分析,并根据分析结果自动化选择用户态或全系统态模拟,复现存在安全问题的环境以进行漏洞挖掘和验证;
步骤S1.2:如果是RTOS系统环境,则对其二进制文件进行基地址重定位,并对已重定位的二进制文件进行函数语义恢复,定位存在安全风险的程序片段,采用片段化模拟方法恢复其部分服务环境以进行漏洞挖掘和验证。
优选地,所述步骤S1.1包括如下步骤:
步骤S1.1.1:从已解包的固件文件系统中,根据文件类型识别前端文件和后端程序,其中HTML、JavaScript和XML类型是前端文件,可执行二进制文件和库是后端文件;
步骤1.1.2:通过分析前端文件,利用典型模式提取用户输入的潜在关键字;
步骤S1.1.3:识别后端中的边界二进制文件,后端根据用户输入关键字调用不同的处理函数;
步骤S1.1.4:通过程序之间的共享关键字的传递定位用户输入点;使用敏感输入污点分析来追踪不可信数据的使用情况。
优选地,所述步骤S1.2中RTOS系统环境下二进制文件基地址重定位,利用C语言中switch case语句块的内存地址跳转表,推导出附近代码的内存地址,利用代码的偏移量和内存地址得到文件的装载地址。
优选地,所述RTOS系统环境下二进制文件函数语义恢复,基于Angr中CFGFast代码块扫描实现,加入switch语句跳转表的识别,通过将代码转换为中间语言,检索基本块的跳转信息进行控制流恢复。
优选地,所述RTOS系统环境下片段化模拟仿真方法,使用Unicorn引擎对已定位存在安全问题的程序片段进行模拟执行,恢复其部分服务环境。
优选地,所述步骤S3包括如下步骤:
步骤S3.1:默认采用基于FirmAE框架的全系统模式对设备固件进行仿真模拟,如果成功则进入步骤S3.4,如果失败则进入步骤S3.2;
步骤S3.2:利用辅助脚本自动化检索FirmAE模拟日志文件中特定服务文件信息,结合静态安全分析结果定位问题二进制文件;
步骤S3.3:对已定位问题二进制文件,采用Qemu用户模式对此类特定二进制文件进行仿真模拟;
步骤S3.4:通过查看端口开放或Web前端页面来验证仿真模拟是否成功,并在当前已成功仿真模拟的环境下对该IoT设备进行漏洞挖掘和验证。
与现有技术相比,本发明具有如下的有益效果:
1、本发明提供了一种跨平台模拟的IoT设备安全性分析系统和方法,该系统和方法可用于分析和模拟不同平台和架构的IoT设备安全性问题;
2、本发明解包输入的设备固件,解析其架构,对基于Linux的嵌入式系统,采用共享关键字感知污点检测的静态分析方法,追踪前端和后端之间的用户输入,可视化输出系统可能存在的安全脆弱点,基于输出结果系统自动选择全系统模式或用户模式对涉及的安全脆弱性二进制文件进行动态仿真模拟;
3、本发明对基于RTOS的嵌入式系统,采用基地址重定位和函数语义恢复的方法定位输出文件安全脆弱点,并基于输出结果对涉及到的二进制文件进行片段化仿真模拟;
4、本发明最后在不同系统和架构环境下对相应漏洞进行挖掘和验证。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明跨平台模拟的IoT设备安全性分析系统的结构图;
图2为本发明跨平台模拟的IoT设备安全性分析方法的流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提出了一种跨平台模拟的IoT设备安全性分析系统及方法,保证能够对多系统和多架构的不同类型IoT设备进行自动化安全分析并能在此基础上仿真模拟安全脆弱性环境,提升了IoT设备漏洞挖掘的效率和准确性。
本发明提供了一种跨平台模拟的IoT设备安全性分析系统的结构图如图1所示。本发明的跨平台模拟的IoT设备安全性分析系统由基于不同系统平台架构的分析路线组成,分析路线依据具体功能可分为Linux系统环境分析模拟和RTOS系统环境分析模拟两类,针对输入设备固件系统架构,系统自动化选择分析路线并对其进行安全性分析和动态仿真模拟。
跨平台模拟的IoT设备安全性分析系统中的Linux系统环境分析路线包括:用户交互模块,提供输入设备固件接口;固件解包分析模块,对用户输入设备固件解包分析,并自动识别其所属嵌入式系统类型;静态安全性分析模块,将已解包的Linux嵌入式设备文件系统作为输入,利用共享关键字感知污点检测的静态分析方法,追踪前端和后端之间的用户输入,自动化解析系统可能存在的安全脆弱点;分析结果展示模块:对静态安全性分析模块中已解析得到的系统安全脆弱点进行可视化展示,内容包括涉及的危险二进制文件、危险函数和参数、危险函数执行路径等;自动化仿真模块,基于分析结果,对涉及到的危险二进制文件自动化选择用户模式或全系统模式两类方式进行模拟,恢复其服务或系统,之后对其进行漏洞挖掘和验证。
跨平台模拟的IoT设备安全性分析系统中的RTOS系统环境分析路线包括:用户交互模块,提供输入设备固件接口;固件解包分析模块,对用户输入设备固件解包分析,并自动识别其所属的嵌入式系统类型;基地址重定位模块,将已解包设备固件文件系统中的二进制文件作为输入,自动化重定位其加载基地址;函数语义恢复模块,根据已解析二进制文件基地址,对其包含的污点函数进行定位和语义恢复;分析结果展示模块,对函数语义恢复模块执行结果进行可视化展示,内容包括可解析的二进制文件基地址、此类二进制文件包含的污点函数位置和类型等;片段化仿真模块,基于基地址重定位结果和函数语义恢复结果,对涉及到的二进制文件中的相关程序片段进行片段化模拟执行,恢复其部分服务,之后对其进行漏洞挖掘和验证。
本发明还提供了一种跨平台模拟的IoT设备安全性分析方法的流程图如图2所示。所述方法包括如下步骤:
步骤S1:获取用户输入IoT设备固件,对其进行自动化解包;使用binwalk开源工具集,解包完成后检索解包日志关键字信息自动化识别其对应嵌入式操作系统类型。
步骤S2:分析接口根据已识别的嵌入式系统类型,自动匹配相应系统环境分析路线。
如识别出固件对应系统环境为Linux,则将已解包文件系统作为输入,对其进行静态安全性分析,采用SaTC分析工具,此工具分析流程为:
步骤1:从已解包的固件文件系统中,根据文件类型识别前端文件和后端程序,其中HTML、JavaScript和XML类型通常是前端文件,而可执行二进制文件和库是后端文件。
步骤2:分析前端文件,利用典型模式提取用户输入的潜在关键字。
步骤3:识别后端中的边界二进制文件,后端根据用户输入关键字调用不同的处理函数。
步骤4:从这些函数中,通过程序之间的共享关键字的传递定位用户输入点。
步骤5:最后使用敏感输入污点分析来追踪不可信数据的使用情况。
如识别出固件对应系统环境为RTOS,则将已解包文件系统中的二进制文件作为输入,首先确定其对应的加载基地址,采用基于跳转表定位的基地址重定位方法,该方法主要是以两种方式实现。
方式1:检查跳转表中多个case之间的距离,利用跳转表中case的绝对地址和文件偏移量来重定位基地址。假设从跳转表中得到的四个非重复地址分别为:a1、a2、a3、a4,相邻case之间的距离分别为:d1=a2-a1、d2=a3-a2、d3=a4-a3,考察每个case之间的距离,寻找一个不同于其他的距离,这里不妨假设d1≠d2且d1≠d3,然后查看跳转表得到a1对应case的文件偏移量为addr,那么基地址重定位为:new_addr=a1-addr,这里的new_addr即为重定位后的基地址。
方式2:利用跳转表附近的代码可以推导出default语句跳转的位置和default代码的偏移量,从重定位基地址。假设跳转表附近的代码查找default case所在内存位置为m,default代码的在文件偏移量为p,那么文件开始处的代码被映射到内存m1=m-p处,即文件的装载基址为m1处。
在RTOS系统环境下,当已重定位分析文件基地址后,语义恢复模块使用基于Angr中CFGFast的代码块扫描实现,优选地,在原有功能基础上加入switch语句跳转表的识别,通过将代码转换为中间语言,之后检索基本块的跳转信息进行控制流恢复。
在本实施例中,对RTOS系统环境下的二进制文件分析,依次选取文件所占空间从大到小排序进行上述流程,由于RTOS系统本身的特性,通常主要服务位于此类较大二进制文件内,当基地址定位成功后可不再对排序靠后的二进制文件进行分析处理。
步骤S3:对Linux系统环境分析路线而言,基于静态分析结果,将自动定位存在问题的二进制文件。
Linux系统环境下自动化仿真模拟的流程如下:
步骤S3.1:默认采用基于FirmAE框架的全系统模式对设备固件进行仿真模拟,如果成功则进入步骤S3.4,如果失败则进入步骤S3.2。
步骤S3.2:利用辅助脚本自动化检索FirmAE模拟日志文件中特定服务文件信息,结合静态安全分析结果定位问题二进制文件。
步骤S3.3:对已定位问题二进制文件,采用Qemu用户模式对此类特定二进制文件进行仿真模拟。
步骤S3.4:通过查看端口开放或Web前端页面来验证仿真模拟是否成功,并在当前已成功仿真模拟的环境下对该IoT设备进行漏洞挖掘和验证。
Linux环境下自动化选择用户态或全系统态模拟,默认以全系统模式对原设备固件进行模拟,通过查看端口开放或Web前端页面来验证系统仿真模拟是否成功,如若成功,则可在当前环境下对该IoT设备进行漏洞挖掘和验证;如若失败,则检索全系统态模拟日志,并结合静态安全分析结果定位问题二进制文件,然后切换至用户态模式对此类特定二进制文件进行仿真模拟,并在当前环境下对该IoT设备特定服务进行漏洞挖掘和验证。
对RTOS系统环境分析路线而言,基于基地址重定位和函数语义恢复方法,自动化定位污点函数位置和信息,使用Unicorn引擎对已定位存在安全问题的程序片段进行模拟执行,从而恢复其部分服务环境,以达到对RTOS系统环境二进制程序文件漏洞挖掘和验证的目的。
在本实施例中,应用Unicorn引擎由于基于Qemu实现的,在实际仿真模拟的过程中具有扩展性,同时支持多种架构,包括Arm、Arm64、Mips等,并且具有独立和简洁的API。由于其特性在于模拟代码执行而非实际需要CPU去完成操作,对系统运行负载较低,可以多线程并发执行,大幅提升漏洞挖掘与验证的效率。
本发明提供了一种跨平台模拟的IoT设备安全性分析系统和方法,该系统和方法可用于分析和模拟不同平台和架构的IoT设备安全性问题;解包输入的设备固件,解析其架构,对基于Linux的嵌入式系统,采用共享关键字感知污点检测的静态分析方法,追踪前端和后端之间的用户输入,可视化输出系统可能存在的安全脆弱点,基于输出结果系统自动选择全系统模式或用户模式对涉及的安全脆弱性二进制文件进行动态仿真模拟。
本发明对基于RTOS的嵌入式系统,采用基地址重定位和函数语义恢复的方法定位输出文件安全脆弱点,并基于输出结果对涉及到的二进制文件进行片段化仿真模拟;最后在不同系统和架构环境下对相应漏洞进行挖掘和验证。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种跨平台模拟的IoT设备安全性分析系统,其特征在于,包括基于不同系统平台架构的分析路线,分析路线依据具体功能分为嵌入式Linux系统环境分析模拟和RTOS系统环境分析模拟,针对输入设备固件系统架构,系统自动化选择分析路线并对其进行安全性分析和动态仿真模拟;
所述嵌入式Linux系统环境分析模拟完成对用户输入设备固件解包、系统架构解析、静态安全性分析、分析结果展示、基于分析结果自动化仿真模拟并进行漏洞挖掘与验证;
所述RTOS系统环境分析模拟完成对用户输入设备固件解包、系统架构解析、基地址重定位、函数语义恢复、分析结果展示、基于分析结果片段化仿真模拟并进行漏洞挖掘与验证。
2.根据权利要求1所述的跨平台模拟的IoT设备安全性分析系统,其特征在于,所述Linux系统环境分析路线包括用户交互模块、固件解包模块、静态安全性分析模块、分析结果展示模块和自动化仿真模块;
所述用户交互模块提供输入设备固件接口;
所述固件解包分析模块对用户输入设备固件解包分析,并自动识别其所属嵌入式系统类型;
所述静态安全性分析模块将已解包的Linux嵌入式设备文件系统作为输入,利用共享关键字感知污点检测的静态分析方法,追踪前端和后端之间的用户输入,自动化解析系统存在的安全脆弱点;
所述分析结果展示模块对静态安全性分析模块中已解析得到的系统安全脆弱点进行可视化展示,内容包括涉及的危险二进制文件、危险函数和参数和危险函数执行路径;
所述自动化仿真模块基于分析结果,对涉及到的危险二进制文件自动化选择用户模式或全系统模式两类方式进行模拟,恢复其服务或系统,进行漏洞挖掘和验证。
3.根据权利要求1所述的跨平台模拟的IoT设备安全性分析系统,其特征在于,所述RTOS系统环境分析路线包括用户交互模块、固件解包分析模块、基地址重定位模块、函数语义恢复模块、分析结果展示模块和片段化仿真模块;
所述用户交互模块提供输入设备固件接口;
所述固件解包分析模块对用户输入设备固件解包分析,并自动识别其所属的嵌入式系统类型;
所述基地址重定位模块将已解包设备固件文件系统中的二进制文件作为输入,自动化重定位其加载基地址;
所述函数语义恢复模块根据已解析二进制文件基地址,对其包含的污点函数进行定位和语义恢复;
所述分析结果展示模块对函数语义恢复模块执行结果进行可视化展示,内容包括可解析的二进制文件基地址、此类二进制文件包含的污点函数位置和类型;
所述片段化仿真模块基于基地址重定位结果和函数语义恢复结果,对涉及到的二进制文件中的相关程序片段进行片段化模拟执行,恢复其部分服务,进行漏洞挖掘和验证。
4.一种跨平台模拟的IoT设备安全性分析方法,其特征在于,所述方法应用如权利要求1-3任一项所述的跨平台模拟的IoT设备安全性分析系统,所述方法包括如下步骤:
步骤S1:获取用户输入IoT设备固件,对其进行自动化解包;使用binwalk开源工具集,解包完成后检索解包日志关键字信息自动化识别其对应嵌入式操作系统类型;
步骤S2:分析接口根据已识别的嵌入式系统类型,自动匹配相应系统环境分析路线;
步骤S3:基于静态分析结果,将自动定位存在问题的二进制文件。
5.根据权利要求4所述的跨平台模拟的IoT设备安全性分析方法,其特征在于,所述步骤S1包括如下步骤:
步骤S1.1:如果是Linux系统环境,则对其文件系统静态安全分析,并根据分析结果自动化选择用户态或全系统态模拟,复现存在安全问题的环境以进行漏洞挖掘和验证;
步骤S1.2:如果是RTOS系统环境,则对其二进制文件进行基地址重定位,并对已重定位的二进制文件进行函数语义恢复,定位存在安全风险的程序片段,采用片段化模拟方法恢复其部分服务环境以进行漏洞挖掘和验证。
6.根据权利要求4所述的跨平台模拟的IoT设备安全性分析方法,其特征在于,所述步骤S1.1包括如下步骤:
步骤S1.1.1:从已解包的固件文件系统中,根据文件类型识别前端文件和后端程序,其中HTML、JavaScript和XML类型是前端文件,可执行二进制文件和库是后端文件;
步骤1.1.2:通过分析前端文件,利用典型模式提取用户输入的潜在关键字;
步骤S1.1.3:识别后端中的边界二进制文件,后端根据用户输入关键字调用不同的处理函数;
步骤S1.1.4:通过程序之间的共享关键字的传递定位用户输入点;使用敏感输入污点分析来追踪不可信数据的使用情况。
7.根据权利要求4所述的跨平台模拟的IoT设备安全性分析方法,其特征在于,所述步骤S1.2中RTOS系统环境下二进制文件基地址重定位,利用C语言中switch case语句块的内存地址跳转表,推导出附近代码的内存地址,利用代码的偏移量和内存地址得到文件的装载地址。
8.根据权利要求4所述的跨平台模拟的IoT设备安全性分析方法,其特征在于,所述RTOS系统环境下二进制文件函数语义恢复,基于Angr中CFGFast代码块扫描实现,加入switch语句跳转表的识别,通过将代码转换为中间语言,检索基本块的跳转信息进行控制流恢复。
9.根据权利要求4所述的跨平台模拟的IoT设备安全性分析方法,其特征在于,所述RTOS系统环境下片段化模拟仿真方法,使用Unicorn引擎对已定位存在安全问题的程序片段进行模拟执行,恢复其部分服务环境。
10.根据权利要求4所述的跨平台模拟的IoT设备安全性分析方法,其特征在于,所述步骤S3包括如下步骤:
步骤S3.1:默认采用基于FirmAE框架的全系统模式对设备固件进行仿真模拟,如果成功则进入步骤S3.4,如果失败则进入步骤S3.2;
步骤S3.2:利用辅助脚本自动化检索FirmAE模拟日志文件中特定服务文件信息,结合静态安全分析结果定位问题二进制文件;
步骤S3.3:对已定位问题二进制文件,采用Qemu用户模式对此类特定二进制文件进行仿真模拟;
步骤S3.4:通过查看端口开放或Web前端页面来验证仿真模拟是否成功,并在当前已成功仿真模拟的环境下对该IoT设备进行漏洞挖掘和验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111211584.3A CN113935042A (zh) | 2021-10-18 | 2021-10-18 | 跨平台模拟的IoT设备安全性分析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111211584.3A CN113935042A (zh) | 2021-10-18 | 2021-10-18 | 跨平台模拟的IoT设备安全性分析系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113935042A true CN113935042A (zh) | 2022-01-14 |
Family
ID=79279993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111211584.3A Pending CN113935042A (zh) | 2021-10-18 | 2021-10-18 | 跨平台模拟的IoT设备安全性分析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935042A (zh) |
-
2021
- 2021-10-18 CN CN202111211584.3A patent/CN113935042A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210064512A1 (en) | Selective memory tracing of program execution | |
US9207920B2 (en) | Systems and methods for remote analysis of software applications | |
CN102402479B (zh) | 用于静态分析的中间表示结构 | |
KR101979329B1 (ko) | 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치 | |
CN112287342A (zh) | 物联网固件动态检测方法、装置、电子设备以及存储介质 | |
CN101458630B (zh) | 一种基于硬件模拟器的自修改代码识别方法 | |
CN113868648A (zh) | 一种针对恶意文件的自动化脱壳引擎实现方法 | |
CN103810222A (zh) | 样本文件的处理方法及装置 | |
CN114462044A (zh) | 一种基于污点分析的uefi固件漏洞静态检测方法及装置 | |
CN113688398A (zh) | 漏洞扫描结果的评估方法、装置及系统 | |
CN109857520B (zh) | 一种虚拟机自省中的语义重构改进方法及系统 | |
KR20180129623A (ko) | 연관된 다중 파일 정적 분석 장치 | |
CN113935041A (zh) | 面向实时操作系统设备的漏洞检测系统及方法 | |
KR102021383B1 (ko) | 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 | |
KR101860674B1 (ko) | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 | |
CN115795489B (zh) | 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置 | |
CN113935042A (zh) | 跨平台模拟的IoT设备安全性分析系统及方法 | |
CN111488275A (zh) | Ui自动化测试方法、装置、存储介质及电子设备 | |
EP3929751A1 (en) | Test case generation device, test case generation method, and test case generation program | |
CN115374017A (zh) | 一种仿真运行可执行文件时抓取现场的方法及计算设备 | |
CN114443418A (zh) | 一种基于硬件虚拟化的riscv内存溢出漏洞检测方法及装置 | |
US20120144371A1 (en) | Using exception information | |
CN113687880A (zh) | 一种调用组件的方法、装置、设备和介质 | |
CN111124423A (zh) | 一种基于多平台的编译检测方法、装置、服务器及介质 | |
US11886589B2 (en) | Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method |
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 |