DevSecOps | 极狐 GitLab 动态应用程序安全测试(DAST)使用指南

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 实例:
用 http://jenkins.example.com:8088 登陆 jenkins 并确认实例运行正常之后,就可以用极狐 GitLab 单独对此 jenkins 实例进行动态扫描。
在极狐 GitLab 上新建一个 Repo,并添加如下内容到 .gitlab-ci.yml 文件中:
可以触发 CI/CD Pipeline 进行构建,并查看结果(太长,只截取部分):

如果是旗舰版用户还可以在安全与合规中看到完整的漏洞报告(安全与合规 --> 漏洞报告):

和 CI/CD 结合
DAST 是实现 DevSecOps 的一个重要安全测试手段,将 DAST 嵌入到 CI/CD 中,能够实现真正的“安全自动化”。DAST 属于动态测试手段,需要放置在应用程序部署成功以后:

在极狐 GitLab CI/CD 中的 job 顺序是:
下面使用一个托管在极狐 GitLab SaaS 上的 Demo 来演示 DAST 在极狐 GitLab CI/CD 中的用法。
极狐 GitLab CI/CD 代码如下:
触发 CI/CD Pipeline 构建,查看构建结果:

如果是旗舰版用户还可以在 MR 中看到 DAST 结果:

可以看到有两个潜在扫描漏洞,这种情况下需要修复漏洞才可以进行代码 Merge,可以点击扫描出来的漏洞来创建 issue 进行安全问题追踪:

在问题修复之后会再次触发扫描的 CI/CD,在无安全问题后,即可合并代码并将对应的 issue 关闭。
对于旗舰版用户来讲,还可以在安全仪表盘中查看所有的 DAST 安全漏洞,做到安全漏洞的统一、透明展示:

DAST 需要与其他安全测试手段,诸如 SAST、密钥检测、Fuzz Testing 等一起构建完整的 DevSecOps 体系。
更多关于 DevSecOps 内容,请点击
版权声明: 本文为 InfoQ 作者【极狐GitLab】的原创文章。
原文链接:【http://xie.infoq.cn/article/0d524cf7575bc98b8baa77e61】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
评论