CN113434870B - 基于软件依赖分析的漏洞检测方法、装置、设备及介质 - Google Patents

基于软件依赖分析的漏洞检测方法、装置、设备及介质 Download PDF

Info

Publication number
CN113434870B
CN113434870B CN202110794596.7A CN202110794596A CN113434870B CN 113434870 B CN113434870 B CN 113434870B CN 202110794596 A CN202110794596 A CN 202110794596A CN 113434870 B CN113434870 B CN 113434870B
Authority
CN
China
Prior art keywords
vulnerability
software
function
target software
information
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
CN202110794596.7A
Other languages
English (en)
Other versions
CN113434870A (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.)
China Electronic Technology Cyber Security Co Ltd
Original Assignee
China Electronic Technology Cyber Security Co Ltd
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 China Electronic Technology Cyber Security Co Ltd filed Critical China Electronic Technology Cyber Security Co Ltd
Priority to CN202110794596.7A priority Critical patent/CN113434870B/zh
Publication of CN113434870A publication Critical patent/CN113434870A/zh
Application granted granted Critical
Publication of CN113434870B publication Critical patent/CN113434870B/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
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于软件依赖分析的漏洞检测方法、装置、设备及介质,其中漏洞检测方法针对目标软件中引用的软件依赖项及其调用函数进行分析,利用公开的漏洞信息库查询出软件依赖项中的漏洞信息,并结合控制流图和函数调用图对目标软件本身以及软件依赖项进行联合分析,判断软件依赖项的漏洞是否影响目标软件。本发明以基于软件依赖分析的源代码漏洞检测为驱动,综合利用公开漏洞信息库的信息进行查询推导,得出目标软件所包含的第三方依赖项及对应的依赖项漏洞信息,并结合控制流图、函数调用图等对目标软件以及软件依赖项进行联合分析,判断软件依赖项的漏洞是否对目标软件造成影响,并找出目标软件中的具体漏洞点。

Description

