基础设施即代码 (IaC) 扫描
引入于 14.5 版本。
基础架构即代码 (IaC) 扫描会扫描您的 IaC 配置文件中的已知漏洞。
目前,IaC 扫描支持 Terraform、Ansible、AWS CloudFormation 和 Kubernetes 的配置文件。
要求
IaC 扫描在 test
阶段运行,默认情况下可用。如果在 .gitlab-ci.yml
文件中重新定义阶段,则需要 test
阶段。
要运行 IaC 扫描作业,默认情况下,您需要带有 docker
或 kubernetes
执行器。
如果您在 JihuLab.com 上使用共享 runner,则默认启用此功能。
19.03.0
。有关详细信息,请参阅故障排除信息。支持的语言和框架
极狐GitLab IaC 扫描支持多种 IaC 配置文件。我们的 IaC 安全扫描器还具有自动语言检测功能,甚至适用于混合语言项目。如果在项目源代码中检测到任何受支持的配置文件,我们会自动运行相应的 IaC 分析器。
配置文件类型 | 扫描工具 | 引入的版本 |
---|---|---|
Ansible | KICS | 14.5 |
AWS CloudFormation | KICS | 14.5 |
Azure Resource Manager 1 | KICS | 14.5 |
Dockerfile | KICS | 14.5 |
Google Deployment Manager | KICS | 14.5 |
Kubernetes | KICS | 14.5 |
OpenAPI | KICS | 14.5 |
Terraform 2 | KICS | 14.5 |
- IaC 扫描可以分析 JSON 格式的 Azure 资源管理器模板。如果您使用 Bicep 语言编写模板,则必须使用 bicep CLI,在极狐GitLab IaC 扫描可以分析它们之前将您的 Bicep 文件转换为 JSON。
- 自定义镜像库中的 Terraform 模块不会被扫描来查找漏洞。
支持的发行版
极狐GitLab 扫描器提供了一个基本的 alpine 镜像,用于大小和可维护性。
FIPS-enabled 镜像
引入于 14.10 版本。
极狐GitLab 还提供 FIPS-enabled 的 Red Hat UBI 版本的镜像。因此,您可以用启用 FIPS 的镜像替换标准镜像。要配置镜像,请将 SAST_IMAGE_SUFFIX
设置为 -fips
或修改标准标签加上 -fips
扩展名。
variables:
SAST_IMAGE_SUFFIX: '-fips'
include:
- template: Security/SAST-IaC.latest.gitlab-ci.yml
每个级别的功能摘要
不同的产品级别提供不同的功能,如下表所示:
兼容性 | 免费版和专业版 | 旗舰版 |
---|---|---|
配置 IaC 扫描器 | ||
下载 JSON 报告 | ||
在合并请求部件中查看新发现 | ||
管理漏洞 | ||
访问安全仪表盘 |
配置
要为项目配置 IaC 扫描,您可以:
手动配置 IaC 扫描
要启用 IaC 扫描,您必须包含作为极狐GitLab 安装的一部分提供的 SAST-IaC.latest.gitlab-ci.yml 模板
。以下是如何包含它的示例:
include:
- template: Security/SAST-IaC.latest.gitlab-ci.yml
包含的模板会在您的 CI/CD 流水线中创建 IaC 扫描作业,并扫描您项目的配置文件中可能存在的漏洞。
结果保存为 SAST 报告产物,您可以下载和分析。
通过自动合并请求启用 IaC 扫描
要在项目中启用 IaC 扫描,您可以创建合并请求:
- 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
- 在左侧边栏上,选择 安全与合规 > 配置。
- 在 基础设施即代码 (IaC) 扫描 行中,选择 使用合并请求进行配置。
- 查看并合并合并请求,来启用 IaC 扫描。
流水线现在包括 IaC 作业。
报告 JSON 格式
IaC 工具以现有 SAST 报告格式发出 JSON 报告文件。
JSON 报告文件可以从 CI 流水线页面或合并请求上的流水线选项卡,通过 artifacts:paths
设置下载到 gl-sast-report.json
。有关更多信息,请参阅下载产物。