校对:soup
目录
概览
使用 齐考夫 二进制. 扫描Terraform, Cloud Formation, Kubernetes, Dockerfile, 以及许多其他IaC框架的安全配置错误. 使用带有 Python/pip 安装的 CLI 执行策略进入孤立的虚拟环境.
| 财产 | 数值 |
|---|---|
| 工具标识 | Checkov |
| 编码 UUID | 13af9d89-1ce5-4fec-a168-765c3e7b26b3 |
| 战略 | 国 际 |
| 语文 | JSON、YAML、Terraform、多克文件 |
| 二进制 | checkov (Python软件包) |
| 文件图案 | **/*.tf, (中文(简体) ), **/*.yaml, (中文(简体) ), **/*.yml, (中文(简体) ), **/*.json, (中文(简体) ), **/Dockerfile |
| 图案计数 | ~1 359个 |
| 模式标识格式 | Checkov_{check_id} (例如:. Checkov_CKV_AWS_41(中文(简体) ) |
更新图案
# Re-fetch pattern metadata from the Codacy API
pnpm prefetch
# Commit the result
git add src/patterns.json
更新 Checkov 版本
- 更新
preferredVersion内src/adapter.ts - 更新
PIP_PACKAGE常数在src/adapter.ts(例如:.checkov==3.2.510(中文(简体) ) - 运行
pnpm prefetch以刷新图案( 新版本可能添加检查) - 运行
pnpm test以验证兼容性 - 考虑创建新的软件包( E)
checkov-4/),如果主要版本更改
发展
# Install checkov locally (requires Python 3.9+)
pip install checkov==3.3.19
# Build with tsup
pnpm build
# Run tests (skips binary-dependent tests if checkov is not installed)
pnpm test
维护者的注释
-
大管道安装: Checkov 有~200个中转依赖性(pydantic,boto3 stubs,networkx等). 第一次安装到阴道需要几分钟时间. 随后运行使用缓存的 venv.
-
每个工具的阴道隔离:适配器安装 Checkov 进入
~/.codacy/runtimes/Checkov/venv/以避免依赖性与其他基于 Python 的工具相冲突. -
多框架 JSON 输出: Checkov可以发射出单个JSON对象或一系列对象(每个框架一个). 适配器在解析前将两者都正常化为数组.
-
路径正常化数字 :
repo_file_path从Chitchov总是有领先/必须被剥去. -
无列信息: Checkov 不提供栏号. 所有问题都使用
column: 1。 。 。 . -
退出代码: 退出代码0 = 无问题, 1 = 发现问题(正常), > 1 = 真错误.
-
集装箱模式网络封堵: 在容器模式下(
ctx.runner === "container"),适配器设置代理 env vars 和RENDER_EDGES_DUPLICATE_ITER_COUNT=50阻止Bridgecrew API的呼叫和调谐性能. -
模式过滤: 用途
--check CKV_xxx,CKV_yyy,...只运行特定检查。 这个Checkov_前缀从图案ID被剥去,以获取原始的检查ID. -
配置文件: 寻找
.checkov.yaml或者说.checkov.yml。当本地配置活动时,通过--config-file <path>。 。 。 . -
分析错误: Checkov报告
parsing_errors显示为AnalysisError对象为kind: "ParsingError"。 。 。 . -
预设绘图
src/pattern-mappings.json(中文(简体) )1,360个模式中的1,280个门在一个检测到的IaC框架上,所以init --auto无法在没有基础设施的回购中启用 AWS 资源政策 。 测量效应:仅具有package.json从1 225个启用的Chitchov模式到80个模式.门是 每IaC框架,而不是每云,因为云资源可以被宣布为几种方式——同一个桶是一个
aws_s3_bucket在Terraform,一个AWS::S3::Bucket在云层和一resources:在无服务器下块.filterAutoPatterns当 任意 它的密钥被检测到,因此同一前缀被列在几个密钥下,以表示"AWS资源,无论它们被宣布". 之前的一次修订让所有~1,091 云端提供商的检查普遍化 完全是因为让它们打开.tf单凭你一个人 就会放弃每一次云量检查 一次只有云量的回波."lang:Terraform"地图CKV_TF_加上每个提供云源的家庭CKV_AWS_, (中文(简体) ),CKV_AZURE_, (中文(简体) ),CKV_GCP_,和十更小的云). 不需要文件信号 :.tf实值 页:1Terraform语言,所以lang:Terraform已经表示"这回波有Terraform".cloudformation财务报告和审定财务报表serverless-framework也索赔CKV_AWS_编号 :CKV2_AWS_· ;bicep也索赔CKV_AZURE_编号 :CKV2_AZURE_。通过文件信号检测(samconfig.*,一个根template.yaml页:1cloudformation/目录,serverless.yml, (中文(简体) ),*.bicep) (中文(简体) ).kubernetes财务报告和审定财务报表helm两项索赔CKV_K8S_编号 :CKV2_K8S_编号 :CKV_ARGO_——图表的模板可以显示,所以两者都是证据. 从kustomization.yaml编号 :Chart.yaml。 。 。 .ansible索赔CKV_ANSIBLE_编号 :CKV2_ANSIBLE_从ansible.cfg或roles/<name>/tasks/main.yml设置.- 仍然普遍(80种模式),每个模式都有明确的理由:
CKV_SECRET_(18个)和CKV_BCW_(1)通过设计——秘密扫描决不能被任何框架门所压制.CKV_OPENAPI_(21) – OpenAPI/AsyncAPI 文档用它自己识别自身openapi:编号 :swagger:键,一个只看到路径的信号看不到。 需要内容探测器.- VCS 治理家庭
CKV_GITHUB_(26个),CKV_GIT_(7),CKV_GLB_(4), (中文(简体) ),CKV_GITLAB_, (中文(简体) ),CKV_BITBUCKET_, (中文(简体) ),CKV2_ADO_(各1个). 这些是 未解决,未推迟: 其标题读取为平台/ API 设置( Checkov'sgithub_configuration框架,它读取API数据,不能在文件系统扫描上发火,而此文件的早期读取记录为通过每个平台管理的治理资源 地形提供者 ——在这种情况下,属于lang:Terraform。两种读取意味着相反的修补(prune v. s. gate),所以在对照Checkov自己的框架声明检查之前,它们不会受到影响.
- 已知缺口 : 裸露的库伯尼特
k8s/deployment.yaml)或赤色的Cloud Formation模板仍未被检测出——只有周围的常规贝壳才是. 双方在内容中都声明自己,所以结束这个过程需要一个有界限的内容探测器(papiVersion:, (中文(简体) ),AWSTemplateFormatVersion页:1. - 已知缺口( 上游 ) : 大多数图案携带
languages: ["JSON", "YAML", "Terraform"],这是 工具级倒置 Codacy的API返回一个没有平面语言的图案——而不是对支票的要求. 它过于宣示(JSON是为什么几乎所有地方都选择了Chitchov)和宣示不足(只有6个)CKV_DOCKER_检查清单Dockerfile,因此22被语言过滤器在 Dockerfile- only repo 中丢出. 持久固定在云工具定义中;见todo-checkov-languages.md。 。 。 .