SuperAPI AI 工具集

iac-scan-checkov

部署与运维

查看项目

更新于 10-16 06:58

技能介绍

IaC 扫描(Checkov)是一个面向安全工程师的技能,用于使用 Checkov 扫描基础设施即代码(IaC)中的安全配置错误。

用途

当需要扫描 Terraform、CloudFormation、Kubernetes 清单、Helm charts、ARM 模板、Ansible playbook 或 Dockerfile 中的安全问题时,可使用此技能。

前提条件

需要已安装 Checkov(安装命令:pip install checkov),并可通过 checkov --version 验证。

主要能力与使用方式

  1. 识别目标:确定要扫描的 IaC 文件或目录。
  2. 运行扫描,资料中提供的命令包括:
    • 扫描目录输出 JSON:checkov -d <target-path> --output json > checkov-results.json
    • 指定框架:checkov -d . --framework terraform --output json
    • 指定文件:checkov -f main.tf --output json
    • 指定检查项:checkov -d . --check CKV_AWS_18,CKV_AWS_21 --output json
    • 跳过检查项:checkov -d . --skip-check CKV_AWS_18 --output json
    • 紧凑输出:checkov -d . --compact --output json
  3. 解析结果:读取 JSON 输出并以表格形式呈现发现项,表格列为:编号、状态、检查 ID、资源、文件:行号、发现、指南。
  4. 汇总:提供总检查数(通过、失败、跳过的对比)、按严重性归类的失败检查,以及针对 IaC 的具体修复建议(如 Terraform 属性修改、K8s 规范修复等)。

常见 Check ID

资料列出以下常见检查项:

  • CKV_AWS_18(Terraform):S3 桶未启用日志。
  • CKV_AWS_21(Terraform):S3 未启用版本控制。
  • CKV_AWS_24(Terraform):安全组允许 0.0.0.0/0 访问端口 22。
  • CKV_AWS_145(Terraform):RDS 未使用 CMK 加密。
  • CKV_K8S_8(Kubernetes):容器未配置存活探针。
  • CKV_K8S_20(Kubernetes):容器以 root 运行。
  • CKV_K8S_28(Kubernetes):容器能力未丢弃。
  • CKV_DOCKER_2(Dockerfile):未定义 HEALTHCHECK。
  • CKV_DOCKER_3(Dockerfile):以 root 用户运行。

适用场景

适用于对 Terraform、CloudFormation、Kubernetes、Helm、ARM、Ansible 和 Dockerfile 等 IaC 资产进行安全配置错误检查,并在扫描后获得结构化的发现与修复指引。

限制

资料未提供关于 Checkov 的收费、价格、平台支持范围、性能效果或额外使用步骤的说明,这些内容暂未提供。