DAST 是 Dynamic Application Security Testing 的缩写,也即动静应用程序平安测试,属于应用程序平安测试的一种,与 SAST 绝对应,属于黑盒测试。

DAST 的劣势

  • 与语言无关
  • 疾速发现那些容易被利用的破绽(XSS,SQL Injection 等)
  • 无需拜访源代码

DAST 的劣势

  • 无奈将安全漏洞准确到代码行数
  • 须要破费较长的工夫
  • 报告须要有一些平安专业知识来解读

极狐GitLab DAST 的应用

Gartner 4 月下旬公布了 2022 年 AST 魔力象限,GitLab 位于挑战者象限:

极狐GitLab 在性能上大于或等于 GitLab,DAST 也是极狐GitLab DevSecOps 平安体系中重要的平安性能之一,可能帮忙用户构建动静平安进攻体系。而且随着版本的更新迭代,性能在一直加强。

极狐GitLab DAST 既能够当做独立的工具来进行应用程序动静扫描,也能够嵌入到 CI/CD Pipeline 中,帮忙用户实现真正的 DevSecOps。

独自应用

能够将极狐GitLab 视为一个独自的 DAST 工具,来对处于运行状态的应用程序进行动静扫描。比方用如下命令启动一个 jenkins 实例:

$ docker run -d -p 8088:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11

http://jenkins.example.com:8088 登陆 jenkins 并确认实例运行失常之后,就能够用极狐GitLab 独自对此 jenkins 实例进行动静扫描。

在极狐GitLab 上新建一个 Repo,并增加如下内容到 .gitlab-ci.yml 文件中:

include:  - template: DAST.gitlab-ci.ymlstages:    - testdast:     stage: test  variables:    DAST_WEBSITE: "http://jenkins.example.com:8088"    DAST_FULL_SCAN_ENABLED: "true"    DAST_BROWSER_SCAN: "true"    DAST_SKIP_TARGET_CHECK: "true"

能够触发 CI/CD Pipeline 进行构建,并查看后果(太长,只截取局部):

如果是旗舰版用户还能够在平安与合规中看到残缺的破绽报告(平安与合规 --> 破绽报告):

和 CI/CD 联合

DAST 是实现 DevSecOps 的一个重要平安测试伎俩,将 DAST 嵌入到 CI/CD 中,可能实现真正的“平安自动化”。DAST 属于动静测试伎俩,须要搁置在应用程序部署胜利当前:

在极狐GitLab CI/CD 中的 job 程序是:

stages:  - build  - test  - deploy  - dast

上面应用一个托管在极狐GitLab SaaS 上的 Demo 来演示 DAST 在极狐GitLab CI/CD 中的用法。

极狐GitLab CI/CD 代码如下:

stages:            - build  - test  - deploy  - dastbuild:  image: docker:20.10.7-dind  stage: build  tags:    - devsecops  script:    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY    - docker build -t $CI_REGISTRY_IMAGE:1.0.0 .    - docker push $CI_REGISTRY_IMAGE:1.0.0test:  stage: test  tags:    - devsecops  image:    name: docker:20.10.7-dind  script:     - echo "go test"deploy:  image: docker:20.10.7-dind  tags:    - devsecops  stage: deploy  script:     - docker run -d -p 9998:9998 $CI_REGISTRY_IMAGE:1.0.0include:  - template: DAST.gitlab-ci.ymldast:     stage: dast  variables:    DAST_WEBSITE: "http://your.application.real.url"    DAST_FULL_SCAN_ENABLED: "true"    DAST_BROWSER_SCAN: "true"    DAST_SKIP_TARGET_CHECK: "true"

触发 CI/CD Pipeline 构建,查看构建后果:

如果是旗舰版用户还能够在 MR 中看到 DAST 后果:

能够看到有两个潜在扫描破绽,这种状况下须要修复破绽才能够进行代码 Merge,能够点击扫描进去的破绽来创立 issue 进行平安问题追踪:

在问题修复之后会再次触发扫描的 CI/CD,在无平安问题后,即可合并代码并将对应的 issue 敞开。

对于旗舰版用户来讲,还能够在平安仪表盘中查看所有的 DAST 安全漏洞,做到安全漏洞的对立、通明展现:

DAST 须要与其余平安测试伎俩,诸如 SAST、密钥检测、Fuzz Testing 等一起构建残缺的 DevSecOps 体系。

更多对于 DevSecOps 内容,请点击

极狐GitLab DevSecOps 之敏感信息检测
极狐GitLab DevSecOps 之镜像扫描
极狐GitLab DevSecOps 之含糊测试
极狐GitLab DevSecOps 之 SAST
极狐GitLab DevSecOps 之依赖项扫描
极狐GitLab DevSecOps 之 IaC 平安扫描