首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitLab中的自动安全测试

GitLab中的自动安全测试
EN

Stack Overflow用户
提问于 2019-12-12 08:13:32
回答 1查看 381关注 0票数 1

我正试图在我的GitLab项目中实现自动化。

为了执行安全扫描,我想使用ZAP来检查项目中的所有URL并扫描它们。手动通过所有URL显然是不可能的,所以我正在设法使所有测试尽可能自动化。

问题是:如何访问应用程序中的所有URL?

我认为一种方法可以是将它们作为YML文件中的“变量”传递,并在ZAP命令中使用它们作为参数,如下所示(见下文)。

这是否一个合理的解决办法?是否有其他方法在存储库中执行自动扫描(而不手动传递URL)?谢谢

代码语言:javascript
复制
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 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-09 14:58:43

您需要打开一个新的功能标志(FF_NETWORK_PER_BUILD),以便在每次构建时启用网络。然后,服务也可以相互访问(从GitLab运行程序12.9起就可以使用)。有关更多信息,请参见:https://docs.gitlab.com/runner/executors/docker.html#networking

GitLab CI中owasp作业的工作示例:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59300210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档