GitLab 中的自动化安全测试
Automated Security Test in GitLab
我正在尝试在我的 GitLab 项目中实现自动化。
为了执行安全扫描,我想使用 ZAP 遍历
投影并扫描它们。手动传递所有 URL 显然是不可能的,所以我试图找到一种方法使所有测试尽可能自动化。
问题是:如何访问应用程序中存在的所有 URL?
我认为一种方法是将它们作为 YML 文件中的 "variable" 传递,然后将它们用作 ZAP 命令中的参数,类似这样(见下文)。
这是一个合理的解决方案吗?有没有其他方法可以在存储库中执行自动扫描(无需手动传递 URL)?
谢谢
variables:
OWASP_CONTAINER: $APP_NAME-$BUILD_ID-OWASP
OWASP_IMAGE: "owasp/zap2docker-stable"
OWASP_REPORT_DIR: "owasp-data"
ZAP_API_PORT: "8090"
PENTEST_IP: 'application:8080'
run penetration tests:
stage: pen-tests
image: docker:stable
- docker exec $OWASP_CONTAINER zap-cli -v -p $ZAP_API_PORT active-scan http://$PENTEST_IP/html
您需要打开一个新功能标志 (FF_NETWORK_PER_BUILD) 以在每次构建时启用一个网络。然后服务也可以相互联系(自 GitLab runner 12.9 起可用)。有关详细信息,请参阅:https://docs.gitlab.com/runner/executors/docker.html#networking
GitLab 中 owasp zap 作业的工作示例 CI:
owasp-zap:
variables:
FF_NETWORK_PER_BUILD: 1
image: maven
services:
- selenium/standalone-chrome
- name: owasp/zap2docker-weekly
entrypoint: ['zap.sh', '-daemon', '-host', '0.0.0.0', '-port', '8080',
'-config', 'api.addrs.addr.name=.*', '-config', 'api.addrs.addr.regex=true', '-config', 'api.key=1234567890']
script:
- sleep 5
- mvn clean test -Dbrowser=chrome -Dgrid_url=http://selenium-standalone-chrome:4444/wd/hub -Dproxy=http://owasp-zap2docker-weekly:8080
- curl http://owasp-zap2docker-weekly:8080/OTHER/core/other/htmlreport/?apikey=1234567890 -o report.html
artifacts:
paths:
- report.html
我正在尝试在我的 GitLab 项目中实现自动化。
为了执行安全扫描,我想使用 ZAP 遍历 投影并扫描它们。手动传递所有 URL 显然是不可能的,所以我试图找到一种方法使所有测试尽可能自动化。
问题是:如何访问应用程序中存在的所有 URL?
我认为一种方法是将它们作为 YML 文件中的 "variable" 传递,然后将它们用作 ZAP 命令中的参数,类似这样(见下文)。
这是一个合理的解决方案吗?有没有其他方法可以在存储库中执行自动扫描(无需手动传递 URL)? 谢谢
variables:
OWASP_CONTAINER: $APP_NAME-$BUILD_ID-OWASP
OWASP_IMAGE: "owasp/zap2docker-stable"
OWASP_REPORT_DIR: "owasp-data"
ZAP_API_PORT: "8090"
PENTEST_IP: 'application:8080'
run penetration tests:
stage: pen-tests
image: docker:stable
- docker exec $OWASP_CONTAINER zap-cli -v -p $ZAP_API_PORT active-scan http://$PENTEST_IP/html
您需要打开一个新功能标志 (FF_NETWORK_PER_BUILD) 以在每次构建时启用一个网络。然后服务也可以相互联系(自 GitLab runner 12.9 起可用)。有关详细信息,请参阅:https://docs.gitlab.com/runner/executors/docker.html#networking
GitLab 中 owasp zap 作业的工作示例 CI:
owasp-zap:
variables:
FF_NETWORK_PER_BUILD: 1
image: maven
services:
- selenium/standalone-chrome
- name: owasp/zap2docker-weekly
entrypoint: ['zap.sh', '-daemon', '-host', '0.0.0.0', '-port', '8080',
'-config', 'api.addrs.addr.name=.*', '-config', 'api.addrs.addr.regex=true', '-config', 'api.key=1234567890']
script:
- sleep 5
- mvn clean test -Dbrowser=chrome -Dgrid_url=http://selenium-standalone-chrome:4444/wd/hub -Dproxy=http://owasp-zap2docker-weekly:8080
- curl http://owasp-zap2docker-weekly:8080/OTHER/core/other/htmlreport/?apikey=1234567890 -o report.html
artifacts:
paths:
- report.html