CN111400719B - 基于开源组件版本识别的固件脆弱性判别方法及系统 - Google Patents

基于开源组件版本识别的固件脆弱性判别方法及系统 Download PDF

Info

Publication number
CN111400719B
CN111400719B CN202010169063.5A CN202010169063A CN111400719B CN 111400719 B CN111400719 B CN 111400719B CN 202010169063 A CN202010169063 A CN 202010169063A CN 111400719 B CN111400719 B CN 111400719B
Authority
CN
China
Prior art keywords
component
vulnerability
open source
analyzed
firmware
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
Application number
CN202010169063.5A
Other languages
English (en)
Other versions
CN111400719A (zh
Inventor
石志强
张国栋
杨寿国
黄晋涛
李志�
李红
孙利民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN202010169063.5A priority Critical patent/CN111400719B/zh
Publication of CN111400719A publication Critical patent/CN111400719A/zh
Application granted granted Critical
Publication of CN111400719B publication Critical patent/CN111400719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种基于开源组件版本识别的固件脆弱性判别方法及系统,该方法包括:对固件解码包库进行扫描,获取待分析组件的第一路径列表;对待分析组件的第一路径列表进行遍历,将待分析组件与开源组件字符串数据库进行关联和验证,获取待分析组件的第二路径列表;对待分析组件进行版本识别,得到待分析组件对应的固件开源组件版本号;遍历开源组件版本漏洞字典,若开源组件版本漏洞字典中存在固件开源组件版本号,则判断获知待分析组件为可疑漏洞组件;对可疑漏洞组件进行漏洞验证,将漏洞验证通过的待分析组件存入固件漏洞组件库。本发明实施例能高效地搜索可疑漏洞,对固件安全评估可靠性高,提升漏洞发现的效率和准确性。

Description

基于开源组件版本识别的固件脆弱性判别方法及系统
技术领域
本发明涉及物联网设备固件安全、二进制漏洞发现和安全应急响应等技术领域,尤其涉及一种基于开源组件版本识别的固件脆弱性判别方法及系统。
背景技术
随着互联网时代变革、物联网产业兴起和工业互联网稳步推进,嵌入式系统设备网络化程度越来越高,物联网设备被广泛运用到人们的生产生活之中。智能设备如路由器、交换机、网络摄像头、无人机和机器人等,在给人们带来便利和提升工作效率的同时,也给智能设备系统甚至整个网络空间安全带来前所未有的挑战。与传统的PC机系统有所差异,物联网设备系统通常都含有特定的底层软件—固件,固件是指写入Flash芯片或EEPROM只读存储器中的可执行程序,用于初始化硬件、启动操作系统和管理计算机平台资源。由于固件常被曝露出各种安全漏洞,引发严重的安全事件,固件已成为安全分析人员进行物联网设备漏洞挖掘和黑客进行网络攻击的主要入口点之一。
目前针对物联网设备固件脆弱性分析技术,主要包括固件源代码漏洞发现技术、固件解码包敏感关键字检索技术、基于逆向工程的固件二进制代码审计技术、固件漏洞二进制文件或函数关联技术和基于固件仿真的漏洞发现技术等。考虑到物联网设备的安全性,固件源码往往在多种指令集架构、多种编译优化选项和多种编译器等编译环境下被编译并压缩打包,最终发布在厂商的官网或第三方平台上,由于固件源代码漏洞发现技术应用更多地体现在固件开发过程,导致固件安全分析人员难以获得固件源码,以至于后续的安全分析较难以实施。固件仿真技术使得固件成功率低以及固件解码包敏感关键字检索技术给安全人员带来较大的漏洞排查工作量,而基于逆向工程的二进制漏洞发现技术要求安全研究人员具有较高的实践经验和专业技能,使得固件安全分析人员针对大规模的固件进行安全漏洞发现和分析,采用了漏洞二进制代码关联技术和漏洞函数关联技术。然而,这些针对大规模固件的安全漏洞关联技术存在关联效率低和关联结果误报率高等问题,使得针对大规模固件脆弱性的安全分析技术仍处于不断探索中。
因此,现在亟需一种实现简单、准确率较高、关联高效的用于物联网设备固件脆弱性判别方法及系统来解决上述问题。本发明提出一种基于开源组件版本识别的固件脆弱性判别方法及系统。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于开源组件版本识别的固件脆弱性判别方法及系统。
第一方面,本发明实施例提供了一种基于开源组件版本识别的物联网设备固件脆弱性判别方法,包括:
对固件解码包库进行扫描,获取待分析组件的第一路径列表;
对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;
对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号;
遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表;
对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
进一步地,在所述对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表之前,所述方法还包括:
爬取固件中多种开源组件的开源组件源码,并对所述开源组件源码进行交叉编译,得到所述开源组件源码对应的二进制文件;
对所述二进制文件进行字符串提取处理,并通过黑名单机制,对提取得到的字符串进行干扰字符串过滤处理,得到满足预设条件的字符串,以用于构建所述开源组件字符串数据库。
进一步地,所述对所述二进制文件进行字符串提取处理,并通过黑名单机制,对提取得到的字符串进行干扰字符串过滤处理,得到满足预设条件的字符串,包括:
对所述二进制文件进行字符串提取处理,得到字符串;
根据信息增益公式,计算所述字符串的信息增益值,若所述字符串的信息增益值小于等于预设信息增益阈值,得到满足预设条件的字符串,所述信息增益公式定义为:
Figure BDA0002408503630000031
其中,IG(s)表示信息增益值,Ci表示第i种指令集架构;P(s)表示包含字符串s的二进制文件数量和交叉编译的所有二进制文件之间的比值;P(Ci)表示指令集架构Ci的二进制文件数量和交叉编译的全部二进制文件之间的比值;P(s,Ci)表示指令集架构Ci中包含字符串s的二进制文件数量和交叉编译的所有二进制文件之间的比值;
若所述字符串的信息增益值大于预设信息增益阈值,则将所述字符串添加到黑名单。
进一步地,所述对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表,包括:
对所述待分析组件的第一路径列表进行遍历,以用于提取所述待分析组件的字符串,并根据所述黑名单机制,对所述待分析组件的字符串进行过滤,得到过滤后的字符串;
通过相似度公式,对所述过滤后的字符串和所述开源组件字符串数据库的字符串进行相似度计算,若相似度大于预设相似度阈值,将所述过滤后的字符串对应的待分析组件和路径列表进行保存,所述相似度公式定义为:
Figure BDA0002408503630000041
其中,sim(ci)表示待分析组件ci的相似度,Ci表示待分析组件ci的字符串集合,B表示开源组件数据库中组件名为ci的开源组件字符串集合,ncommon表示Ci与B两种字符串集合中共同拥有的字符串数量,ncomponent表示B字符串集合的数量;
若相似度小于等于预设相似度阈值,则将所述过滤后的字符串对应的待分析组件舍弃。
进一步地,所述对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号,包括:
对所述待分析组件的第二路径列表进行遍历,并通过基于字符串规则匹配的开源组件版本识别和基于QEMU用户态仿真的开源组件版本识别的两种方法,分别对所述待分析组件进行版本号识别,得到第一版本号和第二版本号;
对所述第一版本号和所述第二版本号进行信息融合和综合判断处理,的得到所述待分析组件对应的固件开源组件版本号。
进一步地,在所述遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件之前,所述方法还包括:
获取固件中多个开源组件,并根据漏洞描述信息,检索所述多个开源组件的组件名,得到所述多个开源组件对应漏洞库中的漏洞描述信息,以用于生成开源组件漏洞信息分析报告;
根据正则表达式匹配方式,对所述开源组件漏洞信息分析报告进行处理,得到漏洞库开源组件版本匹配规则库;
遍历所述多个开源组件对应漏洞库中的漏洞描述信息,并根据所述漏洞库开源组件版本匹配规则库,构建开源组件版本漏洞字典。
进一步地,在所述遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件之后,所述方法还包括:
将所述可疑漏洞组件添加到可疑漏洞组件库;
对存入所述可疑漏洞组件库的可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
第二方面,本发明实施例提供了一种基于开源组件识别的固件脆弱性判别系统,包括:
路径列表获取模块,用于对固件解码包库进行扫描,获取待分析组件的第一路径列表;
固件开源组件关联模块,用于对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;
固件开源组件版本识别模块,用于对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号;
版本号比较模块,用于遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表;
漏洞验证模块,用于对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的一种基于开源组件版本识别的固件脆弱性判别方法及系统,能高效地搜索固件解码包库中大规模固件的对应可疑漏洞,对大规模物联网设备的安全分析与应急响应具有重要意义,在对大规模固件安全漏洞风险进行评估时,具有较高的可靠性,从而为安全漏洞研究人员提供分析参考依据,提升固件漏洞挖掘的效率和准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于开源组件版本识别的固件脆弱性判别方法的流程示意图;
图2为本发明实施例提供的开源组件版本漏洞字典的构建过程示意图;
图3为本发明实施例提供的多种交叉编译环境下编译开源组件二进制文件的示意图;
图4为本发明实施例提供的待分析组件和开源组件的关联及验证示意图;
图5为本发明实施例提供的待分析组件版本识别示意图;
图6为本发明实施例提供的基于开源组件版本识别的固件脆弱性判别系统的结构示意图;
图7为本发明实施例提供的基于开源组件版本识别的物联网设备固件脆弱性判别系统的示意图;
图8为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
固件研发人员在进行固件开发时,为了追求开发效率,同时对固件在智能设备中的运行速率及安全性能有较高的要求,往往会广泛复用开源软件代码和使用第三方SDK,开源组件被广泛运用到物联网设备固件中,当某版本的开源组件被曝露出漏洞时,包含该版本的开源组件的其他物联网设备也将处于较高安全风险状态。例如,漏洞编号为CVE-2014-0160的知名网络安全里程碑事件漏洞——心脏出血漏洞,就是版本为1.0.1至1.0.1g之间的OpenSSL组件存在严重的安全漏洞,OpenSSL是为网络通信提供安全及数据完整性的一种安全协议组件,其囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,被各大网银、在线支付、电商网站、门户网站和电子邮件等重要网站广泛使用,导致全球前一百万的网站中有40.9%的网站中招;漏洞编号为CVE-2017-7494的被物联网蠕虫SHELLBIND所利用的SambaCry漏洞,影响了物联网设备长达七年之久,而Samba组件也常被物联网设备固件使用,识别物联网设备固件中Samba组件版本对于应急响应意义重大;2018年8月出现超过20万台Mikro Tik路由器固件存在Vault漏洞,遭到数字货币挖矿恶意软件攻击,安全研究人员认为它在用于Mikro Tik设备的RouterOS软件中影响了Winbox管理组件和Windows的GUI应用程序,同时允许攻击者在受影响的设备上执行远程代码执行以获得root shell。因此,从大规模物联网设备固件中识别开源组件的版本并与漏洞库已公开的开源组件漏洞版本或安全人员挖掘的0day漏洞的开源组件漏洞版本进行关联匹配,对大规模物联网设备的安全分析与应急响应具有重要意义,对大规模固件安全漏洞风险评估可靠性较高,为安全漏洞研究人员提供分析参考依据,提升固件漏洞挖掘的效率和准确性。
图1为本发明实施例提供的基于开源组件版本识别的固件脆弱性判别方法的流程示意图,如图1所示,本发明实施例供了一种基于开源组件版本识别的固件脆弱性判别方法,包括:
步骤101,对固件解码包库进行扫描,获取待分析组件的第一路径列表。
在本发明实施例中,首先,确定待分析组件的component_name,例如OpenSSL;然后,使用Linux系统下的find命令,扫描固件解码包库中的待分析组件名,具体地,在服务器的固件解码包库所在目录路径下,执行命令“find openssl>openssl.txt”,并将查找到的OpenSSL开源组件的路径列表输出到openssl.txt文件中,从而获取得到待分析组件的路径列表,即第一路径列表。
步骤102,对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表。
在本发明实施例中,首先需要遍历待分析组件的第一路径列表,并根据文件的属性,过滤文本文件路径和目录路径,筛选其中的二进制文件路径;然后,将过滤筛选后的第一路径列表和开源组件字符串数据库的开源组件进行关联及验证,将验证结果满足预设阈值的路径列表,作为待分析组件的第二路径列表。需要说明的是,在本发明实施例中,通过计算待分析组件和开源组件之间的相似性进行关联验证,将两者之间相似度值满足预设阈值的开源组件的路径列表作为待分析组件可信的路径列表,即第二路径列表。
进一步地,在本发明实施例中,在进行开源组件的关联步骤时,采用的关联计算方法需要考虑指令集架构、编译优化选项和编译器等不同编译环境带来的影响,如表1所示:
表1
Figure BDA0002408503630000091
表1为版本号1.21.1的开源组件BusyBox中的get_localtime函数的C语言源代码在三种不同架构下编译为二进制文件并经IDA反汇编出的汇编代码,由表1可知,即使是同一份源码,在不同指令集架构下经相同编译优化选项和编译器编译产生较大的差异。考虑到二进制文件中字符串信息受不同编译环境的影响差异较小,因此,本发明实施例将两个组件(待分析组件和开源组件)之间二进制文件的比较,转化为字符串相似度计算的比较,从而进行待分析组件与开源组件字符串数据库的关联和验证。
步骤103,对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号。
在本发明实施例中,需要遍历待分析组件的第二路径列表,然后识别待分析组件的版本号,具体地,基于字符串规则匹配的开源组件版本识别和基于QEMU用户态仿真的开源组件版本识别的两种方法,分别对待分析组件进行版本号识别,然后将两种识别方法下得到的版本号进行信息融合和综合判断,最终输出得到可信度较高的固件开源组件版本号。在本发明实施例中,可将两种识别方法下得到的版本号结合构建开源组件版本库,以通过该开源组件版本版本库进行信息融合和综合判断。其中,所述开源组件版本库用于在爬取固件中常用的多种开源组件的开源组件源码时,标记对应版本号信息。
步骤104,遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表。
进一步地,在对待分析组件中的可疑漏洞组件进行判断之前,首先需要构建开源组件版本漏洞字典,步骤为:
获取固件中多个开源组件,并根据漏洞描述信息,检索所述多个开源组件的组件名,得到所述多个开源组件对应漏洞库中的漏洞描述信息,以用于生成开源组件漏洞信息分析报告;
根据正则表达式匹配方式,对所述开源组件漏洞信息分析报告进行处理,得到漏洞库开源组件版本匹配规则库;
遍历所述多个开源组件对应漏洞库中的漏洞描述信息,并根据所述漏洞库开源组件版本匹配规则库,构建开源组件版本漏洞字典。
图2为本发明实施例提供的开源组件版本漏洞字典的构建过程示意图,可参考图2所示,在本发明实施例中,选取多个常用的开源组件,这些开源组件作为待分析开源组件,用于构建漏洞库开源组件版本匹配规则库(即图2中的开源组件版本匹配规则库),具体地,根据漏洞描述信息,将这些开源组件的组件名作为关键词进行漏洞库检索,输出得到与该开源组件相关的漏洞数据库中的漏洞描述信息,并根据漏洞描述信息生成包含有组件名、漏洞编号和漏洞描述的开源组件漏洞信息分析报告,在本发明实施例中,该开源组件漏洞信息分析报告为PDF格式;然后,对生成的开源组件漏洞信息分析报告进行调研和分析漏洞库中版本号存在的规则形式,统计归纳版本号存在的规则,使用正则表达式匹配方式归纳和表达版本号存在形式,从而形成漏洞库开源组件版本匹配规则库;最后,遍历开源组件版本漏洞字典,并与提取得到的固件开源组件版本号进行比较,若固件开源组件版本号满足开源组件版本漏洞字典中某一条版本列表的选项中,则待分析组件存在漏洞编号对应的可疑漏洞,并将该可疑漏洞组件加入可疑漏洞组件库。其中,在本发明实施例中,开源组件相关的漏洞数据库的构建,主要是开发漏洞信息收集爬虫程序从CVE、Exploit Database、VFeed和NVD等漏洞相关数据库及漏洞的补丁信息等公共安全平台收集得到的漏洞编号和漏洞描述信息,通过进行归纳、去重和编号,最终集成一个较为全面的漏洞数据库。在本发明实施例中,通过构建开源组件版本漏洞字典,为大规模物联网设备固件脆弱性分析及固件二进制文件的漏洞发现缩小了范围,为安全漏洞研究人员提供分析参考依据,提升固件漏洞发现的效率和准确性。
步骤105,对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
在上述实施例的基础上,优选地,在所述遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件之后,所述方法还包括:
将所述可疑漏洞组件添加到可疑漏洞组件库;
对存入所述可疑漏洞组件库的可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
在本发明实施例中,根据对应的漏洞描述信息,进一步验证待分析组件的可疑漏洞组件或者可疑漏洞组件库中的组件是否存在对应的漏洞,若存在,则将该可疑漏洞组件确定为漏洞组件,并存入到固件漏洞组件库。通过进一步验证待分析组件或者可疑漏洞组件库中的组件是否存在对应的漏洞,有效提升了漏洞发现效率,为漏洞影响范围的排查缩小了分析范围,为固件研发人员提供了开源组件使用预警。
本发明实施例提供的一种基于开源组件版本识别的固件脆弱性判别方法,能高效地搜索固件解码包库中大规模固件的对应可疑漏洞,对大规模物联网设备的安全分析与应急响应具有重要意义,在对大规模固件安全漏洞风险进行评估时,具有较高的可靠性,从而为安全漏洞研究人员提供分析参考依据,提升固件漏洞发现的效率和准确性。
在上述实施例的基础上,在所述对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表之前,所述方法还包括:
爬取固件中多种开源组件的开源组件源码,并对所述开源组件源码进行交叉编译,得到所述开源组件源码对应的二进制文件;
对所述二进制文件进行字符串提取处理,并通过黑名单机制,对提取得到的字符串进行干扰字符串过滤处理,得到满足预设条件的字符串,以用于构建所述开源组件字符串数据库。
在上述实施例的基础上,所述对所述二进制文件进行字符串提取处理,并通过黑名单机制,对提取得到的字符串进行干扰字符串过滤处理,得到满足预设条件的字符串,包括:
对所述二进制文件进行字符串提取处理,得到字符串;
根据信息增益公式,计算所述字符串的信息增益值,若所述字符串的信息增益值小于等于预设信息增益阈值,得到满足预设条件的字符串,所述信息增益公式定义为:
Figure BDA0002408503630000121
其中,IG(s)表示信息增益值,Ci表示第i种指令集架构;P(s)表示包含字符串s的二进制文件数量和交叉编译的所有二进制文件之间的比值;P(Ci)表示指令集架构Ci的二进制文件数量和交叉编译的全部二进制文件之间的比值;P(s,Ci)表示指令集架构Ci中包含字符串s的二进制文件数量和交叉编译的所有二进制文件之间的比值;
若所述字符串的信息增益值大于预设信息增益阈值,则将所述字符串添加到黑名单。
图3为本发明实施例提供的多种交叉编译环境下编译开源组件二进制文件的示意图,可参考图3所示,在本发明实施例中,通过爬取固件中常用的开源组件源码、提取开源组件可读字符串和过滤干扰字符串,从而构建开源组件字符串MongoDB数据库,即开源组件字符串数据库。具体地,通过收集固件中常使用的多种开源组件的多个版本源码,同时标记开源组件源码对应的版本号,构建开源组件源码库和开源组件版本号库;然后,使用buildroot工具构造交叉编译工具链或者选择安装、配置对应的交叉编译工具链,进行开源组件源码的交叉编译,如图3所示,在多种指令集架构(如MIPS、ARM、PowerPC和X86等)、多种编译优化选项(如-O0、-O1、-O2、-O3和-Os等)和多种编译器(如GCC、ICC和Clang等)等多种编译环境下,编译为多个二进制文件,构建开源组件二进制文件库;进一步地,在Linux系统环境中,遍历开源组件二进制文件库中的二进制文件,使用“strings-byte num filename”命令提取二进制文件的字符串,其中num为字符串长度,在本发明实施例中,可根据经验提取二进制文件中字符串长度大于等于6字节以上的字符串,采用黑名单机制过滤干扰字符串,将过滤干扰字符串后的其他字符串写入MongoDB数据库,数据库存储的形式为{{{string1,string2,string3,...,stringn},component1},...},其中,stringn表示第n个字符串,component1表示其中一种开源组件。
进一步地,在本发明实施例中,通过黑名单机制过滤干扰字符串的具体步骤为:对每个字符串计算信息增益,若求得的字符串的信息增益的值大于预设信息增益阈值φ,则将其加入到黑名单中。需要说明的是,在本发明实施例中,还可以将一些内核级和系统级库(lib,usr/lib等目录下的库文件)的符号字符串也加入黑名单之中。
在上述实施例的基础上,所述对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表,包括:
对所述待分析组件的第一路径列表进行遍历,以用于提取所述待分析组件的字符串,并根据所述黑名单机制,对所述待分析组件的字符串进行过滤,得到过滤后的字符串;
通过相似度公式,对所述过滤后的字符串和所述开源组件字符串数据库的字符串进行相似度计算,若相似度大于预设相似度阈值,将所述过滤后的字符串对应的待分析组件和路径列表进行保存,所述相似度公式定义为:
Figure BDA0002408503630000131
其中,sim(ci)表示待分析组件ci的相似度,Ci表示待分析组件ci的字符串集合,B表示开源组件数据库中组件名为ci的开源组件字符串集合,ncommon表示Ci与B两种字符串集合中共同拥有的字符串数量,ncomponent表示B字符串集合的数量;
若相似度小于等于预设相似度阈值,则将所述过滤后的字符串对应的待分析组件舍弃。
图4为本发明实施例提供的待分析组件和开源组件的关联及验证示意图,可参考图4所示,在本发明实施例中,通过遍历二进制文件路径列表,提取待分析组件的字符串信息,并采用黑名单机制过滤干扰字符串,根据过滤干扰字符串后的字符串与MongoDB数据库(即开源组件字符串数据库)中的对应组件名为component_name的字符串,计算两者之间的相似度,若相似度大于预设相似度阈值α,则认为该待分析组件的组件名为component_name,并将其和对应的路径列表进行保存;否则舍弃。
本发明实施例在扫描固件解码包库输出待分析组件的路径列表之后,通过将待分析组件和开源组件进行关联及验证,采用遍历待分析组件的路径列表,提取固件中待分析组件与开源组件二进制文件库的文件的字符串,并进行关联计算相似度值,防止因研发人员对组件或二进制文件的命名习惯,导致扫描出的固件组件并非对应的开源组件,为后续组件版本识别与关联节省时间,提升漏洞开源组件库的纯度,为后续更好进行应急响应、二进制漏洞发现及固件脆弱性分析提升效率。
在上述实施例的基础上,所述对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号,包括:
对所述待分析组件的第二路径列表进行遍历,并通过基于字符串规则匹配的开源组件版本识别和基于QEMU用户态仿真的开源组件版本识别的两种方法,分别对所述待分析组件进行版本号识别,得到第一版本号和第二版本号;
对所述第一版本号和所述第二版本号进行信息融合和综合判断处理,的得到所述待分析组件对应的固件开源组件版本号。
图5为本发明实施例提供的待分析组件版本识别示意图,可参考图5所示,在本发明实施例中,构建基于字符串规则匹配的开源组件版本识别的规则:提取待分析组件对应的开源组件二进制文件库中的二进制文件及固件解码包库中的二进制文件的字符串信息,调研和分析版本号存在的规则形式,统计并归纳其存在的规则,然后使用正则表达式匹配方式归纳和表达其版本号存在的形式,构建基于字符串版本识别规则库。当使用基于字符串规则匹配开源组件版本识别的规则识别待分析组件的版本号时,首先提取待分析组件的字符串,然后对该输出的字符串匹配出对应的版本号信息,若匹配出结果,则保存输出结果,若未匹配出结果,则输出结果记为空。
进一步地,在本发明实施例中,构建基于QEMU用户态仿真的开源组件版本识别的规则:搭建QEMU用户态仿真环境,仿真待分析组件对应的开源组件二进制文件库中的二进制文件及固件解码包库中的二进制文件,仿真运行二进制文件并使用“-v、-V、--version、-verison、version、-h、--help”等参数的形式,以用于获取存在相关版本的字符串信息;然后,在固件文件系统的根目录下使用执行命令“sudo chroot./component_pathparameter”,其中component_path为固件文件系统的根目录的相对路径,parameter为参数;最后,调研和分析版本号存在的规则形式,统计并归纳其存在形式的规则,使用正则表达式匹配方式归纳和表达其版本号存在的形式,构建基于QEMU仿真的版本识别规则库。当使用基于QEMU用户态仿真的开源组件版本识别规则识别待分析组件的版本号时,首先仿真待分析组件,并遍历使用参数获取存在版本的字符串,然后根据输出的该字符串匹配出对应的版本号信息,若匹配出结果,则保存输出结果,若未匹配出结果,则输出结果记为空。
进一步地,在本发明实施例中,信息融合和综合判断的具体步骤为:分别基于字符串规则匹配的开源组件版本识别和基于QEMU用户态仿真的开源组件版本识别的两种方法,获取待分析组件的两个版本号识别结果。若上述两种识别方法输出的结果一致且不为空,则认为待分析组件的版本号即为该输出的版本号;若上述两种识别方法输出的结果不一致,则分别将两种识别方法输出的结果与开源组件版本库进行匹配,如果只有某一个结果出现在开源组件版本库中,则认为该版本为待分析组件的版本号;若两种识别方法输出的结果不一致,且两个结果都出现在开源组件版本库中,则将基于QEMU用户态仿真方法输出的版本号作为待分析组件的版本号;若两种识别方法输出的结果不一致,且两结果都未出现在开源组件版本库中,则舍弃此两值,即待分析组件的版本号未正确识别;若两种识别方法输出的结果都为空,即未识别出待分析组件的版本号。
本发明实施例中通过识别待分析组件对应的固件开源组件版本号,能够避免物联网设备固件的多指令集架构、多编译优化选项、多编译器等多种编译环境下,同一份源码在不同的编译环境下编译的二进制文件存在很大的差异,进而导致通过二进制文件比对工具判断开源组件版本具有较高的误判率的影响,具有版本识别准确率高和识别速率快的效果,有效解决了固件中开源组件版本的识别困难问题。
图6为本发明实施例提供的基于开源组件版本识别的固件脆弱性判别系统的结构示意图,如图6所示,本发明实施例提供了一种基于开源组件版本识别的固件脆弱性判别系统,包括路径列表获取模块601、固件开源组件关联模块602、固件开源组件版本识别模块603、版本号比较模块604和漏洞验证模块605,其中,路径列表获取模块601用于对固件解码包库进行扫描,获取待分析组件的第一路径列表;固件开源组件关联模块602用于对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;固件开源组件版本识别模块603用于对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号,其中,固件开源组件版本识别模块603包括基于字符串规则匹配的开源组件版本识别子系统和基于QEMU用户态仿真的开源组件版本识别子系统;版本号比较模块604用于遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表,在本发明实施例中,若物联网设备固件的待分析组件版本号在开源组件版本漏洞字典中某个漏洞编号对应的漏洞版本号列表范围内,可初步判别出物联网设备固件中待分析组件存在该漏洞编号对应的漏洞;漏洞验证模块605用于对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库,在本发明实施例中,漏洞验证模块605可通过手工验证、自动化漏洞挖掘或漏洞分析工具进行安全漏洞验证。
本发明实施例提供的一种基于开源组件版本识别的固件脆弱性判别系统,能高效地搜索固件解码包库中大规模固件的对应可疑漏洞,对大规模物联网设备的安全分析与应急响应具有重要意义,在对大规模固件安全漏洞风险进行评估时,具有较高的可靠性,从而为安全漏洞研究人员提供分析参考依据,提升固件漏洞发现的效率和准确性。
在上述实施例的基础上,所述系统还包括:漏洞库开源组件版本提取模块,具体用于:
获取固件中多个开源组件,并根据漏洞描述信息,检索所述多个开源组件的组件名,得到所述多个开源组件对应漏洞库中的漏洞描述信息,以用于生成开源组件漏洞信息分析报告;
根据正则表达式匹配方式,对所述开源组件漏洞信息分析报告进行处理,得到漏洞库开源组件版本匹配规则库;
遍历所述多个开源组件对应漏洞库中的漏洞描述信息,并根据所述漏洞库开源组件版本匹配规则库,构建开源组件版本漏洞字典。
图7为本发明实施例提供的基于开源组件版本识别的物联网设备固件脆弱性判别系统的示意图,可参考图7所示,本发明实施例提供了一套从固件开源组件关联及验证到固件开源组件版本识别,从漏洞库开源组件版本提取到识别出的待分析组件版本号与识别出的开源组件版本号之间的比较,最后构建可疑固件漏洞组件库及漏洞组件验证的系统。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图8为本发明实施例提供的电子设备结构示意图,参照图8,该电子设备可以包括:处理器(processor)801、通信接口(Communications Interface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行如下方法:对固件解码包库进行扫描,获取待分析组件的第一路径列表;对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号;遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表;对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于开源组件版本识别的固件脆弱性判别方法,例如包括:对固件解码包库进行扫描,获取待分析组件的第一路径列表;对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号;遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表;对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于开源组件版本识别的固件脆弱性判别方法,其特征在于,包括:
对固件解码包库进行扫描,获取待分析组件的第一路径列表;
对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;
对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号;
遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表;
对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
2.根据权利要求1所述的基于开源组件版本识别的固件脆弱性判别方法,其特征在于,在所述对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表之前,所述方法还包括:
爬取固件中多种开源组件的开源组件源码,并对所述开源组件源码进行交叉编译,得到所述开源组件源码对应的二进制文件;
对所述二进制文件进行字符串提取处理,并通过黑名单机制,对提取得到的字符串进行干扰字符串过滤处理,得到满足预设条件的字符串,以用于构建所述开源组件字符串数据库。
3.根据权利要求2所述的基于开源组件版本识别的固件脆弱性判别方法,其特征在于,所述对所述二进制文件进行字符串提取处理,并通过黑名单机制,对提取得到的字符串进行干扰字符串过滤处理,得到满足预设条件的字符串,包括:
对所述二进制文件进行字符串提取处理,得到字符串;
根据信息增益公式,计算所述字符串的信息增益值,若所述字符串的信息增益值小于等于预设信息增益阈值,得到满足预设条件的字符串,所述信息增益公式定义表示为:
Figure FDA0002408503620000021
其中,IG(s)表示信息增益值,Ci表示第i种指令集架构;P(s)表示包含字符串s的二进制文件数量和交叉编译的所有二进制文件之间的比值;P(Ci)表示指令集架构Ci的二进制文件数量和交叉编译的全部二进制文件之间的比值;P(s,Ci)表示指令集架构Ci中包含字符串s的二进制文件数量和交叉编译的所有二进制文件之间的比值;
若所述字符串的信息增益值大于预设信息增益阈值,则将所述字符串添加到黑名单。
4.根据权利要求3所述的基于开源组件版本识别的固件脆弱性判别方法,其特征在于,所述对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表,包括:
对所述待分析组件的第一路径列表进行遍历,以用于提取所述待分析组件的字符串,并根据所述黑名单机制,对所述待分析组件的字符串进行过滤,得到过滤后的字符串;
通过相似度公式,对所述过滤后的字符串和所述开源组件字符串数据库的字符串进行相似度计算,若相似度大于预设相似度阈值,将所述过滤后的字符串对应的待分析组件和路径列表进行保存,所述相似度公式定义为:
Figure FDA0002408503620000022
其中,sim(ci)表示待分析组件ci的相似度,Ci表示待分析组件ci的字符串集合,B表示开源组件数据库中组件名为ci的开源组件字符串集合,ncommon表示Ci与B两种字符串集合中共同拥有的字符串数量,ncomponent表示B字符串集合的数量;
若相似度小于等于预设相似度阈值,则将所述过滤后的字符串对应的待分析组件舍弃。
5.根据权利要求1所述的基于开源组件版本识别的固件脆弱性判别方法,其特征在于,所述对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号,包括:
对所述待分析组件的第二路径列表进行遍历,并通过基于字符串规则匹配的开源组件版本识别和基于QEMU用户态仿真的开源组件版本识别的两种方法,分别对所述待分析组件进行版本号识别,得到第一版本号和第二版本号;
对所述第一版本号和所述第二版本号进行信息融合和综合判断处理,得到所述待分析组件对应的固件开源组件版本号。
6.根据权利要求1所述的基于开源组件版本识别的固件脆弱性判别方法,其特征在于,在所述遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件之前,所述方法还包括:
获取固件中多个开源组件,并根据漏洞描述信息,检索所述多个开源组件的组件名,得到所述多个开源组件对应漏洞库中的漏洞描述信息,以用于生成开源组件漏洞信息分析报告;
根据正则表达式匹配方式,对所述开源组件漏洞信息分析报告进行处理,得到漏洞库开源组件版本匹配规则库;
遍历所述多个开源组件对应漏洞库中的漏洞描述信息,并根据所述漏洞库开源组件版本匹配规则库,构建开源组件版本漏洞字典。
7.根据权利要求1所述的基于开源组件版本识别的固件脆弱性判别方法,其特征在于,在所述遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件之后,所述方法还包括:
将所述可疑漏洞组件添加到可疑漏洞组件库;
对存入所述可疑漏洞组件库的可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
8.一种基于开源组件版本识别的固件脆弱性判别系统,其特征在于,包括:
路径列表获取模块,用于对固件解码包库进行扫描,获取待分析组件的第一路径列表;
固件开源组件关联模块,用于对所述待分析组件的第一路径列表进行遍历,根据遍历结果,将所述待分析组件与开源组件字符串数据库进行关联和验证,将验证结果满足预设阈值的路径列表,作为所述待分析组件的第二路径列表;
固件开源组件版本识别模块,用于对所述待分析组件的第二路径列表进行遍历,并对所述待分析组件进行版本识别,得到所述待分析组件对应的固件开源组件版本号;
版本号比较模块,用于遍历开源组件版本漏洞字典,若所述开源组件版本漏洞字典的版本号列表中存在所述固件开源组件版本号,则判断获知所述待分析组件为可疑漏洞组件,其中,所述开源组件版本漏洞字典的键为漏洞编号,值为版本号列表;
漏洞验证模块,用于对所述可疑漏洞组件进行漏洞验证,并将漏洞验证通过后的待分析组件存入固件漏洞组件库。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于开源组件版本识别的固件脆弱性判别方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述基于开源组件版本识别的固件脆弱性判别方法的步骤。
CN202010169063.5A 2020-03-12 2020-03-12 基于开源组件版本识别的固件脆弱性判别方法及系统 Active CN111400719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010169063.5A CN111400719B (zh) 2020-03-12 2020-03-12 基于开源组件版本识别的固件脆弱性判别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010169063.5A CN111400719B (zh) 2020-03-12 2020-03-12 基于开源组件版本识别的固件脆弱性判别方法及系统

Publications (2)

Publication Number Publication Date
CN111400719A CN111400719A (zh) 2020-07-10
CN111400719B true CN111400719B (zh) 2023-03-14

Family

ID=71428758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010169063.5A Active CN111400719B (zh) 2020-03-12 2020-03-12 基于开源组件版本识别的固件脆弱性判别方法及系统

Country Status (1)

Country Link
CN (1) CN111400719B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181482B (zh) * 2020-09-29 2023-03-21 平安科技(深圳)有限公司 版本验证方法、装置、电子设备及存储介质
CN112241311A (zh) * 2020-10-22 2021-01-19 杭州安恒信息技术股份有限公司 一种固件仿真模拟方法、装置、电子设备及可读存储介质
CN112231302A (zh) * 2020-10-30 2021-01-15 深圳开源互联网安全技术有限公司 Java开源组件数据库的维护方法、装置及存储介质
CN112926060B (zh) * 2021-04-13 2023-05-19 深圳开源互联网安全技术有限公司 一种检测.net项目组件及其漏洞的方法和装置
CN113127355A (zh) * 2021-04-22 2021-07-16 安徽三实信息技术服务有限公司 一种分析识别第三方组件程序及版本的方法及装置
CN113626823B (zh) * 2021-06-29 2023-06-27 中国科学院信息工程研究所 一种基于可达性分析的组件间交互威胁检测方法及装置
CN113297583B (zh) * 2021-07-27 2021-11-09 深圳开源互联网安全技术有限公司 漏洞风险分析方法、装置、设备及存储介质
CN113778616A (zh) * 2021-08-11 2021-12-10 国网辽宁省电力有限公司电力科学研究院 一种电力物联网终端虚拟化模拟仿真平台及仿真方法
CN113778509B (zh) * 2021-08-13 2024-07-02 国网河北省电力有限公司电力科学研究院 一种确定开源组件的版本的方法、存储介质和电子装置
CN113901459B (zh) * 2021-08-26 2023-05-26 中国科学院信息工程研究所 固件内部二进制程序脆弱性发现方法及装置
CN114398069B (zh) * 2021-12-10 2024-06-28 中国人民解放军战略支援部队信息工程大学 一种基于交叉指纹分析的公共组件库精确版本识别方法及系统
CN114884699B (zh) * 2022-04-13 2024-03-19 中国银行股份有限公司 漏洞检测方法、装置、设备和存储介质
CN116561768B (zh) * 2023-05-19 2024-05-28 国家计算机网络与信息安全管理中心 设备固件漏洞检测方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235527B1 (en) * 2016-08-11 2019-03-19 Pivotal Software, Inc. Vulnerability notification for live applications
CN110659502A (zh) * 2019-09-05 2020-01-07 中国科学院软件研究所 一种基于文本信息关联关系分析的项目版本检测方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10803061B2 (en) * 2018-07-31 2020-10-13 Veracode, Inc. Software vulnerability graph database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235527B1 (en) * 2016-08-11 2019-03-19 Pivotal Software, Inc. Vulnerability notification for live applications
CN110659502A (zh) * 2019-09-05 2020-01-07 中国科学院软件研究所 一种基于文本信息关联关系分析的项目版本检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种虚拟化环境的脆弱性检测方法;王瑞等;《计算机应用与软件》(第09期);全文 *

Also Published As

Publication number Publication date
CN111400719A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN111400719B (zh) 基于开源组件版本识别的固件脆弱性判别方法及系统
Alrabaee et al. Fossil: a resilient and efficient system for identifying foss functions in malware binaries
RU2722692C1 (ru) Способ и система выявления вредоносных файлов в неизолированной среде
CN110659502B (zh) 一种基于文本信息关联关系分析的项目版本检测方法及系统
CN110765459A (zh) 一种恶意脚本检测方法、装置和存储介质
CN108520180A (zh) 一种基于多维度的固件Web漏洞检测方法及系统
KR102362516B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
US20230252145A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
US20230252136A1 (en) Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
Azodi et al. A new approach to building a multi-tier direct access knowledgebase for IDS/SIEM systems
CN113297580A (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
Zhao et al. VULDEFF: Vulnerability detection method based on function fingerprints and code differences
Chaumette et al. Automated extraction of polymorphic virus signatures using abstract interpretation
CN116932381A (zh) 小程序安全风险自动化评估方法及相关设备
US20240054215A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
US20230252144A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
US20230252146A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
US20230048076A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
Song et al. HGIVul: Detecting inter-procedural vulnerabilities based on hypergraph convolution
KR102411383B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102396236B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
Han Detection of web application attacks with request length module and regex pattern analysis
US20240211595A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program

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