CN116561770B - 设备固件安全验证方法、装置、设备及存储介质 - Google Patents
设备固件安全验证方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116561770B CN116561770B CN202310576725.4A CN202310576725A CN116561770B CN 116561770 B CN116561770 B CN 116561770B CN 202310576725 A CN202310576725 A CN 202310576725A CN 116561770 B CN116561770 B CN 116561770B
- Authority
- CN
- China
- Prior art keywords
- firmware
- tested
- information
- original
- acquiring
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004458 analytical method Methods 0.000 claims abstract description 60
- 238000012216 screening Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS 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/00—Systems 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/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种设备固件安全验证方法、装置、设备及存储介质,具体公开了:将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件,获取各候选固件与待测固件之间的相似度,基于相似度对各候选固件进行排序,并基于排序结果从各候选固件中筛选出符合预设相似条件的目标固件,获取目标固件待测固件之间的同源性信息,根据同源性信息对待测固件进行安全分析;由于本发明通过哈希匹配,确定预设固件库中与待测固件相似程且满足预设相似条件的目标固件,基于目标固件与待测固件之间的同源性信息对待测固件进行安全分析,从而实现了对未知固件进行安全验证,有效地降低了设备进行固件升级时存在的安全风险。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种设备固件安全验证方法、装置、设备及存储介质。
背景技术
近年来,随着入网的物联网设备数量和种类迅速增长,一旦设备被恶意利用将造成广泛的影响。传统安全分析主要以人工或半自动化的方式进行安全审计为主,物联网设备种类繁多,而目前无法有效地对于来源不明的未知固件进行安全验证,因此无法准确地验证固件是否存在漏洞和隐患,导致物联网设备在固件升级时存在较大的安全风险。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种设备固件安全验证方法、装置、设备及存储介质,旨在解决现有技术无法准确地验证固件是否存在漏洞和隐患,导致物联网设备在固件升级时存在较大的安全风险的技术问题。
为实现上述目的,本发明提供了一种设备固件安全验证方法,所述方法包括以下步骤:
将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
获取各所述候选固件与所述待测固件之间的相似度;
基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
获取所述目标固件所述待测固件之间的同源性信息;
根据所述同源性信息对所述待测固件进行安全分析。
可选地,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配之前,还包括:
获取待测固件的文件系统信息;
根据所述文件系统信息获取所述待测固件对应的解包策略;
基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件;
基于所述各文件获取所述待测固件的哈希信息。
可选地,所述基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件,包括:
基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;
根据所述文件系统信息确定所述解压数据的目录树;
根据所述目录树获取所述解压数据的数据结构;
基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
可选地,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件之前,包括:
获取需要进行安全分析的原始固件;
判断所述原始固件是否为加密固件;
若是,则获取所述原始固件的数字签名;
根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;
根据所述开发者信息获取所述开发者对应的至少一种加密算法;
根据所述加密算法对所述原始固件进行解密,获得待测固件。
可选地,所述判断所述原始固件是否为加密固件,包括:
获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;
将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;
根据比对结果判断所述原始固件是否为加密固件。
可选地,所述将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对之前,包括:
获取预设目标固件库中的加密固件和未加密固件;
获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;
根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;
获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;
基于所述加密熵特征和所述未加密熵特征构建特征集。
可选地,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件之前,包括:
获取待更新固件的第一固件信息,以及待测固件的第二固件信息;
将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;
根据所述差异信息确定所述待测固件的固件类型;
从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
可选地,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件,包括:
获取待测固件的第一模糊特征;
将所述第一模糊特征与预设目标固件库中各固件的第二模糊特征进行模糊匹配;
根据模糊匹配结果确定所述各固件中与所述待测固件特征相符的初始固件,并基于所述初始固件构建初始固件集;
将所述待测固件的哈希信息与初始固件集中的各初始固件进行哈希匹配;
将匹配成功的多个初始固件作为候选固件。
可选地,所述获取各所述候选固件与所述待测固件之间的相似度,包括:
基于所述待测固件的哈希信息以及各所述候选固件的哈希信息确定所述待测固件与各所述候选固件之间的文件交集;
根据所述文件交集确定各所述候选固件中的相似文件;
根据所述相似文件确定各所述候选固件与所述待测固件之间的相似度。
可选地,所述获取各所述候选固件与所述待测固件之间的相似度,包括:
获取所述待测固件的第一目录结构,以及各所述候选固件的第二目录结构;
将所述第一目录结构与各所述第二目录结构进行比对;
根据比对结果确定各所述第二目录结构中与所述第一目录结构相似的相似目录;
分别遍历所述第一目录结构中的相似目录,以及各所述第二目录结构中的相似目录,获得第一目录遍历结果和第二目录遍历结果;
根据所述第一目录遍历结果和所述第二目录遍历结果确定所述第一目录结构与各所述第二目录结构之间的文件相似度;
根据所述文件相似度确定各所述候选固件与所述待测固件之间的相似度。
此外,为实现上述目的,本发明还提出一种设备固件安全验证装置,所述设备固件安全验证装置包括:
固件匹配模块,用于将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
相似分析模块,用于获取各所述候选固件与所述待测固件之间的相似度;
条件筛选模块,用于基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
同源分析模块,用于获取所述目标固件所述待测固件之间的同源性信息;
安全分析模块,用于根据所述同源性信息对所述待测固件进行安全分析。
可选地,所述设备固件安全验证装置,还包括:
固件解包模块,用于获取待测固件的文件系统信息;根据所述文件系统信息获取所述待测固件对应的解包策略;基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件;基于所述各文件获取所述待测固件的哈希信息。
可选地,所述固件解包模块,还用于基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;根据所述文件系统信息确定所述解压数据的目录树;根据所述目录树获取所述解压数据的数据结构;基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
可选地,所述设备固件安全验证装置,还包括:
固件解密模块,用于获取需要进行安全分析的原始固件;判断所述原始固件是否为加密固件;若是,则获取所述原始固件的数字签名;根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;根据所述开发者信息获取所述开发者对应的至少一种加密算法;根据所述加密算法对所述原始固件进行解密,获得待测固件。
可选地,所述固件解密模块,还用于获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;根据比对结果判断所述原始固件是否为加密固件。
可选地,所述固件解密模块,还用于获取预设目标固件库中的加密固件和未加密固件;获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;基于所述加密熵特征和所述未加密熵特征构建特征集。
可选地,所述固件匹配模块,还用于获取待更新固件的第一固件信息,以及待测固件的第二固件信息;将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;根据所述差异信息确定所述待测固件的固件类型;从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
可选地,所述固件匹配模块,还用于获取待测固件的第一模糊特征;将所述第一模糊特征与预设目标固件库中各固件的第二模糊特征进行模糊匹配;根据模糊匹配结果确定所述各固件中与所述待测固件特征相符的初始固件,并基于所述初始固件构建初始固件集;将所述待测固件的哈希信息与初始固件集中的各初始固件进行哈希匹配;将匹配成功的多个初始固件作为候选固件。
此外,为实现上述目的,本发明还提出一种设备固件安全验证设备,所述设备固件安全验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备固件安全验证程序,所述设备固件安全验证程序配置为实现如上文所述的设备固件安全验证方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有设备固件安全验证程序,所述设备固件安全验证程序被处理器执行时实现如上文所述的设备固件安全验证方法的步骤。
本发明通过将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件,获取各所述候选固件与所述待测固件之间的相似度,基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件,获取所述目标固件所述待测固件之间的同源性信息,根据所述同源性信息对所述待测固件进行安全分析;由于本发明通过哈希匹配,确定预设固件库中与待测固件相似程且满足预设相似条件的目标固件,获取目标固件与待测固件之间的同源性信息,从确定待测固件与目标固件之间的关联关系,再基于同源性信息对待测固件进行安全分析,从而实现了对未知固件进行高效的安全验证,有效地避免了对未知固件验证效率导致的漏洞检测不全面的问题,有效地降低了设备进行固件升级时存在的安全风险。
附图说明
图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:将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件。
需要说明的是,本实施例应用于对来源不明的未知固件进行安全验证,由于物联网设备种类繁多,因此不同的固件开发商其上游软件供应链有极大重合度,例如,不同开发商的多个同类型产品中往往会使用相同的代码库或文件;即使是不同厂商的不同类型设备之间,也有可能使用相同的代码库或文件。因此,本实施例通过哈希匹配,确定预设固件库中与待测固件相似程且满足预设相似条件的目标固件,获取目标固件与待测固件之间的同源性信息,从确定待测固件与目标固件之间的关联关系,再基于同源性信息对待测固件进行安全分析,从而实现了对未知固件进行高效的安全验证,有效地避免了对未知固件验证效率导致的漏洞检测不全面的问题,有效地降低了设备进行固件升级时存在的安全风险。
应当理解的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的设备固件安全验证设备,例如计算机或物联网设备等,或者是其他能够实现相同或相似功能的装置或设备,此处以上述设备固件安全验证设备(以下简称固件验证设备)为例进行说明。
需要说明的是,待测固件可以是物联网设备当前进行固件升级或固件更新时所使用的需要验证的固件,待测固件也可以是来源不明的未知固件,由于待测固件的开发者信息不明、固件类型不明,因此需要对待测固件进行安全验证,从而有效的避免物联网设备更新固件时出现的安全风险。上述哈希信息可以是待测固件中所包含的各文件的哈希信息,各文件可以对应有唯一的哈希值,因此哈希信息为待测固件中所包含的所有文件各自对应的哈希值,计算待测固件中各文件的哈希值的方式包括但不限于md5、sha256、sha512等。
上述预设目标固件库可以是固件验证设备预先基于公开的现有固件构建的数据库,预设固件库中包含多个现有固件。上述固件可以是预设固件库中包含的现有固件,固件中包含有多个文件,以及各文件对应的哈希值。上述候选固件可以是预设固件库中与待测固件匹配成功的固件,匹配成功的固件可以是预设固件库内与待测固件存在文件哈希值相同的固件,例如预设固件库中的A固件中存在与待测固件哈希值相同的文件,则A固件为候选固件。上述候选固件内各文件哈希值与待测固件内各文件的哈希值存在部分相同或全部相同,因此候选固件与待测固件存在文件或代码相同,二者可能存在同源性关系,因此本实施例由于候选固件为预设固件库中的现有固件,基于候选固件可以有效地对待测固件进行分析。
应当理解的是,本实施例固件验证设备通过获取待测固件中各文件的哈希值,将各文件的哈希值汇总得到待测固件的哈希信息,将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,即将待测固件的各文件的哈希值与预设固件库内各固件所包含的各文件的哈希值进行匹配,将匹配到的存在文件哈希值相同的固件作为候选固件。
例如,固件验证设备遍历待测固件的文件系统,基于遍历结果获取待测固件中各文件的第一哈希值,遍历预设固件库内包含的各固件的文件系统,获得各固件中各文件的第二哈希值,将第一哈希值与多个所述第二哈希值进行匹配,标记与第一哈希值存在相同的固件,并将该固件作为候选固件。
进一步地,为了选取更加准确的固件库,从而提升分析效率,上述步骤S10之前,可包括:
获取待更新固件的第一固件信息,以及待测固件的第二固件信息;
将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;
根据所述差异信息确定所述待测固件的固件类型;
从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
需要说明的是,待更新固件可以是物联网设备或固件验证设备当前所使用的固件,上述待测固件可以是当前需要更新、升级或覆盖的新固件。上述固件信息可以是固件占用存储空间的大小、数据结构、字符串等信息,上述差异信息可以是待更新固件与待测固件之间的占用存储空间大小差异、数据结构差异和字符串差异等信息。上述固件类型可包括全量类和增量类,若待测固件为全量类,则表示待测固件为全量固件包;若待测固件为增量类,则表示待测固件为在当前的待更新固件的基础上更新的增量固件包。上述多个固件库包括增量固件库和全量固件库,若待测固件为全量类,则获取全量固件库;若待测固件为增量类,则获取增量固件库。
进一步地,为了准确地对固件进行匹配,上述在步骤S10,可包括:
获取待测固件的第一模糊特征;
将所述第一模糊特征与预设目标固件库中各固件的第二模糊特征进行模糊匹配;
根据模糊匹配结果确定所述各固件中与所述待测固件特征相符的初始固件,并基于所述初始固件构建初始固件集;
将所述待测固件的哈希信息与初始固件集中的各初始固件进行哈希匹配;
将匹配成功的多个初始固件作为候选固件。
需要说明的是,上述模糊特征可以是固件的模糊哈希特征或弱哈希特征,模糊特征可以反映固件的局部特点。上述初始固件可以是局部特征与待测固件相符合的固件,上述初始固件集可以是包含有与待测固件局部特征相符的固件的集合。
应当理解的是,为了更加精准地进行匹配,固件验证设备先将待测固件与预设目标固件库中的各固件进行模糊匹配,从而筛选出与待测固件局部特征或模糊特征相符的初始固件,再基于初始固件建立的初始固件集来进行哈希匹配,从而将匹配成功的初始固件作为候选固件,再基于候选固件进行安全分析。
步骤S20:获取各所述候选固件与所述待测固件之间的相似度。
需要说明的是,相似度可以是候选文件中相似文件的占比程度,也可以是候选固件与待测固件之间的文件相似程度或哈希相似程度,相似度越高的候选文件与待测固件之间的同源关系更加紧密,反之同源越离散。
应当理解的是,候选固件可以是多个固件,因此,为了进一步地缩小分析范围,从而提升了分析效率,本实施例可通过获取各候选固件与待测固件之间的相似度,从而基于相似度筛选出相似程度较高的目标固件,基于目标固件对待测固件进行安全分析,从而提升了固件安全验证。
在具体实现中,固件验证设备通过将候选固件中各文件与待测固件中各文件哈希值相同的文件作为相似文件,获取各候选文件中相似文件的相似占比,基于相似占比确定各候选固件与待测固件之间的相似度,所述相似占比可以是候选文件中的相似文件占总文件的比例,参照如下公式1,公式1为相似度计算公式,其中C为候选文件的相似度,P1为候选文件中的相似文件数量,PC为候选文件中的总文件数量。
进一步地,为了准确地确定各候选固件与待测固件之间的哈希相似程度,上述步骤S20,可包括:
步骤S201:基于所述待测固件的哈希信息以及各所述候选固件的哈希信息确定所述待测固件与各所述候选固件之间的文件交集;
步骤S202:根据所述文件交集确定各所述候选固件中的相似文件;
步骤S203:根据所述相似文件确定各所述候选固件与所述待测固件之间的相似度。
需要说明的是,文件交集可以是待测固件与候选固件之间哈希值相同的文件集合。上述相似文件可以是候选固件中处于文件交集中的文件,相似文件为候选固件中与待测固件内文件相同或相似的文件。
应当理解的是,固件验证设备根据每一个文件的哈希值信息,在预设目标固件数据库中查询,得到所有包含该哈希值的固件名称列表,汇总上一步得到所有固件名称列表,计算每个固件名称出现的次数,将固件名称出现的次数除以固件所有文件总数,作为该固件与待测固件的相似度。
进一步地,为了准确地确定各候选固件与待测固件之间的文件相似程度,上述步骤S20,可包括:
获取所述待测固件的第一目录结构,以及各所述候选固件的第二目录结构;
将所述第一目录结构与各所述第二目录结构进行比对;
根据比对结果确定各所述第二目录结构中与所述第一目录结构相似的相似目录;
分别遍历所述第一目录结构中的相似目录,以及各所述第二目录结构中的相似目录,获得第一目录遍历结果和第二目录遍历结果;
根据所述第一目录遍历结果和所述第二目录遍历结果确定所述第一目录结构与各所述第二目录结构之间的文件相似度;
根据所述文件相似度确定各所述候选固件与所述待测固件之间的相似度。
需要说明的是,目录结构可以是固件的文件系统的文件目录。上述相似目录可以是候选固件的文件系统中文件路径与待测固件的文件系统中文件路径相似的目录。上述文件相似度可以是候选固件的相似目录中与待测固件中文件相似的文件。
应当理解的是,固件验证设备获取所述待测固件的第一目录结构,以及各所述候选固件的第二目录结构,基于第一目录结构确定待测固件中的各条第一目录(文件路径),基于第二目录结构确定待测固件中的各条第二目录(文件路径),将第一目录与第二目录进行比对,确定第二目录中与第一目录相似的目录,并将该目录作为相似目录,将待测固件的相似目录作为第一相似目录,将候选固件中的相似目录作为第二相似目录,分别遍历第一相似目录和第二相似目录,确定第一相似目录下包含的第一文件,以及第二相似目录下包含的第二文件,将第一文件与第二文件进行比对,根据比对结果确定候选固件的第二目录下与第一文件相似的文件,根据第二目录下的相似文件数量占比确定待测固件与候选固件之间的文件相似度,根据所述文件相似度确定各所述候选固件与所述待测固件之间的相似度。
例如,待测固件A的文件系统内中存在3条目录,候选固件的文件系统内中存在4条目录,将待测固件的3条目录的第一目录结构与候选固件的4条目录的第二目录结构进行比对,确定候选固件的4条目录中与上述条件目录结构相似的相似目录,分别遍历待测固件中的相似目录和候选固件中的相似目录,获得二者相似目录下存在的各文件,比对二者相似目录下的各文件之间的相似程度,确定候选固件的相似目录下有5个文件为相似文件,确定候选固件文件系统内有25个文件,因此候选固件的文件相似度为5/25,即文件相似度为20%,根据文件相似度确定所述候选固件与所述待测固件之间的相似度。
步骤S30:基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件。
需要说明的是,目标固件可以是候选固件中与待测固件相似度最高的一个固件,也可以是候选固件中与待测固件相似度较高的多个固件。上述预设相似条件可以是用于筛选出相似度高的目标固件的条件,例如预设相似条件可包含相似度阈值和筛选数量阈值,固件验证设备先筛选出候选固件中不低于上述相似度阈值的第一候选固件,再确定第一候选固件的数量是否超过筛选数量阈值,若未超过,则将第一候选固件作为目标固件,若超过,则基于各第一候选固件的相似度进行排序,基于排序结果从第一候选固件中选取符合筛选数量阈值的第二候选固件,并将第二候选固件作为目标固件。
应当理解的是,为了进一步提升分析效率,本实施例通过筛选的方式缩小分析范围,减少固件数量,固件验证设备基于相似度对候选固件进行降序或升序排列,基于排列结果生成序列表,基于预设相似条件,选取序列表中相似度排序第一的一个候选固件或相似度排序较高的多个候选固件作为目标固件。
步骤S40:获取所述目标固件所述待测固件之间的同源性信息。
需要说明的是,同源性信息可以是目标固件与待测固件之间的关联信息,例如同源性信息可以是同源开发者信息、同源文件结构信息、同源文件信息等。
应当理解的是,由于不同开发商的多个同类型产品中往往会使用相同的代码库或文件;即使是不同厂商的不同类型设备之间,也有可能使用相同的代码库或文件。目标固件与待测固件之间的文件以及文件系统相似度较高,因此固件验证设备基于目标固件的固件信息对待测固件的各信息进行推测,获得所述目标固件所述待测固件之间的同源性信息。
步骤S50:根据所述同源性信息对所述待测固件进行安全分析。
应当理解的是,由于待测固件的部分信息是未知的,因此直接对待测固件进行安全分析的话效率较低,并且无法做到分析全面,可能会出现分析不完整导致漏洞和病毒遗漏的问题,从而无法避免设备进行固件更新时的安全风险,本实施例安全验证设备通过筛选出相似度较高或相似度最高的目标固件,基于目标固件的开发者信息和型号信息来推测待测固件的开发者信息和型号信息,以及待测固件中可能出现的漏洞等安全隐患。
例如,由于目标固件为公开的固件,因此固件验证设备可以直接获取目标固件存在的漏洞基于同源性信息确定目标固件存在4个漏洞案例,基于这4个漏洞案例对待测固件进行安全分析,从而检测待测固件是否仍存在相同或类似的漏洞。
本实施例通过将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件,获取各所述候选固件与所述待测固件之间的相似度,基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件,获取所述目标固件所述待测固件之间的同源性信息,根据所述同源性信息对所述待测固件进行安全分析;由于本实施例通过哈希匹配,确定预设固件库中与待测固件相似程且满足预设相似条件的目标固件,获取目标固件与待测固件之间的同源性信息,从确定待测固件与目标固件之间的关联关系,再基于同源性信息对待测固件进行安全分析,从而实现了对未知固件进行高效的安全验证,有效地避免了对未知固件验证效率导致的漏洞检测不全面的问题,有效地降低了设备进行固件升级时存在的安全风险。
参考图3,图3为本发明一种设备固件安全验证方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,包括:
步骤S11:获取待测固件的文件系统信息。
需要说明的是,文件系统信息可以是待测固件的文件系统的数据格式、文件系统内的数据结构、文件系统储存类型等信息。
应当理解的是,固件的文件系统不同,其文件的格式以及固件解包的方式也不同,因此为了对待测固件进行有效分析,本实施例通过获取待测固件的文件系统信息,从而基于文件系统选择待测固件对应的额解包策略进行解包。
步骤S12:根据所述文件系统信息获取所述待测固件对应的解包策略。
需要说明的是,固件的文件系统需要选择对应的打包工具或打包插件进行打包,因此基于待测固件的文件系统可选择对应的解包策略,例如可以基于待测固件的文件系统选择对应的解包工具,上述解包策略可以是固件验证设备预先基于多组文件系统与解包工具之间的映射关系构建的映射策略。
步骤S13:基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件。
应当理解的是,本实施例固件验证设备基于所述解包策略对所述待测固件进行解包后,若解包后的待测固件仍为固件包状态,则对待测固件进行递归解包,并提取递归解包后的待测固件中的各文件。
进一步地,为了有效地提取待测固件中包含的文件,上述步骤S13,可包括:
步骤S131:基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;
步骤S132:根据所述文件系统信息确定所述解压数据的目录树;
步骤S133:根据所述目录树获取所述解压数据的数据结构;
步骤S134:基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
需要说明的是,解压数据可以是待测固件经过解包后获得的固件内所包含的原始数据。上述目录树可以是解包后的待测固件的文件系统的文件结构。上述数据结构可以是解压数据的数据结构,例如数据结构可是解压数据的目录结构和数据层级关系。上述文件可以是待测固件内所包含的文件。
应当理解的是,固件验证设备基于所述解包策略选择对应的解包工具/插件,以及对应的解包方式(例如递归解包)对所述待测固件进行解包,获得所述待测固件的解压数据,为了确定解压数据所包含的文件,根据文件系统信息确定所述解压数据的目录树,根据所述目录树获取所述解压数据的数据结构,基于数据结构确定解压数据的各文件路径,基于文件路径确定遍历路径,沿着各遍历路径对解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
步骤S14:基于所述各文件获取所述待测固件的哈希信息。
哈希信息可以是待测固件中所包含的各文件的哈希信息,各文件可以对应有唯一的哈希值,因此哈希信息为待测固件中所包含的所有文件各自对应的哈希值,计算待测固件中各文件的哈希值的方式包括但不限于md5、sha256、sha512等。
本实施例通过获取待测固件的文件系统信息,根据所述文件系统信息获取所述待测固件对应的解包策略,基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件,基于所述各文件获取所述待测固件的哈希信息;由于本实施例基于待测固件对应的解包策略对待测固件进行解包,从而提取出待测固件中的各固件,再获取待测固件的哈希信息,从而实现了对待测固件文件识别,从而有效地获取了待测固件的哈希信息,从而便于快速地对待测固件进行共现判断,提升了固件分析效率。
参考图4,图4为本发明一种设备固件安全验证方法第三实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,包括:
步骤S111:获取需要进行安全分析的原始固件。
需要说明的是,原始固件可以是推送至物联网设备的需要进行更新的固件,原始固件可以是用户下载至本地的固件,也可以是物联网设备通过OTA服务接收到的网络推送的固件。
步骤S112:判断所述原始固件是否为加密固件。
需要说明的是,加密固件可以是经过加密算法加密后的固件,不同开发者或开发厂商所使用的加密算法不同,因此不同的原始固件的加密方式及对应的解密方式也不同。
应当理解的是,现有技术在对加密固件进行分析时未对固件进行解密,但是固件在经过加密混淆后,一般没有明显的字符串特征,因此现有技术对加密固件的安全分析效率较低,分析效果也不理想,本实施例通过判断原始固件是否为加密固件,从而在原始固件为加密固件时对固件进行解密,将加密固件还原为正常的明文固件后对固件进行安全分析,从而确保了安全分析效果,也提升了分析效率;在原始固件未加密时,直接对原始固件进行解包和安全分析。
进一步地,为了准确地判断原始固件是否加密,上述步骤S112,可包括:
步骤S1121:获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;
步骤S1122:将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;
步骤S1123:根据比对结果判断所述原始固件是否为加密固件。
需要说明的是,原始信息熵可以是原始固件的信息熵,原始信息熵越大,原始固件的加密概率越大,原始信息熵越小,原始固件的加密概率越小。上述原始特征可以是原始固件的信息熵的熵特征。上述预设特征集可以是包含有多种类型熵特征的数据集合,预设特征集中包含有多个加密固件对应的熵特征和多个未加密固件的熵特征。
应当理解的是,本实施例固件验证设备通过获取原始固件的原始信息熵,以及原始信息熵的原始特征,将所述原始信息熵的原始特征与所述预设特征集中的各加密信息熵和未加密信息熵的特征进行比对,从而确定原始信息熵的熵特征是符合加密特征还是未加密特征,进而基于原始信息熵符合的特征判断原始固件是否为加密固件。
进一步地,为了准确的对熵特征进行比对,上述步骤S1122之前,还包括:
获取预设目标固件库中的加密固件和未加密固件;
获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;
根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;
获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;
基于所述加密熵特征和所述未加密熵特征构建特征集。
需要说明的是,预设目标固件库可以是固件验证设备预先基于公开的现有固件构建的数据库,预设固件库中包含多个现有固件,多个现有固件中包含有加密固件和未加密固件。上述加密信息熵为加密固件的信息熵,上述未加密信息熵可以是未加密固件的信息熵,上述置信区间可以是将预设目标固件库中的加密固件的信息熵和未加密固件的信息熵作为样本所构建的信息熵总区间,置信区间包括加密置信区间和未加密置信区间,加密置信区间为加密信息熵所属的区间,未加密置信区间为未加密信息熵所属的区间。
步骤S113:若是,则获取所述原始固件的数字签名;
步骤S114:根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;
步骤S115:根据所述开发者信息获取所述开发者对应的至少一种加密算法;
步骤S116:根据所述加密算法对所述原始固件进行解密,获得待测固件。
本实施例通过获取需要进行安全分析的原始固件,判断所述原始固件是否为加密固件,若是,则获取所述原始固件的数字签名,根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息,根据所述开发者信息获取所述开发者对应的至少一种加密算法,根据所述加密算法对所述原始固件进行解密,获得待测固件;由于本实施例通过判断原始固件是否为加密固件,将加密的固件解密为明文,获得待测固件,对明文的固件进行安全分析,既确保了安全分析效果,也提升了对固件的分析效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有设备固件安全验证程序,所述设备固件安全验证程序被处理器执行时实现如上文所述的设备固件安全验证方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参照图5,图5为本发明设备固件安全验证装置第一实施例的结构框图。
如图5所示,本发明实施例提出的设备固件安全验证装置包括:
固件匹配模块10,用于将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
相似分析模块20,用于获取各所述候选固件与所述待测固件之间的相似度;
条件筛选模块30,用于基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
同源分析模块40,用于获取所述目标固件所述待测固件之间的同源性信息;
安全分析模块50,用于根据所述同源性信息对所述待测固件进行安全分析。
进一步地,所述设备固件安全验证装置,还包括:
固件解包模块60,用于获取待测固件的文件系统信息;根据所述文件系统信息获取所述待测固件对应的解包策略;基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件;基于所述各文件获取所述待测固件的哈希信息。
进一步地,所述固件解包模块60,还用于基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;根据所述文件系统信息确定所述解压数据的目录树;根据所述目录树获取所述解压数据的数据结构;基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
进一步地,所述设备固件安全验证装置,还包括:
固件解密模块70,用于获取需要进行安全分析的原始固件;判断所述原始固件是否为加密固件;若是,则获取所述原始固件的数字签名;根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;根据所述开发者信息获取所述开发者对应的至少一种加密算法;根据所述加密算法对所述原始固件进行解密,获得待测固件。
进一步地,所述固件解密模块70,还用于获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;根据比对结果判断所述原始固件是否为加密固件。
进一步地,所述固件解密模块70,还用于获取预设目标固件库中的加密固件和未加密固件;获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;基于所述加密熵特征和所述未加密熵特征构建特征集。
进一步地,所述固件匹配模块10,还用于获取待更新固件的第一固件信息,以及待测固件的第二固件信息;将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;根据所述差异信息确定所述待测固件的固件类型;从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
进一步地,所述固件匹配模块10,还用于获取待测固件的第一模糊特征;将所述第一模糊特征与预设目标固件库中各固件的第二模糊特征进行模糊匹配;根据模糊匹配结果确定所述各固件中与所述待测固件特征相符的初始固件,并基于所述初始固件构建初始固件集;将所述待测固件的哈希信息与初始固件集中的各初始固件进行哈希匹配;将匹配成功的多个初始固件作为候选固件。
进一步地,所述相似分析模块20,还用于基于所述待测固件的哈希信息以及各所述候选固件的哈希信息确定所述待测固件与各所述候选固件之间的文件交集;根据所述文件交集确定各所述候选固件中的相似文件;根据所述相似文件确定各所述候选固件与所述待测固件之间的相似度。
进一步地,所述相似分析模块20,还用于获取所述待测固件的第一目录结构,以及各所述候选固件的第二目录结构;将所述第一目录结构与各所述第二目录结构进行比对;根据比对结果确定各所述第二目录结构中与所述第一目录结构相似的相似目录;分别遍历所述第一目录结构中的相似目录,以及各所述第二目录结构中的相似目录,获得第一目录遍历结果和第二目录遍历结果;根据所述第一目录遍历结果和所述第二目录遍历结果确定所述第一目录结构与各所述第二目录结构之间的文件相似度;根据所述文件相似度确定各所述候选固件与所述待测固件之间的相似度。
本实施例通过将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件,获取各所述候选固件与所述待测固件之间的相似度,基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件,获取所述目标固件所述待测固件之间的同源性信息,根据所述同源性信息对所述待测固件进行安全分析;由于本实施例通过哈希匹配,确定预设固件库中与待测固件相似程且满足预设相似条件的目标固件,获取目标固件与待测固件之间的同源性信息,从确定待测固件与目标固件之间的关联关系,再基于同源性信息对待测固件进行安全分析,从而实现了对未知固件进行高效的安全验证,有效地避免了对未知固件验证效率导致的漏洞检测不全面的问题,有效地降低了设备进行固件升级时存在的安全风险。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的设备固件安全验证方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本申请公开了A1、一种设备固件安全验证方法,所述设备固件安全验证方法包括:
将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
获取各所述候选固件与所述待测固件之间的相似度;
基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
获取所述目标固件所述待测固件之间的同源性信息;
根据所述同源性信息对所述待测固件进行安全分析。
A2、如A1所述的设备固件安全验证方法,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配之前,还包括:
获取待测固件的文件系统信息;
根据所述文件系统信息获取所述待测固件对应的解包策略;
基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件;
基于所述各文件获取所述待测固件的哈希信息。
A3、如A2所述的设备固件安全验证方法,所述基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件,包括:
基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;
根据所述文件系统信息确定所述解压数据的目录树;
根据所述目录树获取所述解压数据的数据结构;
基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
A4、如A1所述的设备固件安全验证方法,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件之前,包括:
获取需要进行安全分析的原始固件;
判断所述原始固件是否为加密固件;
若是,则获取所述原始固件的数字签名;
根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;
根据所述开发者信息获取所述开发者对应的至少一种加密算法;
根据所述加密算法对所述原始固件进行解密,获得待测固件。
A5、如A4所述的设备固件安全验证方法,所述判断所述原始固件是否为加密固件,包括:
获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;
将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;
根据比对结果判断所述原始固件是否为加密固件。
A6、如A5所述的设备固件安全验证方法,所述将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对之前,包括:
获取预设目标固件库中的加密固件和未加密固件;
获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;
根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;
获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;
基于所述加密熵特征和所述未加密熵特征构建特征集。
A7、如A1至A6中任一项所述的设备固件安全验证方法,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件之前,包括:
获取待更新固件的第一固件信息,以及待测固件的第二固件信息;
将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;
根据所述差异信息确定所述待测固件的固件类型;
从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
A8、如A1至A6中任一项所述的设备固件安全验证方法,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件,包括:
获取待测固件的第一模糊特征;
将所述第一模糊特征与预设目标固件库中各固件的第二模糊特征进行模糊匹配;
根据模糊匹配结果确定所述各固件中与所述待测固件特征相符的初始固件,并基于所述初始固件构建初始固件集;
将所述待测固件的哈希信息与初始固件集中的各初始固件进行哈希匹配;
将匹配成功的多个初始固件作为候选固件。
A9、如A1至A6中任一项所述的设备固件安全验证方法,所述获取各所述候选固件与所述待测固件之间的相似度,包括:
基于所述待测固件的哈希信息以及各所述候选固件的哈希信息确定所述待测固件与各所述候选固件之间的文件交集;
根据所述文件交集确定各所述候选固件中的相似文件;
根据所述相似文件确定各所述候选固件与所述待测固件之间的相似度。
A10、如A1至A6中任一项所述的设备固件安全验证方法,所述获取各所述候选固件与所述待测固件之间的相似度,包括:
获取所述待测固件的第一目录结构,以及各所述候选固件的第二目录结构;
将所述第一目录结构与各所述第二目录结构进行比对;
根据比对结果确定各所述第二目录结构中与所述第一目录结构相似的相似目录;
分别遍历所述第一目录结构中的相似目录,以及各所述第二目录结构中的相似目录,获得第一目录遍历结果和第二目录遍历结果;
根据所述第一目录遍历结果和所述第二目录遍历结果确定所述第一目录结构与各所述第二目录结构之间的文件相似度;
根据所述文件相似度确定各所述候选固件与所述待测固件之间的相似度。
本申请还公开了B11、一种设备固件安全验证装置,所述设备固件安全验证装置包括:
固件匹配模块,用于将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
相似分析模块,用于获取各所述候选固件与所述待测固件之间的相似度;
条件筛选模块,用于基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
同源分析模块,用于获取所述目标固件所述待测固件之间的同源性信息;
安全分析模块,用于根据所述同源性信息对所述待测固件进行安全分析。
B12、如B11所述的设备固件安全验证装置,所述设备固件安全验证装置,还包括:
固件解包模块,用于获取待测固件的文件系统信息;根据所述文件系统信息获取所述待测固件对应的解包策略;基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件;基于所述各文件获取所述待测固件的哈希信息。
B13、如B12所述的设备固件安全验证装置,所述固件解包模块,还用于基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;根据所述文件系统信息确定所述解压数据的目录树;根据所述目录树获取所述解压数据的数据结构;基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
B14、如B11所述的设备固件安全验证装置,所述设备固件安全验证装置,还包括:
固件解密模块,用于获取需要进行安全分析的原始固件;判断所述原始固件是否为加密固件;若是,则获取所述原始固件的数字签名;根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;根据所述开发者信息获取所述开发者对应的至少一种加密算法;根据所述加密算法对所述原始固件进行解密,获得待测固件。
B15、如B14所述的设备固件安全验证装置,所述固件解密模块,还用于获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;根据比对结果判断所述原始固件是否为加密固件。
16、如B15所述的设备固件安全验证装置,所述固件解密模块,还用于获取预设目标固件库中的加密固件和未加密固件;获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;基于所述加密熵特征和所述未加密熵特征构建特征集。
B17、如B11至B16中任一项所述的设备固件安全验证装置,所述固件匹配模块,还用于获取待更新固件的第一固件信息,以及待测固件的第二固件信息;将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;根据所述差异信息确定所述待测固件的固件类型;从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
B18、如B11至B16中任一项所述的设备固件安全验证装置,所述固件匹配模块,还用于获取待测固件的第一模糊特征;将所述第一模糊特征与预设目标固件库中各固件的第二模糊特征进行模糊匹配;根据模糊匹配结果确定所述各固件中与所述待测固件特征相符的初始固件,并基于所述初始固件构建初始固件集;将所述待测固件的哈希信息与初始固件集中的各初始固件进行哈希匹配;将匹配成功的多个初始固件作为候选固件。
本发明还公开了C19、一种设备固件安全验证设备,所述设备固件安全验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备固件安全验证程序,所述设备固件安全验证程序配置为实现如上所述的设备固件安全验证方法。
本申请还公开了D20、一种存储介质,所述存储介质上存储有设备固件安全验证程序,所述设备固件安全验证程序被处理器执行时实现如上所述的设备固件安全验证方法。
Claims (7)
1.一种设备固件安全验证方法,其特征在于,所述设备固件安全验证方法包括:
将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
获取各所述候选固件与所述待测固件之间的相似度;
基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
获取所述目标固件与所述待测固件之间的同源性信息;
根据所述同源性信息对所述待测固件进行安全分析;
所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件之前,包括:
获取需要进行安全分析的原始固件;
判断所述原始固件是否为加密固件;
若是,则获取所述原始固件的数字签名;
根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;
根据所述开发者信息获取所述开发者对应的至少一种加密算法;
根据所述加密算法对所述原始固件进行解密,获得待测固件;
所述判断所述原始固件是否为加密固件,包括:
获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;
将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;
根据比对结果判断所述原始固件是否为加密固件;
所述将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对之前,包括:
获取预设目标固件库中的加密固件和未加密固件;
获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;
根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;
获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;
基于所述加密熵特征和所述未加密熵特征构建特征集。
2.如权利要求1所述的设备固件安全验证方法,其特征在于,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配之前,还包括:
获取待测固件的文件系统信息;
根据所述文件系统信息获取所述待测固件对应的解包策略;
基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件;
基于所述各文件获取所述待测固件的哈希信息。
3.如权利要求2所述的设备固件安全验证方法,其特征在于,所述基于所述解包策略对所述待测固件进行解包,并提取解包后的所述待测固件中的各文件,包括:
基于所述解包策略对所述待测固件进行解包,获得所述待测固件的解压数据;
根据所述文件系统信息确定所述解压数据的目录树;
根据所述目录树获取所述解压数据的数据结构;
基于所述数据结构对所述解压数据进行遍历,并根据遍历结果提取解包后的所述待测固件中的各文件。
4.如权利要求1至3中任一项所述的设备固件安全验证方法,其特征在于,所述将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件之前,包括:
获取待更新固件的第一固件信息,以及待测固件的第二固件信息;
将所述第一固件信息与所述第二固件信息进行差分匹配,确定所述待更新固件与所述待测固件之间的差异信息;
根据所述差异信息确定所述待测固件的固件类型;
从预设的多个固件库中获取与所述固件类型对应的预设目标固件库。
5.一种设备固件安全验证装置,其特征在于,所述设备固件安全验证装置包括:
固件匹配模块,用于将待测固件的哈希信息与预设目标固件库中各固件进行哈希匹配,将匹配成功的多个固件作为候选固件;
相似分析模块,用于获取各所述候选固件与所述待测固件之间的相似度;
条件筛选模块,用于基于所述相似度对各所述候选固件进行排序,并基于排序结果从各所述候选固件中筛选出符合预设相似条件的目标固件;
同源分析模块,用于获取所述目标固件与所述待测固件之间的同源性信息;
安全分析模块,用于根据所述同源性信息对所述待测固件进行安全分析;
所述设备固件安全验证装置,还包括:
固件解密模块,用于获取需要进行安全分析的原始固件;判断所述原始固件是否为加密固件;若是,则获取所述原始固件的数字签名;根据所述数字签名确定所述原始固件的开发者,并获取所述开发者的开发者信息;根据所述开发者信息获取所述开发者对应的至少一种加密算法;根据所述加密算法对所述原始固件进行解密,获得待测固件;
所述固件解密模块,还用于获取所述原始固件的原始信息熵,以及所述原始信息熵的原始特征;将所述原始信息熵的原始特征与所述预设特征集中的各熵特征进行比对;根据比对结果判断所述原始固件是否为加密固件;
所述固件解密模块,还用于获取预设目标固件库中的加密固件和未加密固件;获取所述加密固件的加密信息熵,以及所述未加密固件的未加密信息熵;根据所述加密信息熵和所述未加密信息熵构建置信区间,所述置信区间包括加密区间和未加密区间;获取所述置信区间中加密区间的加密熵特征以及未加密区间的未加密熵特征;基于所述加密熵特征和所述未加密熵特征构建特征集。
6.一种设备固件安全验证设备,其特征在于,所述设备固件安全验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备固件安全验证程序,所述设备固件安全验证程序配置为实现如权利要求1至4中任一项所述的设备固件安全验证方法。
7.一种存储介质,其特征在于,所述存储介质上存储有设备固件安全验证程序,所述设备固件安全验证程序被处理器执行时实现如权利要求1至4任一项所述的设备固件安全验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310576725.4A CN116561770B (zh) | 2023-05-19 | 2023-05-19 | 设备固件安全验证方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310576725.4A CN116561770B (zh) | 2023-05-19 | 2023-05-19 | 设备固件安全验证方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561770A CN116561770A (zh) | 2023-08-08 |
CN116561770B true CN116561770B (zh) | 2024-03-08 |
Family
ID=87501643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310576725.4A Active CN116561770B (zh) | 2023-05-19 | 2023-05-19 | 设备固件安全验证方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561770B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063055A (zh) * | 2018-07-19 | 2018-12-21 | 中国科学院信息工程研究所 | 同源二进制文件检索方法和装置 |
CN111611591A (zh) * | 2020-05-22 | 2020-09-01 | 中国电力科学研究院有限公司 | 一种固件漏洞的检测方法、装置、存储介质及电子设备 |
CN114780960A (zh) * | 2021-01-05 | 2022-07-22 | 中国移动通信有限公司研究院 | 一种安全检测方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309711A (zh) * | 2020-03-13 | 2020-06-19 | 财付通支付科技有限公司 | 跨区块链的数据迁移方法、装置、设备及存储介质 |
-
2023
- 2023-05-19 CN CN202310576725.4A patent/CN116561770B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063055A (zh) * | 2018-07-19 | 2018-12-21 | 中国科学院信息工程研究所 | 同源二进制文件检索方法和装置 |
CN111611591A (zh) * | 2020-05-22 | 2020-09-01 | 中国电力科学研究院有限公司 | 一种固件漏洞的检测方法、装置、存储介质及电子设备 |
CN114780960A (zh) * | 2021-01-05 | 2022-07-22 | 中国移动通信有限公司研究院 | 一种安全检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116561770A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154966B (zh) | 易受攻击的应用程序检测 | |
Glanz et al. | CodeMatch: obfuscation won't conceal your repackaged app | |
Li et al. | On challenges in evaluating malware clustering | |
US11693962B2 (en) | Malware clustering based on function call graph similarity | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
US10785246B2 (en) | Mining attack vectors for black-box security testing | |
US8479291B1 (en) | Systems and methods for identifying polymorphic malware | |
CN113434870B (zh) | 基于软件依赖分析的漏洞检测方法、装置、设备及介质 | |
US8875303B2 (en) | Detecting pirated applications | |
CN110298171B (zh) | 移动互联网大数据应用的智能检测与安全防护方法 | |
Farhadi et al. | Scalable code clone search for malware analysis | |
KR20160109870A (ko) | 안드로이드 멀웨어의 고속 검색 시스템 및 방법 | |
Kedziora et al. | Malware detection using machine learning algorithms and reverse engineering of android java code | |
US20210342447A1 (en) | Methods and apparatus for unknown sample classification using agglomerative clustering | |
CN106709336A (zh) | 识别恶意软件的方法和装置 | |
Huang et al. | Android malware development on public malware scanning platforms: A large-scale data-driven study | |
CN114386032A (zh) | 电力物联网设备的固件检测系统及方法 | |
Darus et al. | Android malware classification using XGBoost on data image pattern | |
Dib et al. | EVOLIoT: A self-supervised contrastive learning framework for detecting and characterizing evolving IoT malware variants | |
Breitinger et al. | Evaluating detection error trade-offs for bytewise approximate matching algorithms | |
Akram et al. | DroidMD: an efficient and scalable android malware detection approach at source code level | |
Feichtner et al. | Obfuscation-resilient code recognition in Android apps | |
US10437995B2 (en) | Systems and methods for inference of malware labels in a graph database | |
Hubballi et al. | Detecting packed executable file: Supervised or anomaly detection method? | |
CN116561770B (zh) | 设备固件安全验证方法、装置、设备及存储介质 |
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 |