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.yml
stages:
- test
dast:
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
- dast
build:
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.0
test:
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.0
include:
- template: DAST.gitlab-ci.yml
dast:
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 平安扫描