极狐 GitLab 在 14.5 中引入了基础设施即代码(Infrastructure as code,即 IaC)的平安扫描性能。次要针对 IaC 配置文件中的已知破绽进行扫描。目前反对的配置文件类型有 Ansible、Dockerfile、Kubernetes 以及 Terraform 等。
极狐 GitLab IaC 平安扫描性能
目前 IaC 扫描在极狐 GitLab SAST 性能上面,应用形式也很简略,只须要在 CI/CD 中退出如下代码即可应用:
include:
- template: Security/SAST-IaC.latest.gitlab-ci.yml
应用极狐 GitLab IaC 扫描性能
用 IaC 扫描性能进行 Dockerfile 扫描
应用云原生时代,保障容器镜像平安分几步?中的 Dockerfile 来进行扫描。Dockerfile 内容如下:
FROM golang:1.12.9-alpine3.9 as builder
WORKDIR /tmp
COPY main.go /tmp
RUN go build main.go
FROM alpine:latest
WORKDIR /usr/src/app/
RUN addgroup -S jh && adduser -S devsecops -G jh
COPY --from=builder --chown=devsecops:devsecops /tmp/main /usr/src/app/
USER devsecops
CMD ["./main"]
将上述 Dockerfile 托管到极狐 GitLab SaaS 的 Repo 上,并在仓库中增加 .gitlab-ci.yml 文件写入 IaC 平安扫描的内容:
stages:
- test
include:
- template: Security/SAST-IaC.latest.gitlab-ci.yml
接着能够触发 CI/CD Pipeline 并查看构建日志。
IaC 扫描与 MR 的集成以及破绽治理
* 以下内容为是极狐 GitLab 旗舰版性能
如果是旗舰版用户,能够在 MR 中看到扫描后果:
能够看到 SAST 检测中检测到三个破绽:应用了 latest 镜像 tag、没设置容器启动用户以及未增加 HEALTHCHECK。能够依据破绽的状况来决定是进行修复还是疏忽。能够间接点击破绽在呈现的界面上进行 issue 创立来实现破绽的跟踪或者间接疏忽该破绽:
依据提醒修复(修复了镜像 tag 与启动用户增加,疏忽了 HEALTHCHECK)之后,提交代码后会主动触发平安扫描:
能够看到只扫描进去了一个破绽(HEALTHCHECK)且曾经标注了疏忽,接着间接点击合并进行代码合入即可。
当然,所有的破绽都会在极狐 GitLab 平安面板上进行展现:
下面是应用极狐 GitLab IaC 扫描性能对于 Dockerfile 进行扫描并修复,其余的 IaC 文件也是同样的应用办法,诸如 Ansible、Terraform。在 CI/CD 中调用扫描性能即可开启平安扫描。在旗舰版性能中还能将平安扫描后果与 MR 相结合,进一步确保变更的品质。