Checkov 是什么?
Checkov 是一款用于基础设施即代码 (IaC) 的开源静态分析工具。它扫描由 Terraform、CloudFormation、Kubernetes、ARM 模板等工具配置的云基础设施,以检测安全和合规性配置错误。Checkov 由 Bridgecrew(现为 Palo Alto Networks 的一部分)开发,帮助开发人员和 DevOps 工程师将安全性嵌入到开发生命周期中,在部署前防止云配置错误。
主要特点
- 广泛的 IaC 支持: 扫描多种 IaC 格式,包括 Terraform、CloudFormation、Kubernetes、Azure Resource Manager (ARM)、Serverless 框架和 Helm charts。
- 丰富的策略库: 自带数百个内置策略,涵盖 AWS、Google Cloud、Azure 和 Kubernetes 的安全最佳实践。
- 可自定义策略: 允许您使用 Python 或 YAML 编写自定义策略,以强制执行您组织的特定安全和合规要求。
- CI/CD 集成: 可轻松集成到 CI/CD 管道(如 Jenkins、GitLab CI、GitHub Actions)中,以在每次代码提交时自动进行安全检查。
- 基于图的扫描: 对于 Terraform,Checkov 会构建一个依赖关系图来理解资源之间的关系,使其能够检测复杂的多资源配置错误。
- IDE 集成: 在您的 IDE(如 VS Code)中直接提供反馈,以便在编码时发现问题。
使用案例
- 防止云配置错误: 在投入生产之前,识别出诸如公共 S3 存储桶、权限过大的 IAM 角色或未加密的数据库等问题。
- 强制执行合规性: 根据 CIS 基准、GDPR、HIPAA 和 PCI DSS 等合规标准扫描基础设施。
- DevSecOps 自动化: 将安全扫描直接集成到您的 CI/CD 管道中,以实现安全左移,并使开发人员能够及早修复问题。
- 供应链安全: 在单个工作流中扫描容器镜像的漏洞和 IaC 的配置错误。
入门指南
开始使用 Checkov 非常简单。您可以使用 pip 安装它。
- 安装 Checkov:
pip install checkov - 扫描目录:
导航到您的 IaC 项目目录并运行 Checkov。例如,要扫描包含 Terraform 文件的目录:
checkov -d . -
示例:“Hello World” 配置错误 创建一个名为
main.tf的 Terraform 文件,其中包含一个不安全的 S3 存储桶配置:resource "aws_s3_bucket" "my_bucket" { bucket = "my-insecure-test-bucket-12345" # 缺少访问控制和加密设置 }现在,运行 Checkov:
checkov -f main.tfCheckov 将会检查失败,并输出一份报告,详细说明该 S3 存储桶缺少关键的安全设置,如阻止公共访问和服务器端加密。
定价
Checkov 是一款在 Apache 2.0 许可下分发的免费开源工具。高级功能、企业级管理和更广泛的平台可通过 Palo Alto Networks 的 Prisma Cloud 获得,这是一个商业产品。