CN110162980B - 一种软件开发过程中一站式安全测试和管理的方法 - Google Patents
一种软件开发过程中一站式安全测试和管理的方法 Download PDFInfo
- Publication number
- CN110162980B CN110162980B CN201910473019.0A CN201910473019A CN110162980B CN 110162980 B CN110162980 B CN 110162980B CN 201910473019 A CN201910473019 A CN 201910473019A CN 110162980 B CN110162980 B CN 110162980B
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- scanning
- report
- knowledge base
- scan
- 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
Links
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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及软件开发领域,具体来说是一种软件开发过程中一站式安全测试和管理的方法,所述的方法包括主机扫描、白盒扫描和黑盒扫描,所述的主机扫描、白盒扫描和黑盒扫描根据预先设置的扫描方式进行扫描,并分别获得主机扫描报告、白盒扫描报告和黑盒扫描报告,解析所述的主机扫描报告、白盒扫描报告和黑盒扫描报告后生成漏洞记录。本发明提供了一种软件开发过程中一站式安全测试和管理的方法,针对主机、代码和软件分别设置不同的安全扫描流程和扫描规则,使得安全检测能够尽早地将安全问题发现,降低修复的成本,且对原始扫描报告进行处理并统一归类至漏洞知识库中,安全漏洞能和功能缺陷统一管理,不同项目组的安全问题也可以进行横向分析。
Description
技术领域
本发明涉及软件开发领域,具体来说是一种软件开发过程中一站式安全测 试和管理的方法。
背景技术
随着信息***开发模式不断发展,从软件开发的瀑布模型到现在的敏捷开发, 软件的开发周期从数年到数月、从数月到数天,时间不断变换缩减,让软件开发较末环节的安全专项团队也面临着新的挑战。为确保快速开发和新功能部署,安全团队必须确保安全评估的频率,既要保证安全风险最小化,同时也要考虑安全团队有限资源的可持续性,目前传统的代码扫描方式遇到了如下的诸多问题:
1)安全检测在***上线前最后阶段进行,安全问题发现滞后,修复成本较高。
1)安全检测在***上线前最后阶段进行,安全问题发现滞后,修复成本较 高。
2)扫描工具的部分原生扫描规则不适用于开发总部***,且误报高,工具 原生报告差异大。
3)安全漏洞未和功能缺陷统一管理,不同项目组的安全问题也难以进行横 向分析。
此外现有技术对软件开发过程中快速迭代的一站式安全测试和安全管理没 有一套专门的方法,基本上都是除去安全测试外功能的快速迭代,或者设置单 个安全测试功能模块,没有一站式的解决方法。因此,我们需要改变以往的安 全扫描方式,通过自动化的安全扫描在有限的时间内尽量发现足够多的安全问 题,降低***安全风险。
发明内容
本发明的目的在于解决现有技术的不足,提供一种软件开发过程中一站式 安全测试和管理的方法,通过主动扫描和被动扫描相配合在有限的时间内尽量 发现足够多的安全问题,降低***安全风险。
为了实现上述目的,设计一种软件开发过程中一站式安全测试和管理的方 法,所述的方法包括主机扫描、白盒扫描和黑盒扫描,所述的主机扫描、白盒扫 描和黑盒扫描根据预先设置的扫描方式进行扫描,并分别获得主机扫描报告、 白盒扫描报告和黑盒扫描报告,解析所述的主机扫描报告、白盒扫描报告和黑 盒扫描报告后生成漏洞记录,存储至漏洞知识库中。
本发明还具有如下优选的技术方案:
所述的扫描方式包括主动扫描和被动扫描,所述的主动扫描是指根据用户 的主动操作而触发的一次性扫描,所述的被动扫描包括周期性扫描和触发性扫 描,所述的周期性扫描是处理器根据用户的设置周期性运行的扫描任务,所述 的触发性扫描是通过处理器根据用户的设置,每当持续集成工具产生增量,则 调用白盒扫描工具进行白盒扫描。
在持续集成工具Jenkins中新建触发性扫描任务,并配置好扫描资产信息 及新建任务API调用脚本,并将触发性扫描任务配置为编译任务的关联任务, 从而使得每次编译任务结束即可触发白盒扫描任务。
所述的主机扫描的扫描方式包括主动扫描以及周期性扫描,所述的黑盒扫 描的扫描方式包括主动扫描,所述的白盒扫描的扫描方式包括主动扫描、周期 性扫描和触发式扫描。
对于主机扫描完成后获得的主机扫描报告,首先将Nexpose生成的HTML格 式的原始主机扫描报告利用Jsop解析器解析并存储为文本格式,而后遍历文本 格式的以主机扫描报告查找漏洞节点,获得漏洞节点后,将漏洞节点实例化为 对象VulDatailsDist,并根据设定的字段对于对象VulDatailsDist计算哈希值, 以作为该漏洞的指示码并漏洞的对象VulDatailsDist及指示码存储入漏洞知识 库中,对于相同指示码的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
对于黑盒扫描完成后获得的黑盒扫描报告,将AWVS扫描器生成的XML格式 的原始黑盒扫描报告上传至漏洞聚合组件ThreadFix,通过漏洞聚合组件 ThreadFix解析AWVS报告获取漏洞数据,漏洞聚合组件ThreadFix根据预先设 置的漏洞标识符与漏洞知识库条目对应关系,将每个漏洞映射到漏洞知识库条 目,而后漏洞聚合组件ThreadFix保留原始黑盒扫描报告中的漏洞信息“http request”和“http response”字段作为漏洞验证数据,将漏洞其他信息更新 成漏洞知识库条目对应字段的数据,并保存到漏洞知识库中,而后根据ScanId 混淆识别工具查询ThreadnFix数据库漏洞信息并返回实例化对象VulDetailsDist,并根据设定的字段对于对象VulDatailsDist计算哈希值,以 作为该漏洞的指示码并漏洞的对象VulDatailsDist及指示码存储入漏洞知识库 中,对于相同指示码的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
对于白盒扫描完成后获得的白盒扫描报告,将Jenkins调用 FindSecurityBugs生成的XML格式的原始白盒扫描报告上传至漏洞聚合组件 ThreadFix,ThreadFix解析原始白盒扫描报告获取漏洞数据,漏洞聚合组件 ThreadFix根据预先设置的漏洞标识符与漏洞知识库条目对应关系,将每个漏洞 映射到漏洞知识库条目,而后漏洞聚合组件ThreadFix将漏洞信息更新成漏洞 知识库条目对应字段的数据,并保存到漏洞知识库中,而后根据ScanId混淆识 别工具查询ThreadnFix数据库漏洞信息并返回实例化对象VulDetailsDist,再 根据VulDetailsDist字段及原始白盒扫描报告中的RawFingDing字段解析其中 的SourceLine标签start属性获取漏洞代码所在行,而后安全管理平台从白盒扫描工具Jenkins下载文件的源码文件,根据漏洞所在行取源码文件中的前后 若干行数据存为漏洞验证字段,并根据设定的字段对于对象VulDatailsDist计 算哈希值,以作为该漏洞的指示码并漏洞的对象VulDatailsDist及指示码存储 入漏洞知识库中,对于相同指示码的漏洞判断为重复漏洞,不再重复加入至漏 洞知识库中。
对于增加至漏洞知识库中的漏洞数据,标记漏洞状态为未确认,以供安全 测试人员查看,若为误报,则将漏洞状态变更为已忽略,若为缺陷,则将漏洞 提交至统一缺陷管理平台的存储器等待修复,漏洞数据相关的项目组成员可在 漏洞知识库中查看漏洞并自行修复,也可将漏洞提交至统一缺陷管理平台的存 储器进行修复流程跟踪。
本发明同现有技术相比,其优点在于:本发明提供了一种软件开发过程中 一站式安全测试和管理的方法,针对主机、代码和软件分别设置不同的安全扫 描流程和扫描规则,误报率低,使得安全检测能够尽早地将安全问题发现,降 低修复的成本,且对原始扫描报告进行处理并统一归类至漏洞知识库中,安全 漏洞能和功能缺陷统一管理,不同项目组的安全问题也可以进行横向分析。
附图说明
图1是本发明的流程示意图;
图2是本发明的主机扫描的流程示意图;
图3是本发明的主机扫描报告的解析流程示意图;
图4是本发明的黑盒扫描的流程示意图;
图5是本发明的黑盒扫描报告的解析流程示意图;
图6是本发明的白盒扫描的流程示意图;
图7是本发明的白盒扫描报告的解析流程示意图;
图8是本发明的漏洞管理及处理流程示意图。
具体实施方式
下面结合附图对本发明作进一步说明,这种方法的原理对本专业的人来说 是非常清楚的。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
参见图1本实施方式提供一种软件开发过程中一站式安全测试和管理的方 法,用户在一站式安全管理***中对任务进行管理,如新建、修改和删除任务, 对于用户添加的周期性任务,一站式安全管理的处理器将其添加至任务调度器 中,按用户设定的周期运行,而对于非周期性任务,处理器将其添加至线程池 中,按先后顺序进行运行。本实施方式能对每次扫描的任务进行展示及管理, 其中扫描任务的类型包括主机扫描、白盒扫描和黑盒扫描,其中的白盒扫描即 代码扫描,黑盒扫描及应用扫描。扫描任务的建立主要包括主动扫描和自动扫 描两种方式,主动扫描即为操作人员手动新建任务,而自动扫描包括触发式扫 描、以及周期性扫描,周期性扫描即是设置任务调度器按设定的周期自动定期 进行扫描,例如可以设定自动扫描周期为一天,即每日的自动扫描的任务会以 天为单位,出现在任务列表中。主机扫描主要采用主动扫描以及周期性扫描, 黑盒扫描主要采用主动扫描,白盒扫描则采用主动扫描、周期性扫描和触发式 扫描三种扫描方式。在本实施方式中,主机扫描通过Nexpose扫描工具实现, 白盒扫描通过Jenkins(Findbugs)扫描工具实现,黑盒扫描通过AWVS扫描工 具实现。
而在扫描完成后会生成扫描报告,即漏洞报告,本实施方式中的一站式安 全管理平台的漏洞库主要参考了CWE(Common Weakness Enumeration)标准, 并从CWE所有的缺陷项中针对常见的且明确的漏洞条目进行归纳总结,形成预 置的漏洞知识库,包含漏洞名称、分类、等级、原理、修复方案等等详情。主 机扫描的结果基本上是存在于CVE(CommonVulnerabilities and Exposures) 漏洞库中的漏洞,且在公开发布相应漏洞时采用了CVSS(Common Vulnerability Scoring System)标准进行评分,故安全管理***直接使用主机扫描原生报告 中的内容。但黑盒及白盒检测工具发现的漏洞大多数不在CVE列表,也没有自 动按照CVSS进行打分,则将黑白盒的扫描结果映射到预置的漏洞知识库中,保 留具体的漏洞验证信息,如请求相应数据包、或代码片段等,漏洞的其他信息 均统一使用漏洞知识库中的内容。漏洞知识库中内容由安全人员整理,经由研 发人员共同评审后定稿,确保研发人员易于理解。用这种方法,可以最大程度 忽略各扫描器扫描原生报告的差异,以尽可能把统一形式的结果反馈给研发人 员,即使后续对扫描器进行新增或替换,依然可以确保展示给研发人员的漏洞 信息是经过安全人员优化及评审后的内容。
本实施方式中,一站式安全管理平台解析扫描工具报告主要借助于漏洞聚 合工具ThreadFix,通过在ThreadFix中预置漏洞知识库,利用ThreadFix自动 完成报告解析及漏洞映射,减少手动关联漏洞工作量。一站式安全管理平台的 存储器中的漏洞库主要参考了CWE(Common Weakness Enumeration)标准,并 从CWE所有的缺陷项中针对常见的且明确的漏洞条目进行归纳总结,形成预置 的漏洞知识库导入漏洞聚合工具ThreadFix,包含漏洞名称、分类、等级、原理、 修复方案等等详情。所述的归纳总结具体包括如下步骤:首先对CWE所有缺陷 项进行翻译,形成中文漏洞信息。而后,根据最佳实践对CWE中所有条目进行分类,如将所有的sql相关条目对应到“SQL注入”类别中,分类由资深安全工 程师人工进行,最终将CWE的所有条目对应到几十个漏洞分类中。并且,针对 每个漏洞分类,总结出这里写的漏洞名称、分类、等级等信息,最后根据最佳 实践内容对CWE条目及漏洞分类进行补充。
参见图2,用户通过互联网等方式接入一站式安全测试管理***,并可以在 服务器中新建主机资产,而对于主机扫描的执行有如下几个步骤:
1)用户在一站式安全测试管理***中可以选择待扫描的主机资产,并新建 主机扫描任务或者一站式安全测试管理***的处理器周期性的新建主机扫描任 务。
2)一站式安全测试管理***的处理器调度主机扫描任务,调用主机扫描工 具发起任务。
3)一站式安全测试管理***的处理器轮询查询的扫描任务结果,并在扫描 完成后,通过处理器解析主机扫描报告,校验后将主机扫描报告内容转化为具 体的漏洞数据,并将漏洞数据归入存储器的漏洞知识库中的漏洞列表中,在安 全测试管理对同步的漏洞数据校验并入库后,会向用户发送即时通信工具提醒。
4)用户收到提醒后能在一站式安全测试管理***查询扫描结果,查看任务 关联的漏洞。
参见图3,对于主机扫描报告,主机扫描的结果基本上是存在于CVE(CommonVulnerabilities and Exposures)漏洞库中的漏洞,且在公开发布相应漏洞时 采用了CVSS(Common Vulnerability Scoring System)标准进行评分,故安全 管理平台直接使用主机扫描原生报告中的内容,不再通过ThreadFix映射到预 置漏洞库中。对于主机扫描完成后获得的主机扫描报告,首先安全管理平台从 一站式安全测试管理***下载Nexpose生成的HTML格式的原始主机扫描报告, 并利用Jsop解析器解析HTML并存储为文本格式,而后遍历文本格式的以主机 扫描报告查找漏洞节点,获得漏洞节点后,将漏洞节点相关的数据节点实例化 为对象VulDatailsDist,根据设定的字段,例如漏洞名称、分类、等级、原理、修复方案等字段对于对象VulDatailsDist计算哈希值,以作为该漏洞的指示码, 以便漏洞知识库的组建,对于相同指示码(即得到的哈希值相同)的漏洞判断 为重复漏洞,不再重复加入至漏洞知识库中。
参见图4,用户通过互联网等方式接入一站式安全测试管理***,并可以在 ***中新建应用资产,应用资产的含义为信息***或web应用,安全管理平台 以资产为维度来管理web应用,一个web应用可看作部门或公司的一个应用资 产,同理,一个主机可看做部门或公司的一个主机资产,一段代码可看作是部 门或公司的一个代码资产,而本实施方式中的黑盒扫描,即是针对应用资产的 应用扫描,的执行有如下几个步骤:
1)用户在一站式安全测试管理***中选择待扫描的应用资产,并新建应用 黑盒扫描任务。
2)一站式安全测试管理***的处理器调度应用黑盒扫描任务,调用黑盒扫 描工具发起任务。
3)一站式安全测试管理***的处理器轮询查询扫描工具的扫描任务结果, 并在黑盒扫描工具扫描完成后,处理器将黑盒扫描报告上传至聚合工具进行解 析,解析完成后从聚合工具同步漏洞数据至一站式安全测试管理***的存储器 中漏洞知识库中的漏洞列表中,在安全测试管理对同步的漏洞数据校验并入库 后,会向用户发送即时通信工具提醒。
4)用户收到提醒后能在一站式安全测试管理***查询扫描结果,查看任务 关联的漏洞。
参见图5,对于黑盒扫描报告,黑盒应用检测工具发现的漏洞大多数不在 CVE列表,也没有自动按照CVSS进行打分,则将黑盒的扫描结果映射到预置的 漏洞知识库中,保留具体的漏洞验证信息,漏洞的其他信息均统一使用漏洞知 识库中的内容。
ThreadFix数据库中自带了awvs扫描器所能发现的所有漏洞标识符(漏洞 名称),故预置了漏洞知识库后,还需在ThreadFix中对应配置每个漏洞标识符 和漏洞知识库条目的映射关系,ThreadFix才能在完成报告解析后自动进行漏洞 的映射。
具体而言,对于黑盒扫描完成后获得的黑盒扫描报告,首先安全管理平台 从一站式安全测试管理***下载AWVS生成的XML格式的原始黑盒扫描报告,并 将原始黑盒扫描报告上传至漏洞聚合组件ThreadFix,通过漏洞聚合组件 ThreadFix自动解析AWVS报告获取每个漏洞数据,漏洞聚合组件ThreadFix根 据预先设置的漏洞标识符(例如漏洞名称)与漏洞知识库条目对应关系,将每 个漏洞映射到漏洞知识库条目,而后漏洞聚合组件ThreadFix保留原始黑盒扫 描报告中的漏洞信息“http request”和“http response”字段作为漏洞验证 数据,将漏洞其他信息更新成漏洞知识库条目对应字段的数据,并保存到漏洞 知识库中。安全管理平台根据ScanId混淆识别工具查询ThreadnFix数据库漏 洞信息并返回实例化对象VulDetailsDist,根据设定的字段,例如漏洞名称、 分类、等级、原理、修复方案等字段对于对象VulDatailsDist计算哈希值,以 作为该漏洞的指示码,以便漏洞知识库的组建,对于相同指示码(即得到的哈 希值相同)的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
参见图6,用户通过互联网等方式接入一站式安全测试管理***,并可以在 ***中新建代码资产,白盒扫描,即代码扫描,的执行有如下几个步骤:
1)用户在安全测试管理***中选择待扫描的代码资产,新建应用源代码白 盒扫描任务或者一站式安全测试管理***的处理器周期性的新建主机扫描任务 或者建立触发式扫描。
其中,触发式扫描是指通过在持续集成工具添加插件来和聚合工具进行绑 定,每当持续集成工具产生增量,就会调用白盒扫描工具扫描,即每次用户在 生产环境持续集成工具上获取代码进行编译时,就会触发调用一站式安全测试 管理扫描任务新建接口新建白盒扫描任务。例如,在应用***CI/CD(持续集成 /持续交付)的过程中,新建并触发相应的扫描任务。一站式安全测试管理方法 开放新建任务接口,可在Jenkins中、甚至是研发人员自己的某些脚本中进行 调用。如研发人员想在每次代码构建后触发源代码白盒扫描,即可在Jenkins 上新建Job,提前配置好扫描资产信息及新建任务API调用脚本,并将此Job配置为编译任务的关联任务,每次编译任务结束即可触发源代码扫描任务。以这 种形式,可实现将自动化扫描嵌入到研发人员现有的工具链及流程中,同时也 保证了CI/CD集成及交付工具与一站式安全管理***、扫描引擎的解耦,如果 扫描任务调度、执行机制等发生变化,也无需改变提供给外部的接口,减少研 发人员配置工作。
2)一站式安全测试管理***的处理器调度源代码白盒扫描任务,调用白盒 扫描引擎持续集成工具发起任务。
3)一站式安全测试管理***轮询查询持续集成工具的扫描任务结果,在持 续集成工具扫描完成后,一站式安全测试管理***将扫描报告上传至聚合工具 进行解析,解析完成后从聚合工具同步漏洞数据,聚合工具的数据库和一站式 安全测试管理的存储器通过触发器建立同步,每当聚合工具的数据库产生新的 漏洞,一站式安全测试管理的数据库就会同步更新,并将新的漏洞同步到漏洞 列表中。在安全测试管理对同步的漏洞数据校验并入库后,会向用户发送即时 通信工具提醒。
4)用户收到提醒后在安全测试管理中查询扫描结果,并可查看任务关联的 漏洞。
参见图7,白盒源代码扫描报告解析流程和黑盒应用扫描大致相似,都是通 过漏洞聚合工具ThreadFix完成报告解析、漏洞库映射以及漏洞信息更新。差 异主要在于白盒源代码扫描的原始报告中只包含发现漏洞的代码行,安全管理 平台通过代码行数获取相应的代码片段,更新到漏洞验证字段。具体而言, Jenkins调用FindSecurityBugs完成白盒扫描后,安全管理平台下载白盒扫描 工具Jenkins+FindSecurityBugs完成白盒扫描后获得的XML格式原始白盒扫描 报告,并将之上传至漏洞聚合组件ThreadFix中,ThreadFix自动解析原始白盒 扫描报告获取每个漏洞数据,漏洞聚合组件ThreadFix根据预先设置的漏洞标 识符与漏洞知识库条目对应关系,将每个漏洞映射到漏洞知识库条目,而后漏 洞聚合组件ThreadFix将漏洞信息更新成漏洞知识库条目对应字段的数据,并 保存到漏洞知识库中,而后根据ScanId混淆识别工具查询ThreadnFix数据库 漏洞信息并返回实例化对象VulDetailsDist,安全管理平台根据 VulDetailsDist字段及原始白盒扫描报告中的RawFingDing字段解析其中的 SourceLine标签start属性获取漏洞代码所在行,而后安全管理平台从白盒扫 描工具Jenkins下载文件的源码文件,根据漏洞所在行取源码文件中的前后15 行数据存为漏洞验证字段,根据设定的字段,例如漏洞名称、分类、等级、原 理、修复方案等字段对于对象VulDatailsDist计算哈希值,以作为该漏洞的指 示码,以便漏洞知识库的组建,对于相同指示码(即得到的哈希值相同)的漏 洞判断为重复漏洞,不再重复加入至漏洞知识库中。漏洞验证字段是漏洞详情 展示的核心信息之一,源代码扫描工具FindSecurityBugs原生报告中没有此信 息,导致漏洞详情信息不完整。本实施方式通过上述设计实现了这种场景下漏 洞详情信息的补全。
并根据设定的字段对于对象VulDatailsDist计算哈希值,以作为该漏洞的 指示码并漏洞的对象VulDatailsDist及指示码存储入漏洞知识库中,对于相同 指示码的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
参见图8,此外,一站式安全管理***通过单点登录方式打通至统一缺陷管 理平台,并复用统一缺陷管理平台中的项目管理和缺陷跟踪工具redmine的测 试问题单管理流程,具体流程设计如下:
1)一站式安全管理***完成扫描报告解析,生成漏洞记录,此时漏洞状态 为“未确认”。
2)安全测试人员对漏洞进行确认审核,若为误报,则将漏洞状态变更为“已 忽略”。
3)安全测试人员对漏洞进行确认审核,若为缺陷,则将漏洞提交至统一缺 陷管理平台的存储器。
4)项目组成员可查看漏洞并自行修复,也可将漏洞提交至统一缺陷管理平 台的存储器进行修复流程跟踪。
5)相同功能的测试缺陷、安全测试缺陷在统一缺陷管理平台中进行修复流 程跟踪。
Claims (7)
1.一种软件开发过程中一站式安全测试和管理的方法,其特征在于所述的方法包括主机扫描、白盒扫描和黑盒扫描,所述的主机扫描、白盒扫描和黑盒扫描根据预先设置的扫描方式进行扫描,并分别获得主机扫描报告、白盒扫描报告和黑盒扫描报告,解析所述的主机扫描报告、白盒扫描报告和黑盒扫描报告后生成漏洞记录,存储至漏洞知识库中;
对于主机扫描完成后获得的主机扫描报告,首先将Nexpose生成的HTML格式的原始主机扫描报告利用Jsop解析器解析并存储为文本格式,而后遍历文本格式的以主机扫描报告查找漏洞节点,获得漏洞节点后,将漏洞节点实例化为对象VulDatailsDist,并根据设定的字段对于对象VulDatailsDist计算哈希值,以作为该漏洞的指示码并将漏洞的对象VulDatailsDist及指示码存储入漏洞知识库中,对于相同指示码的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
2.如权利要求1所述的一种软件开发过程中一站式安全测试和管理的方法,其特征在于所述的扫描方式包括主动扫描和被动扫描,所述的主动扫描是指根据用户的主动操作而触发的一次性扫描,所述的被动扫描包括周期性扫描和触发性扫描,所述的周期性扫描是处理器根据用户的设置周期性运行的扫描任务,所述的触发性扫描是通过处理器根据用户的设置,每当持续集成工具产生增量,则调用白盒扫描工具进行白盒扫描。
3.如权利要求2所述的一种软件开发过程中一站式安全测试和管理的方法,其特征在于在持续集成工具Jenkins中新建触发性扫描任务,并配置好扫描资产信息及新建任务API调用脚本,并将触发性扫描任务配置为编译任务的关联任务,从而使得每次编译任务结束即可触发白盒扫描任务。
4.如权利要求2所述的一种软件开发过程中一站式安全测试和管理的方法,其特征在于所述的主机扫描的扫描方式包括主动扫描以及周期性扫描,所述的黑盒扫描的扫描方式包括主动扫描,所述的白盒扫描的扫描方式包括主动扫描、周期性扫描和触发性扫描。
5.如权利要求1所述的一种软件开发过程中一站式安全测试和管理的方法,其特征在于对于黑盒扫描完成后获得的黑盒扫描报告,将AWVS扫描器生成的XML格式的原始黑盒扫描报告上传至漏洞聚合组件ThreadFix,通过漏洞聚合组件ThreadFix解析AWVS报告获取漏洞数据,漏洞聚合组件ThreadFix
根据预先设置的漏洞标识符与漏洞知识库条目对应关系,将每个漏洞映射到漏洞知识库条目,而后漏洞聚合组件ThreadFix保留原始黑盒扫描报告中的漏洞信息“httprequest”和“http response”字段作为漏洞验证数据,将漏洞其他信息更新成漏洞知识库条目对应字段的数据,并保存到漏洞知识库中,而后根据ScanId混淆识别工具查询ThreadnFix数据库漏洞信息并返回实例化对象VulDatailsDist,并根据设定的字段对于对象VulDatailsDist计算哈希值,以作为该漏洞的指示码并将漏洞的对象VulDatailsDist及指示码存储入漏洞知识库中,对于相同指示码的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
6.如权利要求1所述的一种软件开发过程中一站式安全测试和管理的方法,其特征在于对于白盒扫描完成后获得的白盒扫描报告,将Jenkins调用FindSecurityBugs生成的XML格式的原始白盒扫描报告上传至漏洞聚合组件ThreadFix,ThreadFix解析原始白盒扫描报告获取漏洞数据,漏洞聚合组件ThreadFix根据预先设置的漏洞标识符与漏洞知识库条目对应关系,将每个漏洞映射到漏洞知识库条目,而后漏洞聚合组件ThreadFix将漏洞信息更新成漏洞知识库条目对应字段的数据,并保存到漏洞知识库中,而后根据ScanId混淆识别工具查询ThreadnFix数据库漏洞信息并返回实例化对象VulDatailsDist,再根据VulDatailsDist字段及原始白盒扫描报告中的RawFingDing字段解析其中的SourceLine标签start属性获取漏洞代码所在行,而后安全管理平台从白盒扫描工具Jenkins下载文件的源码文件,根据漏洞所在行取源码文件中的前后若干行数据存为漏洞验证字段,并根据设定的字段对于对象VulDatailsDist计算哈希值,以作为该漏洞的指示码并将漏洞的对象VulDatailsDist及指示码存储入漏洞知识库中,对于相同指示码的漏洞判断为重复漏洞,不再重复加入至漏洞知识库中。
7.如权利要求1所述的一种软件开发过程中一站式安全测试和管理的方法,其特征在于对于增加至漏洞知识库中的漏洞数据,标记漏洞状态为未确认,以供安全测试人员查看,若为误报,则将漏洞状态变更为已忽略,若为缺陷,则将漏洞提交至统一缺陷管理平台的存储器等待修复,漏洞数据相关的项目组成员可在漏洞知识库中查看漏洞并自行修复,也可将漏洞提交至统一缺陷管理平台的存储器进行修复流程跟踪。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473019.0A CN110162980B (zh) | 2019-05-31 | 2019-05-31 | 一种软件开发过程中一站式安全测试和管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473019.0A CN110162980B (zh) | 2019-05-31 | 2019-05-31 | 一种软件开发过程中一站式安全测试和管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162980A CN110162980A (zh) | 2019-08-23 |
CN110162980B true CN110162980B (zh) | 2023-04-18 |
Family
ID=67630567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910473019.0A Active CN110162980B (zh) | 2019-05-31 | 2019-05-31 | 一种软件开发过程中一站式安全测试和管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162980B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704847B (zh) * | 2019-09-27 | 2021-09-10 | 重庆紫光华山智安科技有限公司 | 漏洞扫描方法及相关装置 |
CN112115517A (zh) * | 2020-09-24 | 2020-12-22 | 北京人大金仓信息技术股份有限公司 | 一种数据库插件的检验方法、装置、设备及介质 |
CN112632546A (zh) * | 2020-12-31 | 2021-04-09 | 华数传媒网络有限公司 | 广电行业自动化代码分析方法 |
CN114579765B (zh) * | 2022-03-07 | 2023-08-15 | 四川大学 | 一种基于开源情报分析的网络靶场武器库构建方法 |
CN116956293B (zh) * | 2023-09-19 | 2024-01-30 | 天津华来科技股份有限公司 | 一种api安全漏洞检测***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116543A (zh) * | 2013-01-25 | 2013-05-22 | 中国电力科学研究院 | 白黑盒结合的Web应用安全检测方法 |
CN104461743A (zh) * | 2014-12-17 | 2015-03-25 | 用友软件股份有限公司 | 资源和配置的自动生成装置和方法 |
CN105978894A (zh) * | 2016-06-27 | 2016-09-28 | 上海柯力士信息安全技术有限公司 | 基于安犬漏洞扫描云平台的网络安全监测管理*** |
CN107977576A (zh) * | 2016-10-21 | 2018-05-01 | 北京计算机技术及应用研究所 | 一种基于应用指纹的主机漏洞检测***及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060265746A1 (en) * | 2001-04-27 | 2006-11-23 | Internet Security Systems, Inc. | Method and system for managing computer security information |
US7761918B2 (en) * | 2004-04-13 | 2010-07-20 | Tenable Network Security, Inc. | System and method for scanning a network |
US9747187B2 (en) * | 2010-10-27 | 2017-08-29 | International Business Machines Corporation | Simulating black box test results using information from white box testing |
-
2019
- 2019-05-31 CN CN201910473019.0A patent/CN110162980B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116543A (zh) * | 2013-01-25 | 2013-05-22 | 中国电力科学研究院 | 白黑盒结合的Web应用安全检测方法 |
CN104461743A (zh) * | 2014-12-17 | 2015-03-25 | 用友软件股份有限公司 | 资源和配置的自动生成装置和方法 |
CN105978894A (zh) * | 2016-06-27 | 2016-09-28 | 上海柯力士信息安全技术有限公司 | 基于安犬漏洞扫描云平台的网络安全监测管理*** |
CN107977576A (zh) * | 2016-10-21 | 2018-05-01 | 北京计算机技术及应用研究所 | 一种基于应用指纹的主机漏洞检测***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110162980A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162980B (zh) | 一种软件开发过程中一站式安全测试和管理的方法 | |
US10318412B1 (en) | Systems, methods, and apparatus for dynamic software generation and testing | |
US11775486B2 (en) | System, method and computer program product for database change management | |
Plate et al. | Impact assessment for vulnerabilities in open-source software libraries | |
US10628129B2 (en) | Intellectual automated security, performance and code generation framework | |
US7490319B2 (en) | Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems | |
CN110795078B (zh) | 基于ios***下的app工程运作***的架构方法 | |
US8959481B2 (en) | Determining system level dependencies | |
CN108388445B (zh) | 一种基于“平台+应用”模式的持续集成方法 | |
US9880832B2 (en) | Software patch evaluator | |
CN111783103A (zh) | 基于Maven的依赖管理方法、装置、电子装置及存储介质 | |
CN111158674B (zh) | 组件管理方法、***、设备及存储介质 | |
CN112363953B (zh) | 基于爬虫技术和规则引擎的接口测试用例生成方法及*** | |
CN112711438A (zh) | 依赖组件信息提取方法、设备及计算机可读存储介质 | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
US20210182391A1 (en) | Detecting Malicious Components Using Commit Histories | |
CN105389262A (zh) | 一种针对界面测试生成测试建议的方法和装置 | |
KR100910336B1 (ko) | 논리 프로세스 및 물리 프로세스 모델을 맵핑한 비즈니스 프로세스 모델을 관리하기 위한 시스템 및 방법 | |
CN112650670A (zh) | 应用测试方法、装置、***、电子设备和存储介质 | |
CN109992496A (zh) | 一种用于自动化测试的数据处理方法和装置 | |
CN111625834A (zh) | Docker镜像文件漏洞检测***及检测方法 | |
CN111984882A (zh) | 数据处理方法、***及设备 | |
CN112650526B (zh) | 版本一致性的检测方法、装置、电子设备和介质 | |
US20090299992A1 (en) | Methods and systems for identifying desired information | |
CN115794858A (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 |