CN112131573A - 安全漏洞的检测方法、装置及存储介质 - Google Patents

安全漏洞的检测方法、装置及存储介质 Download PDF

Info

Publication number
CN112131573A
CN112131573A CN202010963133.4A CN202010963133A CN112131573A CN 112131573 A CN112131573 A CN 112131573A CN 202010963133 A CN202010963133 A CN 202010963133A CN 112131573 A CN112131573 A CN 112131573A
Authority
CN
China
Prior art keywords
detected
class
code data
security vulnerability
function
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.)
Pending
Application number
CN202010963133.4A
Other languages
English (en)
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202010963133.4A priority Critical patent/CN112131573A/zh
Publication of CN112131573A publication Critical patent/CN112131573A/zh
Pending legal-status Critical Current

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
    • 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

Abstract

本发明公开了一种安全漏洞的检测方法、装置及存储介质。其中,方法包括:获取待检测的代码数据;确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。

Description

安全漏洞的检测方法、装置及存储介质
技术领域
本发明涉及软件安全技术领域,尤其涉及一种安全漏洞的检测方法、装置及存储介质。
背景技术
在软件的研发过程中,通常会在程序编码阶段之后的一些研发阶段发现代码数据中存在的安全漏洞,比如代码扫描阶段、代码审计阶段、软件安全测试阶段等;发现安全漏洞的时间越晚,修复相应安全漏洞所需的成本(比如时间成本)越高,因无法完全修复相应安全漏洞导致软件存在的潜在危害(比如泄露隐私数据)也越严重;由于代码数据的安全漏洞通常是在程序编码阶段产生的,因此,在程序编码阶段检测代码数据中的安全漏洞是非常重要的。
然而,相关技术中,在程序编码阶段检测代码数据中安全漏洞的方法尚需优化。
发明内容
为解决相关技术问题,本发明实施例提供一种安全漏洞的检测方法、装置及存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种安全漏洞的检测方法,包括:
获取待检测的代码数据;
确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
上述方案中,所述确定所述待检测的代码数据中的至少一个不可靠参数,包括:
利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。
上述方案中,所述对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,包括以下至少之一:
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。
上述方案中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。
上述方案中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数的功能;
基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞。
上述方案中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,在相应第一类节点对应的函数中传入检测数据,并执行传入所述检测数据后的所述相应第一类节点对应的函数,得到所述相应第一类节点对应的模拟执行结果;
将所述相应第一类节点对应的模拟执行结果与基准执行结果进行比较;
在所述模拟执行结果与所述基准执行结果不同的情况下,确定所述相应第一类节点对应的函数存在所述第三类安全漏洞;
在所述模拟执行结果与所述基准执行结果相同的情况下,确定所述相应第一类节点对应的函数不存在所述第三类安全漏洞。
上述方案中,所述生成所述待检测的代码数据对应的待检测数据结构,包括:
对所述待检测的代码数据进行第一检查;
在所述第一检查通过的情况下,生成所述待检测的代码数据对应的待检测数据结构;其中,
所述第一检查包括以下至少之一:
项目完整性检查;
函数依赖关系检查。
本发明实施例还提供了一种安全漏洞的检测装置,包括:
获取单元,用于获取待检测的代码数据;
第一处理单元,用于确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
第二处理单元,用于确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
第三处理单元,用于对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
本发明实施例还提供了一种安全漏洞的检测装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
本发明实施例还提供了一种存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
本发明实施例提供的安全漏洞的检测方法、装置及存储介质,获取待检测的代码数据;确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。本发明实施例的方案,生成待检测的代码数据对应的待检测数据结构,所述待检测数据结构不包含所述待检测的代码数据中出现的每个文法和语言的细节,仅保留了所述待检测的代码数据中全部的逻辑分支,在所述待检测数据结构中,针对性地对存在安全漏洞的风险较高的不可靠参数进行追踪,即确定不可靠参数对应的逻辑分支,并通过对逻辑分支的使用相应不可靠参数的节点进行漏洞分析,确定待检测的代码数据是否存在安全漏洞,如此,能够避免安全漏洞误报和漏报的问题,在软件研发过程中的程序编码阶段快速、准确地检测代码数据中的安全漏洞。
附图说明
图1为本发明实施例安全漏洞的检测方法的流程示意图;
图2为本发明应用实施例安全漏洞的检测方法的流程示意图;
图3为本发明实施例安全漏洞的检测装置的结构示意图;
图4为本发明实施例安全漏洞的检测装置的硬件结构示意图。
具体实施方式
以下结合说明书附图及实施例对本发明的技术方案作进一步详细的阐述。
相关技术中,用户可以基于自身对代码数据的分析经验,预先定义或从网络资源中收集用于在代码数据中检测安全漏洞的正则表达式;在需要检测代码数据中的安全漏洞时,可以将待检测的代码数据与定义的或收集的全部正则表达式进行匹配,以确定待检测的代码数据是否存在安全漏洞。然而,为了保证在代码数据中检测到的安全漏洞的准确性,用户需要定义或收集足够多且定义完善(即正确)的正则表达式,实现难度较大,因此,利用预先定义或收集的正则表达式检测代码数据中的安全漏洞,可能会存在安全漏洞误报和漏报的问题。
相关技术中,在需要检测代码数据中的安全漏洞时,用户也可以从待检测的代码数据中收集相应程序的语义信息,利用收集的语义信息生成相应程序对应的控制流图(CFG,Control Flow Graph),通过生成的CFG对相应程序运行时的行为进行分析,以确定待检测的代码数据是否存在安全漏洞。然而,用户通过生成的CFG对相应程序运行时的行为进行分析时,需要分析的全部逻辑分支中的数据既包含不可靠数据(即存在安全漏洞的风险较高的数据),也包含可靠数据(即存在安全漏洞的风险较低的数据),数据量较大,也无法对检测出的安全漏洞进行验证,因此,基于对CFG的分析检测代码数据中的安全漏洞,可能会存在安全漏洞误报的问题。
基于此,在本发明的各种实施例中,生成待检测的代码数据对应的待检测数据结构,所述待检测数据结构用于表示所述待检测的代码数据的语法结构,所述待检测数据结构不包含所述待检测的代码数据中出现的每个文法和语言的细节,仅保留了所述待检测的代码数据中全部的逻辑分支,在所述待检测数据结构中,针对性地对存在安全漏洞的风险较高的不可靠参数进行追踪,即确定不可靠参数对应的逻辑分支,并通过对逻辑分支的使用相应不可靠参数的节点进行漏洞分析,确定待检测的代码数据是否存在安全漏洞,如此,能够避免安全漏洞误报和漏报的问题,在软件研发过程中的程序编码阶段快速、准确地检测代码数据中的安全漏洞。
本发明实施例提供了一种安全漏洞的检测方法,如图1所示,所述方法包括以下步骤:
步骤101:获取待检测的代码数据;
步骤102:确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;
这里,所述不可靠参数表征用户可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
步骤103:确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
步骤104:对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;
这里,所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
需要说明的是,本发明实施例提供的安全漏洞的检测方法,应用于“用户在软件研发过程中的程序编码阶段,对编写的相应软件的源代码数据进行安全漏洞自动检测”的应用场景。示例性地,用户在研发第一软件的过程中,在程序编码阶段,可以利用本发明实施例提供的安全漏洞的检测方法,自动检测编写的代码数据中是否存在安全漏洞,以在避免安全漏洞误报和漏报的前提下,快速、准确地检测代码数据中的安全漏洞,进而提升第一软件的安全性,提升用户体验。
实际应用时,所述待检测数据结构可以是所述待检测的代码数据对应的抽象语法树(英文可以表示为Abstract Syntax Tree,简称为AST);当然,也可以是其他能够表示所述待检测的代码数据的语法结构的数据结构。
在步骤101中,实际应用时,所述待检测的代码数据可以是源代码数据或代码片段数据。获取待检测的代码数据的方式可以根据需求设置。比如,可以从本地获取待检测的代码数据;再比如,可以从云端服务器等电子设备获取待检测的代码数据。
在步骤102中,实际应用时,所述不可靠参数表征用户可配置的参数是指:在待检测的代码数据为针对第一软件的代码数据的情况下,用户可以通过针对所述第一软件的操作设置不可靠参数的取值或设置不可靠参数的取值范围。示例性地,所述不可靠参数可以是需要用户输入的参数;或者,所述不可靠参数可以是需要从用户编辑的配置文件中读取的参数。确定不可靠参数的方式可以由用户根据需求设置。比如,用户可以预先设置用于确定不可靠参数的正则表达式库(后续的描述中记作第一正则表达式库),利用所述第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数;再比如,用户可以利用所述第一正则表达式库中的正则表达式,对所述待检测数据结构中的数据进行正则匹配,以确定所述至少一个不可靠参数。
基于此,在一实施例中,所述确定所述待检测的代码数据中的至少一个不可靠参数,可以包括:
利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。
在步骤102中,实际应用时,为了减少对所述待检测代码数据进行安全漏洞检测的次数,进而提高对所述待检测代码数据进行安全漏洞检测的效率,在生成所述待检测的代码数据对应的待检测数据结构的过程中,可以先确定所述待检测的代码数据是否为完成程序编码后的代码数据,在确定所述待检测的代码数据是完成程序编码后的代码数据的情况下,生成所述待检测的代码数据对应的待检测数据结构;如此,能够减少对所述待检测代码数据进行安全漏洞检测的次数,进而提高对所述待检测代码数据进行安全漏洞检测的效率。这里,用户可以根据需求设置确定所述待检测的代码数据是否为完成程序编码后的代码数据的方式,比如项目完整性检查、函数依赖关系检查等。
基于此,在一实施例中,所述生成所述待检测的代码数据对应的待检测数据结构,可以包括:
对所述待检测的代码数据进行第一检查;
在所述第一检查通过的情况下,生成所述待检测的代码数据对应的待检测数据结构。
其中,所述第一检查包括以下至少之一:
项目完整性检查;
函数依赖关系检查。
在步骤102中,实际应用时,可以利用预先设置的用于生成待检测数据结构的编译器生成所述待检测的代码数据对应的待检测数据结构;生成的待检测数据结构不包含所述待检测的代码数据中出现的每个文法和语言的细节,仅保留了所述待检测的代码数据中全部的逻辑分支,这种数据结构可以直接确定函数体和参数,易于对参数的数据流进行追踪;也就是说,在待检测数据结构中可以快速确定各参数对应的逻辑分支。
在步骤103中,实际应用时,针对所述至少一个不可靠参数中的每个不可靠参数,可以在所述待检测数据结构中对相应不可靠参数进行参数追踪,即确定每个应用到相应不可靠参数的函数,以确定相应不可靠参数对应的数据流,即确定相应不可靠参数对应的逻辑分支;这里,相应不可靠参数对应的逻辑分支的节点表征使用相应不可靠参数的节点(即所述第一类节点)或者传递相应不可靠参数的节点(后续的描述中可以记作第二类节点);也就是说,相应不可靠参数对应的逻辑分支包括:第一类节点和第二类节点。
在步骤104中,实际应用时,对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,可以包括:对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点对应的函数进行漏洞分析。由于函数中可能存在多种类型的安全漏洞,因此,为了进一步提高检测代码数据中的安全漏洞的准确性,用户可以根据需求设置对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点对应的函数进行安全漏洞分析的种类。
基于此,在一实施例中,所述对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,可以包括以下至少之一:
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。
其中,所述第一类安全漏洞表征所有代码数据通用的安全漏洞是指:所述第一类安全漏洞表征所有代码数据共用的安全漏洞;也就是说,在所有代码数据中都经常发现的安全漏洞。
具体地,在一实施例中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞,可以包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。
这里,所述第二正则表达式库可以由用户根据需求预先设置。具体地,所述第二正则表达式库中的正则表达式可以是用户基于自身对代码数据的分析经验预先定义的或从网络资源中收集的用于检测第一类安全漏洞的正则表达式。
在一实施例中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞,可以包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数的功能;
基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞。
这里,所述第三正则表达式库可以由用户根据需求预先设置。所述相应第一类节点对应的函数的功能即为相应不可靠参数的作用。实际应用时,所述相应第一类节点对应的函数的功能存在多种情况。比如,相应第一类节点对应的函数的功能可以是:将相应不可靠参数写入相应数据库;再比如,相应第一类节点对应的函数的功能可以是:执行包含相应不可靠参数的命令语句。
实际应用时,所述基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞,可以包括:
判断所述相应第一类节点对应的函数的执行逻辑与所述相应第一类节点对应的函数的功能是否匹配;在所述相应第一类节点对应的函数的执行逻辑与所述相应第一类节点对应的函数的功能匹配的情况下,确定所述相应第一类节点对应的函数不存在所述第二类安全漏洞;在所述相应第一类节点对应的函数的执行逻辑与所述相应第一类节点对应的函数的功能不匹配的情况下,确定所述相应第一类节点对应的函数存在所述第二类安全漏洞。
在一实施例中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞,可以包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,在相应逻辑分支的第一类节点对应的函数中传入检测数据,并执行传入所述检测数据后的所述相应第一类节点对应的函数,得到所述相应第一类节点对应的模拟执行结果;
将所述相应第一类节点对应的模拟执行结果与基准执行结果进行比较;
在所述模拟执行结果与所述基准执行结果不同的情况下,确定所述相应第一类节点对应的函数存在所述第三类安全漏洞;
在所述模拟执行结果与所述基准执行结果相同的情况下,确定所述相应第一类节点对应的函数不存在所述第三类安全漏洞。
这里,所述检测数据和所述基准执行结果可以由用户根据需求预先设置;具体地,所述检测数据可以是命令注入语句等与网络攻击相关的可执行指令;所述基准执行结果为所述相应逻辑分支的第一类节点对应的函数在正常执行情况下的执行结果。
本发明实施例提供的安全漏洞的检测方法,获取待检测的代码数据;确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点;如此,能够避免安全漏洞误报和漏报的问题,在软件研发过程中的程序编码阶段快速、准确地检测代码数据中的安全漏洞。
下面结合应用实施例对本发明再作进一步详细的描述。
在本应用实施例中,所述待检测数据结构为待检测的代码数据对应的抽象语法树。
本应用实施例提供的安全漏洞的检测方法,如图2所示,具体可以包括以下步骤:
步骤201:获取待检测的项目源码(即上述待检测的代码数据);之后执行步骤202。
实际应用时,可以基于本应用实施例提供的安全漏洞的检测方法构建代码审计系统;所述获取待检测的项目源码,可以包括:获取用户传入(即输入)所述代码审计系统的项目源码。这里,为了提高对待检测的项目源码进行安全漏洞检测的效率,可以对待检测的项目源码进行一些分析和检查,比如用于确认项目完整性的检查以及确定项目中各函数之间的依赖关系的检查等。
步骤202:生成待检测的项目源码对应的抽象语法树;之后执行步骤203。
步骤203:在生成的抽象语法树中对多个不可靠参数进行追踪,确定多个不可靠参数中每个不可靠参数对应的数据流(即上述逻辑分支);之后执行步骤204。
实际应用时,生成抽象语法树后,还可以利用生成的抽象语法树生成待检测的项目源码对应的逻辑树状图(比如CFG),以供用户进行安全漏洞分析。
步骤204:针对多个不可靠参数中的每个不可靠参数,确定相应不可靠参数对应的数据流的第一类节点,基于用于检测共性安全漏洞的正则表达式库,对相应第一类节点对应的函数进行正则匹配,并对相应第一类节点对应的函数进行逻辑分析和模拟执行;之后执行步骤205;
这里,所述第一类节点为使用相应不可靠参数的节点。
步骤205:根据对相应第一类节点对应的函数进行正则匹配、逻辑分析和模拟执行的结果,判断待检测的项目源码是否存在安全漏洞;若是,执行步骤206;若否,则结束进程。
步骤206:记录并报告检测得到的安全漏洞。
实际应用时,所述代码审计系统可以对检测得到的安全漏洞进行记录,即将检测得到的安全漏洞存储至数据库;并且,所述代码审计系统可以生成包括检测得到的安全漏洞、在抽象语法树中标记的相应安全漏洞对应的数据流以及待检测的项目源码对应的逻辑树状图的审计报告,以供用户根据所述审计报告回溯到安全漏洞在代码中出现的位置,并准确追踪得到数据来源(即确定相应的不可靠参数),以便快速分析出安全漏洞的成因,并进行安全漏洞的修复。
这里,步骤201至步骤206的具体实现过程与图1所示的安全漏洞的检测方法的具体实现过程相同,这里不多赘述。
本应用实施例提供的安全漏洞的检测方法,生成待检测的项目源码对应的抽象语法树,所述抽象语法树不包含所述待检测的项目源码中出现的每个文法和语言的细节,仅保留了所述待检测的项目源码中全部的逻辑分支,在所述抽象语法树中,针对性地对存在安全漏洞的风险较高的不可靠参数进行追踪,即确定不可靠参数对应的数据流,并通过对数据流中使用相应不可靠参数的节点进行漏洞分析,确定待检测的项目源码是否存在安全漏洞,如此,能够避免安全漏洞误报和漏报的问题,在软件研发过程中的程序编码阶段快速、准确地检测代码数据中的安全漏洞。
为了实现本发明实施例的方法,本发明实施例还提供了一种安全漏洞的检测装置,如图3所示,所述安全漏洞的检测装置包括获取单元31、第一处理单元32、第二处理单元33和第三处理单元34;其中,
所述获取单元31,用于获取待检测的代码数据;
所述第一处理单元32,用于确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
所述第二处理单元33,用于确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
所述第三处理单元34,用于对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
在一实施例中,所述第一处理单元32,还用于:
利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。
在一实施例中,所述第三处理单元34,还用于执行以下至少之一:
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。
在一实施例中,所述第三处理单元34,还用于:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。
在一实施例中,所述第三处理单元34,还用于:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数的功能;
基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞。
在一实施例中,所述第三处理单元34,还用于:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,在相应第一类节点对应的函数中传入检测数据,并执行传入所述检测数据后的所述相应第一类节点对应的函数,得到所述相应第一类节点对应的模拟执行结果;
将所述相应第一类节点对应的模拟执行结果与基准执行结果进行比较;
在所述模拟执行结果与所述基准执行结果不同的情况下,确定所述相应第一类节点对应的函数存在所述第三类安全漏洞;
在所述模拟执行结果与所述基准执行结果相同的情况下,确定所述相应第一类节点对应的函数不存在所述第三类安全漏洞。
在一实施例中,所述第一处理单元32,还用于:
对所述待检测的代码数据进行第一检查;
在所述第一检查通过的情况下,生成所述待检测的代码数据对应的待检测数据结构;其中,
所述第一检查包括以下至少之一:
项目完整性检查;
函数依赖关系检查。
实际应用时,所述获取单元31可由所述安全漏洞的检测装置中的处理器结合通信接口实现;所述第一处理单元32、所述第二处理单元33和所述第三处理单元34可由所述安全漏洞的检测装置中的处理器实现。
需要说明的是:上述实施例提供的安全漏洞的检测装置在检测安全漏洞时,仅以上述各程序模块的划分进行举例说明,实际应用时,可以根据需要而将上述处理分配由不同的程序模块完成,即将所述安全漏洞的检测装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的安全漏洞的检测装置与安全漏洞的检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供了一种安全漏洞的检测装置,如图4所示,所述安全漏洞的检测装置40包括:
通信接口41,能够与其他电子设备进行信息交互;
处理器42,与所述通信接口41连接,以实现与其他电子设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法;
存储器43,用于存储能够在所述处理器42上运行的计算机程序。
具体地,所述处理器42用于执行以下操作:
获取待检测的代码数据;
确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
在一实施例中,所述处理器42,还用于执行以下操作:
利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。
在一实施例中,所述处理器42,还用于执行以下操作之一:
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。
在一实施例中,所述处理器42,还用于执行以下操作:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。
在一实施例中,所述处理器42,还用于执行以下操作:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数的功能;
基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞。
在一实施例中,所述处理器42,还用于执行以下操作:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,在相应第一类节点对应的函数中传入检测数据,并执行传入所述检测数据后的所述相应第一类节点对应的函数,得到所述相应第一类节点对应的模拟执行结果;
将所述相应第一类节点对应的模拟执行结果与基准执行结果进行比较;
在所述模拟执行结果与所述基准执行结果不同的情况下,确定所述相应第一类节点对应的函数存在所述第三类安全漏洞;
在所述模拟执行结果与所述基准执行结果相同的情况下,确定所述相应第一类节点对应的函数不存在所述第三类安全漏洞。
在一实施例中,所述处理器42,还用于执行以下操作:
对所述待检测的代码数据进行第一检查;
在所述第一检查通过的情况下,生成所述待检测的代码数据对应的待检测数据结构;其中,
所述第一检查包括以下至少之一:
项目完整性检查;
函数依赖关系检查。
需要说明的是:所述处理器42具体执行上述操作的过程详见方法实施例,这里不再赘述。
当然,实际应用时,安全漏洞的检测装置40中的各个组件通过总线系统44耦合在一起。可理解,总线系统44用于实现这些组件之间的连接通信。总线系统44除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统44。
本发明实施例中的存储器43用于存储各种类型的数据以支持安全漏洞的检测装置40的操作。这些数据的示例包括:用于在安全漏洞的检测装置40上操作的任何计算机程序。
上述本发明实施例揭示的方法可以应用于处理器42中,或者由处理器42实现。处理器42可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器42中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器42可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器42可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器43,处理器42读取存储器43中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,安全漏洞的检测装置40可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
可以理解,本发明实施例的存储器43可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(FlashMemory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random AccessMemory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random AccessMemory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其他适合类型的存储器。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器43,上述计算机程序可由安全漏洞的检测装置40的处理器42执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种安全漏洞的检测方法,其特征在于,包括:
获取待检测的代码数据;
确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
2.根据权利要求1所述的方法,其特征在于,所述确定所述待检测的代码数据中的至少一个不可靠参数,包括:
利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。
3.根据权利要求1所述的方法,其特征在于,所述对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,包括以下至少之一:
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。
4.根据权利要求3所述的方法,其特征在于,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。
5.根据权利要求3所述的方法,其特征在于,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数的功能;
基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞。
6.根据权利要求3所述的方法,其特征在于,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,在相应第一类节点对应的函数中传入检测数据,并执行传入所述检测数据后的所述相应第一类节点对应的函数,得到所述相应第一类节点对应的模拟执行结果;
将所述相应第一类节点对应的模拟执行结果与基准执行结果进行比较;
在所述模拟执行结果与所述基准执行结果不同的情况下,确定所述相应第一类节点对应的函数存在所述第三类安全漏洞;
在所述模拟执行结果与所述基准执行结果相同的情况下,确定所述相应第一类节点对应的函数不存在所述第三类安全漏洞。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述生成所述待检测的代码数据对应的待检测数据结构,包括:
对所述待检测的代码数据进行第一检查;
在所述第一检查通过的情况下,生成所述待检测的代码数据对应的待检测数据结构;其中,
所述第一检查包括以下至少之一:
项目完整性检查;
函数依赖关系检查。
8.一种安全漏洞的检测装置,其特征在于,包括:
获取单元,用于获取待检测的代码数据;
第一处理单元,用于确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
第二处理单元,用于确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
第三处理单元,用于对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。
9.一种安全漏洞的检测装置,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
10.一种存储介质,所述介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202010963133.4A 2020-09-14 2020-09-14 安全漏洞的检测方法、装置及存储介质 Pending CN112131573A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010963133.4A CN112131573A (zh) 2020-09-14 2020-09-14 安全漏洞的检测方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010963133.4A CN112131573A (zh) 2020-09-14 2020-09-14 安全漏洞的检测方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN112131573A true CN112131573A (zh) 2020-12-25

Family

ID=73846460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010963133.4A Pending CN112131573A (zh) 2020-09-14 2020-09-14 安全漏洞的检测方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN112131573A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114117426A (zh) * 2021-11-16 2022-03-01 中国人民解放军国防科技大学 一种web应用漏洞检测方法及系统
CN116167048A (zh) * 2023-01-20 2023-05-26 北京长亭未来科技有限公司 用于EL表达式的Webshell检测方法及装置
CN116226871A (zh) * 2023-05-08 2023-06-06 中汽智联技术有限公司 基于静态和动态结合的漏洞验证方法、设备和介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455759A (zh) * 2012-06-05 2013-12-18 深圳市腾讯计算机系统有限公司 一种页面漏洞检测装置及检测方法
CN103577758A (zh) * 2012-07-31 2014-02-12 西门子公司 程序的代码审核方法和装置
CN104751059A (zh) * 2015-04-22 2015-07-01 北京工业大学 基于函数模板的软件行为分析方法
CN104850493A (zh) * 2015-04-24 2015-08-19 百度在线网络技术(北京)有限公司 一种检测源代码漏洞的方法和装置
CN106295348A (zh) * 2015-05-29 2017-01-04 阿里巴巴集团控股有限公司 应用程序的漏洞检测方法及装置
CN109446814A (zh) * 2018-09-30 2019-03-08 北京金山安全软件有限公司 一种漏洞检测方法及装置
CN109948345A (zh) * 2019-03-20 2019-06-28 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、系统
CN110929267A (zh) * 2019-11-29 2020-03-27 深信服科技股份有限公司 代码漏洞检测方法、装置、设备及存储介质
CN111240982A (zh) * 2020-01-09 2020-06-05 华东师范大学 源代码静态分析方法
CN111506900A (zh) * 2020-04-15 2020-08-07 北京字节跳动网络技术有限公司 漏洞检测方法、装置、电子设备及计算机存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455759A (zh) * 2012-06-05 2013-12-18 深圳市腾讯计算机系统有限公司 一种页面漏洞检测装置及检测方法
CN103577758A (zh) * 2012-07-31 2014-02-12 西门子公司 程序的代码审核方法和装置
CN104751059A (zh) * 2015-04-22 2015-07-01 北京工业大学 基于函数模板的软件行为分析方法
CN104850493A (zh) * 2015-04-24 2015-08-19 百度在线网络技术(北京)有限公司 一种检测源代码漏洞的方法和装置
CN106295348A (zh) * 2015-05-29 2017-01-04 阿里巴巴集团控股有限公司 应用程序的漏洞检测方法及装置
CN109446814A (zh) * 2018-09-30 2019-03-08 北京金山安全软件有限公司 一种漏洞检测方法及装置
CN109948345A (zh) * 2019-03-20 2019-06-28 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、系统
CN110929267A (zh) * 2019-11-29 2020-03-27 深信服科技股份有限公司 代码漏洞检测方法、装置、设备及存储介质
CN111240982A (zh) * 2020-01-09 2020-06-05 华东师范大学 源代码静态分析方法
CN111506900A (zh) * 2020-04-15 2020-08-07 北京字节跳动网络技术有限公司 漏洞检测方法、装置、电子设备及计算机存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114117426A (zh) * 2021-11-16 2022-03-01 中国人民解放军国防科技大学 一种web应用漏洞检测方法及系统
CN116167048A (zh) * 2023-01-20 2023-05-26 北京长亭未来科技有限公司 用于EL表达式的Webshell检测方法及装置
CN116167048B (zh) * 2023-01-20 2023-08-11 北京长亭未来科技有限公司 用于EL表达式的Webshell检测方法及装置
CN116226871A (zh) * 2023-05-08 2023-06-06 中汽智联技术有限公司 基于静态和动态结合的漏洞验证方法、设备和介质
CN116226871B (zh) * 2023-05-08 2023-08-01 中汽智联技术有限公司 基于静态和动态结合的漏洞验证方法、设备和介质

Similar Documents

Publication Publication Date Title
US10742666B2 (en) System and method for static detection and categorization of information-flow downgraders
US9720798B2 (en) Simulating black box test results using information from white box testing
US8839203B2 (en) Code coverage-based taint perimeter detection
CN112131573A (zh) 安全漏洞的检测方法、装置及存储介质
US8572747B2 (en) Policy-driven detection and verification of methods such as sanitizers and validators
US10229042B2 (en) Detection of meaningful changes in content
CN109101815B (zh) 一种恶意软件检测方法及相关设备
JPWO2006087780A1 (ja) 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法
CN112035359B (zh) 程序测试方法、装置、电子设备及存储介质
US11888885B1 (en) Automated security analysis of software libraries
CN114328208A (zh) 代码检测方法及装置、电子设备、存储介质
US20070245313A1 (en) Failure tagging
CN114036526A (zh) 漏洞测试方法、装置、计算机设备和存储介质
US20230141948A1 (en) Analysis and Testing of Embedded Code
US11880470B2 (en) System and method for vulnerability detection in computer code
US10002253B2 (en) Execution of test inputs with applications in computer security assessment
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
US11449408B2 (en) Method, device, and computer program product for obtaining diagnostic information
CN111027073B (zh) 漏洞检测方法、装置、设备及存储介质
CN116775040B (zh) 实现代码疫苗的插桩方法及基于代码疫苗的应用测试方法
CN117195241B (zh) 固件漏洞的检测方法、设备和介质
CN112162777B (zh) 一种源代码特征提取方法及装置
Yadavally et al. A Learning-Based Approach to Static Program Slicing
CN113190453A (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