安全漏洞的检测方法、装置及存储介质制造方法及图纸

技术编号:26845833 阅读:21 留言:0更新日期:2020-12-25 13:08
本发明专利技术公开了一种安全漏洞的检测方法、装置及存储介质。其中,方法包括:获取待检测的代码数据;确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。

【技术实现步骤摘要】
安全漏洞的检测方法、装置及存储介质
本专利技术涉及软件安全
,尤其涉及一种安全漏洞的检测方法、装置及存储介质。
技术介绍
在软件的研发过程中,通常会在程序编码阶段之后的一些研发阶段发现代码数据中存在的安全漏洞,比如代码扫描阶段、代码审计阶段、软件安全测试阶段等;发现安全漏洞的时间越晚,修复相应安全漏洞所需的成本(比如时间成本)越高,因无法完全修复相应安全漏洞导致软件存在的潜在危害(比如泄露隐私数据)也越严重;由于代码数据的安全漏洞通常是在程序编码阶段产生的,因此,在程序编码阶段检测代码数据中的安全漏洞是非常重要的。然而,相关技术中,在程序编码阶段检测代码数据中安全漏洞的方法尚需优化。
技术实现思路
为解决相关技术问题,本专利技术实施例提供一种安全漏洞的检测方法、装置及存储介质。本专利技术实施例的技术方案是这样实现的:本专利技术实施例提供了一种安全漏洞的检测方法,包括:获取待检测的代码数据;确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。上述方案中,所述确定所述待检测的代码数据中的至少一个不可靠参数,包括:利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。上述方案中,所述对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,包括以下至少之一:判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。上述方案中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞,包括:针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。上述方案中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞,包括:针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数的功能;基于所述相应第一类节点对应的函数的功能,确定所述相应第一类节点对应的函数是否存在所述第二类安全漏洞。上述方案中,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞,包括:针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,在相应第一类节点对应的函数中传入检测数据,并执行传入所述检测数据后的所述相应第一类节点对应的函数,得到所述相应第一类节点对应的模拟执行结果;将所述相应第一类节点对应的模拟执行结果与基准执行结果进行比较;在所述模拟执行结果与所述基准执行结果不同的情况下,确定所述相应第一类节点对应的函数存在所述第三类安全漏洞;在所述模拟执行结果与所述基准执行结果相同的情况下,确定所述相应第一类节点对应的函数不存在所述第三类安全漏洞。上述方案中,所述生成所述待检测的代码数据对应的待检测数据结构,包括:对所述待检测的代码数据进行第一检查;在所述第一检查通过的情况下,生成所述待检测的代码数据对应的待检测数据结构;其中,所述第一检查包括以下至少之一:项目完整性检查;函数依赖关系检查。本专利技术实施例还提供了一种安全漏洞的检测装置,包括:获取单元,用于获取待检测的代码数据;第一处理单元,用于确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;第二处理单元,用于确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;第三处理单元,用于对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。本专利技术实施例还提供了一种安全漏洞的检测装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。本专利技术实施例还提供了一种存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。本专利技术实施例提供的安全漏洞的检测方法、装置及存储介质,获取待检测的代码数据;确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。本专利技术实施例的方案,生成待检测的代码数据对应的待检测数据结构,所述待检测数据结构不包含所述待检测的代码数据中出现的每个文法和语言的细节,仅保留了所述待检测的代码数据中全部的逻辑分支,在所述待检测数据结构中,针对性地对存在安全漏洞的风险较高的不可靠参数进行追踪,即确定不可靠参数对应的逻辑分支,并通过对逻辑分支的使用相应不可靠参数的节点进行漏洞分析,确定待检测的代码数据是否存在安全漏洞,如此,能够避免安全漏洞误报和漏报的问题,在软件研发过程中的程序编码阶段快速、准确地检测代码数据中的安全漏洞。附图说明图1为本专利技术实施例安全漏洞的检测方法的流程示意图;图2为本专利技术应用实施例安全漏洞的检测方法的流程示意图;...

【技术保护点】
1.一种安全漏洞的检测方法,其特征在于,包括:/n获取待检测的代码数据;/n确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;/n确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;/n对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。/n

【技术特征摘要】
1.一种安全漏洞的检测方法,其特征在于,包括:
获取待检测的代码数据;
确定所述待检测的代码数据中的至少一个不可靠参数,并生成所述待检测的代码数据对应的待检测数据结构;所述不可靠参数表征可配置的参数;所述待检测数据结构用于表示所述待检测的代码数据的语法结构;
确定所述至少一个不可靠参数中每个不可靠参数在所述待检测数据结构中对应的逻辑分支,得到至少一个逻辑分支;
对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,以确定所述待检测的代码数据是否存在安全漏洞;所述第一类节点表征在对应的函数中使用相应不可靠参数的节点。


2.根据权利要求1所述的方法,其特征在于,所述确定所述待检测的代码数据中的至少一个不可靠参数,包括:
利用第一正则表达式库中的正则表达式,对所述待检测的代码数据进行正则匹配,以确定所述至少一个不可靠参数。


3.根据权利要求1所述的方法,其特征在于,所述对所述得到的至少一个逻辑分支中每个逻辑分支的第一类节点进行漏洞分析,包括以下至少之一:
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞;所述第一类安全漏洞表征所有代码数据通用的安全漏洞;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞;所述第二类安全漏洞与所述第一类安全漏洞不同;所述第二类安全漏洞表征相应函数的执行逻辑与所述相应函数的功能不匹配;
判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第三类安全漏洞;所述第三类安全漏洞与所述第一类安全漏洞和所述第二类安全漏洞不同;所述第三类安全漏洞表征相应函数在受到网络攻击的情况下无法正常执行。


4.根据权利要求3所述的方法,其特征在于,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第一类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第二正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正则匹配,以确定所述相应第一类节点对应的函数是否存在所述第一类安全漏洞。


5.根据权利要求3所述的方法,其特征在于,所述判断所述至少一个逻辑分支中每个逻辑分支的每个第一类节点对应的函数是否存在第二类安全漏洞,包括:
针对所述至少一个逻辑分支中的每个逻辑分支的每个第一类节点,利用第三正则表达式库中的正则表达式,对相应第一类节点对应的函数进行正...

【专利技术属性】
技术研发人员:胡雍涛
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1