jenkins+Acunetix实现自动化安全测试

目前主流的开发采用的是devops模式(开发、测试、运维一体化)。随着互联网安全要求越来越高,对网络安全就越发变得重要了。传统的测试工程师主要是对功能、接口、性能方面做测试,而对安全方面测试考虑很少。需要专业的白帽子工程师来实现测试,对人的要求较高。目前提出devsecops模式 也就是增加安全测试这块。

DevSecOps 是一种把安全的最佳实战集成到DevOps的流程里面。 DevSecOps包括创立一种 安全即代码(‘Security as Code’ )的文化,从而在发布开发工程师和安全团队之间,建立一种可以持续的,灵活合作的机制和流程,从而把在传统软件开发流程里面最后由安全测试团队把关扫描的安全工作,左移到整个软件开发的全流程,从而大大降低了应用在上线后出现的安全隐患,也大大加快了上线的速度,同时也让其他非安全团队的软件人员在开发,测试,发布的全过程中,有安全意识,而不是时候补救,甚至大大修改框架

jenkins+Acunetix实现自动化安全测试

 

下面介绍jenkins+Acunetix实现自动化安全测试

1)安装jenkins 关于Acunetix的插件

在jenkins 插件管理市场中 搜索到Acunetix 插件

jenkins+Acunetix实现自动化安全测试

 

安装完成后在已经安装插件列表中会显示

jenkins+Acunetix实现自动化安全测试

 

安装好插件后,重启jenkins 使得插件生效

2)安装Acunetix 证书到 java keystore 中

2.1) Acunetix ca 证书是什么东西,在哪里呢?

使用到Acunetix 会用到https 所以我们需要将Acunetix ca证书安装到jenkins 依赖的jdk java keystore中。

Acunetix on windows

Acunetix ca在哪里呢,下面以windows为例,介绍一下

我这里使用的是
acunetix_14.1.210316110.exe 安装版本,安装后会在D:ProgramDataAcunetixcerts 目录下生成 ca证书

jenkins+Acunetix实现自动化安全测试

 

Acunetix on linux

我使用的是docker 容器版本的官方的镜像secfa/docker-awvs,官方镜像地址

jenkins+Acunetix实现自动化安全测试

 

容器里面ca 证书在哪呢?目录结构在
/home/acunetix/.acunetix/data/certs

jenkins+Acunetix实现自动化安全测试

 

2.2 jdk 如何导入Acunetix ca 证书呢?

Jenkins on Windows

查找当前jenkins 依赖的jdk. 我们的jdk是windows 环境的,所以我的jre security 目前在

D:developjavajdk1.8.0_211jrelibsecuritycacerts

jenkins+Acunetix实现自动化安全测试

 

jenkins+Acunetix实现自动化安全测试

 

我们使用cmd命令行执行如下命令

keytool -import -trustcacerts -alias AcunetixCA -keystore "D:developjavajdk1.8.0_211jrelibsecuritycacerts" -file D:ProgramDataAcunetixcertsca.cer

解释 通过 keytool 导入 证书 Java keystore 目录“ D:developjavajdk1.8.0_211jrelibsecuritycacerts

导入 目标Acunetix ca “D:ProgramDataAcunetixcertsca.cer

jenkins+Acunetix实现自动化安全测试

 

输入密码 changeit

确认已在Windows上成功安装证书

keytool -list -keystore "D:developjavajdk1.8.0_211jrelibsecuritycacerts" -alias AcunetixCA

jenkins+Acunetix实现自动化安全测试

 

输入密码 changeit

显示如下信息

jenkins+Acunetix实现自动化安全测试

 

Jenkins on Linux

从命令提示符运行以下命令:

keytool -import -trustcacerts -alias AcunetixCA -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64/jre/lib/security/cacerts -file /home/acunetix/.acunetix/data/certs/ca.cer

确认已在Windows上成功安装证书

keytool -list -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64/jre/lib/security/cacerts -alias AcunetixCA

 

3)jenkins 配置Jenkins and Acunetix

在jenkins 中 manage Jenkins ——Configure System

jenkins+Acunetix实现自动化安全测试

 

在Acunetix API Key 增加Acunetix key

点击“添加” 按钮 设置Jenkins 凭据提供者

jenkins+Acunetix实现自动化安全测试

 

Acunetix key 是从哪获取的呢?

登陆Acunetix 平台在点击profile

jenkins+Acunetix实现自动化安全测试

 

jenkins+Acunetix实现自动化安全测试

 

通过复制生成的api key 列如
1986ad8c0a5b3df4d7028d5f3c06e936cf9fc21aaf2a947ff88827667d8186740

复制的到上面Jenkins 凭据提供者中的secret 中

 

点击Test Connection 验证配置是否成功

jenkins+Acunetix实现自动化安全测试

 

4)jenkins 项目中配置Acunetix实现自动安全测试

新建ddd项目,添加acunetix scan 配置

1 Scan Type

这里面根据扫描的类型(完全扫描、扫描高风险漏洞、扫描XSS漏洞、扫描SQL注入漏洞、弱口令检测、Crawl Only,仅爬虫、恶意软件扫描)等属性进行扫描

jenkins+Acunetix实现自动化安全测试

 

2 Scan Target

这个里面是根据acunetix 平台中目前存在的目标项列出,我们根据自己的实际项目选择一个目标项目

jenkins+Acunetix实现自动化安全测试

 

3.Fail the build if threat level is

这个根据自己实际项目来(不要使构建失败、高危、中危和高位、低位中危高危)

目前我们设置有漏洞也不阻止构建失败

jenkins+Acunetix实现自动化安全测试

 

4.Generate Report

这里面会根据报告模版创建各种报告,目前我们默认就选择developer 就可以了

jenkins+Acunetix实现自动化安全测试

 

这里面报告和acunetix平台报告相对应

jenkins+Acunetix实现自动化安全测试

 

jenkins+Acunetix实现自动化安全测试

 

设置好点击保存

5)jenkins 项目中实现自动安全测试

点击项目构建,完成项目 编译、打包、单元测试、接口测试、安全测试等。

我这里只是设置了安全测试 其他这里就不做重点介绍。

jenkins+Acunetix实现自动化安全测试

 

构建后自动生成安全测试报告

 

以上,我们通过jenkins+Acunetix 实现了 安全自动化测试,这样我们再结合其他单元测试、自动化接口测试,就实现了简单的DevSecOps功能了.

JUST DO IT!
原文地址:https://www.cnblogs.com/caicz/p/14923263.html