CN115952503B - 融合黑白灰安全检测技术的应用安全测试方法及系统 - Google Patents

融合黑白灰安全检测技术的应用安全测试方法及系统 Download PDF

Info

Publication number
CN115952503B
CN115952503B CN202310045949.2A CN202310045949A CN115952503B CN 115952503 B CN115952503 B CN 115952503B CN 202310045949 A CN202310045949 A CN 202310045949A CN 115952503 B CN115952503 B CN 115952503B
Authority
CN
China
Prior art keywords
code
detection
vulnerability
security
codes
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
CN202310045949.2A
Other languages
English (en)
Other versions
CN115952503A (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.)
Shenzhen Secidea Network Security Technology Co ltd
Original Assignee
Shenzhen Secidea Network Security Technology 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 Shenzhen Secidea Network Security Technology Co ltd filed Critical Shenzhen Secidea Network Security Technology Co ltd
Priority to CN202310045949.2A priority Critical patent/CN115952503B/zh
Publication of CN115952503A publication Critical patent/CN115952503A/zh
Application granted granted Critical
Publication of CN115952503B publication Critical patent/CN115952503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了融合黑白灰安全检测技术的应用安全测试方法及系统,运用于软件应用技术领域;获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对代码工程进行融合黑白灰安全检测,得到检测结果,判断检测结果是否存在漏洞代码;若是,则基于融合黑白灰安全检测,精确定位到漏洞代码的位置,根据预设的漏洞模式库确认漏洞代码对应的至少一个或多个特征,将特征输入至预设的学习模型进行训练,完善学习模型;识别漏洞代码对应的安全编码,基于预设的编码知识库对安全编码进行差异性比对,生成安全编码对应的修正范围;基于学习模型和修正范围对检测结果进行融合、加权和判定引擎,生成检测结果对应的检测报告。

Description

