CN118524003A - 一种基于指令行为的物联网固件故障根因筛选方法和系统 - Google Patents
一种基于指令行为的物联网固件故障根因筛选方法和系统 Download PDFInfo
- Publication number
- CN118524003A CN118524003A CN202410995403.8A CN202410995403A CN118524003A CN 118524003 A CN118524003 A CN 118524003A CN 202410995403 A CN202410995403 A CN 202410995403A CN 118524003 A CN118524003 A CN 118524003A
- Authority
- CN
- China
- Prior art keywords
- instruction
- internet
- firmware
- things
- pollution
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000006399 behavior Effects 0.000 title claims abstract description 50
- 238000012216 screening Methods 0.000 title claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000012360 testing method Methods 0.000 claims abstract description 11
- 238000012163 sequencing technique Methods 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 29
- 238000011144 upstream manufacturing Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 5
- 230000008439 repair process Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000000115 helium ionisation detection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于指令行为的物联网固件故障根因筛选方法和系统,属于物联网固件故障定位领域。所述方法包括:基于所述崩溃测试样例仿真运行物联网固件,运行过程中收集物联网固件中汇编指令执行的状态信息;基于所收集的状态信息进行后向污点分析,获取污染指令集合;进行反汇编分析获取物联网固件的指令行为信息,计算污染指令集合中每条污染指令的综合怀疑值;根据汇编指令执行逆序和综合怀疑值大小对污染指令集合重排序,排序后得到优选指令序列,从而能够排查物联网固件故障根本原因。本发明设计的基于指令行为的物联网固件故障根因筛选方法和系统能够有效降低安全审计人员手动分析故障根本原因的时间成本,提高故障修复效率。
Description
技术领域
本发明涉及物联网固件故障定位领域,尤其涉及一种基于指令行为的物联网固件故障根因筛选方法和系统。
背景技术
物联网设备的固件在物联网生态系统中扮演着至关重要的角色。物联网固件是嵌入在设备硬件中的软件,提供了设备的操作系统和控制逻辑,确保设备能够按照设计进行操作。例如,在智能家居设备中,固件负责控制传感器、执行器和通信模块,使设备能够与其他设备和系统进行交互。
然而,物联网固件开发中不可避免出现程序缺陷,导致固件崩溃故障。故障根因分析是确保物联网设备安全性与可靠性的重要任务,通过分析筛选出和故障强相关的程序指令,安全审计人员可以更加高效、快速地定位固件崩溃的根本原因,从而及时修复程序缺陷、避免潜在的经济损失。虽然目前已有针对Linux程序的故障根因分析方法,但这些方法依赖富资源操作系统,无法分析物联网固件。此外,这些方法仍然存在误报率高的问题,无法优先识别与故障根本原因更相关的指令,不能帮助安全审计人员进行物联网固件故障分析。
设计针对物联网固件故障根本原因筛选方法主要存在以下挑战:(1)程序语义缺失。大多数物联网固件为闭源,缺少源代码帮助理解程序上层语义信息。在逆向分析固件时,分析级别为汇编指令,且通常缺少符号表,难以调试。(2)程序数据流难以分析。现有的故障根因分析工作为提高检出能力,往往将与故障弱相关的汇编指令也标记为漏洞指令,因此存在过度标记问题。在实际检测中,这些指令数量庞大,误导安全审计人员对故障的检测,使得故障分析工具并不可用。
综上所述,目前尚未有针对物联网固件故障根本原因分析的筛选方法,设计一种自动化地优选物联网固件故障相关指令以帮助安全审计人员有效定位故障指令位置是重要且必要的。
发明内容
鉴于上述,本发明的目的是提供一种基于指令行为的物联网固件故障根因筛选方法和系统,提高物联网固件故障修复效率、增强物联网设备安全性。
本发明的基于指令行为的物联网固件故障根因筛选方法首先使用重新托管的方法运行物联网固件并执行崩溃测试样例,在执行过程中收集程序内存访问与指令执行信息,基于后向污点分析方法获取原始污染指令集合,并结合二进制反汇编分析程序指令的语义行为,在循环结构中优选循环条件指令、在顺序执行中优选与故障数据相关的内存读写指令,从而获取与固件故障相关、能够帮助安全审计人员分析故障根本原因的汇编指令,提高物联网固件故障修复效率。
为了实现上述目的,本发明采用的具体技术方案如下:
一方面,本发明提出了一种基于指令行为的物联网固件故障根因筛选方法,包括以下步骤:
S1:基于崩溃测试样例仿真运行物联网固件,运行过程中物联网固件内的汇编指令被执行,收集汇编指令执行的状态信息,所述状态信息包括汇编指令执行、故障发生时的寄存器信息以及内存读写所使用的具体数据值、数据寄存器信息和内存地址;
S2:基于所收集的状态信息进行后向污点分析,获取污染指令集合;
S3:对物联网固件进行反汇编分析,获取物联网固件的指令行为信息,基于指令行为信息计算污染指令集合中每条污染指令的综合怀疑值;
S4:根据汇编指令执行逆序和综合怀疑值大小对污染指令集合重排序,排序后得到优选指令序列,所述优选指令序列中,排名越前的指令是物联网固件故障根本原因的概率越大。
进一步地,所述汇编指令执行的状态信息具体包括:1)汇编指令执行时所使用的指令寄存器信息;2)内存读取或写入时所使用的具体数据值、数据寄存器信息和内存地址;3)汇编指令执行后发生故障时的所使用的数据寄存器信息与指令寄存器信息。
进一步地,步骤S3中,所述物联网固件的指令行为信息包括显式寄存器读写信息、隐式寄存器读写信息与地址跳转信息。
进一步地,步骤S3中,所述计算污染指令集合中每条污染指令的综合怀疑值具体为:
根据所述汇编指令执行的状态信息中汇编指令执行时的寄存器信息以及指令行为信息中的地址跳转信息,分析物联网固件中包含的循环执行结构,将构成循环执行结构的汇编指令的执行流怀疑值均设为相等的小于0的值,其余汇编指令的执行流怀疑值皆为0;同时对于包含显示寄存器读写信息和/或隐式寄存器读写信息的汇编指令,根据所述汇编指令执行的状态信息中对应的内存读写所使用的具体数据值与故障发生时的寄存器信息进行对比分析,若其被读写的任一寄存器中包含与故障发生时的任一寄存器或内存相同的数据,则将该汇编指令的数据流怀疑值设为相等的大于0的值,其余汇编指令的数据流怀疑值皆为0;对于污染指令集合中所有污染指令,结合污染指令的执行流怀疑值和数据流怀疑值计算每条污染指令的综合怀疑值。
另一方面,本发明还提出了一种基于指令行为的物联网固件故障根因筛选系统,用于实现上述的物联网固件故障根因筛选方法。
与现有技术相比,本发明的有益效果至少包括:
(1)本发明提出了一种二进制反汇编的指令行为分析方法,对无符号表的二进制固件进行循环执行结构与污染数据分析, 进一步提出执行流怀疑值与数据流怀疑值指标,有效提高物联网固件故障根因分析准确率;
(2)本发明采用排序列表的方式对物联网固件故障根本原因进行表征,以综合怀疑值估算故障根因汇编指令概率,优选高概率汇编指令,降低分析人员手动确认故障根本原因的时间开销;
(3)本发明具有良好的可扩展性,对于不同物联网固件,仅需根据固件场景、关键故障类型更新执行流怀疑值与数据流怀疑值的计算策略,即可实现多场景、多故障类型的高效根因筛选方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是本实施例提供的基于指令行为的物联网固件故障根因筛选方法的流程图;
图2是本实施例提供的反汇编分析与指令行为信息获取流程示意图;
图3是本实施例提供的基于指令行为的物联网固件故障根因筛选系统的结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
针对目前学业界与工业界对物联网固件故障根本原因分析存在的不足,本实施例提供了一种基于指令行为的物联网故障根因筛选方法和系统,实现了对物联网固件故障根本原因进行有效优选与过滤,帮助分析人员更加准确、高效确定故障根本原因。具体而言,通过使用重新托管的方法运行物联网固件、执行崩溃测试样例,在执行过程中收集固件内存访问与指令执行等执行日志,基于后向污点分析的方法得到原始的污染指令集合,并对固件进行反汇编分析得到指令执行的控制流及数据流语义信息进行分析,综合计算控制流与数据流怀疑值,对原始污染指令集合进行重新排序,优选与固件故障相关、能够有效帮助安全审计人员分析故障根本原因的汇编指令,从而提高物联网固件故障修复效率。
如图1所示,本实施例提供的基于指令行为的物联网固件故障根因筛选方法,包括以下步骤:
步骤1,基于物联网固件仿真器运行物联网固件,收集执行过程中的日志信息。
物联网固件为物联网硬件设备内部存储的软件程序,用于驱动物联网硬件设备,本发明中对汇编代码形式的物联网固件进行仿真分析,所述汇编代码形式的物联网固件包括多条汇编指令。本实施例中,收集的日志信息包括内存访问、指令执行以及故障发生时的寄存器信息,收集方法具体包括以下步骤:
步骤1-1,运行物联网固件崩溃测试样例并复现故障。所述物联网固件崩溃测试样例为在物联网固件实际运行测试过程中导致固件崩溃的固件输入数据。基于所述崩溃测试样例,利用物联网固件仿真器仿真运行物联网固件。在物联网固件仿真运行过程中,利用函数钩子特性对固件执行时的几种特定运行状态进行监控,利用函数钩子执行回调函数,保存固件当前执行时刻的状态信息,具体而言,在固件的每条汇编指令执行前,获取并保存汇编指令执行时所使用的指令寄存器信息,若当前执行的汇编指令为内存读取或写入指令,则除指令寄存器信息外还获取并保存内存读取或写入时所使用的数据寄存器信息、内存地址以及具体数据值;当汇编指令执行后发生故障时,获取并保存故障发生时的使用的数据寄存器信息和指令寄存器信息。
在本实施例中,所述物联网固件为蓝牙外围设备固件Bluetooth_Peripheral_HIDs,所述物联网固件崩溃测试样例为二进制文本数据。蓝牙外围设备固件运行时会读取、解析与处理该二进制文本数据,用于实现蓝牙外围设备与物联网设备的数据交互。在固件处理过程中,由于汇编代码未充分检查二进制文本数据合法性,导致固件对空地址进行访问,触发非法内存读取而产生程序故障,即发生固件崩溃。本实施例中,利用物联网固件仿真器Unicorn执行物联网固件崩溃测试样例。仿真器Unicorn为物联网固件提供了仿真运行环境以及函数钩子特性支持。通过对固件执行时触发的内存读取、内存写入、指令执行以及故障发生等四种特定状态,本实施例设计了对应的回调函数,保存执行时刻的状态信息。
步骤1-2,根据步骤1-1得到的状态信息,将其保存到执行日志中。
步骤2,根据步骤1收集的执行日志,进行后向污点分析并获取污染指令集合,具体包括:
步骤2-1,根据执行日志中的状态信息构建使用节点与定义节点。首先对物联网固件汇编代码中的每条汇编指令构建使用节点与定义节点。具体而言,对于包含个源操作数的指令,其个源操作数定义为,初始化条指令的使用节点,其中每个使用节点由用于数据读取的寄存器与内存读取的具体地址构成。同样地,对于包含个目的操作数的指令,其个目的操作数定义为,初始化条指令的定义节点,其中每个定义节点由用于数据写入的寄存器与内存写入的具体地址构成。
步骤2-2,根据使用节点与定义节点,构建使用-定义链。具体而言,对于顺序执行的条汇编指令所组成的序列,当时,称在的执行流上游,在的执行流下游。若执行流下游指令的一个源操作数的值在执行流上游指令的一个目的操作数中被赋值,则将该使用节点与该定义节点互相关联。
本实施例中,所述的关联是指,当两个节点被关联时,若一个节点的信息已知,可以获取与其关联的另一个节点的信息。通过关联上游定义节点与下游使用节点,构建定义-使用链,链上任一节点与其上游的定义节点与下游的使用节点相关联。
步骤2-3,根据执行日志中保存的故障发生时的指令寄存器信息,确定污点汇点,并通过后向污点分析确定污染指令集合。具体而言,所述的污点汇点是指故障发生时刻所执行的汇编指令中的一个或多个使用节点。进行后向污点分析时,根据污点汇点中的使用节点,获取其关联的上游定义节点,并将这些定义节点所在的汇编指令标记为污染指令。随后,根据这些污点指令的使用节点,继续获取关联的上游定义节点,并将其所在的汇编指令标记为污染指令。不断重复执行此行为,直到无法获取到上游定义节点。此时所有污染指令构成污染指令集合。
本实施例中,污染指令集合包含与物联网故障相关的指令,可以帮助安全审计人员对故障进行根因分析。然而此时的指令集合中包含大量潜在的无关或弱相关指令,需要通过指令行为进行进一步优选,帮助安全审计人员手动分析。
步骤3,对物联网固件进行反汇编分析,获取程序执行的指令行为信息并计算污染指令综合怀疑值,具体包括:
步骤3-1,对固件进行反汇编分析,获取程序执行的指令行为信息。
本实施例中,使用跨架构反汇编工具Capstone对物联网固件进行反汇编分析,获得程序执行的指令行为信息,所述指令行为信息包括显式寄存器读写信息、隐式寄存器读写信息与地址跳转信息。具体而言,所述显式寄存器是指:物联网固件的指令中目的操作数或源操作数直接包含了寄存器编号,该寄存器编号所指的寄存器即为显式寄存器,目的操作数与源操作数直接包含的寄存器编号所指的寄存器都为该指令的显式寄存器。所述隐式寄存器是指:物联网固件的指令中目的操作数或源操作数并没有直接包含该寄存器的编号,但指令执行时该寄存器的内容也被读写,该寄存器即为隐式寄存器,目的操作数与源操作数间接包含的寄存器编号所指的寄存器都为该指令的隐式寄存器。如图2所示,在本实施例中,物联网固件包括指令和指令,指令中,被写入的显式寄存器为通用寄存器,被读取与写入的隐式寄存器为栈寄存器,则指令的指令行为信息为寄存器写入以及寄存器读取、写入。所述地址跳转是指,指令执行后,程序计数器被修改的情况。例如指令执行后,程序计数器的内容被修改为通用寄存器的值,则指令的指令行为信息为程序计数器被修改为寄存器的值。需要说明的是,图2中固件汇编代码仅为帮助本领域研究人员进一步理解本发明所述方法而举例示意,并不限定本方法所分析的汇编指令具体类型。
步骤3-2,根据步骤3-1得到的指令行为信息,分析循环执行结构并计算执行流怀疑值,解析步骤1-2的执行日志,根据内存读取与写入时使用的具体数据值、故障发生时的数据寄存器信息计算数据流怀疑值,最后计算污染指令综合怀疑值。具体而言,根据指令寄存器信息以及地址跳转信息分析物联网固件的汇编指令执行顺序,若存在连续执行的指令序列,其中表示同一地址跳转指令,则指令序列称为循环执行结构,将循环执行结构中每条汇编指令的执行流怀疑值设为相等的值,其余指令的执行流怀疑值皆为0。在本实施例中循环执行结构中指令的执行流怀疑值设为-1。对于包含显示寄存器读写信息和/或隐式寄存器读写信息的指令,调取执行日志中对应指令执行时内存读取与写入时使用的具体数据值与故障发生时的数据寄存器信息进行对比,若其被读写的任一寄存器中包含与故障发生时的任一寄存器或内存相同的数据,则将该汇编指令的数据流怀疑值设为相等的值,其余指令的数据流怀疑值皆为0。在本实施例中设为100。最后,对于步骤2-3所获得的污染指令集合中所有污染指令,计算每条污染指令的综合怀疑值,其中为该污染指令执行的次数。
步骤4,根据步骤2得到的污染指令集合与步骤3得到的综合怀疑值,优选故障根本原因相关指令,作为最终的输出结果。具体内容包括:
步骤4-1,对于步骤2得到的污染指令集合,将其中的污染指令按汇编指令执行逆序进行初步排序。对顺序执行的指令序列,其中为污染指令集合中的指令数量,对其逆序排列为。通过初步排序,靠近故障发生处的指令具有更靠前的排名,且排名靠前的指令具有更高的分析价值。
步骤4-2,根据综合怀疑值大小,由大到小对初步排序后的指令序列进行重新排序,获取序列作为物联网固件故障根本原因相关的优选指令序列。设物联网固件故障根本原因位于指令的概率为,则综合怀疑值与正相关,即。
最后由安全审计人员对优选指令序列中的指令进行依次排查,确认物联网固件故障根本原因。不失一般性地,若固件故障根本原因实际上位于第条指令,则仅需分析条指令即可确认故障根本原因。
本实施例中,通过对怀疑值进行排序,使最小化,即具有更高怀疑值的指令处于优选指令序列中更靠前的位置,在安全审计人员最终手动分析确认物联网固件故障根本原因时有更高的分析优先级,从而降低手动分析的时间成本,提高了故障修复效率。
基于同一发明构思,实施例还提出了一种基于指令行为的物联网固件故障根因筛选系统。如图3所示,包括执行日志收集模块、后向污点分析模块、指令行为分析模块以及故障根因分析模块。
执行日志收集模块用于运行物联网固件,收集汇编指令执行的状态信息并保存在执行日志;
后向污点分析模块用于对执行日志进行后向污点分析,将执行流上游和下游的定义节点与使用节点进行关联,从而构建定义-使用链,并基于定义-使用链确定污染指令集合;
指令行为分析模块用于对物联网固件进行反汇编分析,从而获取指令行为信息,进一步得到循环执行结构与指令读写的故障数据信息,综合计算执行流怀疑值与数据流怀疑值,根据执行流怀疑值与数据流怀疑值计算综合指令怀疑值;
故障根因分析模块用于根据汇编指令执行逆序对污染指令集合进行初步排序,对初步排序结果进行重新排序,从而获取物联网固件故障根本原因相关的优选指令序列。关于上述实施例中的系统,其中各个单元或模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述的各个模块,都可以是或者也可以不是物理上分开的。另外,在本发明中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于指令行为的物联网固件故障根因筛选方法,其特征在于,包括以下步骤:
S1:基于崩溃测试样例仿真运行物联网固件,运行过程中物联网固件内的汇编指令被执行,收集汇编指令执行的状态信息,所述状态信息包括汇编指令执行、故障发生时的寄存器信息以及内存读写所使用的具体数据值、数据寄存器信息和内存地址;
S2:基于所收集的状态信息进行后向污点分析,获取污染指令集合;
S3:对物联网固件进行反汇编分析,获取物联网固件的指令行为信息,基于指令行为信息计算污染指令集合中每条污染指令的综合怀疑值;
S4:根据汇编指令执行逆序和综合怀疑值大小对污染指令集合重排序,排序后得到优选指令序列,所述优选指令序列中,排名越前的指令是物联网固件故障根本原因的概率越大。
2.根据权利要求1所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S1中,所述的仿真运行采用物联网固件仿真器。
3.根据权利要求1所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S1中,所述汇编指令执行的状态信息具体包括:1)汇编指令执行时所使用的指令寄存器信息;2)内存读取或写入时所使用的具体数据值、数据寄存器信息和内存地址;3)汇编指令执行后发生故障时的所使用的数据寄存器信息与指令寄存器信息。
4.根据权利要求1所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S2中,所述基于所收集的状态信息进行后向污点分析,获取污染指令集合,具体为:
S2.1:对每条汇编指令构建使用节点与定义节点,所述的使用节点由汇编指令中用于内存读取的数据寄存器与内存地址构成,所述的定义节点由汇编指令中用于内存写入的数据寄存器与内存地址构成;
S2.2:若汇编指令中两个指令存在执行流上下游关系,且执行流下游指令的源操作数在执行流上游指令的目的操作数中被赋值,则将执行流下游指令的使用节点与执行流上游指令的定义节点相关联,所有相关联的使用节点和定义节点及其关联信息构成使用-定义链;
S2.3:根据所述指令执行的状态信息中的故障发生时的寄存器信息,将故障发生时刻所执行的汇编指令的使用节点确定为污点汇点,根据污点汇点以及所述使用-定义链进行后向污点分析,确定污染指令集合。
5.根据权利要求4所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S2.3中,所述的根据污点汇点以及所述使用-定义链进行后向污点分析,确定污染指令集合,具体为:
(a)、在污点汇点的上游获取与污点汇点相关联的定义节点,并将获取的定义节点所在的汇编指令标记为污染指令;
(b)、根据已被标记的污点指令的使用节点,在使用节点的上游获取与该使用节点相关联的定义节点,并将获取的定义节点所在的汇编指令标记为污染指令;
(c)、重复执行步骤(b),直到无法获取到更多相关联的定义节点,所有污染指令组成污染指令集合。
6.根据权利要求1所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S3中,所述物联网固件的指令行为信息包括显式寄存器读写信息、隐式寄存器读写信息与地址跳转信息。
7.根据权利要求6所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S3中,所述计算污染指令集合中每条污染指令的综合怀疑值具体为:
根据所述汇编指令执行的状态信息中汇编指令执行时的寄存器信息以及指令行为信息中的地址跳转信息,分析物联网固件中包含的循环执行结构,将构成循环执行结构的汇编指令的执行流怀疑值均设为相等的小于0的值,其余汇编指令的执行流怀疑值皆为0;同时对于包含显示寄存器读写信息和/或隐式寄存器读写信息的汇编指令,根据所述汇编指令执行的状态信息中对应的内存读写所使用的具体数据值与故障发生时的寄存器信息进行对比分析,若其被读写的任一寄存器中包含与故障发生时的任一寄存器或内存相同的数据,则将该汇编指令的数据流怀疑值设为相等的大于0的值,其余汇编指令的数据流怀疑值皆为0;对于污染指令集合中所有污染指令,结合污染指令的执行流怀疑值和数据流怀疑值计算每条污染指令的综合怀疑值。
8.根据权利要求7所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S3中,所述结合污染指令的执行流怀疑值和数据流怀疑值计算每条污染指令的综合怀疑值,计算方法为:
其中,为当前污染指令的综合怀疑值,为当前污染指令的执行流怀疑值,为当前污染指令的数据流怀疑值,为当前污染指令执行的次数。
9.根据权利要求1所述的基于指令行为的物联网固件故障根因筛选方法,其特征在于,步骤S4中,所述根据汇编指令执行逆序和综合怀疑值大小对污染指令集合重排序具体为:
先根据汇编指令执行逆序对污染指令集合进行初步排序,初步排序结果再根据所述综合怀疑值由大到小进行重新排序,重新排序后的指令序列即为优选指令序列。
10.一种基于指令行为的物联网固件故障根因筛选系统,用于实现权利要求1所述的物联网固件故障根因筛选方法,其特征在于,所述系统包括:
执行日志收集模块,用于仿真运行固件并收集汇编指令执行的状态信息;
后向污点分析模块,用于基于所收集的状态信息进行后向污点分析,获取污染指令集合;
指令行为分析模块,用于对物联网固件进行反汇编分析,获取指令行为信息,并基于指令行为信息计算污染指令集合中每条污染指令的综合怀疑值;
故障根因分析模块,用于根据汇编指令执行逆序和综合怀疑值对污染指令集合重排序,得到优选指令序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410995403.8A CN118524003B (zh) | 2024-07-24 | 一种基于指令行为的物联网固件故障根因筛选方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410995403.8A CN118524003B (zh) | 2024-07-24 | 一种基于指令行为的物联网固件故障根因筛选方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118524003A true CN118524003A (zh) | 2024-08-20 |
CN118524003B CN118524003B (zh) | 2024-09-27 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016014956A (ja) * | 2014-07-01 | 2016-01-28 | Kddi株式会社 | テイント解析装置、テイント解析方法、およびプログラム |
JP6867066B1 (ja) * | 2019-11-20 | 2021-04-28 | ▲広▼州大学 | 動的ステイン分析に基づくメモリ分析方法及び装置 |
CN115017516A (zh) * | 2022-06-02 | 2022-09-06 | 电子科技大学 | 一种基于符号执行的模糊测试方法 |
CN117556388A (zh) * | 2023-11-03 | 2024-02-13 | 中国人民解放军国防科技大学 | 面向固件全系统仿真的动态污点分析方法及系统 |
CN117744087A (zh) * | 2023-12-07 | 2024-03-22 | 浙江大学 | 基于静态分析的智能设备远程代码执行漏洞检测方法 |
CN117909160A (zh) * | 2024-03-19 | 2024-04-19 | 华中科技大学 | 基于物联网的固件崩溃分析方法及装置 |
CN118094567A (zh) * | 2024-04-15 | 2024-05-28 | 西北工业大学 | 一种基于x86-64指令集的二进制代码静态分析方法 |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016014956A (ja) * | 2014-07-01 | 2016-01-28 | Kddi株式会社 | テイント解析装置、テイント解析方法、およびプログラム |
JP6867066B1 (ja) * | 2019-11-20 | 2021-04-28 | ▲広▼州大学 | 動的ステイン分析に基づくメモリ分析方法及び装置 |
CN115017516A (zh) * | 2022-06-02 | 2022-09-06 | 电子科技大学 | 一种基于符号执行的模糊测试方法 |
CN117556388A (zh) * | 2023-11-03 | 2024-02-13 | 中国人民解放军国防科技大学 | 面向固件全系统仿真的动态污点分析方法及系统 |
CN117744087A (zh) * | 2023-12-07 | 2024-03-22 | 浙江大学 | 基于静态分析的智能设备远程代码执行漏洞检测方法 |
CN117909160A (zh) * | 2024-03-19 | 2024-04-19 | 华中科技大学 | 基于物联网的固件崩溃分析方法及装置 |
CN118094567A (zh) * | 2024-04-15 | 2024-05-28 | 西北工业大学 | 一种基于x86-64指令集的二进制代码静态分析方法 |
Non-Patent Citations (4)
Title |
---|
PEIYU LIU等: "IFIZZ: Deep-State and Efficient Fault-Scenario Generation to Test IoT Firmware", 2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 20 January 2022 (2022-01-20) * |
SAJEDA PARVEEN等: "A Mutation Framework for Evaluating Security Analysis Tools in IoT Applications", 2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2 April 2020 (2020-04-02) * |
董国良;臧洌;李航;甘露;郭咏科;: "基于污点分析的二进制程序漏洞检测", 计算机技术与发展, no. 03, 4 December 2017 (2017-12-04) * |
黄克振;连一峰;陈恺;张颖君;康恺;: "基于标志位差异分析的整数溢出漏洞溢出点定位方法", 计算机科学, no. 12, 15 December 2014 (2014-12-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140096115A1 (en) | Method and apparatus for providing change-related information | |
US8645761B2 (en) | Precise fault localization | |
US20030131284A1 (en) | Method and apparatus for organizing warning messages | |
CN102402479B (zh) | 用于静态分析的中间表示结构 | |
US8612944B2 (en) | Code evaluation for in-order processing | |
US20150143179A1 (en) | System and Method for Progressive Fault Injection Testing | |
US11275860B2 (en) | System and method for software verification | |
CN107526970B (zh) | 基于动态二进制平台检测运行时程序漏洞的方法 | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测系统 | |
CN110941552A (zh) | 一种基于动态污点分析的内存分析方法及装置 | |
EP3264274B1 (en) | Input discovery for unknown program binaries | |
JP2018026135A (ja) | 静的解析警告の効率的な運用のための原因ポイント解析のためのシステム及び方法 | |
CN112925524A (zh) | 一种检测驱动程序中不安全直接存储器访问的方法及装置 | |
CN114238980B (zh) | 一种工控设备漏洞挖掘方法、系统、设备及存储介质 | |
CN108874656A (zh) | 代码测试方法、装置、可读存储介质及计算机设备 | |
WO2014142876A1 (en) | Kernel functionality checker | |
CN116738436B (zh) | 一种漏洞可达性分析方法、系统、计算机设备和处理器 | |
US10546080B1 (en) | Method and system for identifying potential causes of failure in simulation runs using machine learning | |
KR102090229B1 (ko) | 바이너리에 대한 보안 취약점 및 그 원인 위치의 식별 방법 및 그 장치 | |
CN118524003A (zh) | 一种基于指令行为的物联网固件故障根因筛选方法和系统 | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
CN104503837A (zh) | 基于偏序规约的中断驱动系统有界模型检验方法 | |
JP4957521B2 (ja) | ソフトウェア部分テストシステム、それに用いる方法およびプログラム | |
CN106294130A (zh) | 一种单元测试方法及装置 | |
Van Thuy et al. | Automated large program repair based on big code |
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 |