💡 如何在流水线中集成与应用 SAST,实现自动化代码安全扫描 ?
近日,在「DevSecOps 软件安全开发实践」课程上,极狐(GitLab) 高级专业服务交付工程师欧阳希、极狐(GitLab) 后端工程师黄松,分享了静态安全扫描与漏洞检测的 WHAT-WHY-HOW,并演示无缝衔接极狐 GitLab 合并请求与议题功能,帮助大家进一步掌握 SAST 技术。
以下内容整理自本次直播,你也可以点击👉观看视频回放或下载 PPT。Enjoy~
软件开发生命周期中,会遇到各种各样的安全问题。众多开发人员都在寻求一个自动化排查风险和漏洞的工具,使其成为高质量软件研发的 “好助手”。
极狐 GitLab 作为一体化安全 DevOps 平台,内置七大安全功能,无缝嵌入 CI/CD,实现安全自动检测,生成安全报告,结合漏洞管理功能,形成完善的漏洞追踪管理机制,最终利用发现问题、追踪问题、修复问题的闭环,来帮助用户构建纵深防御体系。
本次课程分享源代码扫描工具,包括 KICS 和 SAST 这两个覆盖不同层面的方式:
在极狐 GitLab 中,源代码安全扫描工作流如下图:
下面,我们分别展开 KICS 和 SAST 介绍。
KICS (Keeping Infrastructure as Code Secure)主要用来在开发早期发现 IaC(基础设施即代码)中的一些安全漏洞、合规问题以及错误配置等。
极狐 GitLab CI/CD 内建了 KICS 模板,支持对代码仓库的 IaC(基础设施即代码)进行静态扫描。
包括但不限于以下自动化工具:
使用极狐 GitLab CI/CD 配置 KICS IaC 安全扫描:
提交该变更,系统自动触发 CI/CD 流水线进行安全扫描。
可参考极狐 GitLab IaC 扫描官方文档定制化配置扫描规则 GitLab Infrastructure as Code (IaC) Scanning。
极狐 GitLab CI/CD 流水线执行完成后,针对扫描结果输出安全报告,在 2 分钟内即可展示在流水线产物中,如下图:
KICS IaC 扫描无缝衔接极狐 GitLab 合并请求以及议题:
➤ 项目管理者
➤ 开发者
软件中的漏洞和弱点很常见:84% 的软件漏洞都是利用应用层的漏洞。软件相关问题的普遍性是使用应用安全测试工具的主要动机,SAST 就是其中之一。
SAST(Static Application Security Testing)静态应用程序安全测试,俗称静态分析,是一种应用程序的安全测试手段,出现较早,主要是通过分析源代码来发现潜在的安全漏洞,从而确保软件安全。
SAST 属于白盒测试,分析结果能够精确到代码行数,而且通常是在代码编译之前进行,因此属于 SDLC 早期,修复问题的成本相对较低。
如上图所示,同属于源代码阶段的安全测试还有前文说到的基础设施即代码扫描,以及 DAST 静态应用程序安全测试、许可证合规、密钥检测。
➤ 更好的集成性和综合性
➤ 更好的可视化和报告功能
➤ 更好的扩展性和定制性
如上文极狐 GitLab 安全扫描工作流所介绍,极狐 GitLab 将 SAST 与 MR 无缝集成,在创建 MR 时,触发 CI/CD 进行 SAST 分析,最终的结果会展示在 MR 中,开发人员可通过创建 Issue 来对相应的 SAST 漏洞进行追踪管理;当修改后重新提交代码,再次触发 CI/CD Pipeline,在确认无误后,方可合入代码。
其中,极狐 GitLab 的分析器,基于第三方代码分析工具的封装,统一处理逻辑和输出格式,支持自定义,支持多种语言,包管理器,框架等,诸如 Java、Go、.Net、JavaScript、Node.js 等。
以极狐 GitLab 为例:
SAST 的执行流程如下图,极狐 GitLab 支持通过两种方式启用 SAST:
➤ 方式 1:在 UI 中配置 SAST
基础配置包含 4 项:
➤ 方式 2:在 CI/CD YAML 中配置 SAST
只需要在极狐 GitLab CI/CD 中加入如下两行代码即可使能 SAST:
include:
- template: Security/SAST.gitlab-ci.yml
详细配置内容可参考官方文档 静态应用程序安全测试(SAST)。
以上,就是关于 SAST 的基础支持和应用分享。
同时,我们提供了极狐 GitLab 旗舰版 30 天免费体验机会,,欢迎点击文章下方👇👇的【咨询专家】或【免费试用】按钮申请试用,解锁更多 DevSecOps 实践。