基于软件依赖分析的漏洞检测方法、装置、设备及介质
技术领域
本发明涉及电数字数据处理技术领域,尤其涉及一种基于软件依赖分析的漏洞检测方法、装置、设备及介质。
背景技术
新的信息环境下,软件规模越来越大,软件复杂度越来越高,软件中包含的第三方开源依赖对其的影响越来越深。第三方开源依赖库或依赖包可以帮助软件开发者共享软件研发成果。重复使用第三方开源软件库或软件包,能够让软件开发者专注于其技术创新,加速软件研发过程,推进技术的快速发展。
与此同时,在使用这些第三方开源依赖的时候,往往会遇到以下一些问题:1、软件开发者往往很少对第三方开源依赖进行安全性测试;2、开源依赖库或依赖包的软件开发人源对安全意识普遍不高;3、开源软件提供方没有多余的预算进行安全性测试;4、黑客的主要攻击目标很多都是这些开源依赖库或依赖包,只要成功攻击一个,影响范围就会很大。同时,很多软件开发人员在维护第三方开源依赖库或依赖包的时候,即使该依赖已经不适用,但也不会删除,这显然会扩大黑客的攻击范围,
因此,越来越多的公司开始重视第三方开源依赖库或依赖包的安全性。同时,也有很多开源组织针对这些开源软件提供了免费的漏洞库,如US-CERT,NVD,OSVDB等漏洞广播源,该类组织集中维护发现的已知漏洞,对外提供表述漏洞数据描述以及漏洞广播,为开源社区安全提供数据支持,有了漏洞数据源之后,判断软件中包含的第三方开源依赖库或依赖包中是否有漏洞就具备了可行性,我们仅需要根据我们的依赖包与漏洞数据库进行对比,就可以发现我们发布的应用软件中是否包含已知的漏洞,甚至有些开源组织会在漏洞库的基础上提供关于漏洞的修复建议。
发明内容
本发明要解决的技术问题在于如何判定第三方开源依赖库或依赖包所含漏洞是否对目标软件产生安全影响,并定位出目标软件相关的漏洞点位。为了解决上述问题,本发明提出一种基于软件依赖分析的漏洞检测方法、装置、设备及介质,通过提取目标软件中的第三方开源依赖库或依赖包信息,并通过NVD等公开的漏洞信息库检测出每个依赖包含的漏洞信息。利用控制流和函数调用分析,从而得出该依赖的漏洞是否影响到目标软件,并得出具体的漏洞点位。
本发明采用的技术方案如下:
一种基于软件依赖分析的漏洞检测方法,针对目标软件中引用的软件依赖项及其调用函数进行分析,利用公开的漏洞信息库查询出软件依赖项中的漏洞信息,并结合控制流图和函数调用图对目标软件本身以及软件依赖项进行联合分析,判断软件依赖项的漏洞是否影响目标软件。
进一步的,所述基于软件依赖分析的漏洞检测方法包括:
漏洞信息查询:利用目标软件及其软件版本信息,查询漏洞信息库中关联的软件依赖项以及依赖项中的漏洞信息,漏洞信息包括软件依赖项中的CVE漏洞和漏洞补丁diff文件;
数据解析:对软件依赖项的漏洞补丁diff文件进行解析,确认软件依赖项中CVE漏洞所在依赖项代码中的具体位置,并通过软件依赖的源代码文件提取该CVE漏洞影响的函数调用;
漏洞检测:基于数据解析生成的函数调用信息,对目标软件代码进行扫描,生成目标软件的函数调用图,确定目标软件中引用软件依赖所提供的接口函数的具体位置,并通过该位置信息进行目标软件代码切片,生成控制流图;
漏洞验证:利用目标软件的函数调用图,与软件依赖中CVE漏洞影响的函数调用进行匹配,验证目标软件是否调用了软件依赖中CVE漏洞影响的相关接口函数,并通过控制流分析,检测出目标软件中相关的漏洞点位。
进一步的,漏洞信息查询中,在查询目标软件的依赖项时,需要借助漏洞信息库所管理的软件依赖及相关漏洞信息,该漏洞信息库包括NVD即美国国家通用漏洞数据库;漏洞信息库中存储了目标软件的绝大多数依赖项,只要确认目标软件及其版本号则能够查询其依赖项,根据依赖项能够关联到对应的CVE漏洞和漏洞补丁diff文件。
进一步的,数据解析包括解析依赖项的漏洞补丁diff文件生成漏洞信息表,借助污点分析提取依赖项的控制流图。
进一步的,解析目标软件代码,得出引用了依赖项所提供的接口函数的代码信息,获取对依赖项接口函数调用的所有信息。
进一步的,借助AST即抽象语法树获取目标软件代码中对依赖项的函数调用,包括以下步骤:
S1.首先生成目标软件代码的AST信息;
S2.对每个方法的每一个块分析,分析块中是否包含对依赖项的函数调用,如果包含,则解析调用语句,然后执行步骤S3;否则,结束;
S3.判断调用对象是否属于依赖项中的某个类,如果属于,则执行步骤S4;否则,返回步骤S2,继续分析其他的块;
S4.判断该调用语句是否是实例化参数的语句,如果是,则将调用者与调用函数、调用参数存储在一个数据结构中,继续分析其他的块;否则,返回步骤S2,继续分析其他的块。
进一步的,漏洞检测与漏洞验证是通过获取数据解析中得到的函数调用信息,获取每一个函数的函数调用图,得到函数调用图之后,通过访问数据库获取软件依赖项的漏洞函数,与函数调用图匹配,查找漏洞函数是否在函数调用路径中,如果在,则软件依赖项的漏洞影响了目标软件,并且函数调用点为漏洞点。
一种基于软件依赖分析的漏洞检测装置,包括:
漏洞信息查询模块:利用目标软件及其软件版本信息,查询漏洞信息库中关联的软件依赖项以及依赖项中的漏洞信息,漏洞信息包括软件依赖项中的CVE漏洞和漏洞补丁diff文件;
数据解析模块:对软件依赖项的漏洞补丁diff文件进行解析,确认软件依赖项中CVE漏洞所在依赖项代码中的具体位置,并通过软件依赖的源代码文件提取该CVE漏洞影响的函数调用;
漏洞检测模块:基于数据解析模块生成的函数调用信息,对目标软件代码进行扫描,生成目标软件的函数调用图,确定目标软件中引用软件依赖所提供的接口函数的具体位置,并通过该位置信息进行目标软件代码切片,生成控制流图;
漏洞验证模块:利用目标软件的函数调用图,与软件依赖中CVE漏洞影响的函数调用进行匹配,验证目标软件是否调用了软件依赖中CVE漏洞影响的相关接口函数,并通过控制流分析,检测出目标软件中相关的漏洞点位。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述基于软件依赖分析的漏洞检测方法的步骤。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述基于软件依赖分析的漏洞检测方法的步骤。
本发明的有益效果在于:
1、本发明以基于软件依赖分析的源代码漏洞检测为驱动,综合利用公开漏洞信息库的信息进行查询推导,得出目标软件所包含的第三方依赖项及对应的依赖项漏洞信息,并结合控制流图、函数调用图等对目标软件以及软件依赖项进行联合分析,判断软件依赖项的漏洞是否对目标软件造成影响,并找出目标软件中的具体漏洞点。
2、本发明能够理清目标软件包含的第三方依赖项及对应的已知漏洞状况,自动分析出软件依赖项中某个漏洞的具体点位,以及目标软件中由于该依赖项所引发的漏洞点位,极大减少漏洞检测中的人工介入,达到提升目标软件漏洞检测效能的目的。
3、本发明可以较完善地查询出目标软件引用的软件依赖信息以及对应的漏洞信息和漏洞补丁信息,理清目标软件包含的第三方依赖项及对应的已知漏洞状况。
4、本发明不仅可以完善地给出目标软件所引用的第三方依赖所包含的绝大多数漏洞信息,还可以自动地给出这些依赖项中某个漏洞的具体点位,以及该漏洞所影响的接口函数,极大地减少人工介入,提升整个漏洞分析过程的效率。
5、本发明不仅可以发现目标软件所引用的第三方依赖所包含的漏洞信息及点位,还可以自动地给出目标软件受哪些依赖项对应的漏洞影响,并且明确地指示出目标软件中由于该依赖项所引发的漏洞点位,提升目标软件漏洞检测的效果。
附图说明
图1本发明实施例1的基于软件依赖分析的漏洞检测方法的流程图;
图2本发明实施例1的漏洞信息库查询流程图;
图3本发明实施例1的依赖项的漏洞信息获取流程图;
图4本发明实施例1的目标软件代码解析流程图;
图5本发明实施例1的漏洞检测与验证流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明涉及的相关技术用语的说明如下:
CVE:Common Vulnerabilities&Exposures,通用漏洞披露;
NVD:National Vulnerability Database,美国国家通用漏洞数据库;
diff文件:差异文件,用于找出同一文件两个版本之间的差异;
JAR:Java ARchive,Java归档。
实施例1
本实施例提供了一种基于软件依赖分析的漏洞检测方法,针对目标软件中引用的软件依赖项(如JAR包等)及其调用函数进行分析,利用公开的漏洞信息库查询出软件依赖项中的漏洞信息,并结合控制流图和函数调用图对目标软件本身以及软件依赖项进行联合分析,判断软件依赖项的漏洞是否影响目标软件。
如图1所示,本实施例的基于软件依赖分析的漏洞检测方法包括:
漏洞信息查询:利用目标软件及其软件版本信息,查询漏洞信息库中关联的软件依赖项以及依赖项中的漏洞信息,漏洞信息包括软件依赖项中的CVE漏洞和漏洞补丁diff文件;
数据解析:对软件依赖项的漏洞补丁diff文件进行解析,确认软件依赖项中CVE漏洞所在依赖项代码中的具体位置,并通过软件依赖的源代码文件提取该CVE漏洞影响的函数调用;
漏洞检测:基于数据解析生成的函数调用信息,对目标软件代码进行扫描,生成目标软件的函数调用图,确定目标软件中引用软件依赖所提供的接口函数的具体位置,并通过该位置信息进行目标软件代码切片,生成控制流图;
漏洞验证:利用目标软件的函数调用图,与软件依赖中CVE漏洞影响的函数调用进行匹配,验证目标软件是否调用了软件依赖中CVE漏洞影响的相关接口函数,并通过控制流分析,检测出目标软件中相关的漏洞点位。
优选的,漏洞信息查询中,在查询目标软件的依赖项时,需要借助漏洞信息库所管理的软件依赖及相关漏洞信息,该漏洞信息库包括NVD即美国国家通用漏洞数据库。漏洞信息库中存储了目标软件的绝大多数依赖项,只要确认目标软件及其版本号则能够查询其依赖项,根据依赖项能够关联到对应的CVE漏洞和漏洞补丁diff文件,漏洞信息库查询流程如图2所示。
优选的,数据解析包括解析依赖项的漏洞补丁diff文件生成漏洞信息表,借助污点分析提取依赖项的控制流图,依赖项的漏洞信息获取流程如图3所示。
优选的,通过解析目标软件代码,得出引用了依赖项所提供的接口函数的代码信息,从而获取对依赖项接口函数调用的所有信息。具体的,借助AST即抽象语法树获取目标软件代码中对依赖项的函数调用,如图4所示,包括以下步骤:
S1.首先生成目标软件代码的AST信息;
S2.对每个方法的每一个块分析,分析块中是否包含对依赖项的函数调用,如果包含,则解析调用语句,然后执行步骤S3;否则,结束;
S3.判断调用对象是否属于依赖项中的某个类,如果属于,则执行步骤S4;否则,返回步骤S2,继续分析其他的块;
S4.判断该调用语句是否是实例化参数的语句,如果是,则将调用者与调用函数、调用参数存储在一个数据结构中,继续分析其他的块;否则,返回步骤S2,继续分析其他的块。
优选的,如图5所示,漏洞检测与漏洞验证通过获取数据解析中得到的函数调用信息,获取每一个函数的函数调用图,得到函数调用图之后,通过访问数据库获取软件依赖项的漏洞函数,与函数调用图匹配,查找漏洞函数是否在函数调用路径中,如果在,则软件依赖项的漏洞影响了目标软件,并且函数调用点为漏洞点。
需要说明的是,对于本方法实施例,为了简便描述,故将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
实施例2
本实施例在实施例1的基础上:
本实施例提供了一种基于软件依赖分析的漏洞检测装置,包括:
漏洞信息查询模块:利用目标软件及其软件版本信息,查询漏洞信息库中关联的软件依赖项以及依赖项中的漏洞信息,漏洞信息包括软件依赖项中的CVE漏洞和漏洞补丁diff文件;
数据解析模块:对软件依赖项的漏洞补丁diff文件进行解析,确认软件依赖项中CVE漏洞所在依赖项代码中的具体位置,并通过软件依赖的源代码文件提取该CVE漏洞影响的函数调用;
漏洞检测模块:基于数据解析模块生成的函数调用信息,对目标软件代码进行扫描,生成目标软件的函数调用图,确定目标软件中引用软件依赖所提供的接口函数的具体位置,并通过该位置信息进行目标软件代码切片,生成控制流图;
漏洞验证模块:利用目标软件的函数调用图,与软件依赖中CVE漏洞影响的函数调用进行匹配,验证目标软件是否调用了软件依赖中CVE漏洞影响的相关接口函数,并通过控制流分析,检测出目标软件中相关的漏洞点位。
优选的,漏洞信息查询模块中,在查询目标软件的依赖项时,需要借助漏洞信息库所管理的软件依赖及相关漏洞信息,该漏洞信息库包括NVD即美国国家通用漏洞数据库。漏洞信息库中存储了目标软件的绝大多数依赖项,只要确认目标软件及其版本号则能够查询其依赖项,根据依赖项能够关联到对应的CVE漏洞和漏洞补丁diff文件。
优选的,数据解析模块中,通过解析依赖项的漏洞补丁diff文件生成漏洞信息表,借助污点分析提取依赖项的控制流图。
优选的,数据解析模块中,通过解析目标软件代码,得出引用了依赖项所提供的接口函数的代码信息,从而获取对依赖项接口函数调用的所有信息。具体的,借助AST即抽象语法树获取目标软件代码中对依赖项的函数调用。
优选的,漏洞检测模块与漏洞验证模块中,通过获取数据解析中得到的函数调用信息,获取每一个函数的函数调用图,得到函数调用图之后,通过访问数据库获取软件依赖项的漏洞函数,与函数调用图匹配,查找漏洞函数是否在函数调用路径中,如果在,则软件依赖项的漏洞影响了目标软件,并且函数调用点为漏洞点。
实施例3
本实施例在实施例1的基础上:
本实施例提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现实施例1的基于软件依赖分析的漏洞检测方法的步骤。其中,计算机程序可以为源代码形式、对象代码形式、可执行文件或者某些中间形式等。
实施例4
本实施例在实施例1的基础上:
本实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现实施例1的基于软件依赖分析的漏洞检测方法的步骤。其中,计算机程序可以为源代码形式、对象代码形式、可执行文件或者某些中间形式等。存储介质包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM)、随机存取存储器(RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,存储介质不包括电载波信号和电信信号。

Claims (8)

1.一种基于软件依赖分析的漏洞检测方法,其特征在于,针对目标软件中引用的软件依赖项及其调用函数进行分析,利用公开的漏洞信息库查询出软件依赖项中的漏洞信息,并结合控制流图和函数调用图对目标软件本身以及软件依赖项进行联合分析,判断软件依赖项的漏洞是否影响目标软件;
所述漏洞检测方法包括:
漏洞信息查询:利用目标软件及其软件版本信息,查询漏洞信息库中关联的软件依赖项以及依赖项中的漏洞信息,漏洞信息包括软件依赖项中的CVE漏洞和漏洞补丁diff文件;
数据解析:对软件依赖项的漏洞补丁diff文件进行解析,确认软件依赖项中CVE漏洞所在依赖项代码中的具体位置,并通过软件依赖的源代码文件提取该CVE漏洞影响的函数调用;
漏洞检测:基于数据解析生成的函数调用信息,对目标软件代码进行扫描,生成目标软件的函数调用图,确定目标软件中引用软件依赖所提供的接口函数的具体位置,并通过该位置信息进行目标软件代码切片,生成控制流图;
漏洞验证:利用目标软件的函数调用图,与软件依赖中CVE漏洞影响的函数调用进行匹配,验证目标软件是否调用了软件依赖中CVE漏洞影响的相关接口函数,并通过控制流分析,检测出目标软件中相关的漏洞点位;
漏洞检测与漏洞验证是通过获取数据解析中得到的函数调用信息,获取每一个函数的函数调用图,得到函数调用图之后,通过访问数据库获取软件依赖项的漏洞函数,与函数调用图匹配,查找漏洞函数是否在函数调用路径中,如果在,则软件依赖项的漏洞影响了目标软件,并且函数调用点为漏洞点。
2.根据权利要求1所述的基于软件依赖分析的漏洞检测方法,其特征在于,漏洞信息查询中,在查询目标软件的依赖项时,需要借助漏洞信息库所管理的软件依赖及相关漏洞信息,该漏洞信息库包括NVD即美国国家通用漏洞数据库;漏洞信息库中存储了目标软件的绝大多数依赖项,只要确认目标软件及其版本号则能够查询其依赖项,根据依赖项能够关联到对应的CVE漏洞和漏洞补丁diff文件。
3.根据权利要求1所述的基于软件依赖分析的漏洞检测方法,其特征在于,数据解析包括解析依赖项的漏洞补丁diff文件生成漏洞信息表,借助污点分析提取依赖项的控制流图。
4.根据权利要求3所述的基于软件依赖分析的漏洞检测方法,其特征在于,解析目标软件代码,得出引用了依赖项所提供的接口函数的代码信息,获取对依赖项接口函数调用的所有信息。
5.根据权利要求4所述的基于软件依赖分析的漏洞检测方法,其特征在于,借助AST即抽象语法树获取目标软件代码中对依赖项的函数调用,包括以下步骤:
S1. 首先生成目标软件代码的AST信息;
S2. 对每个方法的每一个块分析,分析块中是否包含对依赖项的函数调用,如果包含,则解析调用语句,然后执行步骤S3;否则,结束;
S3. 判断调用对象是否属于依赖项中的某个类,如果属于,则执行步骤S4;否则,返回步骤S2,继续分析其他的块;
S4. 判断该调用语句是否是实例化参数的语句,如果是,则将调用者与调用函数、调用参数存储在一个数据结构中,继续分析其他的块;否则,返回步骤S2,继续分析其他的块。
6.一种基于软件依赖分析的漏洞检测装置,其特征在于,包括:
漏洞信息查询模块:利用目标软件及其软件版本信息,查询漏洞信息库中关联的软件依赖项以及依赖项中的漏洞信息,漏洞信息包括软件依赖项中的CVE漏洞和漏洞补丁diff文件;
数据解析模块:对软件依赖项的漏洞补丁diff文件进行解析,确认软件依赖项中CVE漏洞所在依赖项代码中的具体位置,并通过软件依赖的源代码文件提取该CVE漏洞影响的函数调用;
漏洞检测模块:基于数据解析模块生成的函数调用信息,对目标软件代码进行扫描,生成目标软件的函数调用图,确定目标软件中引用软件依赖所提供的接口函数的具体位置,并通过该位置信息进行目标软件代码切片,生成控制流图;
漏洞验证模块:利用目标软件的函数调用图,与软件依赖中CVE漏洞影响的函数调用进行匹配,验证目标软件是否调用了软件依赖中CVE漏洞影响的相关接口函数,并通过控制流分析,检测出目标软件中相关的漏洞点位;
漏洞检测模块与漏洞验证模块是通过获取数据解析中得到的函数调用信息,获取每一个函数的函数调用图,得到函数调用图之后,通过访问数据库获取软件依赖项的漏洞函数,与函数调用图匹配,查找漏洞函数是否在函数调用路径中,如果在,则软件依赖项的漏洞影响了目标软件,并且函数调用点为漏洞点。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5任一项所述的基于软件依赖分析的漏洞检测方法的步骤。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述的基于软件依赖分析的漏洞检测方法的步骤。
CN202110794596.7A 2021-07-14 2021-07-14 基于软件依赖分析的漏洞检测方法、装置、设备及介质 Active CN113434870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110794596.7A CN113434870B (zh) 2021-07-14 2021-07-14 基于软件依赖分析的漏洞检测方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110794596.7A CN113434870B (zh) 2021-07-14 2021-07-14 基于软件依赖分析的漏洞检测方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113434870A CN113434870A (zh) 2021-09-24
CN113434870B true CN113434870B (zh) 2022-07-05

Family

ID=77760320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110794596.7A Active CN113434870B (zh) 2021-07-14 2021-07-14 基于软件依赖分析的漏洞检测方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113434870B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114020634B (zh) * 2021-11-11 2024-05-24 中国电子科技集团公司第十五研究所 一种软件产品自主可控度的测评方法及系统
CN114611111A (zh) * 2022-02-10 2022-06-10 阿里云计算有限公司 漏洞修复方法及计算设备
CN114626068B (zh) * 2022-02-24 2024-06-07 南开大学 基于java函数调用序列的高精度第三方库漏洞模块检测方法
CN115033892A (zh) * 2022-08-10 2022-09-09 北京安普诺信息技术有限公司 一种组件漏洞分析方法、装置、电子设备及存储介质
WO2024137686A1 (en) * 2022-12-19 2024-06-27 Cisco Technology, Inc. Control flow prevention using software bill of materials analysis
CN116738436B (zh) * 2023-06-11 2024-07-16 苏州棱镜七彩信息科技有限公司 一种漏洞可达性分析方法、系统、计算机设备和处理器
CN117216770A (zh) * 2023-09-25 2023-12-12 江苏天好富兴数据技术有限公司 一种DevOps流水线超融合部署安全检测系统及方法
CN117556432B (zh) * 2024-01-12 2024-09-10 北京北大软件工程股份有限公司 一种基于传播影响分析的同源漏洞安全响应方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552969A (zh) * 2020-04-21 2020-08-18 中国电力科学研究院有限公司 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101696694B1 (ko) * 2015-08-17 2017-01-18 (주)트리니티소프트 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치
CN107688748B (zh) * 2017-09-05 2019-09-24 中国人民解放军信息工程大学 基于漏洞指纹的脆弱性代码克隆检测方法及其装置
CN109714314B (zh) * 2018-11-21 2021-04-27 中国电子科技网络信息安全有限公司 一种重现漏洞全生命周期的全息漏洞库的构建方法
CN110909364B (zh) * 2019-12-02 2023-02-10 西安工业大学 面向源代码双极性软件安全漏洞图谱构建方法
CN112434305B (zh) * 2020-12-07 2024-03-08 北京中科微澜科技有限公司 基于补丁的漏洞检测方法、装置、存储介质和电子设备
CN112800423B (zh) * 2021-01-26 2022-10-11 北京航空航天大学 一种二进制代码授权漏洞检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552969A (zh) * 2020-04-21 2020-08-18 中国电力科学研究院有限公司 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置

Also Published As

Publication number Publication date
CN113434870A (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
CN113434870B (zh) 基于软件依赖分析的漏洞检测方法、装置、设备及介质
JP6916818B2 (ja) 脆弱なアプリケーションの検出
CN104573525B (zh) 一种基于白名单的专用信息服务软件漏洞修复系统
US20180089430A1 (en) Computer security profiling
US20160006757A1 (en) Detection and prevention of installation of malicious mobile applications
US10635812B2 (en) Method and apparatus for identifying malicious software
US20170061126A1 (en) Process Launch, Monitoring and Execution Control
US8171550B2 (en) System and method for defining and detecting pestware with function parameters
US20120102569A1 (en) Computer system analysis method and apparatus
EP3428828A1 (en) System and method for locating and correcting vulnerabilites in a target computer system
US10496818B2 (en) Systems and methods for software security scanning employing a scan quality index
CN114386032A (zh) 电力物联网设备的固件检测系统及方法
US11550920B2 (en) Determination apparatus, determination method, and determination program
CN114969762A (zh) 漏洞信息处理方法、服务装置和漏洞检测模块
CN114860573A (zh) 软件成分的分析方法、装置、电子设备及存储介质
Ban et al. B2SMatcher: fine-Grained version identification of open-Source software in binary files
US11334665B2 (en) Systems and methods for automated detection and analysis of security threats
CN113626823B (zh) 一种基于可达性分析的组件间交互威胁检测方法及装置
Feichtner et al. Obfuscation-resilient code recognition in Android apps
CN117494141A (zh) 一种漏洞确定方法、电子设备及存储介质
CN110502900B (zh) 一种检测方法、终端、服务器及计算机存储介质
US20230351025A1 (en) Method and System for Detecting Vulnerabilities of NODE.JS Components
CN106778276B (zh) 一种检测无实体文件恶意代码的方法及系统
CN114154152A (zh) 基于补丁比对和污点分析的漏洞检测方法、设备及介质
CN114417347A (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