融合黑白灰安全检测技术的应用安全测试方法及系统
技术领域
本发明涉及软件应用技术领域,特别涉及为融合黑白灰安全检测技术的应用安全测试方法及系统。
背景技术
AST(Application Security Testing)应用安全测试是针对应用安全性进行测试,测试软件在遭到没有授权的内部或者外部用户的攻击/恶意破坏时如何进行处理,从而保证软件和数据的安全,主要包括动态应用测试DAST(Dynamic Application SecurityTesting黑盒安全测试)、静态应用测试SAST(Static Application Security Testing白盒安全测试)、交互式应用测试IAST(Interactive Application Security Testing灰盒安全测试)。
应用安全检测AST的目的是发现漏洞,发现漏洞的目的是修复漏洞,修复漏洞的最终落地点就在于源代码和系统配置、环境的修改,很大一部分修复要精准到源代码、配置某一行,而随着组织机构使用的应用数量不断增长、复杂度不断提高、类型不断多样化,通常应用系统黑白灰检测结果没有打通,无法实现相互佐证和促进,黑白灰各自独立的检测结果没有合并,导致三种检测的结果也不一致,无法得到最精确的结论。
发明内容
本发明旨在解决黑白灰三种检测结果无法相互佐证,无法得到最精确检测结果的问题,提供融合黑白灰安全检测技术的应用安全测试方法及系统。
本发明为解决技术问题采用如下技术手段:
本发明提供融合黑白灰安全检测技术的应用安全测试方法,包括以下步骤:
获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对所述代码工程进行融合黑白灰安全检测,得到检测结果,其中,所述融合黑白灰安全检测具体为基于预设次序的检测引擎编排,所述检测引擎编排具体为依次采用合规引擎,黑盒专用引擎,白盒专用引擎和灰盒专用引擎对所述代码工程进行检测;
判断所述检测结果是否存在漏洞代码;
若是,则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置,根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征,将所述特征输入至预设的学习模型进行训练,完善所述学习模型;
识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围;
基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告。
进一步地,所述则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置的步骤中,包括:
对所述检测结果进行静态应用测试,通过所述白盒专用引擎生成得到至少一个或多个漏洞代码;
将所述至少一个或多个漏洞代码输入至所述灰盒专用引擎,检测得到所述至少一个或多个漏洞代码对应的风险源代码,其中,所述风险源代码包括有风险的代码模块、代码行、调用函数和传递参数;
通过所述黑盒专用引擎对所述风险源代码进行权重赋值,获取所述权重赋值对应的权重数值;
判断所述权重数值是否匹配预设的数值;
若是,则确定存在所述至少一个或多个漏洞代码对应的漏洞,若否,则确定不存在所述至少一个或多个漏洞代码对应的漏洞。
进一步地,所述根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征的步骤中,包括:
获取所述漏洞代码的程序片段,根据所述程序片段,生成漏洞程序片段控制流图;
对所述漏洞程序片段控制流图进行权重评分计算,得到所述融合黑白灰安全检测的权重评分计算结果,根据所述权重评分计算结果和所述漏洞程序片段控制流图的基本块中,选取预设数量的所述基本块进行权重赋值,其中,所述权重赋值最大值为1,最小值为0。
进一步地,所述识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围的步骤中,包括:
构建编码类型特征库和编码编排脚本库,基于所述编码类型特征库和所述编码编排脚本库导入不同编码类型的执行脚本,根据所述编码类型匹配相应类型的编排脚本,运行所述编排脚本对应的编排应用,并引入预设源码库的代码源构建相应代码程序包,根据不同的编码类型建立不同的修正规则;
基于所述修正规则对应生成所述安全编码的修正方案,利用所述修正方案对所述漏洞代码对应的安全编码进行规则检测和编码安全隐患扫描及识别,并对所述漏洞代码进行存储。
进一步地,所述获取初步生成的代码工程,基于预设的规则库设定的安全编码要求的步骤中,包括:
提取所述代码工程中包含的至少一个或多个代码文本;
对所述代码文本进行规范检测,并判断所述代码文本是否存在异常代码,其中,所述规范检测具体为获取所述代码工程的白名单,根据所述白名单对所述代码工程包含的多个代码文本进行过滤,生成至少一种代码类型,所述代码类型包括常规代码和异常代码;
若存在,则对所述代码工程进行报错,并根据所述异常代码提供的异常信息,对所述代码工程进行安全检测。
进一步地,所述对所述代码工程进行融合黑白灰安全检测,得到检测结果的步骤中,包括:
基于所述融合黑白灰安全检测,拆分为黑、白和灰三种安全检测结果,取得属于所述黑、白和灰三种安全检测结果对应的三种不同权重值,将所述三种不同权重值进行交叉分析,生成权重规则;
判断所述权重规则是否发生重叠冲突;
若是,则基于所述重叠冲突的系数生成所述漏洞代码的预设指标,对所述预设指标进行权重值约束至预设的权重区间赋值,其中,所述权重值约束具体为所述权重值根据触发约束快速递减,每增加一个约束条件风险告警时权重值减少,直至所述权重值为0时截止。
进一步地,所述基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告的步骤中,包括:
获取所述融合黑白灰安全检测对应赋予所述漏洞代码的三种不同权重值,将所述三种不同权重值通过权重乘以预设的风险等级进行所述漏洞代码的优先级排序整改,生成以所述漏洞代码的利用难易度相应的顺序表单,其中,所述优先级顺序具体为建立在所述漏洞代码存在被利用的基础上对所述三种不同权重值进行计算,所述利用难易度具体为基于安全问题对应的安全测试区别检测结果为所述漏洞代码或噪音;
判断所述顺序表单中是否存在大于预设的代码数量;
若否,则采用静态应用测试对所述漏洞代码进行代码覆盖率测试,对所述漏洞代码基于所述优先级顺序进行污点追踪,并生成所述污点追踪对应的检测报告,其中,所述污点追踪包括追踪污染源、追踪污点汇聚点或追踪传播点。
本发明还提供一种融合黑白灰安全检测技术的应用安全测试系统,包括:
获取模块,用于获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对所述代码工程进行融合黑白灰安全检测,得到检测结果,其中,所述融合黑白灰安全检测具体为基于预设次序的检测引擎编排,所述检测引擎编排具体为依次采用合规引擎,黑盒专用引擎,白盒专用引擎和灰盒专用引擎对所述代码工程进行检测;
判断模块,用于判断所述检测结果是否存在漏洞代码;
执行模块,用于若是,则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置,根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征,将所述特征输入至预设的学习模型进行训练,完善所述学习模型;
识别模块,用于识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围;
生成模块,用于基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告。
进一步地,所述执行模块包括:
测试单元,用于对所述检测结果进行静态应用测试,通过所述白盒专用引擎生成得到至少一个或多个漏洞代码;
检测单元,用于将所述至少一个或多个漏洞代码输入至所述灰盒专用引擎,检测得到所述至少一个或多个漏洞代码对应的风险源代码,其中,所述风险源代码包括有风险的代码模块、代码行、调用函数和传递参数;
获取单元,用于通过所述黑盒专用引擎对所述风险源代码进行权重赋值,获取所述权重赋值对应的权重数值;
判断单元,用于判断所述权重数值是否匹配预设的数值;
执行单元,用于若是,则确定存在所述至少一个或多个漏洞代码对应的漏洞,若否,则确定不存在所述至少一个或多个漏洞代码对应的漏洞。
进一步地,所述执行模块还包括:
第二获取单元,用于获取所述漏洞代码的程序片段,根据所述程序片段,生成漏洞程序片段控制流图;
计算单元,用于对所述漏洞程序片段控制流图进行权重评分计算,得到所述融合黑白灰安全检测的权重评分计算结果,根据所述权重评分计算结果和所述漏洞程序片段控制流图的基本块中,选取预设数量的所述基本块进行权重赋值,其中,所述权重赋值最大值为1,最小值为0。
本发明提供了融合黑白灰安全检测技术的应用安全测试方法及系统,具有以下有益效果:
本发明通过将现有黑白灰安全检测流程融合黑白灰安全检测结果,打通不同环节实施的安全检测流程和结果,改变传统安全测试黑白灰安全测试各自独立运行、独立出结果,结合DAST、SAST和IAST安全测试的优势,实现检测流程和检测结果的相互佐证和相互促进。
附图说明
图1为本发明融合黑白灰安全检测技术的应用安全测试方法一个实施例的流程示意图;
图2为本发明融合黑白灰安全检测技术的应用安全测试系统一个实施例的结构框图;
图3为本发明融合黑白灰安全检测技术的应用安全测试系统一个实施例的实施流程图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明,本发明为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考附图1,为本发明一实施例中的融合黑白灰安全检测技术的应用安全测试方法,包括:
S1:获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对所述代码工程进行融合黑白灰安全检测,得到检测结果,其中,所述融合黑白灰安全检测具体为基于预设次序的检测引擎编排,所述检测引擎编排具体为依次采用合规引擎,黑盒专用引擎,白盒专用引擎和灰盒专用引擎对所述代码工程进行检测;
S2:判断所述检测结果是否存在漏洞代码;
S3:若是,则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置,根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征,将所述特征输入至预设的学习模型进行训练,完善所述学习模型;
S4:识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围;
S5:基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告。
在本实施例中,系统通过获取初步生成的代码工程,基于预先设有的规则库设定的安全编码要求进行检测,其中,合规引擎具体为:内容安全合规引擎(Content SecurityCompliance Engine,简称CSCE),检测引擎编排的具体规则为:存在四种不同的引擎,分别为合规引擎、黑盒专用引擎、白盒专用引擎与灰盒专用引擎,按照编排顺序依次为,首先应用合规引擎,而后应用黑盒专用引擎、白盒专用引擎与灰盒专用引擎,其中黑盒专用引擎、白盒专用引擎与灰盒专用引擎无需依照顺序编排,只需完成对应的检测即可;应用四种不同引擎的检测步骤包括:应用合规引擎对代码工程进行初步检测,从代码标题、代码内容和代码标签的维度,根据不同的数据安全策略,自动对代码进行安全定级,并依据预先设有的安全级别进行安全管控,检测该代码工程,如若发现代码工程中存在有敏感数据的异常值时,向终端提供敏感数据视图,结合数据安全策略,对代码工程进行安全数据管理和代码工程中不同文件数据进行分布式安全合规脱敏,其中主要包含两个重要的模块引擎:安全定标引擎和安全脱敏引擎;而后对该代码工程根据黑白灰三种引擎对应的检测手段进行融合检测(包括:采用AST应用安全测试针对该代码工程的安全性进行测试,测试软件在遭到没有授权的内部或者外部用户的攻击/恶意破坏时如何进行处理,从而保证软件和数据的安全;采用SAST静态应用程序安全性测试对开发过程中代码工程的源代码进行安全检测的技术,内置多种缺陷检测规则,将源代码转换为易于扫描的中间数据格式,使用缺陷检测技术对其进行分析,匹配缺陷规则,从而发现源代码中存在的缺陷,并提供修复建议,帮助用户及早修复,从而降低后期缺陷修补的成本,增强软件的安全性;采用DAST动态应用程序安全性测试,发现正在运行的代码工程中的安全漏洞和弱点,模拟黑客的攻击行为,通过一种由外向内的检测技术,对运行中的系统和业务进行检测,发现可能存在的漏洞,便于及时修复;采用IAST交互式应用安全测试,在应用和API中自动化识别和诊断软件漏洞的技术,在程序运行时,从应用内部持续监控和收集应用程序运行时流量或代码,并传递给安全分析引擎,识别出代码执行中的漏洞特征),将三种检测结果融合后,即生成该代码工程的检测结果(即黑白灰三种检测发挥各自优点、弥补缺点,融合检测流程、检测数据相互弥补辅助,提高检测能力、提高检测精度,准确定位漏洞相关联源代码位置,即发挥SAST检测的广泛覆盖能力,同时通过DAST、IAST技术的辅助降低误报,同时还弥补SAST对运行时加密数据和环境检测薄弱项);系统通过判断该检测结果中是否还存在有漏洞代码,以执行对应的步骤;例如,系统通过DAST黑盒技术发现运行层面漏洞,由于其采用模拟攻击行为的方式,所以会具有一定的脏数据和大流量,容易对正常测试造成干扰,且无法深入定位到代码行,此时则需要应用IAST灰盒技术通过插桩来实现的,在代码运行的中间件上插入探针,通过探针来识别判断安全风险,直接从运行中的代码发现问题,以实现自动化识别和诊断在应用和API中的软件漏洞,精准定位到漏洞代码的位置,根据预先设有的漏洞模式库,确认该漏洞代码对应的至少一个或多个特征,并将这些特征输入至预先设有的学习模型中进行训练,对学习模型进行完善,随着漏洞代码的收录和检测经验积累,将学习模型完善至进一步筛选出特征更多的漏洞代码;系统通过识别该漏洞代码对应的安全编码,基于预先设有的编码知识库对该安全编码进行差异性比对,生成该安全编码的修正范围(针对所有漏洞类型提供示例安全编码,对有些相同安全编码可以统一使用共同的方法解决,从安全编码知识库提供一些解决安全问题的安全编码修正范围,同时,提供安全示例和指导文档,让开发可以统一地快速地正确地解决安全问题);系统基于学习模型和修正范围对代码工程的检测结果进行融合、加权和判定引擎(融合具体为将三种检测结果的技术手段融合,加权具体为将三种检测结果对应赋予的权重值进行权重赋值,如果能确定确实存在漏洞赋值权重=1,如果确实不存在漏洞赋值权重=0,风险告警的赋值只有1、0两种值;判定引擎具体为辨别三种检测中的检测手段属于静态分析或动态分析,如SAST属于静态分析,DAST属于动态分析),以生成相应的检测报告。
在本实施例中,所述则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置的步骤中,包括:
对所述检测结果进行静态应用测试,通过所述白盒专用引擎生成得到至少一个或多个漏洞代码;
将所述至少一个或多个漏洞代码输入至所述灰盒专用引擎,检测得到所述至少一个或多个漏洞代码对应的风险源代码,其中,所述风险源代码包括有风险的代码模块、代码行、调用函数和传递参数;
通过所述黑盒专用引擎对所述风险源代码进行权重赋值,获取所述权重赋值对应的权重数值;
判断所述权重数值是否匹配预设的数值;
若是,则确定存在所述至少一个或多个漏洞代码对应的漏洞,若否,则确定不存在所述至少一个或多个漏洞代码对应的漏洞。
在本实施例中,系统通过对代码工程的检测结果进行SAST静态应用程序安全性测试(也称为白盒安全测试),通过对应的白盒专用引擎使用缺陷检测技术对其进行分析,匹配缺陷规则,从而发现源代码中存在的缺陷,即可生成至少一个或多个漏洞代码,而后将这些漏洞代码输入至灰盒专用引擎中,从应用内部持续监控和收集应用程序运行时流量或代码,并传递给安全分析引擎,识别出代码执行中的漏洞特征,从而得到漏洞代码对应的风险源代码(包括代码模块、代码行、调用函数和传递参数),最后通过黑盒专用引擎对这些风险源代码进行权重赋值,并判断权重赋值后的对应权重数值是否能够匹配预先设定有的数值(IAST对SAST的检测结果进行权重赋值不局限于1、0,如果能确定确实存在漏洞赋值权重=1,如果确实不存在漏洞赋值权重=0,由于DAST测试检测到就是1,没检测出漏洞就是0,所以DAST对某一条SAST检测风险告警的赋值只有1、0两种值。),以执行对应的不同步骤;例如,对某一风险源代码的权重赋值为0.1,而预设的数值为0时,则表明应用中存在1个漏洞代码,例如对某一风险源代码的权重赋值为0.5,而预设的数值为0时,则表明应用中存在5个漏洞代码;
需要说明的是,某个风险告警权重赋值根据触发约束从1快速递减,每增加一个约束条件风险告警权重赋值减0.1,至多减少为0,即代表至多存在有10个漏洞代码,每增加一个应用对应的约束条件风险(该应用是否具备安全性、可用性或其他功能特性)时,权重赋值会对应减少0.1。
在本实施例中,所述根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征的步骤中,包括:
获取所述漏洞代码的程序片段,根据所述程序片段,生成漏洞程序片段控制流图;
对所述漏洞程序片段控制流图进行权重评分计算,得到所述融合黑白灰安全检测的权重评分计算结果,根据所述权重评分计算结果和所述漏洞程序片段控制流图的基本块中,选取预设数量的所述基本块进行权重赋值,其中,所述权重赋值最大值为1,最小值为0。
在本实施例中,系统通过获取漏洞代码的程序片段,根据这些程序片段对应生成程序片段的控制流图(控制流图包括有漏洞代码的顺序语句、漏洞代码的swich语句、漏洞代码的if语句、漏洞代码的until语句和漏洞代码的while语句),这些控制流图是过程导向的,显示了应用程序执行过程中可以遍历的所有路径,途中可能生成的漏洞代码,每个控制流图都存在2个指定的块:Entry Block(输入块),Exit Block(输出块),根据已得出的漏洞代码权重赋值,对控制流图中的程序片段基本块进行相应的权重赋值;例如,当应用中存在5个漏洞代码时,相应在控制流图中也存在有5个基本块需要进行权重赋值,即当应用的权重赋值为0.5时,基本块的权重赋值也为0.5;例如,当应用中不存在漏洞代码时,在控制流图中不存在基本块需要进行权重赋值,即当应用的权重赋值为0时,基本块的权重赋值也为0。
在本实施例中,所述识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围的步骤中,包括:
构建编码类型特征库和编码编排脚本库,基于所述编码类型特征库和所述编码编排脚本库导入不同编码类型的执行脚本,根据所述编码类型匹配相应类型的编排脚本,运行所述编排脚本对应的编排应用,并引入预设源码库的代码源构建相应代码程序包,根据不同的编码类型建立不同的修正规则;
基于所述修正规则对应生成所述安全编码的修正方案,利用所述修正方案对所述漏洞代码对应的安全编码进行规则检测和编码安全隐患扫描及识别,并对所述漏洞代码进行存储。
在本实施例中,系统通过预先构建编码类型特征库和对应的编码编排脚本库,基于编码类型特征库和对应的编码编排脚本库导入不同编码类型的执行脚本,以用于需要运行不同的应用时,能够由对应的脚本运行对应的应用程序,并根据编码类型匹配相应类型的编排脚本,且引入预先设有的源码库中的代码源,以构建与编码相应的代码程序包,且根据编码类型建立不同的修正规则(如需要进行编码的类型为检测,则对应的编排脚本为<HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//1998 Microsoft Corporation.保留所有权利.
//**开始检测**)
基于修正规则能够对应生成漏洞代码的安全编码修正方案,应用这些修正方案能够对安全编码进行规则检测和编码安全隐患扫描识别,例如sql防注入函数,只要是引用安全编码规范知识库的sql防注入函数,其sql注入漏洞自动忽略,引用相应安全框架的对应防范的漏洞自动忽略,在对安全编码进行扫描识别完毕后,将对应的漏洞代码进行存储。
在本实施例中,所述获取初步生成的代码工程,基于预设的规则库设定的安全编码要求的步骤中,包括:
提取所述代码工程中包含的至少一个或多个代码文本;
对所述代码文本进行规范检测,并判断所述代码文本是否存在异常代码,其中,所述规范检测具体为获取所述代码工程的白名单,根据所述白名单对所述代码工程包含的多个代码文本进行过滤,生成至少一种代码类型,所述代码类型包括常规代码和异常代码;
若存在,则对所述代码工程进行报错,并根据所述异常代码提供的异常信息,对所述代码工程进行安全检测。
在本实施例中,系统通过提取代码工程中包含的至少一个或多个代码文本后,对代码文本进行规范检测(核心采用的是基于分割的做法进行文本检测,即将每个文本块都进行语义分割,然后对分割概率图进行简单二值化、最终转化得为box或者poly格式的代码检测结果),并判断规范检测中的代码文本是否存在有异常代码,以执行对应的不同步骤;例如,进行规范检测时发现存在有异常代码,则此时需要通过寻找和确定造成程序异常的测试代码,对代码工程实行全方面的安全检测,必须把周围可能的测试代码单独确认一遍,要定位漏洞程序异常往往需要花费大量精力去精准定位,而此时即可采用融合黑白灰安全检测技术,发挥各自优点,弥补缺点,融合检测流程、检测数据相互弥补辅助,提高检测能力、提高检测精度,准确定位漏洞相关联源代码位置,即发挥SAST检测的广泛覆盖能力,同时通过DAST、IAST技术的辅助降低误报,同时还弥补SAST对运行时加密数据和环境检测薄弱项。
在本实施例中,所述对所述代码工程进行融合黑白灰安全检测,得到检测结果的步骤中,包括:
基于所述融合黑白灰安全检测,拆分为黑、白和灰三种安全检测结果,取得属于所述黑、白和灰三种安全检测结果对应的三种不同权重值,将所述三种不同权重值进行交叉分析,生成权重规则;
判断所述权重规则是否发生重叠冲突;
若是,则基于所述重叠冲突的系数生成所述漏洞代码的预设指标,对所述预设指标进行权重值约束至预设的权重区间赋值,其中,所述权重值约束具体为所述权重值根据触发约束快速递减,每增加一个约束条件风险告警时权重值减少,直至所述权重值为0时截止。
在本实施例中,系统基于融合黑白灰安全检测三种检测结果后,将黑、白和灰三种安全检测结果分别拆分,即可得到三种对应的不同权重值,通过将三种不同权重值进行交叉分析,即可生成权重规则(基于检测规则,对检测结果的数据进行配对,获得相同数据匹配完成后的检测文件对,基于预先设定有的通用漏洞评分系统对检测文件对进行数据转换,获得若干组检测样本,根据漏洞触发的利用难易度,获取相同难易度的检测结果;通用漏洞评分系统基于漏洞访问复杂度指标进行赋值利用难易程度),而后判断权重规则是否发生重叠冲突(即出现了相同难易度的检测结果),以执行对应的步骤;当权重规则发生重叠冲突时,此时系统会基于重叠冲突的系数对应生成检测结果的漏洞代码预先设定的指标,并对该预先设定的指标设定一个权重区间值,用以约束该漏洞代码的权重赋值变化,当应用程序拥有一个或多个约束条件风险告警时(即该应用是否具备安全性、可用性或其他功能特性),该漏洞代码对应的权重赋值会对应减少,直至权重赋值被减少至0则截止。
在本实施例中,所述基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告的步骤中,包括:
获取所述融合黑白灰安全检测对应赋予所述漏洞代码的三种不同权重值,将所述三种不同权重值通过权重乘以预设的风险等级进行所述漏洞代码的优先级排序整改,生成以所述漏洞代码的利用难易度相应的顺序表单,其中,所述优先级顺序具体为建立在所述漏洞代码存在被利用的基础上对所述三种不同权重值进行计算,所述利用难易度具体为基于安全问题对应的安全测试区别检测结果为所述漏洞代码或噪音;
判断所述顺序表单中是否存在大于预设的代码数量;
若否,则采用静态应用测试对所述漏洞代码进行代码覆盖率测试,对所述漏洞代码基于所述优先级顺序进行污点追踪,并生成所述污点追踪对应的检测报告,其中,所述污点追踪包括追踪污染源、追踪污点汇聚点或追踪传播点。
在本实施例中,系统通过获取融合黑白灰安全检测对应赋予漏洞代码的三种不同权重值,将三种不同权重值通过权重乘以预设的风险等级进行漏洞代码的优先级排序整改,生成以漏洞代码的利用难易度相应的顺序表单(优先级顺序具体为建立在所述漏洞代码存在被利用的基础上对所述三种不同权重值进行计算,所述利用难易度具体为基于安全问题对应的安全测试区别检测结果为所述漏洞代码或噪音),而后判断该顺序表单中是否存在有大于预先设定代码数量的代码总数,以执行对应的步骤;当不存在大于预先设定代码数量的代码总数时,则此时系统会采用SAST静态应用程序安全性测试对漏洞代码进行覆盖率测试,当代码覆盖率偏高时,即代表该代码漏洞易于使用,通用性高,当代码覆盖率偏低时,则相反;基于漏洞代码的覆盖率由高至低对漏洞代码进行三种检测的优先级顺序排行,并基于优先级顺序对漏洞代码进行污点追踪,以生成对应的污点追踪检测报告(包括漏洞代码的污染源、污点汇聚点和传播点),污染追踪具体如:查询代码字符串的不同变体,这些变体在解析时可能会导致污染,使得漏洞代码成为污染源、污点汇聚点和传播点。
参考附图2,为本发明一实施例中融合黑白灰安全检测技术的应用安全测试系统,包括:
获取模块10,用于获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对所述代码工程进行融合黑白灰安全检测,得到检测结果,其中,所述融合黑白灰安全检测具体为基于预设次序的检测引擎编排,所述检测引擎编排具体为依次采用合规引擎,黑盒专用引擎,白盒专用引擎和灰盒专用引擎对所述代码工程进行检测;
判断模块20,用于判断所述检测结果是否存在漏洞代码;
执行模块30,用于若是,则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置,根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征,将所述特征输入至预设的学习模型进行训练,完善所述学习模型;
识别模块40,用于识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围;
生成模块50,用于基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告。
在本实施例中,获取模块10通过获取初步生成的代码工程,基于预先设有的规则库设定的安全编码要求进行检测,其中,合规引擎具体为:内容安全合规引擎(ContentSecurity Compliance Engine,简称CSCE),检测引擎编排的具体规则为:存在四种不同的引擎,分别为合规引擎、黑盒专用引擎、白盒专用引擎与灰盒专用引擎,按照编排顺序依次为,首先应用合规引擎,而后应用黑盒专用引擎、白盒专用引擎与灰盒专用引擎,其中黑盒专用引擎、白盒专用引擎与灰盒专用引擎无需依照顺序编排,只需完成对应的检测即可;应用四种不同引擎的检测步骤包括:应用合规引擎对代码工程进行初步检测,从代码标题、代码内容和代码标签的维度,根据不同的数据安全策略,自动对代码进行安全定级,并依据预先设有的安全级别进行安全管控,检测该代码工程,如若发现代码工程中存在有敏感数据的异常值时,向终端提供敏感数据视图,结合数据安全策略,对代码工程进行安全数据管理和代码工程中不同文件数据进行分布式安全合规脱敏,其中主要包含两个重要的模块引擎:安全定标引擎和安全脱敏引擎;而后对该代码工程根据黑白灰三种引擎对应的检测手段进行融合检测(包括:采用AST应用安全测试针对该代码工程的安全性进行测试,测试软件在遭到没有授权的内部或者外部用户的攻击/恶意破坏时如何进行处理,从而保证软件和数据的安全;采用SAST静态应用程序安全性测试对开发过程中代码工程的源代码进行安全检测的技术,内置多种缺陷检测规则,将源代码转换为易于扫描的中间数据格式,使用缺陷检测技术对其进行分析,匹配缺陷规则,从而发现源代码中存在的缺陷,并提供修复建议,帮助用户及早修复,从而降低后期缺陷修补的成本,增强软件的安全性;采用DAST动态应用程序安全性测试,发现正在运行的代码工程中的安全漏洞和弱点,模拟黑客的攻击行为,通过一种由外向内的检测技术,对运行中的系统和业务进行检测,发现可能存在的漏洞,便于及时修复;采用IAST交互式应用安全测试,在应用和API中自动化识别和诊断软件漏洞的技术,在程序运行时,从应用内部持续监控和收集应用程序运行时流量或代码,并传递给安全分析引擎,识别出代码执行中的漏洞特征),将三种检测结果融合后,即生成该代码工程的检测结果(即黑白灰三种检测发挥各自优点、弥补缺点,融合检测流程、检测数据相互弥补辅助,提高检测能力、提高检测精度,准确定位漏洞相关联源代码位置,即发挥SAST检测的广泛覆盖能力,同时通过DAST、IAST技术的辅助降低误报,同时还弥补SAST对运行时加密数据和环境检测薄弱项);判断模块20通过判断该检测结果中是否还存在有漏洞代码,以执行对应的步骤;例如,系统通过DAST黑盒技术发现运行层面漏洞,由于其采用模拟攻击行为的方式,所以会具有一定的脏数据和大流量,容易对正常测试造成干扰,且无法深入定位到代码行,此时则需要应用IAST灰盒技术通过插桩来实现的,在代码运行的中间件上插入探针,通过探针来识别判断安全风险,直接从运行中的代码发现问题,以实现自动化识别和诊断在应用和API中的软件漏洞,执行模块30精准定位到漏洞代码的位置,根据预先设有的漏洞模式库,确认该漏洞代码对应的至少一个或多个特征,并将这些特征输入至预先设有的学习模型中进行训练,对学习模型进行完善,随着漏洞代码的收录和检测经验积累,将学习模型完善至进一步筛选出特征更多的漏洞代码;识别模块40通过识别该漏洞代码对应的安全编码,基于预先设有的编码知识库对该安全编码进行差异性比对,生成该安全编码的修正范围(针对所有漏洞类型提供示例安全编码,对有些相同安全编码可以统一使用共同的方法解决,从安全编码知识库提供一些解决安全问题的安全编码修正范围,同时,提供安全示例和指导文档,让开发可以统一地快速地正确地解决安全问题);生成模块50基于学习模型和修正范围对代码工程的检测结果进行融合、加权和判定引擎(融合具体为将三种检测结果的技术手段融合,加权具体为将三种检测结果对应赋予的权重值进行权重赋值,如果能确定确实存在漏洞赋值权重=1,如果确实不存在漏洞赋值权重=0,风险告警的赋值只有1、0两种值;判定引擎具体为辨别三种检测中的检测手段属于静态分析或动态分析,如SAST属于静态分析,DAST属于动态分析),以生成相应的检测报告。
在本实施例中,执行模块包括:
测试单元,用于对所述检测结果进行静态应用测试,通过所述白盒专用引擎生成得到至少一个或多个漏洞代码;
检测单元,用于将所述至少一个或多个漏洞代码输入至所述灰盒专用引擎,检测得到所述至少一个或多个漏洞代码对应的风险源代码,其中,所述风险源代码包括有风险的代码模块、代码行、调用函数和传递参数;
获取单元,用于通过所述黑盒专用引擎对所述风险源代码进行权重赋值,获取所述权重赋值对应的权重数值;
判断单元,用于判断所述权重数值是否匹配预设的数值;
执行单元,用于若是,则确定存在所述至少一个或多个漏洞代码对应的漏洞,若否,则确定不存在所述至少一个或多个漏洞代码对应的漏洞。
在本实施例中,系统通过对代码工程的检测结果进行SAST静态应用程序安全性测试(也称为白盒安全测试),通过对应的白盒专用引擎使用缺陷检测技术对其进行分析,匹配缺陷规则,从而发现源代码中存在的缺陷,即可生成至少一个或多个漏洞代码,而后将这些漏洞代码输入至灰盒专用引擎中,从应用内部持续监控和收集应用程序运行时流量或代码,并传递给安全分析引擎,识别出代码执行中的漏洞特征,从而得到漏洞代码对应的风险源代码(包括代码模块、代码行、调用函数和传递参数),最后通过黑盒专用引擎对这些风险源代码进行权重赋值,并判断权重赋值后的对应权重数值是否能够匹配预先设定有的数值(IAST对SAST的检测结果进行权重赋值不局限于1、0,如果能确定确实存在漏洞赋值权重=1,如果确实不存在漏洞赋值权重=0,由于DAST测试检测到就是1,没检测出漏洞就是0,所以DAST对某一条SAST检测风险告警的赋值只有1、0两种值。),以执行对应的不同步骤;例如,对某一风险源代码的权重赋值为0.1,而预设的数值为0时,则表明应用中存在1个漏洞代码,例如对某一风险源代码的权重赋值为0.5,而预设的数值为0时,则表明应用中存在5个漏洞代码;
需要说明的是,某个风险告警权重赋值根据触发约束从1快速递减,每增加一个约束条件风险告警权重赋值减0.1,至多减少为0,即代表至多存在有10个漏洞代码,每增加一个应用对应的约束条件风险(该应用是否具备安全性、可用性或其他功能特性)时,权重赋值会对应减少0.1。
在本实施例中,执行模块还包括:
第二获取单元,用于获取所述漏洞代码的程序片段,根据所述程序片段,生成漏洞程序片段控制流图;
计算单元,用于对所述漏洞程序片段控制流图进行权重评分计算,得到所述融合黑白灰安全检测的权重评分计算结果,根据所述权重评分计算结果和所述漏洞程序片段控制流图的基本块中,选取预设数量的所述基本块进行权重赋值,其中,所述权重赋值最大值为1,最小值为0。
在本实施例中,系统通过获取漏洞代码的程序片段,根据这些程序片段对应生成程序片段的控制流图(控制流图包括有漏洞代码的顺序语句、漏洞代码的swich语句、漏洞代码的if语句、漏洞代码的until语句和漏洞代码的while语句),这些控制流图是过程导向的,显示了应用程序执行过程中可以遍历的所有路径,途中可能生成的漏洞代码,每个控制流图都存在2个指定的块:Entry Block(输入块),Exit Block(输出块),根据已得出的漏洞代码权重赋值,对控制流图中的程序片段基本块进行相应的权重赋值;例如,当应用中存在5个漏洞代码时,相应在控制流图中也存在有5个基本块需要进行权重赋值,即当应用的权重赋值为0.5时,基本块的权重赋值也为0.5;例如,当应用中不存在漏洞代码时,在控制流图中不存在基本块需要进行权重赋值,即当应用的权重赋值为0时,基本块的权重赋值也为0。
在本实施例中,识别模块还包括:
构建单元,用于构建编码类型特征库和编码编排脚本库,基于所述编码类型特征库和所述编码编排脚本库导入不同编码类型的执行脚本,根据所述编码类型匹配相应类型的编排脚本,运行所述编排脚本对应的编排应用,并引入预设源码库的代码源构建相应代码程序包,根据不同的编码类型建立不同的修正规则;
修正单元,用于基于所述修正规则对应生成所述安全编码的修正方案,利用所述修正方案对所述漏洞代码对应的安全编码进行规则检测和编码安全隐患扫描及识别,并对所述漏洞代码进行存储。
在本实施例中,系统通过预先构建编码类型特征库和对应的编码编排脚本库,基于编码类型特征库和对应的编码编排脚本库导入不同编码类型的执行脚本,以用于需要运行不同的应用时,能够由对应的脚本运行对应的应用程序,并根据编码类型匹配相应类型的编排脚本,且引入预先设有的源码库中的代码源,以构建与编码相应的代码程序包,且根据编码类型建立不同的修正规则(如需要进行编码的类型为检测,则对应的编排脚本为<HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//1998 Microsoft Corporation.保留所有权利.
//**开始检测**)
基于修正规则能够对应生成漏洞代码的安全编码修正方案,应用这些修正方案能够对安全编码进行规则检测和编码安全隐患扫描识别,例如sql防注入函数,只要是引用安全编码规范知识库的sql防注入函数,其sql注入漏洞自动忽略,引用相应安全框架的对应防范的漏洞自动忽略,在对安全编码进行扫描识别完毕后,将对应的漏洞代码进行存储。
在本实施例中,获取模块还包括:
提取单元,用于提取所述代码工程中包含的至少一个或多个代码文本;
第二判断单元,用于对所述代码文本进行规范检测,并判断所述代码文本是否存在异常代码,其中,所述规范检测具体为获取所述代码工程的白名单,根据所述白名单对所述代码工程包含的多个代码文本进行过滤,生成至少一种代码类型,所述代码类型包括常规代码和异常代码;
第二执行单元,用于若存在,则对所述代码工程进行报错,并根据所述异常代码提供的异常信息,对所述代码工程进行安全检测。
在本实施例中,系统通过提取代码工程中包含的至少一个或多个代码文本后,对代码文本进行规范检测(核心采用的是基于分割的做法进行文本检测,即将每个文本块都进行语义分割,然后对分割概率图进行简单二值化、最终转化得为box或者poly格式的代码检测结果),并判断规范检测中的代码文本是否存在有异常代码,以执行对应的不同步骤;例如,进行规范检测时发现存在有异常代码,则此时需要通过寻找和确定造成程序异常的测试代码,对代码工程实行全方面的安全检测,必须把周围可能的测试代码单独确认一遍,要定位漏洞程序异常往往需要花费大量精力去精准定位,而此时即可采用融合黑白灰安全检测技术,发挥各自优点,弥补缺点,融合检测流程、检测数据相互弥补辅助,提高检测能力、提高检测精度,准确定位漏洞相关联源代码位置,即发挥SAST检测的广泛覆盖能力,同时通过DAST、IAST技术的辅助降低误报,同时还弥补SAST对运行时加密数据和环境检测薄弱项。
在本实施例中,获取模块还包括:
生成单元,用于基于所述融合黑白灰安全检测,拆分为黑、白和灰三种安全检测结果,取得属于所述黑、白和灰三种安全检测结果对应的三种不同权重值,将所述三种不同权重值进行交叉分析,生成权重规则;
第三判断单元,用于判断所述权重规则是否发生重叠冲突;
第三执行单元,用于若是,则基于所述重叠冲突的系数生成所述漏洞代码的预设指标,对所述预设指标进行权重值约束至预设的权重区间赋值,其中,所述权重值约束具体为所述权重值根据触发约束快速递减,每增加一个约束条件风险告警时权重值减少,直至所述权重值为0时截止。
在本实施例中,系统基于融合黑白灰安全检测三种检测结果后,将黑、白和灰三种安全检测结果分别拆分,即可得到三种对应的不同权重值,通过将三种不同权重值进行交叉分析,即可生成权重规则(基于检测规则,对检测结果的数据进行配对,获得相同数据匹配完成后的检测文件对,基于预先设定有的通用漏洞评分系统对检测文件对进行数据转换,获得若干组检测样本,根据漏洞触发的利用难易度,获取相同难易度的检测结果;通用漏洞评分系统基于漏洞访问复杂度指标进行赋值利用难易程度),而后判断权重规则是否发生重叠冲突(即出现了相同难易度的检测结果),以执行对应的步骤;当权重规则发生重叠冲突时,此时系统会基于重叠冲突的系数对应生成检测结果的漏洞代码预先设定的指标,并对该预先设定的指标设定一个权重区间值,用以约束该漏洞代码的权重赋值变化,当应用程序拥有一个或多个约束条件风险告警时(即该应用是否具备安全性、可用性或其他功能特性),该漏洞代码对应的权重赋值会对应减少,直至权重赋值被减少至0则截止。
在本实施例中,生成模块还包括:
第三获取单元,用于获取所述融合黑白灰安全检测对应赋予所述漏洞代码的三种不同权重值,将所述三种不同权重值通过权重乘以预设的风险等级进行所述漏洞代码的优先级排序整改,生成以所述漏洞代码的利用难易度相应的顺序表单,其中,所述优先级顺序具体为建立在所述漏洞代码存在被利用的基础上对所述三种不同权重值进行计算,所述利用难易度具体为基于安全问题对应的安全测试区别检测结果为所述漏洞代码或噪音;
第四判断单元,用于判断所述顺序表单中是否存在大于预设的代码数量;
第四执行单元,用于若否,则采用静态应用测试对所述漏洞代码进行代码覆盖率测试,对所述漏洞代码基于所述优先级顺序进行污点追踪,并生成所述污点追踪对应的检测报告,其中,所述污点追踪包括追踪污染源、追踪污点汇聚点或追踪传播点。
在本实施例中,系统通过获取融合黑白灰安全检测对应赋予漏洞代码的三种不同权重值,将三种不同权重值通过权重乘以预设的风险等级进行漏洞代码的优先级排序整改,生成以漏洞代码的利用难易度相应的顺序表单(优先级顺序具体为建立在所述漏洞代码存在被利用的基础上对所述三种不同权重值进行计算,所述利用难易度具体为基于安全问题对应的安全测试区别检测结果为所述漏洞代码或噪音),而后判断该顺序表单中是否存在有大于预先设定代码数量的代码总数,以执行对应的步骤;当不存在大于预先设定代码数量的代码总数时,则此时系统会采用SAST静态应用程序安全性测试对漏洞代码进行覆盖率测试,当代码覆盖率偏高时,即代表该代码漏洞易于使用,通用性高,当代码覆盖率偏低时,则相反;基于漏洞代码的覆盖率由高至低对漏洞代码进行三种检测的优先级顺序排行,并基于优先级顺序对漏洞代码进行污点追踪,以生成对应的污点追踪检测报告(包括漏洞代码的污染源、污点汇聚点和传播点),污染追踪具体如:查询代码字符串的不同变体,这些变体在解析时可能会导致污染,使得漏洞代码成为污染源、污点汇聚点和传播点。
参考附图3,为本发明一实施例中融合黑白灰安全检测技术的应用安全测试实施流程图,包括:
通过获取初步生成的代码工程,基于预先设有的规则库设定的安全编码要求,对该代码工程根据黑白灰三种检测手段进行融合检测(包括:采用AST应用安全测试针对该代码工程的安全性进行测试,测试软件在遭到没有授权的内部或者外部用户的攻击/恶意破坏时如何进行处理,从而保证软件和数据的安全;采用SAST静态应用程序安全性测试对开发过程中代码工程的源代码进行安全检测的技术,内置多种缺陷检测规则,将源代码转换为易于扫描的中间数据格式,使用缺陷检测技术对其进行分析,匹配缺陷规则,从而发现源代码中存在的缺陷,并提供修复建议,帮助用户及早修复,从而降低后期缺陷修补的成本,增强软件的安全性;采用DAST动态应用程序安全性测试,发现正在运行的代码工程中的安全漏洞和弱点,模拟黑客的攻击行为,通过一种由外向内的检测技术,对运行中的系统和业务进行检测,发现可能存在的漏洞,便于及时修复;采用IAST交互式应用安全测试,在应用和API中自动化识别和诊断软件漏洞的技术,在程序运行时,从应用内部持续监控和收集应用程序运行时流量或代码,并传递给安全分析引擎,识别出代码执行中的漏洞特征),将三种检测结果融合后,即生成该代码工程的检测结果(即黑白灰三种检测发挥各自优点、弥补缺点,融合检测流程、检测数据相互弥补辅助,提高检测能力、提高检测精度,准确定位漏洞相关联源代码位置,即发挥SAST检测的广泛覆盖能力,同时通过DAST、IAST技术的辅助降低误报,同时还弥补SAST对运行时加密数据和环境检测薄弱项);通过判断该检测结果中是否还存在有漏洞代码,以执行对应的步骤;例如,系统通过DAST黑盒技术发现运行层面漏洞,由于其采用模拟攻击行为的方式,所以会具有一定的脏数据和大流量,容易对正常测试造成干扰,且无法深入定位到代码行,此时则需要应用IAST灰盒技术通过插桩来实现的,在代码运行的中间件上插入探针,通过探针来识别判断安全风险,直接从运行中的代码发现问题,以实现自动化识别和诊断在应用和API中的软件漏洞,精准定位到漏洞代码的位置,根据预先设有的漏洞模式库,确认该漏洞代码对应的至少一个或多个特征,并将这些特征输入至预先设有的学习模型中进行训练,对学习模型进行完善,随着漏洞代码的收录和检测经验积累,将学习模型完善至进一步筛选出特征更多的漏洞代码;通过识别该漏洞代码对应的安全编码,基于预先设有的编码知识库对该安全编码进行差异性比对,生成该安全编码的修正范围(针对所有漏洞类型提供示例安全编码,对有些相同安全编码可以统一使用共同的方法解决,从安全编码知识库提供一些解决安全问题的安全编码修正范围,同时,提供安全示例和指导文档,让开发可以统一地快速地正确地解决安全问题);基于学习模型和修正范围对代码工程的检测结果进行融合、加权和判定引擎(融合具体为将三种检测结果的技术手段融合,加权具体为将三种检测结果对应赋予的权重值进行权重赋值,如果能确定确实存在漏洞赋值权重=1,如果确实不存在漏洞赋值权重=0,风险告警的赋值只有1、0两种值;判定引擎具体为辨别三种检测中的检测手段属于静态分析或动态分析,如SAST属于静态分析,DAST属于动态分析),以生成相应的检测报告。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (8)

1.融合黑白灰安全检测技术的应用安全测试方法,其特征在于,包括以下步骤:
获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对所述代码工程进行融合黑白灰安全检测,得到检测结果,其中,所述融合黑白灰安全检测具体为基于预设次序的检测引擎编排,所述检测引擎编排具体为依次采用合规引擎,黑盒专用引擎,白盒专用引擎和灰盒专用引擎对所述代码工程进行检测;
判断所述检测结果是否存在漏洞代码;
若是,则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置,根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征,将所述特征输入至预设的学习模型进行训练,完善所述学习模型;
识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围;
基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告;
所述则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置的步骤中,包括:
对所述检测结果进行静态应用测试,通过所述白盒专用引擎生成得到至少一个或多个漏洞代码;
将所述至少一个或多个漏洞代码输入至所述灰盒专用引擎,检测得到所述至少一个或多个漏洞代码对应的风险源代码,其中,所述风险源代码包括有风险的代码模块、代码行、调用函数和传递参数;
通过所述黑盒专用引擎对所述风险源代码进行权重赋值,获取所述权重赋值对应的权重数值;
判断所述权重数值是否匹配预设的数值;
若是,则确定存在所述至少一个或多个漏洞代码对应的漏洞,若否,则确定不存在所述至少一个或多个漏洞代码对应的漏洞。
2.根据权利要求1所述的融合黑白灰安全检测技术的应用安全测试方法,其特征在于,所述根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征的步骤中,包括:
获取所述漏洞代码的程序片段,根据所述程序片段,生成漏洞程序片段控制流图;
对所述漏洞程序片段控制流图进行权重评分计算,得到所述融合黑白灰安全检测的权重评分计算结果,根据所述权重评分计算结果和所述漏洞程序片段控制流图的基本块中,选取预设数量的所述基本块进行权重赋值,其中,所述权重赋值最大值为1,最小值为0。
3.根据权利要求1所述的融合黑白灰安全检测技术的应用安全测试方法,其特征在于,所述识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围的步骤中,包括:
构建编码类型特征库和编码编排脚本库,基于所述编码类型特征库和所述编码编排脚本库导入不同编码类型的执行脚本,根据所述编码类型匹配相应类型的编排脚本,运行所述编排脚本对应的编排应用,并引入预设源码库的代码源构建相应代码程序包,根据不同的编码类型建立不同的修正规则;
基于所述修正规则对应生成所述安全编码的修正方案,利用所述修正方案对所述漏洞代码对应的安全编码进行规则检测和编码安全隐患扫描及识别,并对所述漏洞代码进行存储。
4.根据权利要求1所述的融合黑白灰安全检测技术的应用安全测试方法,其特征在于,所述获取初步生成的代码工程,基于预设的规则库设定的安全编码要求的步骤中,包括:
提取所述代码工程中包含的至少一个或多个代码文本;
对所述代码文本进行规范检测,并判断所述代码文本是否存在异常代码,其中,所述规范检测具体为获取所述代码工程的白名单,根据所述白名单对所述代码工程包含的多个代码文本进行过滤,生成至少一种代码类型,所述代码类型包括常规代码和异常代码;
若存在,则对所述代码工程进行报错,并根据所述异常代码提供的异常信息,对所述代码工程进行安全检测。
5.根据权利要求1所述的融合黑白灰安全检测技术的应用安全测试方法,其特征在于,所述对所述代码工程进行融合黑白灰安全检测,得到检测结果的步骤中,包括:
基于所述融合黑白灰安全检测,拆分为黑、白和灰三种安全检测结果,取得属于所述黑、白和灰三种安全检测结果对应的三种不同权重值,将所述三种不同权重值进行交叉分析,生成权重规则;
判断所述权重规则是否发生重叠冲突;
若是,则基于所述重叠冲突的系数生成所述漏洞代码的预设指标,对所述预设指标进行权重值约束至预设的权重区间赋值,其中,所述权重值约束具体为所述权重值根据触发约束快速递减,每增加一个约束条件风险告警时权重值减少,直至所述权重值为0时截止。
6.根据权利要求1所述的融合黑白灰安全检测技术的应用安全测试方法,其特征在于,所述基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告的步骤中,包括:
获取所述融合黑白灰安全检测对应赋予所述漏洞代码的三种不同权重值,将所述三种不同权重值通过权重乘以预设的风险等级进行所述漏洞代码的优先级排序整改,生成以所述漏洞代码的利用难易度相应的顺序表单,其中,所述优先级顺序具体为建立在所述漏洞代码存在被利用的基础上对所述三种不同权重值进行计算,所述利用难易度具体为基于安全问题对应的安全测试区别检测结果为所述漏洞代码或噪音;
判断所述顺序表单中是否存在大于预设的代码数量;
若否,则采用静态应用测试对所述漏洞代码进行代码覆盖率测试,对所述漏洞代码基于所述优先级顺序进行污点追踪,并生成所述污点追踪对应的检测报告,其中,所述污点追踪包括追踪污染源、追踪污点汇聚点或追踪传播点。
7.融合黑白灰安全检测技术的应用安全测试系统,其特征在于,包括:
获取模块,用于获取初步生成的代码工程,基于预设的规则库设定的安全编码要求,对所述代码工程进行融合黑白灰安全检测,得到检测结果,其中,所述融合黑白灰安全检测具体为基于预设次序的检测引擎编排,所述检测引擎编排具体为依次采用合规引擎,黑盒专用引擎,白盒专用引擎和灰盒专用引擎对所述代码工程进行检测;
判断模块,用于判断所述检测结果是否存在漏洞代码;
执行模块,用于若是,则基于所述融合黑白灰安全检测,精确定位到所述漏洞代码的位置,根据预设的漏洞模式库确认所述漏洞代码对应的至少一个或多个特征,将所述特征输入至预设的学习模型进行训练,完善所述学习模型;
识别模块,用于识别所述漏洞代码对应的安全编码,基于预设的编码知识库对所述安全编码进行差异性比对,生成所述安全编码对应的修正范围;
生成模块,用于基于所述学习模型和所述修正范围对所述检测结果进行融合、加权和判定引擎,生成所述检测结果对应的检测报告;
所述执行模块包括:
测试单元,用于对所述检测结果进行静态应用测试,通过所述白盒专用引擎生成得到至少一个或多个漏洞代码;
检测单元,用于将所述至少一个或多个漏洞代码输入至所述灰盒专用引擎,检测得到所述至少一个或多个漏洞代码对应的风险源代码,其中,所述风险源代码包括有风险的代码模块、代码行、调用函数和传递参数;
获取单元,用于通过所述黑盒专用引擎对所述风险源代码进行权重赋值,获取所述权重赋值对应的权重数值;
判断单元,用于判断所述权重数值是否匹配预设的数值;
执行单元,用于若是,则确定存在所述至少一个或多个漏洞代码对应的漏洞,若否,则确定不存在所述至少一个或多个漏洞代码对应的漏洞。
8.据权利要求7所述的融合黑白灰安全检测技术的应用安全测试系统,其特征在于,所述执行模块还包括:
第二获取单元,用于获取所述漏洞代码的程序片段,根据所述程序片段,生成漏洞程序片段控制流图;
计算单元,用于对所述漏洞程序片段控制流图进行权重评分计算,得到所述融合黑白灰安全检测的权重评分计算结果,根据所述权重评分计算结果和所述漏洞程序片段控制流图的基本块中,选取预设数量的所述基本块进行权重赋值,其中,所述权重赋值最大值为1,最小值为0。
CN202310045949.2A 2023-01-30 2023-01-30 融合黑白灰安全检测技术的应用安全测试方法及系统 Active CN115952503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310045949.2A CN115952503B (zh) 2023-01-30 2023-01-30 融合黑白灰安全检测技术的应用安全测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310045949.2A CN115952503B (zh) 2023-01-30 2023-01-30 融合黑白灰安全检测技术的应用安全测试方法及系统

Publications (2)

Publication Number Publication Date
CN115952503A CN115952503A (zh) 2023-04-11
CN115952503B true CN115952503B (zh) 2023-07-25

Family

ID=85906509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310045949.2A Active CN115952503B (zh) 2023-01-30 2023-01-30 融合黑白灰安全检测技术的应用安全测试方法及系统

Country Status (1)

Country Link
CN (1) CN115952503B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112435B (zh) * 2023-09-08 2024-01-26 清科万道(北京)信息技术有限公司 一种漏洞联动检测结果的融合方法、存储介质及电子设备
CN117648673B (zh) * 2024-01-29 2024-05-03 深圳海云安网络安全技术有限公司 一种基于大模型的安全编码规范多标融合方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906011A (zh) * 2021-05-07 2021-06-04 北京安普诺信息技术有限公司 漏洞发现方法、测试方法、安全测试方法及相关装置、平台
CN113392784A (zh) * 2021-06-18 2021-09-14 湖北中烟工业有限责任公司 一种基于漏洞指纹识别的应用安全检测任务自动编排方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11017094B2 (en) * 2018-01-03 2021-05-25 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for java deserialization vulnerability detection
US10467419B1 (en) * 2018-10-31 2019-11-05 Capital One Services, Llc Methods and systems for determining software risk scores
CN111125708B (zh) * 2019-11-25 2021-12-03 吉林亿联银行股份有限公司 漏洞检测方法及装置
CA3190145A1 (en) * 2020-08-27 2022-03-03 Satya V. Gupta Automated application vulnerability and risk assessment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906011A (zh) * 2021-05-07 2021-06-04 北京安普诺信息技术有限公司 漏洞发现方法、测试方法、安全测试方法及相关装置、平台
CN113392784A (zh) * 2021-06-18 2021-09-14 湖北中烟工业有限责任公司 一种基于漏洞指纹识别的应用安全检测任务自动编排方法

Also Published As

Publication number Publication date
CN115952503A (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
CN115952503B (zh) 融合黑白灰安全检测技术的应用安全测试方法及系统
CN100461132C (zh) 基于源代码静态分析的软件安全代码分析器及其检测方法
CN112182588B (zh) 基于威胁情报的操作系统漏洞分析检测方法及系统
CN114077741B (zh) 软件供应链安全检测方法和装置、电子设备及存储介质
WO2017039136A1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
CN112052172A (zh) 第三方通道的快速测试方法、装置和电子设备
Anu et al. An approach to recommendation of verbosity log levels based on logging intention
CN112069069A (zh) 缺陷自动定位分析方法、设备及可读存储介质
CN112214399B (zh) 基于序列模式匹配的api误用缺陷检测系统
CN111611590B (zh) 涉及应用程序的数据安全的方法及装置
CN116383833A (zh) 软件程序代码的测试方法及其装置、电子设备、存储介质
CN112115053A (zh) 基于序列模式匹配的api误用缺陷检测方法
CN117034299B (zh) 一种基于区块链的智能合约安全检测系统
Brito et al. Study of javascript static analysis tools for vulnerability detection in node. js packages
US10152407B1 (en) Optimization of analysis of automated test results
CN112464237B (zh) 一种静态代码安全诊断方法及装置
CN116415258A (zh) 漏洞检测方法、装置、设备、介质及程序产品
CN116248393A (zh) 一种内网数据传输漏洞扫描装置及系统
CN110928793A (zh) 一种正则表达式检测方法、装置及计算机可读存储介质
Zahan et al. Shifting the Lens: Detecting Malware in npm Ecosystem with Large Language Models
Wu et al. Automated software testing starting from static analysis: current state of the art
Alsmadi et al. Fault-based testing for discovering SQL injection vulnerabilities in web applications
Najjari et al. Presentation of a pattern to counteract the attacks of XSS Malware
CN116975861A (zh) 一种软件安全性缺陷测试需求的获取与分级方法
CN113434408B (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