CN115455431A - 自动化代码安全检测和漏洞修复方法、装置、终端及介质 - Google Patents
自动化代码安全检测和漏洞修复方法、装置、终端及介质 Download PDFInfo
- Publication number
- CN115455431A CN115455431A CN202211166276.8A CN202211166276A CN115455431A CN 115455431 A CN115455431 A CN 115455431A CN 202211166276 A CN202211166276 A CN 202211166276A CN 115455431 A CN115455431 A CN 115455431A
- Authority
- CN
- China
- Prior art keywords
- detection
- bug
- vulnerability
- repaired
- repair
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 238
- 230000008439 repair process Effects 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012216 screening Methods 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 claims description 54
- 238000012360 testing method Methods 0.000 claims description 33
- 230000006978 adaptation Effects 0.000 claims description 7
- 238000005067 remediation Methods 0.000 claims 7
- 230000006870 function Effects 0.000 description 18
- 229940060321 after-bug Drugs 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及代码安全检测和漏洞修复领域,具体公开一种自动化代码安全检测和漏洞修复方法、装置、终端及介质,配置检测修复参数,包括待修复漏洞风险等级或操作等级;调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;根据待修复漏洞的组件信息进行漏洞修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
Description
技术领域
本发明涉及代码安全检测和漏洞修复领域,具体涉及一种自动化代码安全检测和漏洞修复方法、装置、终端及介质。
背景技术
软件应用安全是保证软件可用性的一个重要方面,目前应用于该领域的解决方案不止一种,其中,代码安全检测是近年被人提及较多的软件应用安全解决方案之一。代码安全检测指的是通过特定的规则对代码进行安全漏洞检查的一种方法,通过该方法可以发现代码中存在的安全漏洞,然后对发现的安全漏洞对应的组件进行针对性的升级,以此修复漏洞提升软件应用安全。
目前对于代码安全检测主要是通过检测软件扫描源码,再手动修复漏洞,升级相关组件。对于手动或任务的方式触发的代码扫描,每次都要做扫描配置。导出的分析结果多是csv或excel文件,该文件围绕代码所引用的所有组件去列举对应的风险等级,所以分析结果中包含了从严重、中等、低级和无风险等全部等级的记录,文件的行数和列数非常多,人工手动筛选特定等级的漏洞,再手动修复并验证软件功能,包括根据检测描述升级对应的组件到更新的版本,然后再去验证组件升级后是否影响软件原有功能,如果验证不过再做组件版本的手动回退,通过上述迭代的方式直到漏洞被全部修复或者遗留的漏洞经过评估,其风险在可控范围内为止。由此可见,当前方式整个代码安全检测和漏洞修复流程手动方式占比非常大,自动化程度非常低,效率低下,需要占用大量的人力,费时费力。
发明内容
为解决上述问题,本发明提供一种自动化代码安全检测和漏洞修复方法、装置、终端及介质,配置各功能模块实现整个代码安全检测和漏洞修复过程的高度自动化,极大的提升了代码安全检测和漏洞修复的效率,降低了人力的投入。
第一方面,本发明的技术方案提供一种自动化代码安全检测和漏洞修复方法,包括以下步骤:
配置检测修复参数,包括待修复漏洞风险等级或操作等级;
调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;
从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;
根据待修复漏洞的组件信息进行漏洞修复。
进一步地,待修复漏洞组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本;
相应的,根据待修复漏洞的组件信息进行漏洞修复,具体包括:
检测软件代码的编程语言;
基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本。
进一步地,该方法还包括以下步骤:
预先构建软件自动化测试用例;
每修复一个漏洞后,执行测试用例对软件进行功能验证;
若验证通过,则直接进行下一个漏洞的修复;
若验证不通过,则将当前漏洞的组件版本回退到当前版本,之后进行下一个漏洞的修复。
进一步地,该方法还包括以下步骤:
当执行测试用例对软件进行功能验证,验证不通过时,记录验证失败信息以及回退的组件版本信息。
进一步地,所配置检测修复参数还包括最大尝试的检测修复次数;
相应的,该方法还包括以下步骤:
将所有待修复漏洞全部修复过一次之后,判定是否已没有漏洞以及判断检测修复次数是否达到最大尝试的检测修复次数;
若已没有漏电或者检测修复次数已达到最大尝试的检测修复次数,则退出检测修复程序;
否则,重新进行新一轮的检测修复流程。
进一步地,所配置检测修复参数还包括汇总通知人员名单;
相应的,该方法还包括以下步骤:
退出检测修复程序之后,将记录的所有验证失败信息以及回退的组件版本信息,发送给汇总通知人员名单中的人员。
第二方面,本发明的技术方案提供一种自动化代码安全检测和漏洞修复装置,包括,
参数配置模块:配置检测修复参数,包括待修复漏洞风险等级或操作等级;
代码安全检测模块:调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;
检测结果分析模块:从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;
漏洞修复模块:根据待修复漏洞的组件信息进行漏洞修复。
进一步地,待修复漏洞组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本;
相应的,漏洞修复模块根据待修复漏洞的组件信息进行漏洞修复,具体包括:检测软件代码的编程语言;基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本;
参数配置模块所配置检测修复参数还包括最大尝试的检测修复次数和汇总通知人员名单;
漏洞修复模块将所有待修复漏洞全部修复过一次之后,判定是否已没有漏洞以及判断检测修复次数是否达到最大尝试的检测修复次数;否则,通知代码安全检测模块重新进行新一轮的检测修复流程;
该装置还包括回归测试模块和汇总通知模块;
回归测试模块:每修复一个漏洞后,执行预先构建的软件测试用例对软件进行功能验证;若验证通过,则通知漏洞修复模块直接进行下一个漏洞的修复,若验证不通过,则通知漏洞修复模块将当前漏洞的组件版本回退到当前版本后进行下一个漏洞的修复,且回归测试模块记录验证失败信息和回退版本信息;
汇总通知模块:退出检测修复程序之后,将记录的所有验证失败信息以及回退的组件版本信息,发送给汇总通知人员名单中的人员。
第三方面,本发明的技术方案提供一种终端,包括:
存储器,用于存储自动化代码安全检测和漏洞修复程序;
处理器,用于执行所述自动化代码安全检测和漏洞修复程序时实现如上述任一项所述自动化代码安全检测和漏洞修复方法的步骤。
第四方面,本发明的技术方案提供一种计算机可读存储介质,所述可读存储介质上存储有自动化代码安全检测和漏洞修复程序,所述自动化代码安全检测和漏洞修复程序被处理器执行时实现如上述任一项所述自动化代码安全检测和漏洞修复方法的步骤。
本发明提供的一种自动化代码安全检测和漏洞修复方法、装置、终端及介质,相对于现有技术,具有以下有益效果:配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。优选的,漏洞修复后自动基于测试用例进行软件功能验证,并进行多次循环检测修复,最大程度以自动化方式实现漏洞修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种自动化代码安全检测和漏洞修复方法流程示意图。
图2是本发明实施例提供的一种自动化代码安全检测和漏洞修复方法流程示意图。
图3是本发明实施例提供的一种自动化代码安全检测和漏洞修复方法流程示意图。
图4是本发明实施例提供的一种自动化代码安全检测和漏洞修复装置结构示意框图。
图5是本发明实施例提供的一种自动化代码安全检测和漏洞修复装置各功能模块交互流程示意图。
图6是本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本发明实施例提供的一种自动化代码安全检测和漏洞修复方法流程示意图,如图1所示,该方法包括以下步骤。
S1,配置检测修复参数,包括待修复漏洞风险等级或操作等级。
预先配置检测修复参数,后续检测修复程序根据该参数进行自动检测修复。参数包括待修复漏洞风险等级或操作等级,检测修复程序根据配置的待修复漏洞风险等级或操作等级,从检测结果文件中筛选出符合待修复漏洞风险等级或操作等级的漏洞,这些漏洞将是后续需要修复的漏洞。例如,配置待修复漏洞风险等级或操作等级为严重和中等,则从检测结果文件中找出严重和中等风险的漏洞作为待修复漏洞。
S2,调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件。
BlackDuck工具是一种常用的代码安全检测工具,支持参数化配置,可以对特定目录下的代码进行安全检测,Jenkins是基于Java语言开发的一种持续集成工具,用于监控持续重复的工作。本实施例利用Jenkins平台,将BlackDuck对代码的扫描和分析工作配置为条件触发执行的任务,实现自动化代码安全检测和扫描结果自动导出。
S3,从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息。
S4,根据待修复漏洞的组件信息进行漏洞修复。
本实施例所输出的修复漏洞的组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本。
漏洞修复实际是将相关组件进行版本升级。然而,不同的编程语言对应的组件升级方法是不同的,比如Java代码需要通过Maven库升级组件,Vue代码通过npm命令升级组件,Python代码通过pip命令升级组件。因此,步骤S4根据待修复漏洞的组件信息进行漏洞修复,具体包括:
步骤一,检测软件代码的编程语言;
步骤二,基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本。
首先检测出软件代码的编程语言,选择合适的修复方式,将漏洞组件的当前版本更新到组件可升级的新版本,实现漏洞修复。
本实施例提供的自动化代码安全检测和漏洞修复方法,配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
图2是本发明实施例提供的一种自动化代码安全检测和漏洞修复方法流程示意图,对漏洞修复后并不一定能够修复成功,本实施例在上述实施例基础上,对漏洞修复后,自动进行软件功能验证,以检验漏洞是否修复成功。
如图2所示,该方法包括以下步骤。
S1,配置检测修复参数,包括待修复漏洞风险等级或操作等级。
S2,预先构建软件自动化测试用例。
预先构建测试用例,以用于后续软件功能测试。
S3,调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件。
S4,从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息。
所输出的修复漏洞的组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本。
S5,根据待修复漏洞的组件信息进行漏洞修复。
对漏洞的修复包括:检测软件代码的编程语言,基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本。
S6,每修复一个漏洞后,执行测试用例对软件进行功能验证。
S7,若验证通过,则直接进行下一个漏洞的修复。
S8,若验证不通过,则将当前漏洞的组件版本回退到当前版本,之后进行下一个漏洞的修复。
每修复一个漏洞进行一次软件功能验证,这样可以确保验证不通过是由于刚修复的漏洞引起的。如果待所有漏洞修复完再验证,则无法定位是哪个漏洞引起的验证失败。
作为优选的实施例,在软件功能验证失败后,记录验证失败信息以及回退的组件版本信息,以便后续人员进行处理。
本实施例提供自动化代码安全检测和漏洞修复方法,配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。漏洞修复后自动基于测试用例进行软件功能验证。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
图3是本发明实施例提供的一种自动化代码安全检测和漏洞修复方法流程示意图,一方面,Jenkins平台所提供的组件可升级的新版本一般是离当前版本最近的可修复当前漏洞的版本,而不一定是数据库内最新的版本,因此升级后的组件版本可能依然存在漏洞;另一方面,对于某些未修复成功的漏洞,在其他漏洞修复后可能会同时将未修复成功的漏洞进行修复(两个漏洞关联,例如其中一个漏洞的修复为另一个漏洞打补丁);第三方面,在某个时间段,可能数据库进行了更新,对于修复失败的漏洞,再次进行下一轮检测修复流程时,可能会检测到另一个组件可升级的新版本,将漏洞修复成功。因此本实施例在进行一轮检测修复流程后,重新再进行一次检测修复流程,再次查找漏洞进行修复,以最大程度进行漏洞自动化的修复。
如图3所示,该方法包括以下步骤。
S1,配置检测修复参数,包括待修复漏洞风险等级或操作等级、最大尝试的检测修复次数和汇总通知人员名单。
S2,预先构建软件自动化测试用例。
S3,调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件。
S4,从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息。
所输出的修复漏洞的组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本。
S5,根据待修复漏洞的组件信息进行漏洞修复。
对漏洞的修复包括:检测软件代码的编程语言,基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本。
S6,每修复一个漏洞后,执行测试用例对软件进行功能验证。
S7,若验证通过,则直接进行下一个漏洞的修复。
S8,若验证不通过,则将当前漏洞的组件版本回退到当前版本,之后进行下一个漏洞的修复,同时记录验证失败信息以及回退的组件版本信息。
S9,将所有待修复漏洞全部修复过一次之后,判定是否已没有漏洞以及判断检测修复次数是否达到最大尝试的检测修复次数。
S10,若已没有漏电或者检测修复次数已达到最大尝试的检测修复次数,则退出检测修复程序。
S11,否则,重新进行新一轮的检测修复流程。
可以理解的是,进行新一轮的检测修复流程是指返回步骤S3重新进行代码安全检测,之后筛选漏洞、进行漏洞修复和软件功能验证等。
S12,退出检测修复程序之后,将记录的所有验证失败信息以及回退的组件版本信息,发送给汇总通知人员名单中的人员。
最终,将所有软件功能验证失败信息和回退的组件版本信息发送给相关人员,供相关人员定位漏洞进行处理。
本实施例提供的自动化代码安全检测和漏洞修复方法,配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。优选的,漏洞修复后自动基于测试用例进行软件功能验证,并进行多次循环检测修复,最大程度以自动化方式实现漏洞修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
上文中对于一种自动化代码安全检测和漏洞修复方法的实施例进行了详细描述,基于上述实施例描述自动化代码安全检测和漏洞修复方法,本发明实施例还提供了一种与该方法对应的自动化代码安全检测和漏洞修复装置。
图4是本发明实施例提供的一种自动化代码安全检测和漏洞修复装置结构示意框图,如图4所示,该装置包括:参数配置模块、代码安全检测模块、检测结果分析模块、漏洞修复模块、回归测试模块和汇总通知模块。
1)参数配置模块:配置检测修复参数。
该模块对代码安全检测和漏洞修复中使用的参数进行集中化管理,使得流程管控变的更加灵活。本实施例中,检测修复参数包括但不限于用户关注的待修复漏洞风险等级或操作等级、最大尝试的检测修复次数和汇总通知人员名单。
2)代码安全检测模块:调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件。
目前,BlackDuck工具是一种常用的代码安全检测工具,支持参数化配置,可以对特定目录下的代码进行安全检测,Jenkins是基于Java语言开发的一种持续集成工具,用于监控持续重复的工作。本实施例利用Jenkins平台,将BlackDuck对代码的扫描和分析工作配置为条件触发执行的任务,实现自动化代码安全检测和扫描结果自动导出。
3)检测结果分析模块:从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息。
该模块自动收集安全检测结果文件,根据配置模块用户关注的漏洞风险等级或操作等级,解析文件,筛选文件内容,输出要修复的漏洞组件信息。
待修复漏洞组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本。
如果当前安全检测用户关注的等级已无漏洞或者修复次数已经达到参数配置模块设定的最大次数,则通过汇总通知模块发送通知,然后退出整个过程。
4)漏洞修复模块:根据待修复漏洞的组件信息进行漏洞修复。
该模块的输入是检测结果分析模块输出的待修复漏洞组件信息。不同的编程语言对应的组件升级方法是不同的,比如Java代码需要通过Maven库升级组件,Vue代码通过npm命令升级组件,Python代码通过pip命令升级组件,该模块根据当前代码所使用的编程语言类型和漏洞组件信息,采用当前代码适配的方式升级组件到组件可升级的新版本。
漏洞修复模块将所有待修复漏洞全部修复过一次之后,判定是否已没有漏洞以及判断检测修复次数是否达到最大尝试的检测修复次数;否则,通知代码安全检测模块重新进行新一轮的检测修复流程。
5)回归测试模块:每修复一个漏洞后,执行预先构建的软件测试用例对软件进行功能验证;若验证通过,则通知漏洞修复模块直接进行下一个漏洞的修复,若验证不通过,则通知漏洞修复模块将当前漏洞的组件版本回退到当前版本后进行下一个漏洞的修复,且回归测试模块记录验证失败信息和回退版本信息。
该模块用于组件升级后的软件功能正确性验证。整个验证过程是自动化的,需要事先针对当前软件构建自动化测试用例,借助于Jenkins平台,实现测试用例的自动化运行和结果统计。需要说明的是该模块需要与漏洞修复模块交互,漏洞修复模块每升级一个组件,需要通知回归测试模块运行测试用例以验证软件功能,如果验证失败则记录失败信息,并通知漏洞修复模块回退对应组件版本。
6)汇总通知模块:退出检测修复程序之后,将记录的所有验证失败信息以及回退的组件版本信息,发送给汇总通知人员名单中的人员。
图5是该装置各功能模块交互流程示意图,首先由参数配置模块进行集中化参数管理,然后代码安全检测模块自动化启动或条件出发代码扫描,之后检测结果分析模块收集安全检测结果文件,解析文件,输出漏洞和组件相关的信息,漏洞修复模块判断是否没有漏洞或者达到检测修复最大次数,若否则根据编程语言和漏洞组件信息升级组件到新的版本,并通知回归测试模块通过自动化运行测试用例验证组件升级后的软件功能是否正常并记录信息,同时反馈测试结果给漏洞修复模块,漏洞修复模块在本次所有漏洞修复完成后触发再次检测,另外在漏洞修复模块判断没有漏洞或者达到检测修复最大次数时,由汇总通知模块将流程记录的信息通知指定人员。
本实施例提供的自动化代码安全检测和漏洞修复装置,配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。优选的,漏洞修复后自动基于测试用例进行软件功能验证,并进行多次循环检测修复,最大程度以自动化方式实现漏洞修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
图6为本发明实施例提供的一种终端装置600的结构示意图,包括:处理器610、存储器620及通信单元630。所述处理器610用于实现存储器620中保存的自动化代码安全检测和漏洞修复程序时实现以下步骤:
配置检测修复参数,包括待修复漏洞风险等级或操作等级;
调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;
从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;
根据待修复漏洞的组件信息进行漏洞修复。
本发明配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。优选的,漏洞修复后自动基于测试用例进行软件功能验证,并进行多次循环检测修复,最大程度以自动化方式实现漏洞修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
该终端装置600包括处理器610、存储器620及通信单元630。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器620可以用于存储处理器610的执行指令,存储器620可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器620中的执行指令由处理器610执行时,使得终端600能够执行以下上述方法实施例中的部分或全部步骤。
处理器610为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC) 组成,例如可以由单颗封装的IC 所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器610可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元630,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,这里所说的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random accessmemory,简称:RAM)等。
计算机存储介质存储有自动化代码安全检测和漏洞修复程序,所述自动化代码安全检测和漏洞修复程序被处理器执行时实现以下步骤:
配置检测修复参数,包括待修复漏洞风险等级或操作等级;
调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;
从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;
根据待修复漏洞的组件信息进行漏洞修复。
本发明配置检测修复参数,通过代码安全检测工具自动实现代码安全检测,之后根据检测修复参数筛选出待修复漏洞,并自动对漏洞进行修复。优选的,漏洞修复后自动基于测试用例进行软件功能验证,并进行多次循环检测修复,最大程度以自动化方式实现漏洞修复。本发明通过参数配置和代码安全检测工具等实现整个代码安全检测和漏洞修复的高度自动化,极大提高工作效率,降低人力投入。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (10)
1.一种自动化代码安全检测和漏洞修复方法,其特征在于,包括以下步骤:
配置检测修复参数,包括待修复漏洞风险等级或操作等级;
调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;
从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;
根据待修复漏洞的组件信息进行漏洞修复。
2.根据权利要求1所述的自动化代码安全检测和漏洞修复方法,其特征在于,待修复漏洞组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本;
相应的,根据待修复漏洞的组件信息进行漏洞修复,具体包括:
检测软件代码的编程语言;
基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本。
3.根据权利要求2所述的自动化代码安全检测和漏洞修复方法,其特征在于,该方法还包括以下步骤:
预先构建软件自动化测试用例;
每修复一个漏洞后,执行测试用例对软件进行功能验证;
若验证通过,则直接进行下一个漏洞的修复;
若验证不通过,则将当前漏洞的组件版本回退到当前版本,之后进行下一个漏洞的修复。
4.根据权利要求3所述的自动化代码安全检测和漏洞修复方法,其特征在于,该方法还包括以下步骤:
当执行测试用例对软件进行功能验证,验证不通过时,记录验证失败信息以及回退的组件版本信息。
5.根据权利要求4所述的自动化代码安全检测和漏洞修复方法,其特征在于,所配置检测修复参数还包括最大尝试的检测修复次数;
相应的,该方法还包括以下步骤:
将所有待修复漏洞全部修复过一次之后,判定是否已没有漏洞以及判断检测修复次数是否达到最大尝试的检测修复次数;
若已没有漏电或者检测修复次数已达到最大尝试的检测修复次数,则退出检测修复程序;
否则,重新进行新一轮的检测修复流程。
6.根据权利要求5所述的自动化代码安全检测和漏洞修复方法,其特征在于,所配置检测修复参数还包括汇总通知人员名单;
相应的,该方法还包括以下步骤:
退出检测修复程序之后,将记录的所有验证失败信息以及回退的组件版本信息,发送给汇总通知人员名单中的人员。
7.一种自动化代码安全检测和漏洞修复装置,其特征在于,包括,
参数配置模块:配置检测修复参数,包括待修复漏洞风险等级或操作等级;
代码安全检测模块:调取代码安全检测工具对软件代码进行安全检测,并导出检测结果文件;
检测结果分析模块:从检测结果文件中,筛选出符合待修复漏洞风险等级或操作等级的漏洞,记为待修复漏洞,输出待修复漏洞的组件信息;
漏洞修复模块:根据待修复漏洞的组件信息进行漏洞修复。
8.根据权利要求7所述的自动化代码安全检测和漏洞修复装置,其特征在于,待修复漏洞组件信息包括:组件名称、漏洞等级、组件当前版本、组件可升级的新版本;
相应的,漏洞修复模块根据待修复漏洞的组件信息进行漏洞修复,具体包括:检测软件代码的编程语言;基于软件代码的编程语言,采用代码适配的方式将漏洞的组件更新到组件可升级的新版本;
参数配置模块所配置检测修复参数还包括最大尝试的检测修复次数和汇总通知人员名单;
漏洞修复模块将所有待修复漏洞全部修复过一次之后,判定是否已没有漏洞以及判断检测修复次数是否达到最大尝试的检测修复次数;否则,通知代码安全检测模块重新进行新一轮的检测修复流程;
该装置还包括回归测试模块和汇总通知模块;
回归测试模块:每修复一个漏洞后,执行预先构建的软件测试用例对软件进行功能验证;若验证通过,则通知漏洞修复模块直接进行下一个漏洞的修复,若验证不通过,则通知漏洞修复模块将当前漏洞的组件版本回退到当前版本后进行下一个漏洞的修复,且回归测试模块记录验证失败信息和回退版本信息;
汇总通知模块:退出检测修复程序之后,将记录的所有验证失败信息以及回退的组件版本信息,发送给汇总通知人员名单中的人员。
9.一种终端,其特征在于,包括:
存储器,用于存储自动化代码安全检测和漏洞修复程序;
处理器,用于执行所述自动化代码安全检测和漏洞修复程序时实现如权利要求1-6任一项所述自动化代码安全检测和漏洞修复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有自动化代码安全检测和漏洞修复程序,所述自动化代码安全检测和漏洞修复程序被处理器执行时实现如权利要求1-6任一项所述自动化代码安全检测和漏洞修复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211166276.8A CN115455431A (zh) | 2022-09-23 | 2022-09-23 | 自动化代码安全检测和漏洞修复方法、装置、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211166276.8A CN115455431A (zh) | 2022-09-23 | 2022-09-23 | 自动化代码安全检测和漏洞修复方法、装置、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115455431A true CN115455431A (zh) | 2022-12-09 |
Family
ID=84306175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211166276.8A Pending CN115455431A (zh) | 2022-09-23 | 2022-09-23 | 自动化代码安全检测和漏洞修复方法、装置、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115455431A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186711A (zh) * | 2023-01-05 | 2023-05-30 | 北京永信至诚科技股份有限公司 | 网络攻防竞赛中的测试应用的防御结果确定方法及装置 |
-
2022
- 2022-09-23 CN CN202211166276.8A patent/CN115455431A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186711A (zh) * | 2023-01-05 | 2023-05-30 | 北京永信至诚科技股份有限公司 | 网络攻防竞赛中的测试应用的防御结果确定方法及装置 |
CN116186711B (zh) * | 2023-01-05 | 2023-12-12 | 永信至诚科技集团股份有限公司 | 网络攻防竞赛中的测试应用的防御结果确定方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108418787A (zh) | 企业资源计划数据的采集方法、终端设备及介质 | |
CN111462811A (zh) | 自动化测试方法、装置、存储介质和电子设备 | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN110119348B (zh) | 一种软件升级测试的方法及终端 | |
CN115455431A (zh) | 自动化代码安全检测和漏洞修复方法、装置、终端及介质 | |
CN110865941A (zh) | 接口测试用例生成方法、装置和系统 | |
CN113032245A (zh) | 错误定位识别的测试方法、装置、计算机设备及存储介质 | |
CN110297749B (zh) | 一种测试新功能的方法及终端 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN111538542B (zh) | 一种系统配置方法及相关装置 | |
CN111078476B (zh) | 一种网卡驱动固件稳定性测试方法、系统、终端及存储介质 | |
CN117194230A (zh) | 不同版本板卡的fct匹配测试方法、装置、设备及介质 | |
CN109684205B (zh) | 系统测试方法、装置、电子设备及存储介质 | |
CN113468058B (zh) | 软件即服务平台的回归测试方法、装置及电子设备 | |
CN112492000B (zh) | 一种物联网访问网络规则的加载方法及装置 | |
CN115454472A (zh) | 远程升级问题解决方法、装置、设备及可读存储介质 | |
CN115034165A (zh) | 一种芯片仿真验证方法、系统、设备以及存储介质 | |
CN113297038B (zh) | 监控与数据处理方法、装置、设备及监控系统、数据中心 | |
CN112131582A (zh) | SELinux规则生成方法、装置和电子设备 | |
CN111338678A (zh) | 一种存储系统升级校验的方法和设备 | |
CN112231218B (zh) | 自动更新测试诊断脚本的方法、系统、终端及存储介质 | |
CN113094274B (zh) | 基于Python的FPGA验证方法、装置、计算机设备及存储介质 | |
CN113608996B (zh) | 一种镜像编译测试方法、系统、装置及可读存储介质 | |
CN116340166A (zh) | 产品适配方法、系统、设备及存储介质 | |
CN116400933A (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 |