使用Acunetix的最重要好处之一就是您可以 将其集成到您的SDLC中 以便您可以自动并尽早扫描应用程序。扫描得越早,消除漏洞的时间越早,您浪费的时间和资源就越少。这就是背后的原理 开发安全 这种方法在世界范围内越来越受欢迎。

詹金斯是在大多数DevOps环境中使用的世界上最受欢迎的CI / CD工具。您可以从下载Jenkins //jenkins.io/download/。 詹金斯在Windows,Linux发行版等平台上以及Docker容器中工作。您可以将Acunetix与Jenkins完全集成,以便您的构建包括Web安全扫描。

步骤1.安装用于Jenkins的Acunetix插件

  1. 在Jenkins用户界面中,点击 管理詹金斯 menu 选项。
  2. 在“管理詹金斯”页面上,单击 管理插件 选项。这将打开 詹金斯插件管理器  页。
  3. 在  詹金斯插件管理器 page, click on the 可用的 tab.
  4. 在里面   过滤  field, type Acunetix.
  5. 点击旁边的复选框 Acunetix plugin.
  6. 点击 无需重新安装即可安装 button.
  7. 安装完成后,单击旁边的复选框 安装完成且没有作业在运行时,重新启动Jenkins.

步骤2.查找证书存储路径

您需要证书存储路径,才能将Acunetix SSL证书安装到Jenkins CA存储中。

的 default certificate store path is JAVA_HOME_FOLDER \ lib \ security \ cacerts。您需要确定 JAVA_HOME_FOLDER 运行您的Jenkins服务的Java二进制文件。请记住,您的计算机可能安装了几种不同版本的Java。 注意 : 的 Java instance running your 詹金斯 service is different from JDK instances defined in 管理詹金斯 → 全局工具配置. 的 JDK instances defined in 全局工具配置 在构建过程中由Jenkins使用。

Windows上的Jenkins

注意 :我们描述了查找32位版本的Jenkins 2.222.4(在撰写本文时为最新的稳定版)的证书存储路径的过程。该过程可能与其他版本的Jenkins不同。

要找出运行Jenkins服务的Java安装,请打开 詹金斯.xml Jenkins安装目录中的文件,然后查找 executable tag. For example:

<executable>%BASE%\jre\bin\java</executable>

的 %BASE% 变量是指Jenkins安装目录。对于Jenkins 2.222.4(32位),这是 C:\ Program Files(x86)\ 詹金斯. 的refore, the Java executable is C:\ Program Files(x86)\ 詹金斯 \ jre \ bin \ java.

找到 java.home 运行Jenkins服务的Java实例的目录,请运行以下命令:

"C:\ Program Files(x86)\ 詹金斯 \ jre \ bin \ java" -XshowSettings:properties -version 2>&1 | find "java.home"

的 output will show you the relevant java.home directory:

java.home = C:\ Program Files(x86)\ 詹金斯\jre

由于证书存储文件是 JAVA_HOME_FOLDER \ lib \ security \ cacerts,我们现在知道在此示例中,我们需要使用证书存储文件 C:\ Program Files(x86)\ 詹金斯 \ jre \ lib \ security \ cacerts.

詹金斯在Linux上

您首先需要知道哪个Java二进制文件正在运行您的Jenkins服务。在命令行中,运行以下命令:

ps -aux | grep 詹金斯

您应该收到显示所有流程的输出,包括 詹金斯 在名称或路径中,例如:

詹金斯  11044  0.0  0.4  21156  9060 ?        Ss   13:42   0:00 /lib/systemd/systemd --user
jenkins  11045  0.0  0.1 106264  2620 ?        S    13:42   0:00 (sd-pam)
jenkins  11058  0.0  0.0   5712   160 ?        S    13:42   0:00 /usr/bin/daemon --name=jenkins --inherit --env=JENKINS_HOME=/var/lib/jenkins --output=/var/log/jenkins/jenkins.log --pidfile=/var/run/jenkins/jenkins.pid -- / bin / java -Djava.awt.headless=true -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
jenkins  11059  3.1 14.0 2623256 287656 ?      Sl   13:42   0:22 / bin / java -Djava.awt.headless=true -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
root     11194  0.0  0.0   6048   888 pts/0    S+   13:54   0:00 grep 詹金斯

在这种情况下,我们可以看到java可执行文件是 / bin / java (您的系统可能具有不同的配置),但是几乎可以肯定,它是由JDK或JRE软件包安装的实际二进制文件的符号链接,甚至可能是符号链接链。

找到 java.home 运行Jenkins服务的Java实例的目录,请运行以下命令:

/ bin / java -XshowSettings:properties -version 2>&1 | grep "java.home"

更换  / bin / java with the executable found earlier. 的 output will show you the relevant java.home directory:

java.home = /usr/lib/jvm/java-11-openjdk-amd64

由于证书存储文件是 JAVA_HOME_FOLDER / lib / security / cacerts,我们现在知道在此示例中,我们需要使用证书存储文件 / usr / lib / jvm / java-11-openjdk-amd64 / lib / security / cacerts.

