CN116561768A - 设备固件漏洞检测方法、装置、设备及存储介质 - Google Patents
设备固件漏洞检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116561768A CN116561768A CN202310574335.3A CN202310574335A CN116561768A CN 116561768 A CN116561768 A CN 116561768A CN 202310574335 A CN202310574335 A CN 202310574335A CN 116561768 A CN116561768 A CN 116561768A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- component
- firmware
- information
- character string
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000003068 static effect Effects 0.000 claims description 66
- 230000002776 aggregation Effects 0.000 description 15
- 238000004220 aggregation Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004931 aggregating effect Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008439 repair process Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y30/00—IoT infrastructure
- G16Y30/10—Security thereof
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/50—Safety; Security of things, users, data or systems
-
- 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
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种设备固件漏洞检测方法、装置、设备及存储介质,包括:获取待测固件中各组件的组件信息,将各组件信息的第一字符串与预设漏洞库中的各漏洞信息的第二字符串进行距离匹配,根据距离匹配结果确定各组件信息与各漏洞信息之间的相似距离,将各组件信息对应的相似距离与预设距离阈值进行比对,根据比对结果确定各组件中存在漏洞的目标组件;由于本发明通过将待测固件与预设漏洞库中的各漏洞进行字符串距离匹配,确定待测固件中各组件信息与各漏洞信息之间的相似距离,从而确定待测固件中存在漏洞的目标组件,在确保固件漏洞检测准确性的同时,提升了固件的安全检测效率,有效降低了物联网设备更新固件时的安全风险。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种设备固件漏洞检测方法、装置、设备及存储介质。
背景技术
近年来,随着入网的物联网设备(Internet of Things,IoT)的数量和种类迅速增长,物联网设备几乎已经融入各行各业,如工业、能源业等领域,一旦物联网设备被恶意利用将造成广泛的影响。
因此,为了确保物联网设备的安全性,现有技术中通常通过对物联网设备的固件进行分析,以检测物联网设备的漏洞。但是,在实际应用中,检测固件安全性的效率较低,无法高效地检测出物联网固件中存在漏洞的组件,导致物联网设备在进行固件更新时的安全校验过程耗时较长,极其影响用户体验。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种设备固件漏洞检测方法、装置、设备及存储介质,旨在解决现有技术无法高效地检测出物联网固件中存在漏洞的组件,导致物联网设备在进行固件更新时的安全校验过程耗时较长的技术问题。
为实现上述目的,本发明提供了一种设备固件漏洞检测方法,所述方法包括以下步骤:
获取待测固件中各组件的组件信息;
将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
将各所述组件信息对应的相似距离与预设距离阈值进行比对;
根据比对结果确定所述各组件中存在漏洞的目标组件。
可选地,所述将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配,包括:
从所述组件信息中提取各组件的组件名称;
将各所述组件名称与预设漏洞库中各漏洞名称进行匹配;
根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集;
将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
可选地,所述将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,包括:
获取各所述组件的组件名称的第一名称字符串;
遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;
将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
可选地,所述将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配,包括:
从所述组件信息中提取各组件的组件版本;
将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配;
根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;
将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
可选地,所述将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配,包括:
获取各所述组件的组件版本的第一版本字符串;
遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;
将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
可选地,所述获取待测固件中各组件的组件信息,包括:
对待测固件进行解包;
获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;
基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;
遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;
对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
可选地,所述获取待测固件中各组件的组件信息,包括:
获取物联网设备的历史固件,以及所述历史固件的历史固件信息;
基于所述历史固件信息提取所述历史固件的历史静态特征;
基于所述历史静态特征构建静态特征库;
根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;
根据特征字符串匹配结果确定所述待测固件中包含的静态特征;
基于所述静态特征获取待测固件中各组件的组件信息。
可选地,所述获取待测固件中各组件的组件信息,包括:
对待测固件进行反汇编,获得所述待测固件的程序清单;
对所述程序清单进行语义分析,获得所述待测固件的程序运行逻辑;
从所述程序运行逻辑中提取所述待测固件中各组件的组件信息。
可选地,所述将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配之前,还包括
获取物联网设备的历史固件和历史日志;
获取所述历史固件的固件厂商上报的第一漏洞数据,并提取所述历史日志中所述物联网设备本地记录的第二漏洞数据;
基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,所述漏洞库中包含多个漏洞,以及各漏洞对应的漏洞信息。
可选地,所述基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,包括:
对所述第一漏洞数据和所述第二漏洞数据进行聚合,获得漏洞聚合数据;
确定所述漏洞聚合数据中包含的各漏洞,并基于所述漏洞聚合数据提取各所述漏洞对应的漏洞信息;
基于各所述漏洞和各所述漏洞对应的漏洞信息构建预设漏洞库。
此外,为实现上述目的,本发明还提出一种设备固件漏洞检测装置,所述设备固件漏洞检测装置包括:
信息获取模块,用于获取待测固件中各组件的组件信息;
距离匹配模块,用于将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
相似比对模块,用于根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
距离比对模块,用于将各所述组件信息对应的相似距离与预设距离阈值进行比对;
漏洞检测模块,用于根据比对结果确定所述各组件中存在漏洞的目标组件。
可选地,所述距离匹配模块,还用于从所述组件信息中提取各组件的组件名称,将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集,将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
可选地,所述距离匹配模块,还用于获取各所述组件的组件名称的第一名称字符串;遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
可选地,所述距离匹配模块,还用于从所述组件信息中提取各组件的组件版本;将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配;根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
可选地,所述距离匹配模块,还用于获取各所述组件的组件版本的第一版本字符串;遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
可选地,所述信息获取模块,还用于对待测固件进行解包;获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
可选地,所述信息获取模块,还用于获取物联网设备的历史固件,以及所述历史固件的历史固件信息;基于所述历史固件信息提取所述历史固件的历史静态特征;基于所述历史静态特征构建静态特征库;根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;根据特征字符串匹配结果确定所述待测固件中包含的静态特征;基于所述静态特征获取待测固件中各组件的组件信息。
可选地,所述信息获取模块,还用于对待测固件进行反汇编,获得所述待测固件的程序清单;对所述程序清单进行语义分析,获得所述待测固件的程序运行逻辑;从所述程序运行逻辑中提取所述待测固件中各组件的组件信息。
此外,为实现上述目的,本发明还提出一种设备固件漏洞检测设备,所述设备固件漏洞检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备固件漏洞检测程序,所述设备固件漏洞检测程序配置为实现如上文所述的设备固件漏洞检测方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有设备固件漏洞检测程序,所述设备固件漏洞检测程序被处理器执行时实现如上文所述的设备固件漏洞检测方法的步骤。
本发明通过获取待测固件中各组件的组件信息,将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配,根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离,将各所述组件信息对应的相似距离与预设距离阈值进行比对,根据比对结果确定所述各组件中存在漏洞的目标组件;由于本发明通过将待测固件中各组件对应的组件信息的第一字符串与各漏洞对应的漏洞信息的第二字符串进行距离匹配,从而准确地获取了各组件与预设漏洞库中各漏洞之间的相似距离,确定了待测固件中各组件与漏洞的相似程度,再基于相似距离确定待测固件中存在漏洞的目标组件,实现了高效地对待测固件中各组件进行漏洞检测,在确保固件漏洞检测准确性的同时,极大地降低了对固件的安全检测时长,准确地检测出了待测固件中存在漏洞的组件,有效降低了物联网设备更新固件时的安全风险。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备固件漏洞检测设备的结构示意图;
图2为本发明设备固件漏洞检测方法第一实施例的流程示意图;
图3为本发明设备固件漏洞检测方法第二实施例的流程示意图;
图4为本发明设备固件漏洞检测方法第三实施例的流程示意图;
图5为本发明设备固件漏洞检测装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备固件漏洞检测设备结构示意图。
如图1所示,该设备固件漏洞检测设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对设备固件漏洞检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备固件漏洞检测程序。
在图1所示的设备固件漏洞检测设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明设备固件漏洞检测设备中的处理器1001、存储器1005可以设置在设备固件漏洞检测设备中,所述设备固件漏洞检测设备通过处理器1001调用存储器1005中存储的设备固件漏洞检测程序,并执行本发明实施例提供的设备固件漏洞检测方法。
本发明实施例提供了一种设备固件漏洞检测方法,参照图2,图2为本发明一种设备固件漏洞检测方法第一实施例的流程示意图。
本实施例中,所述设备固件漏洞检测方法包括以下步骤:
步骤S10:获取待测固件中各组件的组件信息。
需要说明的是,本实施例应用于对物联网设备需要更新/升级的固件进行漏洞检测,从而避免物联网设备更新/升级固件的安全风险,由于目前的组件信息与漏洞信息之间没有同一规范,难以直接进行匹配和比较,从而无法准确地检测出固件中存在漏洞的组件,例如漏洞A的影响范围是组件DNSmasq的版本小于2.65,但是实际可能受物联网设备或用户所使用的编译环境等因素影响,该漏洞A的实际影响范围可能是2.55test2、2.50-2等,因此本实施例通过将待测固件中各组件对应的组件信息的第一字符串与各漏洞对应的漏洞信息的第二字符串进行距离匹配,从而准确地获取了各组件与预设漏洞库中各漏洞之间的相似距离,确定了待测固件中各组件与漏洞的相似程度,再基于相似距离确定待测固件中存在漏洞的目标组件,实现了高效地对待测固件中各组件进行漏洞检测,在确保固件漏洞检测准确性的同时,极大地降低了对固件的安全检测时长,准确地检测出了待测固件中存在漏洞的组件,有效降低了物联网设备更新固件时的安全风险。
应当理解的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的设备固件漏洞检测设备,例如计算机或物联网设备等,或者是其他能够实现相同或相似功能的装置或设备,此处以上述设备固件漏洞检测设备(以下简称漏洞检测设备)为例进行说明。
需要说明的是,待测固件可以是物联网设备进行固件更新或固件升级时需要进行漏洞检测的固件,组件可以是待测固件中的各功能组件,待测固件中包含有多个功能组件。上述组件信息可以是待测固件中各功能组件的相关信息,例如组件信息可包括组件名称、组件版本、组件描述信息、组件类型等信息。
应当理解的是,本实施例漏洞检测设备通过对待测固件解包,从解包后的待测固件中识别出固件所包含的组件,并从解包后的待测固件中获取各组件对应的组件信息,每个组件存在对应的组件信息。
在具体实现中,漏洞检测设备可通过解析待测固件中软件包管理器的配置文件获取待测固件中各组件的组件信息,也可以通过静态特征字符串匹配获得各组件的组件信息,也可以通过将待测固件中的各组件进行反汇编,采用静态分析提取各组件对应的组件信息。
进一步地,为了准确地获取待测固件中各组件所包含的组件信息,上述步骤S10,可包括:
对待测固件进行解包;
获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;
基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;
遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;
对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
需要说明的是,文件系统信息可以是待测固件中储存数据的文件系统,文件系统包含有文件系统信息,文件系统信息可包含有文件系统的数据格式、文件系统内的数据结构、文件系统储存类型等信息。上述目录树可以是解包后的待测固件的文件系统的文件结构。上述数据结构可以是解压数据的数据结构,例如数据结构可是解压数据的目录结构和数据层级关系。上述配置文件可以是待测固件的软件包管理器或程序包管理器的存放有组件信息(例如组件名称、组件版本、组件描述信息等)的文件。上述目标路可以是文件系统内存放有配置文件的路径,例如目标路径可以是根目录路径或其他路径等。
应当理解的是,漏洞检测设备对所述待测固件进行解包,获得所述待测固件的解压数据,为了确定解压数据所包含的文件,根据待测固件的文件系统确定所述解压数据的目录树,根据所述目录树获取所述解压数据的数据结构,基于数据结构确定解压数据的各文件路径,基于文件路径确定存放有配置文件的目标路径,沿着目标路径对解压数据进行遍历,获得待测固件的配置文件,从配置文件中提取待测固件中各组件的组件信息。
进一步地,为了避免包管理器不统一导致文件识别失效,从而导致组件信息获取存在遗漏,上述步骤S10,可包括:
获取物联网设备的历史固件,以及所述历史固件的历史固件信息;
基于所述历史固件信息提取所述历史固件的历史静态特征;
基于所述历史静态特征构建静态特征库;
根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;
根据特征字符串匹配结果确定所述待测固件中包含的静态特征;
基于所述静态特征获取待测固件中各组件的组件信息。
需要说明的是,历史固件可以是物联网设备历史使用过的固件,历史固件信息可以是物联网设备历史使用的各固件过程中的日志信息以及历史固件的各组件信息。上述历史静态特征可包括历史固件的组件名称、组件描述信息、用于识别该组件的特征码、用于提取组件版本的正则表达式等信息。
应当理解的是,由于不同的固件可能存在多种安装方式,因此不同的固件可能存在包管理器不统一的情况,为了避免信息获取存在遗漏,本实施例漏洞检测设备通过获取物联网设备以前使用或常用的历史固件,对历史固件信息分析,并获取历史固件的历史日志,基于历史日志以及信息分析结果提取历史固件中各组件的静态特征,基于静态特征构建静态特征库,并技术静态特征库对待测固件进行特征字符串匹配,从而确定待测固件中与静态特征库中各特征匹配的各组件,并获取各组件的组件信息。
进一步地,为了提升待测固件的分析效率,上述步骤S10,可包括:
对待测固件进行反汇编,获得所述待测固件的程序清单;
对所述程序清单进行语义分析,获得所述待测固件的程序运行逻辑;
从所述程序运行逻辑中提取所述待测固件中各组件的组件信息。
应当理解的是,为了准确地提取出组件信息,漏洞检测设备通过对待测固件进行反汇编静态分析,模拟待测估计的运行过程,获取运行过程中待测固件各组件的程序运行逻辑,从而运行逻辑中读取数字和其他字符串,将数字输出为版本号,从而获得待测固件中各组件的组件信息。
步骤S20:将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配。
需要说明的是,第一字符串可以是待测固件中各组件对应的组件信息中所包含的多种类型的字符串,第一字符串可包括各组件的组件名称字符串、组件版本字符串、组件描述字符串等。上述第二字符串可以是预设漏洞库中各漏洞对应的漏洞信息的字符串,第二字符串可包括各漏洞的漏洞名称字符串、漏洞版本字符串、漏洞描述字符串等。
上述预设漏洞库可以是漏洞检测设备预先基于公开的组件漏洞构建的数据库,预设漏洞库中包含有至少一个漏洞(所述漏洞可以是存在漏洞的组件)和所述漏洞对应的漏洞信息(漏洞信息可以是存在漏洞的漏洞组件对应的信息),上述漏洞信息可包括漏洞的漏洞编号、漏洞影响的厂商和软件名称及版本范围、漏洞类型、严重等级、漏洞描述等信息。
应当理解的是,本实施例漏洞检测设备通过获取各组件对应的组件信息中包含的第一字符串,遍历预设漏洞库,基于遍历结果获取预设漏洞库中各漏洞对应的漏洞信息中包含的第二字符串,将待测固件中各组件的第一字符串与各漏洞的第二字符串进行字符串编辑距离匹配,从而确定二者之间的最小编辑距离,实现了对组件漏洞的模糊匹配,在确保漏洞匹配准确性的同时大幅提升了漏洞匹配效率。
例如,漏洞检测设备获取待测固件中各组件的组件信息中包含的名称字符串、版本字符串和描述字符串,遍历预设漏洞库,基于遍历结果获取预设漏洞库中各漏洞对应的漏洞信息中包含的名称字符串、版本字符串和描述字符串,将组件信息与漏洞信息中同类型的字符串进行编辑距离匹配,确定二者中名称字符串的最小编辑距离、版本字符串的最小编辑距离和描述字符串的最小编辑距离。
步骤S30:根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离。
需要说明的是,相似距离可以是待测固件中各组件的组件信息所包含的字符串与漏洞信息中所包含的字符串之间的最小编辑距离,也可以是待测固件的各组件信息的字符串与预设漏洞库中各漏洞信息的字符串之间的距离差距,即待测固件中各组件与预设漏洞库中漏洞组件的相似程度,若二者的相似距离越低,则二者的相似程度越高;若二者的相似距离越高,则二者的相似程度越低。
应当理解的是,为了准确地检测待测固件中各组件是否为存在漏洞,本实施例漏洞检测设备通过对各组件进行漏洞模糊匹配,确定各组件与预设漏洞库中各漏洞组件之间的字符串的最小编辑距离,从而确定各组件与预设漏洞库中各漏洞组件之间的相似程度。
步骤S40:将各所述组件信息对应的相似距离与预设距离阈值进行比对。
需要说明的是,预设距离阈值可以是预先设置的用于判断组件是否与漏洞相似的阈值。
应当理解的是,将各组件信息对应的相似距离与预设距离阈值进行比对,若相似距离低于预设距离阈值,则判定该组件与漏洞组件相似程度较高,认为该组件存在漏洞;若相似距离未低于预设距离阈值,则判定该组件与漏洞组件相似程度较低,认为该组件不存在漏洞。
例如,A组件与预设漏洞库中各漏洞组件之间的相似距离分别为1个字符和3个字符,A组件与预设漏洞库中各漏洞组件之间的相似距离分别为4个字符和6个字符,预设距离阈值为3个字符,由于A组件的相似距离低于预设距离阈值,则判定A组件存在漏洞。
步骤S50:根据比对结果确定所述各组件中存在漏洞的目标组件。
需要说明的是,目标组件可以是与预设漏洞库中的漏洞组件相似程度较高的存在漏洞的组件。
在具体实现中,漏洞检测设备根据比对结果确定所述各组件中存在漏洞的目标组件,基于预设漏洞库中各漏洞的漏洞信息获取待测固件中所有存在漏洞的目标组件的漏洞描述信息、漏洞类型、漏洞严重等级等信息,基于上述信息获取目标组件对应的漏洞修复方案,并基于漏洞修复方案对目标组件的漏洞进行修复。
本实施例通过获取待测固件中各组件的组件信息,将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配,根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离,将各所述组件信息对应的相似距离与预设距离阈值进行比对,根据比对结果确定所述各组件中存在漏洞的目标组件;由于本实施例通过将待测固件中各组件对应的组件信息的第一字符串与各漏洞对应的漏洞信息的第二字符串进行距离匹配,从而准确地获取了各组件与预设漏洞库中各漏洞之间的相似距离,确定了待测固件中各组件与漏洞的相似程度,再基于相似距离确定待测固件中存在漏洞的目标组件,实现了高效地对待测固件中各组件进行漏洞检测,在确保固件漏洞检测准确性的同时,极大地降低了对固件的安全检测时长,准确地检测出了待测固件中存在漏洞的组件,有效降低了物联网设备更新固件时的安全风险。
参考图3,图3为本发明一种设备固件漏洞检测方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20,包括:
步骤S21:从所述组件信息中提取各组件的组件名称。
需要说明的是,组件名称可以是各功能组件的名称,组件名称包含在各组件的组件信息内。
应当理解的是,本实施例漏洞检测设备通过对各组件的组件信息进行静态特征匹配,基于特征匹配结果确定组件信息中的组件名称。
在具体实现中,漏洞检测设备通过获取物联网设备的历史固件对应的历史固件信息,对历史固件信息进行静态分析,获得各历史固件的静态特征规则,基于各历史固件的静态特征规则构建静态特征规则库,基于静态特征规则库对待测固件中的组件信息进行规则匹配,获得组件信息中符合名称规则数据,并将该数据输出为该组件的组件名称。
步骤S22:将各所述组件名称与预设漏洞库中各漏洞名称进行匹配。
应当理解的是,本实施例漏洞检测设备通过遍历预设漏洞库中的各漏洞,获得各漏洞的公开漏洞信息(所述公开漏洞信息可以是通过本地或云端采集的已公开的漏洞信息),从公开漏洞信息提取各漏洞的漏洞名称,将组件名称与漏洞名称进行字符串匹配,从而确定各组件与漏洞之间的名称相似程度。
进一步地,为了准确地对组件进行名称匹配,上述步骤S22,可包括:
步骤S221:获取各所述组件的组件名称的第一名称字符串;
步骤S222:遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;
步骤S223:将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
需要说明的是,第一名称字符串可以是各组件的组件名称的字符串。上述第二名称字符串可以是预设漏洞库中各漏洞组件名称的字符串。
应当理解的是,漏洞检测设备通过获取各组件的组件名称所包含的第一名称字符串,遍历预设漏洞库中的各漏洞,获取各漏洞的漏洞名称所包含的第二名称字符串,将第一名称字符串与第名称二字符串进行编辑距离匹配,确定第一名称字符串与第二名称字符串之间的最小编辑距离,从而确定各组件与各漏洞之间的名称相似程度。
步骤S23:根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集。
应当理解的是,漏洞检测设备根据匹配结果确定各组件名称与各漏洞名称之间的最小编辑距离(即名称相似距离),将各漏洞的名称相似距离与预设的名称距离阈值进行比对,将名称相似距离低于名称距离阈值的漏洞作为名称匹配的候选漏洞,并建立候选漏洞集合,从而实现了缩小漏洞匹配的数据处理量,并确保了漏洞匹配和漏洞检测准确性。
步骤S24:将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
应当理解的是,为了缩小后续的距离匹配范围,从而提升漏洞匹配效率,本实施例漏洞检测设备通过先对各组件名称与各漏洞名称之间进行字符串匹配,从而匹配出名称字符串相符的候选漏洞,再将各组件与各候选漏洞进行更多组件信息类型的字符串编辑距离匹配,例如将各组件的描述信息字符串与候选漏洞的描述信息字符串进行距离匹配,将各组件的版本字符串与候选漏洞的版本字符串进行距离匹配,将各组件的特征码字符串与候选漏洞的特征码字符串进行距离匹配。
进一步地,为了筛选出候选漏洞中与待测固件的各组件相符的漏洞,以降低数据处理量,提升漏洞检测效率,上述步骤S24,可包括:
步骤S241:从所述组件信息中提取各组件的组件版本;
步骤S242:获取各所述组件的组件版本的第一版本字符串;
步骤S243:遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;
步骤S244:将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
步骤S245:根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;
步骤S246:将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
需要说明的是,组件版本可以是功能组件的版本号,上述漏洞版本可以是预设漏洞库中各存在漏洞的功能组件的版本号。上述第一版本字符串可以是待测固件中各功能组件的组件版本所包含的字符串。上述第二版本字符串可以是预设漏洞库中各漏洞组件的漏洞版本所包含的字符串。
应当理解的是,为了进一步地缩小漏洞检测数据处理量,从而缩小漏洞筛选范围,提升漏洞匹配和漏洞检测效率,本实施例漏洞检测设备通过将各组件的组件版本所包含的字符串与候选漏洞集中各候选漏洞的漏洞版本所包含的字符串进行字符串编辑距离匹配,从而实现了将二者的版本号进行模糊匹配,确定各候选漏洞中与待测固件内各组件版本号匹配的目标漏洞,再将各组件的组件信息中包含的第一字符串与目标漏洞的漏洞信息中所包含的第二字符串进行字符串编辑距离匹配,从而确定各组件中与目标漏洞相似的目标组件。
本实施例通过从所述组件信息中提取各组件的组件名称,将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集,将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配;由于本实施例通过先将待测固件中各组件的组件名称与各漏洞的漏洞名称进行匹配,从而匹配出名称相似的候选漏洞,从而缩小了漏洞匹配范围,降低了候选的匹配处理量,再基于各组件的第一字符串与候选漏洞的第二字符串进行距离匹配,从而有效地提升了漏洞匹配效率,并确保了漏洞检测精度。
参考图4,图4为本发明一种设备固件漏洞检测方法第三实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20之前,包括:
步骤S201:获取物联网设备的历史固件和历史日志。
需要说明的是,历史固件可以是物联网设备历史使用过的固件,历史日志可以是物联网设备使用各历史固件时记录的各历史固件在运行过程中的日志信息,历史日志可包括各历史固件对应的历史静态特征和运行过程中的故障信息,所述历史静态特征可包括历史固件的组件名称、组件描述信息、用于识别该组件的特征码、用于提取组件版本的正则表达式等信息。
步骤S202:获取所述历史固件的固件厂商上报的第一漏洞数据,并提取所述历史日志中所述物联网设备本地记录的第二漏洞数据;
步骤S203:基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,所述漏洞库中包含多个漏洞,以及各漏洞对应的漏洞信息。
应当理解的是,为了提高固件数据库的数据全面性,本实施例中,可以从多个维度收集固件数据。
可以理解的是,物联网设备在接入物联网后,可以自动记录固件的运行日志,并基于运行日志上报固件数据,并在固件运行报错时进行漏洞记录,并将漏洞在本地记录为第二漏洞数据。
应当理解的是,固件厂商可以是历史固件的开发厂商,固件的固件厂商通常会在官方网站上上传固件资源和漏洞数据,本实施例中,还从互联网上收集物联网设备对应的固件厂商上报的第一漏洞数据。
进一步地,为了出现重复、错误数据,上述步骤S203,可包括:
步骤S2031:对所述第一漏洞数据和所述第二漏洞数据进行聚合,获得漏洞聚合数据;
步骤S2032:确定所述漏洞聚合数据中包含的各漏洞,并基于所述漏洞聚合数据提取各所述漏洞对应的漏洞信息;
步骤S2033:基于各所述漏洞和各所述漏洞对应的漏洞信息构建预设漏洞库。
可以理解的是,为了避免出现重复、错误数据,本实施例中,还对第一漏洞数据和第二漏洞数据进行聚合,获得漏洞聚合数据。
应当理解的是,对第一漏洞数据和第二漏洞数据进行聚合可以是对第一漏洞数据和第二漏洞数据中的重复数据进行删除,并对第一漏洞数据和第二漏洞数据中的无效数据进行修改或删除。
在具体实现中,漏洞检测设备通过对所述第一漏洞数据和所述第二漏洞数据进行聚合,获得漏洞聚合数据,对漏洞聚合数据进行数据清洗,以同一漏洞数据的字段,并剔除重复和无效的漏洞数据。
本实施例通过获取物联网设备的历史固件和历史日志,获取所述历史固件的固件厂商上报的第一漏洞数据,并提取所述历史日志中所述物联网设备本地记录的第二漏洞数据,基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,所述漏洞库中包含多个漏洞,以及各漏洞对应的漏洞信息;由于本实施例基于固件厂商上报的第一漏洞数据和物联网设备本地记录的第二漏洞数据构建预设漏洞库,从而提升了漏洞匹配的准确性,避免在对固件进行漏洞检测时再去获取相关漏洞信息的繁琐,提升了漏洞检测效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有设备固件漏洞检测程序,所述设备固件漏洞检测程序被处理器执行时实现如上文所述的设备固件漏洞检测方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参照图5,图5为本发明设备固件漏洞检测装置第一实施例的结构框图。
如图5所示,本发明实施例提出的设备固件漏洞检测装置包括:
信息获取模块10,用于获取待测固件中各组件的组件信息;
距离匹配模块20,用于将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
相似比对模块30,用于根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
距离比对模块40,用于将各所述组件信息对应的相似距离与预设距离阈值进行比对;
漏洞检测模块50,用于根据比对结果确定所述各组件中存在漏洞的目标组件。
进一步地,所述距离匹配模块20,还用于从所述组件信息中提取各组件的组件名称,将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集,将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
进一步地,所述距离匹配模块20,还用于获取各所述组件的组件名称的第一名称字符串;遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
进一步地,所述距离匹配模块20,还用于从所述组件信息中提取各组件的组件版本;将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配;根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
进一步地,所述距离匹配模块20,还用于获取各所述组件的组件版本的第一版本字符串;遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
进一步地,所述信息获取模块10,还用于对待测固件进行解包;获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
进一步地,所述信息获取模块10,还用于获取物联网设备的历史固件,以及所述历史固件的历史固件信息;基于所述历史固件信息提取所述历史固件的历史静态特征;基于所述历史静态特征构建静态特征库;根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;根据特征字符串匹配结果确定所述待测固件中包含的静态特征;基于所述静态特征获取待测固件中各组件的组件信息。
进一步地,所述信息获取模块10,还用于对待测固件进行反汇编,获得所述待测固件的程序清单;对所述程序清单进行语义分析,获得所述待测固件的程序运行逻辑;从所述程序运行逻辑中提取所述待测固件中各组件的组件信息。
进一步地,所述设备固件漏洞检测装置还包括:
漏洞库构建模块60,用于获取物联网设备的历史固件和历史日志;获取所述历史固件的固件厂商上报的第一漏洞数据,并提取所述历史日志中所述物联网设备本地记录的第二漏洞数据;基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,所述漏洞库中包含多个漏洞,以及各漏洞对应的漏洞信息。
进一步地,所述漏洞库构建模块60,还用于对所述第一漏洞数据和所述第二漏洞数据进行聚合,获得漏洞聚合数据;确定所述漏洞聚合数据中包含的各漏洞,并基于所述漏洞聚合数据提取各所述漏洞对应的漏洞信息;基于各所述漏洞和各所述漏洞对应的漏洞信息构建预设漏洞库。
本实施例通过获取待测固件中各组件的组件信息,将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配,根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离,将各所述组件信息对应的相似距离与预设距离阈值进行比对,根据比对结果确定所述各组件中存在漏洞的目标组件;由于本实施例通过将待测固件中各组件对应的组件信息的第一字符串与各漏洞对应的漏洞信息的第二字符串进行距离匹配,从而准确地获取了各组件与预设漏洞库中各漏洞之间的相似距离,确定了待测固件中各组件与漏洞的相似程度,再基于相似距离确定待测固件中存在漏洞的目标组件,实现了高效地对待测固件中各组件进行漏洞检测,在确保固件漏洞检测准确性的同时,极大地降低了对固件的安全检测时长,准确地检测出了待测固件中存在漏洞的组件,有效降低了物联网设备更新固件时的安全风险。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的设备固件漏洞检测方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本申请公开了A1、一种设备固件漏洞检测方法,所述设备固件漏洞检测方法包括:
获取待测固件中各组件的组件信息;
将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
将各所述组件信息对应的相似距离与预设距离阈值进行比对;
根据比对结果确定所述各组件中存在漏洞的目标组件。
A2、如A1所述的设备固件漏洞检测方法,所述将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配,包括:
从所述组件信息中提取各组件的组件名称;
将各所述组件名称与预设漏洞库中各漏洞名称进行匹配;
根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集;
将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
A3、如A2所述的设备固件漏洞检测方法,所述将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,包括:
获取各所述组件的组件名称的第一名称字符串;
遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;
将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
A4、如A2所述的设备固件漏洞检测方法,所述将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配,包括:
从所述组件信息中提取各组件的组件版本;
将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配;
根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;
将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
A5、如A4所述的设备固件漏洞检测方法,所述将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配,包括:
获取各所述组件的组件版本的第一版本字符串;
遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;
将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
A6、如A1至A5中任一项所述的设备固件漏洞检测方法,所述获取待测固件中各组件的组件信息,包括:
对待测固件进行解包;
获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;
基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;
遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;
对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
A7、如A1至A5中任一项所述的设备固件漏洞检测方法,所述获取待测固件中各组件的组件信息,包括:
获取物联网设备的历史固件,以及所述历史固件的历史固件信息;
基于所述历史固件信息提取所述历史固件的历史静态特征;
基于所述历史静态特征构建静态特征库;
根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;
根据特征字符串匹配结果确定所述待测固件中包含的静态特征;
基于所述静态特征获取待测固件中各组件的组件信息。
A8、如A1至A5中任一项所述的设备固件漏洞检测方法,所述获取待测固件中各组件的组件信息,包括:
对待测固件进行反汇编,获得所述待测固件的程序清单;
对所述程序清单进行语义分析,获得所述待测固件的程序运行逻辑;
从所述程序运行逻辑中提取所述待测固件中各组件的组件信息。
A9、如A1至A5中任一项所述的设备固件漏洞检测方法,所述将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配之前,还包括
获取物联网设备的历史固件和历史日志;
获取所述历史固件的固件厂商上报的第一漏洞数据,并提取所述历史日志中所述物联网设备本地记录的第二漏洞数据;
基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,所述漏洞库中包含多个漏洞,以及各漏洞对应的漏洞信息。
A10、如A9所述的设备固件漏洞检测方法,所述基于所述第一漏洞数据和所述第二漏洞数据构建预设漏洞库,包括:
对所述第一漏洞数据和所述第二漏洞数据进行聚合,获得漏洞聚合数据;
确定所述漏洞聚合数据中包含的各漏洞,并基于所述漏洞聚合数据提取各所述漏洞对应的漏洞信息;
基于各所述漏洞和各所述漏洞对应的漏洞信息构建预设漏洞库。
本申请还公开了B11、一种设备固件漏洞检测装置,所述设备固件漏洞检测装置包括:
信息获取模块,用于获取待测固件中各组件的组件信息;
距离匹配模块,用于将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
相似比对模块,用于根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
距离比对模块,用于将各所述组件信息对应的相似距离与预设距离阈值进行比对;
漏洞检测模块,用于根据比对结果确定所述各组件中存在漏洞的目标组件。
B12、如B11所述的设备固件漏洞检测装置,所述距离匹配模块,还用于从所述组件信息中提取各组件的组件名称,将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集,将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
B13、如B12所述的设备固件漏洞检测装置,所述距离匹配模块,还用于获取各所述组件的组件名称的第一名称字符串;遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
B14、如B12所述的设备固件漏洞检测装置,所述距离匹配模块,还用于从所述组件信息中提取各组件的组件版本;将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配;根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
B15、如B14所述的设备固件漏洞检测装置,所述距离匹配模块,还用于获取各所述组件的组件版本的第一版本字符串;遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
B16、如B11至B15中任一项所述的设备固件漏洞检测装置,所述信息获取模块,还用于对待测固件进行解包;获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
B17、如B11至B15中任一项所述的设备固件漏洞检测装置,所述信息获取模块,还用于获取物联网设备的历史固件,以及所述历史固件的历史固件信息;基于所述历史固件信息提取所述历史固件的历史静态特征;基于所述历史静态特征构建静态特征库;根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;根据特征字符串匹配结果确定所述待测固件中包含的静态特征;基于所述静态特征获取待测固件中各组件的组件信息。
B18、如B11至B15中任一项所述的设备固件漏洞检测装置,所述信息获取模块,还用于对待测固件进行反汇编,获得所述待测固件的程序清单;对所述程序清单进行语义分析,获得所述待测固件的程序运行逻辑;从所述程序运行逻辑中提取所述待测固件中各组件的组件信息。
本申请还公开了C19、一种设备固件漏洞检测设备,所述设备固件漏洞检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备固件漏洞检测程序,所述设备固件漏洞检测程序配置为实现如上所述的设备固件漏洞检测方法。
本申请还公开了D20、一种存储介质,所述存储介质上存储有设备固件漏洞检测程序,所述设备固件漏洞检测程序被处理器执行时实现如上所述的设备固件漏洞检测方法。
Claims (10)
1.一种设备固件漏洞检测方法,其特征在于,所述设备固件漏洞检测方法包括:
获取待测固件中各组件的组件信息;
将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
将各所述组件信息对应的相似距离与预设距离阈值进行比对;
根据比对结果确定所述各组件中存在漏洞的目标组件。
2.如权利要求1所述的设备固件漏洞检测方法,其特征在于,所述将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配,包括:
从所述组件信息中提取各组件的组件名称;
将各所述组件名称与预设漏洞库中各漏洞名称进行匹配;
根据匹配结果将预设漏洞库中与所述各组件名称匹配的漏洞作为候选漏洞,并基于所述候选漏洞,以及各所述候选漏洞对应的候选漏洞信息构建候选漏洞集;
将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配。
3.如权利要求2所述的设备固件漏洞检测方法,其特征在于,所述将各所述组件名称与预设漏洞库中各漏洞名称进行匹配,包括:
获取各所述组件的组件名称的第一名称字符串;
遍历预设漏洞库中的各漏洞,基于遍历结果确定各漏洞的漏洞名称,以及各所述漏洞名称的第二名称字符串;
将各所述组件名称的第一名称字符串与所述预设漏洞库中各所述漏洞名称的第二名称字符串进行匹配。
4.如权利要求2所述的设备固件漏洞检测方法,其特征在于,所述将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述候选漏洞信息中包含的第二字符串进行距离匹配,包括:
从所述组件信息中提取各组件的组件版本;
将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配;
根据匹配结果将所述候选漏洞集中与所述各组件版本匹配的候选漏洞作为目标漏洞;
将各所述组件信息中包含的第一字符串与所述候选漏洞集中各所述目标漏洞信息中包含的第二字符串进行距离匹配。
5.如权利要求4所述的设备固件漏洞检测方法,其特征在于,所述将各所述组件版本与所述候选漏洞集中各所述候选漏洞的漏洞版本进行匹配,包括:
获取各所述组件的组件版本的第一版本字符串;
遍历所述候选漏洞集,基于遍历结果确定各所述候选漏洞的漏洞版本,以及各所述漏洞版本的第二版本字符串;
将各所述组件版本的第一版本字符串与所述候选漏洞的第二版本字符串进行匹配。
6.如权利要求1至5中任一项所述的设备固件漏洞检测方法,其特征在于,所述获取待测固件中各组件的组件信息,包括:
对待测固件进行解包;
获取解包后的所述待测固件的文件系统,以及所述文件系统对应的目录树;
基于所述目录树确定所述文件系统中存放包管理器的配置文件的目标路径;
遍历所述目标路径,根据遍历结果获取所述待测固件中的所述配置文件;
对所述配置文件进行解析,获得所述待测固件中各组件的组件信息。
7.如权利要求1至5中任一项所述的设备固件漏洞检测方法,其特征在于,所述获取待测固件中各组件的组件信息,包括:
获取物联网设备的历史固件,以及所述历史固件的历史固件信息;
基于所述历史固件信息提取所述历史固件的历史静态特征;
基于所述历史静态特征构建静态特征库;
根据所述静态特征库中各历史静态特征对所述待测固件进行特征字符串匹配;
根据特征字符串匹配结果确定所述待测固件中包含的静态特征;
基于所述静态特征获取待测固件中各组件的组件信息。
8.一种设备固件漏洞检测装置,其特征在于,所述设备固件漏洞检测装置包括:
信息获取模块,用于获取待测固件中各组件的组件信息;
距离匹配模块,用于将各所述组件信息中包含的第一字符串与预设漏洞库中的各漏洞信息中包含的第二字符串进行距离匹配;
相似比对模块,用于根据距离匹配结果确定各所述组件信息与各所述漏洞信息之间的相似距离;
距离比对模块,用于将各所述组件信息对应的相似距离与预设距离阈值进行比对;
漏洞检测模块,用于根据比对结果确定所述各组件中存在漏洞的目标组件。
9.一种设备固件漏洞检测设备,其特征在于,所述设备固件漏洞检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备固件漏洞检测程序,所述设备固件漏洞检测程序配置为实现如权利要求1至7中任一项所述的设备固件漏洞检测方法。
10.一种存储介质,其特征在于,所述存储介质上存储有设备固件漏洞检测程序,所述设备固件漏洞检测程序被处理器执行时实现如权利要求1至7任一项所述的设备固件漏洞检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574335.3A CN116561768B (zh) | 2023-05-19 | 2023-05-19 | 设备固件漏洞检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574335.3A CN116561768B (zh) | 2023-05-19 | 2023-05-19 | 设备固件漏洞检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561768A true CN116561768A (zh) | 2023-08-08 |
CN116561768B CN116561768B (zh) | 2024-05-28 |
Family
ID=87487742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310574335.3A Active CN116561768B (zh) | 2023-05-19 | 2023-05-19 | 设备固件漏洞检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561768B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109375945A (zh) * | 2018-08-28 | 2019-02-22 | 中国人民解放军国防科技大学 | 物联网设备的固件版本探测方法及漏洞修复率评估方法 |
CN110347700A (zh) * | 2019-06-28 | 2019-10-18 | 北京威努特技术有限公司 | 静态漏洞库匹配方法、装置、电子设备及可读存储介质 |
CN111026433A (zh) * | 2019-12-23 | 2020-04-17 | 中国人民解放军国防科技大学 | 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质 |
CN111310178A (zh) * | 2020-01-20 | 2020-06-19 | 武汉理工大学 | 跨平台场景下的固件漏洞检测方法及系统 |
CN111400719A (zh) * | 2020-03-12 | 2020-07-10 | 中国科学院信息工程研究所 | 基于开源组件版本识别的固件脆弱性判别方法及系统 |
CN112685745A (zh) * | 2020-12-31 | 2021-04-20 | 北京梆梆安全科技有限公司 | 一种固件检测方法、装置、设备及存储介质 |
CN113515457A (zh) * | 2021-07-22 | 2021-10-19 | 苏州知微安全科技有限公司 | 一种物联网设备固件安全性检测方法及装置 |
CN113553219A (zh) * | 2021-07-30 | 2021-10-26 | 成都易我科技开发有限责任公司 | 应用于网络存储设备的数据恢复方法及相关设备 |
CN115114354A (zh) * | 2022-08-30 | 2022-09-27 | 广州市玄武无线科技股份有限公司 | 一种分布式数据存储及查询系统 |
-
2023
- 2023-05-19 CN CN202310574335.3A patent/CN116561768B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109375945A (zh) * | 2018-08-28 | 2019-02-22 | 中国人民解放军国防科技大学 | 物联网设备的固件版本探测方法及漏洞修复率评估方法 |
CN110347700A (zh) * | 2019-06-28 | 2019-10-18 | 北京威努特技术有限公司 | 静态漏洞库匹配方法、装置、电子设备及可读存储介质 |
CN111026433A (zh) * | 2019-12-23 | 2020-04-17 | 中国人民解放军国防科技大学 | 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质 |
CN111310178A (zh) * | 2020-01-20 | 2020-06-19 | 武汉理工大学 | 跨平台场景下的固件漏洞检测方法及系统 |
CN111400719A (zh) * | 2020-03-12 | 2020-07-10 | 中国科学院信息工程研究所 | 基于开源组件版本识别的固件脆弱性判别方法及系统 |
CN112685745A (zh) * | 2020-12-31 | 2021-04-20 | 北京梆梆安全科技有限公司 | 一种固件检测方法、装置、设备及存储介质 |
CN113515457A (zh) * | 2021-07-22 | 2021-10-19 | 苏州知微安全科技有限公司 | 一种物联网设备固件安全性检测方法及装置 |
CN113553219A (zh) * | 2021-07-30 | 2021-10-26 | 成都易我科技开发有限责任公司 | 应用于网络存储设备的数据恢复方法及相关设备 |
CN115114354A (zh) * | 2022-08-30 | 2022-09-27 | 广州市玄武无线科技股份有限公司 | 一种分布式数据存储及查询系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116561768B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
Zhang et al. | Enhancing state-of-the-art classifiers with api semantics to detect evolved android malware | |
US20200204575A1 (en) | Machine Learning Classification Using Markov Modeling | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
US10146531B2 (en) | Method and apparatus for generating a refactored code | |
RU2722692C1 (ru) | Способ и система выявления вредоносных файлов в неизолированной среде | |
US11157394B2 (en) | Exception cause analysis during computer program execution | |
US12093389B2 (en) | Data traffic characterization prioritization | |
CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN115146282A (zh) | 基于ast的源代码异常检测方法及其装置 | |
CN117113347A (zh) | 一种大规模代码数据特征提取方法及系统 | |
JP6282217B2 (ja) | 不正プログラム対策システムおよび不正プログラム対策方法 | |
US20210405980A1 (en) | Long method autofix engine | |
Wei et al. | Empirical study of the dynamic behavior of JavaScript objects | |
CN118364462A (zh) | 一种基于静态分析的软件供应链安全评估方法及系统 | |
CN112069052A (zh) | 一种异常对象检测方法、装置、设备及存储介质 | |
Pimenta et al. | Androidgyny: Reviewing clustering techniques for Android malware family classification | |
US11550910B2 (en) | Creating generic rules in a high dimensional sparse feature space using negative feedback | |
CN116561768B (zh) | 设备固件漏洞检测方法、装置、设备及存储介质 | |
CN109670317B (zh) | 一种基于原子控制流图的物联网设备继承性漏洞挖掘方法 | |
KR20150085741A (ko) | 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법 | |
CN116305131A (zh) | 脚本静态去混淆方法及系统 | |
Periyasamy et al. | Prediction of future vulnerability discovery in software applications using vulnerability syntax tree (PFVD-VST). | |
US20230153226A1 (en) | System and Method for Identifying Performance Bottlenecks | |
Davis | On the impact and defeat of regular expression denial of service |
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 |