步骤3.将证书安装到Java密钥库中

Windows上的Jenkins

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

keytool -import -trustcacerts -alias AcunetixCA -keystore "C:\ Program Files(x86)\ 詹金斯 \ jre \ lib \ security \ cacerts" -file C:\ProgramData\Acunetix\certs\ca.cer

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

keytool -list -keystore "C:\Program Files\Java\jre1.8.0_251\lib\security\cacerts" -alias AcunetixCA

詹金斯在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

确认您已在Linux上成功安装证书:

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

的 Result on Windows 和 Linux

如果证书已成功安装,您将看到AcunetixCA详细信息,例如:

Enter keystore password:
AcunetixCA, 15 2020年5月, trustedCertEntry,
Certificate fingerprint (SHA-256): E6:01:86:F3:43:33:97:25:71:B9:4E:BC:D9:08:30:AC:18:75:F6:9A:E6:D0:09:1D:D0:90:DF:2A:1D:8E:97:BA

注意 : When you access the Java keystore, you are asked for the password. 的 default password is 更改. 注意 注意:如果您使用的Jenkins版本不同于2.222.4(32位),则对于上述所有命令,您可能需要使用Java安装路径。

步骤4.配置Jenkins和Acunetix之间的集成

  1. 在Jenkins用户界面中,点击 管理詹金斯 menu 选项。
  2. 在  管理詹金斯 page, click on the 配置系统 选项。向下滚动到底部 Acunetix section.
  3. 确保 Acunetix API URL 值是正确的。默认情况下, Acunetix API URL field is based on 本地主机.
    • 将为您在安装Acunetix时选择的主机名颁发Acunetix CA证书。在Jenkins中,您必须使用相同的主机名。
    • 如果您的Jenkins在不同于Acunetix的主机上运行,​​则需要 使Acunetix可从本地主机以外的主机访问.
    • 如果您使用的是Acunetix Online,请使用 //online.acunetix.com/api/v1.
  4. 点击  button next to the Acunetix API密钥 field 和 select the 詹金斯 option.
  5. 在里面  詹金斯凭证提供者 dialog:
    • 在里面   field, select 秘密文字.
    • 在里面   范围  field, select 全局(詹金斯,节点,项目,所有子项目等).
    • 打开Acunetix用户界面以检索Acunetix API密钥:
      • 去你的  个人资料  页(您必须是管理员),然后滚动到底部。
      • 如果您还没有API密钥,请点击 生成新的API密钥 button.
      • 点击  复制  按钮将API密钥复制到剪贴板。
      • 返回到Jenkins UI。
    • 在里面   秘密  字段,粘贴Acunetix API密钥。 
    • 点击  button to close the 詹金斯凭证提供者 dialog.
    • 点击  应用  按钮以保存Acunetix API密钥设置。
    • 点击 测试连接 按钮–您将看到消息 连接成功.

连接问题–注释和故障排除

将为您在安装Acunetix时选择的主机名颁发Acunetix CA证书。在Jenkins中,您必须使用相同的主机名。如果要使用IP地址,则需要 再次为IP地址生成Acunetix CA证书.

如果您使用主机名而不是IP地址或其他方式,Jenkins将以 连接被拒绝 错误。要进一步调查遇到的问题,请针对您的操作系统按照以下说明进行操作。

  • Windows:默认情况下,您可以在以下位置找到Jenkins登录 %JENKINS_HOME%\ 詹金斯.out and %JENKINS_HOME%\ 詹金斯.err,除非在中自定义 %JENKINS_HOME%\ 詹金斯.xml.
  • Linux:默认情况下,您可以在以下位置找到Jenkins登录 /var/log/jenkins/jenkins.log,除非在中自定义 / etc / default / 詹金斯 (for * .deb )或通过 / etc / sysconfig / 詹金斯 (for *. 转数 )。

步骤5.在Jenkins作业中将Acunetix扫描添加为构建步骤

要将Acunetix扫描添加为Jenkins作业的构建步骤,请导航至现有作业的配置或创建新作业。在里面  建立  step, select Acunetix from the 添加构建步骤 drop-down.

您将看到以下选项:

  • 扫描类型:选择扫描的扫描类型。扫描类型用于减小扫描仪在扫描过程中运行的测试范围。
  • 扫描目标:选择您要扫描的扫描目标。扫描目标是从Acunetix获得的,但需要手动干预的目标除外。
  • 如果威胁级别为,则构建失败:选择要使Jenkins构建失败的扫描威胁级别( , 要么   )。
  • 构建失败时停止扫描:如果您希望在失败条件出现时中止扫描,请选中此复选框 如果威胁级别为,则构建失败 is met.
  • 产生报告:选择要在扫描完成时生成的报告。作业控制台输出中将提供下载链接。您以后也可以在Acunetix中访问此报告。

资源: //www.acunetix.com/blog/docs/installing-and-configuring-the-acunetix-jenkins-plugin/