@accelerationguy/accel 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +19 -0
- package/LICENSE +33 -0
- package/README.md +275 -0
- package/bin/install.js +661 -0
- package/docs/getting-started.md +164 -0
- package/docs/module-guide.md +139 -0
- package/modules/drive/LICENSE +21 -0
- package/modules/drive/PAUL-VS-GSD.md +171 -0
- package/modules/drive/README.md +555 -0
- package/modules/drive/assets/terminal.svg +67 -0
- package/modules/drive/bin/install.js +210 -0
- package/modules/drive/integration.js +76 -0
- package/modules/drive/package.json +38 -0
- package/modules/drive/src/commands/add-phase.md +36 -0
- package/modules/drive/src/commands/apply.md +83 -0
- package/modules/drive/src/commands/assumptions.md +37 -0
- package/modules/drive/src/commands/audit.md +57 -0
- package/modules/drive/src/commands/complete-milestone.md +36 -0
- package/modules/drive/src/commands/config.md +175 -0
- package/modules/drive/src/commands/consider-issues.md +41 -0
- package/modules/drive/src/commands/discover.md +48 -0
- package/modules/drive/src/commands/discuss-milestone.md +33 -0
- package/modules/drive/src/commands/discuss.md +34 -0
- package/modules/drive/src/commands/flows.md +73 -0
- package/modules/drive/src/commands/handoff.md +201 -0
- package/modules/drive/src/commands/help.md +525 -0
- package/modules/drive/src/commands/init.md +54 -0
- package/modules/drive/src/commands/map-codebase.md +34 -0
- package/modules/drive/src/commands/milestone.md +34 -0
- package/modules/drive/src/commands/pause.md +44 -0
- package/modules/drive/src/commands/plan-fix.md +216 -0
- package/modules/drive/src/commands/plan.md +36 -0
- package/modules/drive/src/commands/progress.md +138 -0
- package/modules/drive/src/commands/register.md +29 -0
- package/modules/drive/src/commands/remove-phase.md +37 -0
- package/modules/drive/src/commands/research-phase.md +209 -0
- package/modules/drive/src/commands/research.md +47 -0
- package/modules/drive/src/commands/resume.md +49 -0
- package/modules/drive/src/commands/status.md +78 -0
- package/modules/drive/src/commands/unify.md +87 -0
- package/modules/drive/src/commands/verify.md +60 -0
- package/modules/drive/src/references/checkpoints.md +234 -0
- package/modules/drive/src/references/context-management.md +219 -0
- package/modules/drive/src/references/git-strategy.md +206 -0
- package/modules/drive/src/references/loop-phases.md +254 -0
- package/modules/drive/src/references/plan-format.md +263 -0
- package/modules/drive/src/references/quality-principles.md +152 -0
- package/modules/drive/src/references/research-quality-control.md +247 -0
- package/modules/drive/src/references/sonarqube-integration.md +244 -0
- package/modules/drive/src/references/specialized-workflow-integration.md +186 -0
- package/modules/drive/src/references/subagent-criteria.md +179 -0
- package/modules/drive/src/references/tdd.md +219 -0
- package/modules/drive/src/references/work-units.md +161 -0
- package/modules/drive/src/rules/commands.md +108 -0
- package/modules/drive/src/rules/references.md +107 -0
- package/modules/drive/src/rules/style.md +123 -0
- package/modules/drive/src/rules/templates.md +51 -0
- package/modules/drive/src/rules/workflows.md +133 -0
- package/modules/drive/src/templates/CONTEXT.md +88 -0
- package/modules/drive/src/templates/DEBUG.md +164 -0
- package/modules/drive/src/templates/DISCOVERY.md +148 -0
- package/modules/drive/src/templates/HANDOFF.md +77 -0
- package/modules/drive/src/templates/ISSUES.md +93 -0
- package/modules/drive/src/templates/MILESTONES.md +167 -0
- package/modules/drive/src/templates/PLAN.md +328 -0
- package/modules/drive/src/templates/PROJECT.md +219 -0
- package/modules/drive/src/templates/RESEARCH.md +130 -0
- package/modules/drive/src/templates/ROADMAP.md +328 -0
- package/modules/drive/src/templates/SPECIAL-FLOWS.md +70 -0
- package/modules/drive/src/templates/STATE.md +210 -0
- package/modules/drive/src/templates/SUMMARY.md +221 -0
- package/modules/drive/src/templates/UAT-ISSUES.md +139 -0
- package/modules/drive/src/templates/codebase/architecture.md +259 -0
- package/modules/drive/src/templates/codebase/concerns.md +329 -0
- package/modules/drive/src/templates/codebase/conventions.md +311 -0
- package/modules/drive/src/templates/codebase/integrations.md +284 -0
- package/modules/drive/src/templates/codebase/stack.md +190 -0
- package/modules/drive/src/templates/codebase/structure.md +287 -0
- package/modules/drive/src/templates/codebase/testing.md +484 -0
- package/modules/drive/src/templates/config.md +181 -0
- package/modules/drive/src/templates/milestone-archive.md +236 -0
- package/modules/drive/src/templates/milestone-context.md +190 -0
- package/modules/drive/src/templates/paul-json.md +147 -0
- package/modules/drive/src/vector-config/PAUL +26 -0
- package/modules/drive/src/vector-config/PAUL.manifest +11 -0
- package/modules/drive/src/workflows/apply-phase.md +393 -0
- package/modules/drive/src/workflows/audit-plan.md +344 -0
- package/modules/drive/src/workflows/complete-milestone.md +479 -0
- package/modules/drive/src/workflows/configure-special-flows.md +283 -0
- package/modules/drive/src/workflows/consider-issues.md +172 -0
- package/modules/drive/src/workflows/create-milestone.md +268 -0
- package/modules/drive/src/workflows/debug.md +292 -0
- package/modules/drive/src/workflows/discovery.md +187 -0
- package/modules/drive/src/workflows/discuss-milestone.md +245 -0
- package/modules/drive/src/workflows/discuss-phase.md +231 -0
- package/modules/drive/src/workflows/init-project.md +698 -0
- package/modules/drive/src/workflows/map-codebase.md +459 -0
- package/modules/drive/src/workflows/pause-work.md +259 -0
- package/modules/drive/src/workflows/phase-assumptions.md +181 -0
- package/modules/drive/src/workflows/plan-phase.md +385 -0
- package/modules/drive/src/workflows/quality-gate.md +263 -0
- package/modules/drive/src/workflows/register-manifest.md +107 -0
- package/modules/drive/src/workflows/research.md +241 -0
- package/modules/drive/src/workflows/resume-project.md +200 -0
- package/modules/drive/src/workflows/roadmap-management.md +334 -0
- package/modules/drive/src/workflows/transition-phase.md +368 -0
- package/modules/drive/src/workflows/unify-phase.md +290 -0
- package/modules/drive/src/workflows/verify-work.md +241 -0
- package/modules/forge/README.md +281 -0
- package/modules/forge/bin/install.js +200 -0
- package/modules/forge/package.json +32 -0
- package/modules/forge/skillsmith/rules/checklists-rules.md +42 -0
- package/modules/forge/skillsmith/rules/context-rules.md +43 -0
- package/modules/forge/skillsmith/rules/entry-point-rules.md +44 -0
- package/modules/forge/skillsmith/rules/frameworks-rules.md +43 -0
- package/modules/forge/skillsmith/rules/tasks-rules.md +52 -0
- package/modules/forge/skillsmith/rules/templates-rules.md +43 -0
- package/modules/forge/skillsmith/skillsmith.md +82 -0
- package/modules/forge/skillsmith/tasks/audit.md +277 -0
- package/modules/forge/skillsmith/tasks/discover.md +145 -0
- package/modules/forge/skillsmith/tasks/distill.md +276 -0
- package/modules/forge/skillsmith/tasks/scaffold.md +349 -0
- package/modules/forge/specs/checklists.md +193 -0
- package/modules/forge/specs/context.md +223 -0
- package/modules/forge/specs/entry-point.md +320 -0
- package/modules/forge/specs/frameworks.md +228 -0
- package/modules/forge/specs/rules.md +245 -0
- package/modules/forge/specs/tasks.md +344 -0
- package/modules/forge/specs/templates.md +335 -0
- package/modules/forge/terminal.svg +70 -0
- package/modules/ignition/README.md +245 -0
- package/modules/ignition/bin/install.js +184 -0
- package/modules/ignition/checklists/planning-quality.md +55 -0
- package/modules/ignition/data/application/config.md +21 -0
- package/modules/ignition/data/application/guide.md +51 -0
- package/modules/ignition/data/application/skill-loadout.md +11 -0
- package/modules/ignition/data/campaign/config.md +18 -0
- package/modules/ignition/data/campaign/guide.md +36 -0
- package/modules/ignition/data/campaign/skill-loadout.md +10 -0
- package/modules/ignition/data/client/config.md +18 -0
- package/modules/ignition/data/client/guide.md +36 -0
- package/modules/ignition/data/client/skill-loadout.md +11 -0
- package/modules/ignition/data/utility/config.md +18 -0
- package/modules/ignition/data/utility/guide.md +31 -0
- package/modules/ignition/data/utility/skill-loadout.md +8 -0
- package/modules/ignition/data/workflow/config.md +19 -0
- package/modules/ignition/data/workflow/guide.md +41 -0
- package/modules/ignition/data/workflow/skill-loadout.md +10 -0
- package/modules/ignition/integration.js +54 -0
- package/modules/ignition/package.json +35 -0
- package/modules/ignition/seed.md +81 -0
- package/modules/ignition/tasks/add-type.md +164 -0
- package/modules/ignition/tasks/graduate.md +182 -0
- package/modules/ignition/tasks/ideate.md +221 -0
- package/modules/ignition/tasks/launch.md +137 -0
- package/modules/ignition/tasks/status.md +71 -0
- package/modules/ignition/templates/planning-application.md +193 -0
- package/modules/ignition/templates/planning-campaign.md +138 -0
- package/modules/ignition/templates/planning-client.md +149 -0
- package/modules/ignition/templates/planning-utility.md +112 -0
- package/modules/ignition/templates/planning-workflow.md +125 -0
- package/modules/ignition/terminal.svg +74 -0
- package/modules/mission-control/CONTEXT-CONTINUITY-SPEC.md +293 -0
- package/modules/mission-control/CONTEXT-ENGINEERING-GUIDE.md +282 -0
- package/modules/mission-control/README.md +91 -0
- package/modules/mission-control/assets/terminal.svg +80 -0
- package/modules/mission-control/examples/entities.example.json +133 -0
- package/modules/mission-control/examples/projects.example.json +318 -0
- package/modules/mission-control/examples/state.example.json +183 -0
- package/modules/mission-control/examples/vector.example.json +245 -0
- package/modules/mission-control/mission-control/checklists/install-verification.md +46 -0
- package/modules/mission-control/mission-control/frameworks/framework-registry.md +83 -0
- package/modules/mission-control/mission-control/mission-control.md +83 -0
- package/modules/mission-control/mission-control/tasks/insights.md +73 -0
- package/modules/mission-control/mission-control/tasks/install.md +194 -0
- package/modules/mission-control/mission-control/tasks/status.md +125 -0
- package/modules/mission-control/schemas/entities.schema.json +89 -0
- package/modules/mission-control/schemas/projects.schema.json +221 -0
- package/modules/mission-control/schemas/state.schema.json +108 -0
- package/modules/mission-control/schemas/vector.schema.json +200 -0
- package/modules/momentum/README.md +678 -0
- package/modules/momentum/bin/install.js +563 -0
- package/modules/momentum/integration.js +131 -0
- package/modules/momentum/package.json +42 -0
- package/modules/momentum/schemas/entities.schema.json +89 -0
- package/modules/momentum/schemas/projects.schema.json +221 -0
- package/modules/momentum/schemas/state.schema.json +108 -0
- package/modules/momentum/src/commands/audit-claude-md.md +31 -0
- package/modules/momentum/src/commands/audit.md +33 -0
- package/modules/momentum/src/commands/groom.md +35 -0
- package/modules/momentum/src/commands/history.md +27 -0
- package/modules/momentum/src/commands/pulse.md +33 -0
- package/modules/momentum/src/commands/scaffold.md +33 -0
- package/modules/momentum/src/commands/status.md +28 -0
- package/modules/momentum/src/commands/surface-convert.md +35 -0
- package/modules/momentum/src/commands/surface-create.md +34 -0
- package/modules/momentum/src/commands/surface-list.md +27 -0
- package/modules/momentum/src/commands/vector-hygiene.md +33 -0
- package/modules/momentum/src/framework/context/momentum-principles.md +71 -0
- package/modules/momentum/src/framework/frameworks/audit-strategies.md +53 -0
- package/modules/momentum/src/framework/frameworks/satellite-registration.md +44 -0
- package/modules/momentum/src/framework/tasks/audit-claude-md.md +68 -0
- package/modules/momentum/src/framework/tasks/audit.md +64 -0
- package/modules/momentum/src/framework/tasks/groom.md +164 -0
- package/modules/momentum/src/framework/tasks/history.md +34 -0
- package/modules/momentum/src/framework/tasks/pulse.md +83 -0
- package/modules/momentum/src/framework/tasks/scaffold.md +202 -0
- package/modules/momentum/src/framework/tasks/status.md +35 -0
- package/modules/momentum/src/framework/tasks/surface-convert.md +143 -0
- package/modules/momentum/src/framework/tasks/surface-create.md +184 -0
- package/modules/momentum/src/framework/tasks/surface-list.md +42 -0
- package/modules/momentum/src/framework/tasks/vector-hygiene.md +160 -0
- package/modules/momentum/src/framework/templates/workspace-json.md +96 -0
- package/modules/momentum/src/hooks/_template.py +129 -0
- package/modules/momentum/src/hooks/active-hook.py +178 -0
- package/modules/momentum/src/hooks/backlog-hook.py +115 -0
- package/modules/momentum/src/hooks/mission-control-insights.py +169 -0
- package/modules/momentum/src/hooks/momentum-pulse-check.py +351 -0
- package/modules/momentum/src/hooks/operator.py +53 -0
- package/modules/momentum/src/hooks/psmm-injector.py +67 -0
- package/modules/momentum/src/hooks/satellite-detection.py +248 -0
- package/modules/momentum/src/packages/momentum-mcp/index.js +119 -0
- package/modules/momentum/src/packages/momentum-mcp/package.json +10 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/entities.js +226 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/operator.js +106 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/projects.js +322 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/psmm.js +206 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/state.js +199 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/surfaces.js +404 -0
- package/modules/momentum/src/skill/momentum.md +111 -0
- package/modules/momentum/src/tasks/groom.md +164 -0
- package/modules/momentum/src/templates/operator.json +66 -0
- package/modules/momentum/src/templates/workspace.json +111 -0
- package/modules/momentum/terminal.svg +77 -0
- package/modules/radar/README.md +1552 -0
- package/modules/radar/commands/audit.md +233 -0
- package/modules/radar/commands/guardrails.md +194 -0
- package/modules/radar/commands/init.md +207 -0
- package/modules/radar/commands/playbook.md +176 -0
- package/modules/radar/commands/remediate.md +156 -0
- package/modules/radar/commands/report.md +172 -0
- package/modules/radar/commands/resume.md +176 -0
- package/modules/radar/commands/status.md +148 -0
- package/modules/radar/commands/transform.md +205 -0
- package/modules/radar/commands/validate.md +177 -0
- package/modules/radar/docs/ARCHITECTURE.md +336 -0
- package/modules/radar/docs/GETTING-STARTED.md +287 -0
- package/modules/radar/docs/standards/agents.md +197 -0
- package/modules/radar/docs/standards/commands.md +250 -0
- package/modules/radar/docs/standards/domains.md +191 -0
- package/modules/radar/docs/standards/personas.md +211 -0
- package/modules/radar/docs/standards/rules.md +218 -0
- package/modules/radar/docs/standards/runtime.md +445 -0
- package/modules/radar/docs/standards/schemas.md +269 -0
- package/modules/radar/docs/standards/tools.md +273 -0
- package/modules/radar/docs/standards/workflows.md +254 -0
- package/modules/radar/docs/terminal.svg +72 -0
- package/modules/radar/docs/validation/convention-compliance-report.md +183 -0
- package/modules/radar/docs/validation/cross-reference-report.md +195 -0
- package/modules/radar/docs/validation/validation-summary.md +118 -0
- package/modules/radar/docs/validation/version-manifest.yaml +363 -0
- package/modules/radar/install.sh +711 -0
- package/modules/radar/integration.js +53 -0
- package/modules/radar/src/core/agents/architect.md +25 -0
- package/modules/radar/src/core/agents/compliance-officer.md +25 -0
- package/modules/radar/src/core/agents/data-engineer.md +25 -0
- package/modules/radar/src/core/agents/devils-advocate.md +22 -0
- package/modules/radar/src/core/agents/performance-engineer.md +25 -0
- package/modules/radar/src/core/agents/principal-engineer.md +23 -0
- package/modules/radar/src/core/agents/reality-gap-analyst.md +22 -0
- package/modules/radar/src/core/agents/security-engineer.md +25 -0
- package/modules/radar/src/core/agents/senior-app-engineer.md +25 -0
- package/modules/radar/src/core/agents/sre.md +25 -0
- package/modules/radar/src/core/agents/staff-engineer.md +23 -0
- package/modules/radar/src/core/agents/test-engineer.md +25 -0
- package/modules/radar/src/core/personas/architect.md +111 -0
- package/modules/radar/src/core/personas/compliance-officer.md +104 -0
- package/modules/radar/src/core/personas/data-engineer.md +113 -0
- package/modules/radar/src/core/personas/devils-advocate.md +105 -0
- package/modules/radar/src/core/personas/performance-engineer.md +119 -0
- package/modules/radar/src/core/personas/principal-engineer.md +119 -0
- package/modules/radar/src/core/personas/reality-gap-analyst.md +111 -0
- package/modules/radar/src/core/personas/security-engineer.md +108 -0
- package/modules/radar/src/core/personas/senior-app-engineer.md +111 -0
- package/modules/radar/src/core/personas/sre.md +117 -0
- package/modules/radar/src/core/personas/staff-engineer.md +109 -0
- package/modules/radar/src/core/personas/test-engineer.md +109 -0
- package/modules/radar/src/core/workflows/disagreement-resolution.md +183 -0
- package/modules/radar/src/core/workflows/phase-0-context.md +148 -0
- package/modules/radar/src/core/workflows/phase-1-reconnaissance.md +169 -0
- package/modules/radar/src/core/workflows/phase-2-domain-audits.md +190 -0
- package/modules/radar/src/core/workflows/phase-3-cross-domain.md +177 -0
- package/modules/radar/src/core/workflows/phase-4-adversarial-review.md +165 -0
- package/modules/radar/src/core/workflows/phase-5-report.md +189 -0
- package/modules/radar/src/core/workflows/phase-checkpoint.md +222 -0
- package/modules/radar/src/core/workflows/session-handoff.md +152 -0
- package/modules/radar/src/domains/00-context.md +201 -0
- package/modules/radar/src/domains/01-architecture.md +248 -0
- package/modules/radar/src/domains/02-data.md +224 -0
- package/modules/radar/src/domains/03-correctness.md +230 -0
- package/modules/radar/src/domains/04-security.md +274 -0
- package/modules/radar/src/domains/05-compliance.md +228 -0
- package/modules/radar/src/domains/06-testing.md +228 -0
- package/modules/radar/src/domains/07-reliability.md +246 -0
- package/modules/radar/src/domains/08-performance.md +247 -0
- package/modules/radar/src/domains/09-maintainability.md +271 -0
- package/modules/radar/src/domains/10-operability.md +250 -0
- package/modules/radar/src/domains/11-change-risk.md +246 -0
- package/modules/radar/src/domains/12-team-risk.md +221 -0
- package/modules/radar/src/domains/13-risk-synthesis.md +202 -0
- package/modules/radar/src/rules/agent-boundaries.md +78 -0
- package/modules/radar/src/rules/disagreement-protocol.md +76 -0
- package/modules/radar/src/rules/epistemic-hygiene.md +78 -0
- package/modules/radar/src/schemas/confidence.md +185 -0
- package/modules/radar/src/schemas/disagreement.md +238 -0
- package/modules/radar/src/schemas/finding.md +287 -0
- package/modules/radar/src/schemas/report-section.md +150 -0
- package/modules/radar/src/schemas/signal.md +108 -0
- package/modules/radar/src/tools/checkov.md +463 -0
- package/modules/radar/src/tools/git-history.md +581 -0
- package/modules/radar/src/tools/gitleaks.md +447 -0
- package/modules/radar/src/tools/grype.md +611 -0
- package/modules/radar/src/tools/semgrep.md +378 -0
- package/modules/radar/src/tools/sonarqube.md +550 -0
- package/modules/radar/src/tools/syft.md +539 -0
- package/modules/radar/src/tools/trivy.md +439 -0
- package/modules/radar/src/transform/agents/change-risk-modeler.md +24 -0
- package/modules/radar/src/transform/agents/execution-validator.md +24 -0
- package/modules/radar/src/transform/agents/guardrail-generator.md +24 -0
- package/modules/radar/src/transform/agents/pedagogy-agent.md +24 -0
- package/modules/radar/src/transform/agents/remediation-architect.md +24 -0
- package/modules/radar/src/transform/personas/change-risk-modeler.md +95 -0
- package/modules/radar/src/transform/personas/execution-validator.md +95 -0
- package/modules/radar/src/transform/personas/guardrail-generator.md +103 -0
- package/modules/radar/src/transform/personas/pedagogy-agent.md +105 -0
- package/modules/radar/src/transform/personas/remediation-architect.md +95 -0
- package/modules/radar/src/transform/rules/change-risk-rules.md +87 -0
- package/modules/radar/src/transform/rules/safety-governance.md +87 -0
- package/modules/radar/src/transform/schemas/change-risk.md +139 -0
- package/modules/radar/src/transform/schemas/intervention-level.md +207 -0
- package/modules/radar/src/transform/schemas/playbook.md +205 -0
- package/modules/radar/src/transform/schemas/verification-plan.md +134 -0
- package/modules/radar/src/transform/workflows/phase-6-remediation.md +148 -0
- package/modules/radar/src/transform/workflows/phase-7-risk-validation.md +161 -0
- package/modules/radar/src/transform/workflows/phase-8-execution-planning.md +159 -0
- package/modules/radar/src/transform/workflows/transform-safety.md +158 -0
- package/modules/vector/.vector-template/sessions/.gitkeep +0 -0
- package/modules/vector/.vector-template/vector.json +72 -0
- package/modules/vector/AUDIT-CLAUDEMD.md +154 -0
- package/modules/vector/INSTALL.md +185 -0
- package/modules/vector/LICENSE +21 -0
- package/modules/vector/README.md +409 -0
- package/modules/vector/VECTOR-BLOCK.md +57 -0
- package/modules/vector/assets/terminal.svg +68 -0
- package/modules/vector/bin/install.js +455 -0
- package/modules/vector/bin/migrate-v1-to-v2.sh +492 -0
- package/modules/vector/commands/help.md +46 -0
- package/modules/vector/hooks/vector-hook.py +775 -0
- package/modules/vector/mcp/index.js +118 -0
- package/modules/vector/mcp/package.json +10 -0
- package/modules/vector/mcp/tools/decisions.js +269 -0
- package/modules/vector/mcp/tools/domains.js +361 -0
- package/modules/vector/mcp/tools/staging.js +252 -0
- package/modules/vector/mcp/tools/vector-json.js +647 -0
- package/modules/vector/package.json +38 -0
- package/modules/vector/schemas/vector.schema.json +237 -0
- package/package.json +39 -0
- package/shared/branding/branding.js +70 -0
- package/shared/config/defaults.json +59 -0
- package/shared/events/README.md +175 -0
- package/shared/events/event-bus.js +134 -0
- package/shared/events/event_bus.py +255 -0
- package/shared/events/integrations.js +161 -0
- package/shared/events/schemas/audit-complete.schema.json +21 -0
- package/shared/events/schemas/phase-progress.schema.json +23 -0
- package/shared/events/schemas/plan-created.schema.json +21 -0
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: checkov
|
|
3
|
+
name: Checkov
|
|
4
|
+
type: iac_scan
|
|
5
|
+
domains_fed: ["04", "05"]
|
|
6
|
+
install_required: true
|
|
7
|
+
install_command: "See Installation section — pip, brew, or Docker"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Static analysis tool for Infrastructure as Code (IaC) that identifies security misconfigurations and compliance violations before infrastructure is provisioned. Scans Terraform, CloudFormation, Kubernetes manifests, Dockerfiles, Helm charts, and ARM templates against a library of 1,000+ built-in security policies. Primary signal source for infrastructure security posture and compliance alignment. Feeds Security (04) and Compliance (05) domains.
|
|
13
|
+
|
|
14
|
+
Checkov evaluates IaC declaratively — it reads resource definitions and matches them against policy rules without requiring live cloud credentials or deployed infrastructure. Scans are fast (typically seconds to low minutes) because no runtime state is involved.
|
|
15
|
+
|
|
16
|
+
Signals are NOT findings. Checkov produces evidence that agents interpret.
|
|
17
|
+
|
|
18
|
+
## Configuration
|
|
19
|
+
|
|
20
|
+
Checkov supports configuration via `.checkov.yaml` file and command-line flags.
|
|
21
|
+
|
|
22
|
+
**Configuration File** (`.checkov.yaml`):
|
|
23
|
+
```yaml
|
|
24
|
+
directory:
|
|
25
|
+
- ./terraform
|
|
26
|
+
- ./kubernetes
|
|
27
|
+
framework:
|
|
28
|
+
- terraform
|
|
29
|
+
- kubernetes
|
|
30
|
+
- dockerfile
|
|
31
|
+
output:
|
|
32
|
+
- json
|
|
33
|
+
skip-check:
|
|
34
|
+
- CKV_AWS_20 # S3 public access acceptable for static site bucket
|
|
35
|
+
- CKV_K8S_14 # runAsRootGroup enforced at namespace admission level
|
|
36
|
+
soft-fail: true
|
|
37
|
+
compact: false
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Key Configuration Options**:
|
|
41
|
+
- **Framework Selection**: `--framework terraform,cloudformation,kubernetes,dockerfile,helm,arm` limits scan scope to relevant frameworks
|
|
42
|
+
- **Check Skipping**: `--skip-check CKV_AWS_20,CKV_AWS_57` suppresses known acceptable-risk or false-positive checks; include justification in comments
|
|
43
|
+
- **Custom Policies**: `--external-checks-dir ./checkov-custom-policies` loads org-specific policy YAML or Python checks
|
|
44
|
+
- **Severity Thresholds**: `--check-threshold HIGH` fails only on high-severity checks (requires Checkov ≥2.2.0)
|
|
45
|
+
- **Compact Output**: `--compact` omits passing checks from output to reduce noise
|
|
46
|
+
- **Baseline Mode**: `--create-baseline` captures current state; subsequent runs only report new violations
|
|
47
|
+
- **Soft Fail**: `--soft-fail` returns exit code 0 even when checks fail (useful in CI pipelines that should not block on findings)
|
|
48
|
+
|
|
49
|
+
**Custom Policy Directory** (`./checkov-custom-policies/`):
|
|
50
|
+
|
|
51
|
+
Custom YAML-based policies follow Checkov's `custom_checks` schema:
|
|
52
|
+
```yaml
|
|
53
|
+
metadata:
|
|
54
|
+
name: "Require encryption at rest for all RDS instances"
|
|
55
|
+
id: "CKV2_CUSTOM_001"
|
|
56
|
+
category: "ENCRYPTION"
|
|
57
|
+
severity: "HIGH"
|
|
58
|
+
definition:
|
|
59
|
+
and:
|
|
60
|
+
- cond_type: attribute
|
|
61
|
+
resource_types:
|
|
62
|
+
- aws_db_instance
|
|
63
|
+
attribute: storage_encrypted
|
|
64
|
+
operator: equals
|
|
65
|
+
value: "true"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Environment Variables**:
|
|
69
|
+
- `BC_API_KEY`: Bridgecrew/Prisma Cloud API key for enhanced policy sets and SaaS reporting
|
|
70
|
+
- `CHECKOV_RUNNER_MAX_WORKERS`: Parallelism control for large IaC repositories
|
|
71
|
+
- `CHECKOV_EXPERIMENTAL_TERRAFORM_MANAGED_MODULES`: Enable module resolution in experimental mode
|
|
72
|
+
|
|
73
|
+
## Execution
|
|
74
|
+
|
|
75
|
+
### Installation Options
|
|
76
|
+
|
|
77
|
+
**1. pip** (recommended for scripted environments):
|
|
78
|
+
```bash
|
|
79
|
+
pip install checkov
|
|
80
|
+
# Or for a specific version:
|
|
81
|
+
pip install checkov==3.2.158
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**2. Homebrew** (macOS/Linux):
|
|
85
|
+
```bash
|
|
86
|
+
brew install checkov
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**3. Docker** (recommended for CI/CD and consistency):
|
|
90
|
+
```bash
|
|
91
|
+
docker pull bridgecrew/checkov:latest
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**4. pipx** (isolated install, avoids dependency conflicts):
|
|
95
|
+
```bash
|
|
96
|
+
pipx install checkov
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Primary Execution Commands
|
|
100
|
+
|
|
101
|
+
**Full IaC Scan — Filesystem** (Radar primary use case):
|
|
102
|
+
```bash
|
|
103
|
+
checkov --directory {target_path} \
|
|
104
|
+
--framework terraform,cloudformation,kubernetes,dockerfile,helm \
|
|
105
|
+
--output json \
|
|
106
|
+
--output-file-path {output_dir}/checkov-results.json \
|
|
107
|
+
--compact \
|
|
108
|
+
--soft-fail
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Docker Variant**:
|
|
112
|
+
```bash
|
|
113
|
+
docker run --rm \
|
|
114
|
+
-v {target_path}:/target \
|
|
115
|
+
-v {output_dir}:/output \
|
|
116
|
+
bridgecrew/checkov:latest \
|
|
117
|
+
--directory /target \
|
|
118
|
+
--framework terraform,cloudformation,kubernetes,dockerfile,helm \
|
|
119
|
+
--output json \
|
|
120
|
+
--output-file-path /output/checkov-results.json \
|
|
121
|
+
--compact \
|
|
122
|
+
--soft-fail
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Single File Scan**:
|
|
126
|
+
```bash
|
|
127
|
+
checkov --file {target_path}/main.tf \
|
|
128
|
+
--framework terraform \
|
|
129
|
+
--output json \
|
|
130
|
+
--output-file-path {output_dir}/checkov-results.json
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Terraform Plan Scan** (post-`terraform plan`, catches computed values):
|
|
134
|
+
```bash
|
|
135
|
+
terraform plan -out=tfplan.binary && terraform show -json tfplan.binary > tfplan.json
|
|
136
|
+
checkov --file tfplan.json \
|
|
137
|
+
--framework terraform_plan \
|
|
138
|
+
--output json \
|
|
139
|
+
--output-file-path {output_dir}/checkov-tfplan-results.json
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Execution Parameters
|
|
143
|
+
|
|
144
|
+
| Parameter | Purpose | Values | Default |
|
|
145
|
+
|-----------|---------|--------|---------|
|
|
146
|
+
| `--directory` / `-d` | Target directory to scan | directory path | current dir |
|
|
147
|
+
| `--file` / `-f` | Single file to scan | file path | — |
|
|
148
|
+
| `--framework` | Limit to specific frameworks | terraform, cloudformation, kubernetes, dockerfile, helm, arm, terraform_plan, all | all |
|
|
149
|
+
| `--output` / `-o` | Output format | cli, json, junitxml, github_failed_only, sarif | cli |
|
|
150
|
+
| `--output-file-path` | Write output to file | file path | stdout |
|
|
151
|
+
| `--skip-check` | Comma-separated check IDs to suppress | CKV_AWS_*, CKV_K8S_*, etc. | none |
|
|
152
|
+
| `--check` | Run only specified check IDs | CKV_AWS_*, CKV_K8S_*, etc. | all enabled |
|
|
153
|
+
| `--compact` | Omit passed checks from output | boolean | false |
|
|
154
|
+
| `--soft-fail` | Return exit 0 even on failures | boolean | false |
|
|
155
|
+
| `--external-checks-dir` | Custom policy directory | directory path | none |
|
|
156
|
+
| `--check-threshold` | Minimum severity to report | LOW, MEDIUM, HIGH, CRITICAL | LOW |
|
|
157
|
+
| `--create-baseline` | Snapshot current state as baseline | boolean | false |
|
|
158
|
+
| `--baseline` | Compare against saved baseline file | file path | none |
|
|
159
|
+
| `--download-external-modules` | Resolve Terraform registry modules | boolean | false |
|
|
160
|
+
|
|
161
|
+
### Runtime Characteristics
|
|
162
|
+
|
|
163
|
+
- **Terraform/CloudFormation scans**: 5–30 seconds for typical project sizes (< 200 resources)
|
|
164
|
+
- **Kubernetes manifests**: 2–10 seconds per cluster manifest directory
|
|
165
|
+
- **Dockerfile scans**: Near-instant (< 2 seconds per file)
|
|
166
|
+
- **Large monorepos**: 1–3 minutes for repositories with thousands of IaC files
|
|
167
|
+
- **Terraform Plan scans**: Slightly slower than static HCL scans due to JSON plan size
|
|
168
|
+
- **Resource Usage**: Low CPU, negligible memory; no network required after install
|
|
169
|
+
- **Offline Operation**: Fully offline; no cloud credentials or external API calls required for built-in checks
|
|
170
|
+
- **Failure Modes**: Returns exit code 1 when checks fail (use `--soft-fail` for non-blocking CI integration); exits with error on parse failures for malformed IaC files
|
|
171
|
+
|
|
172
|
+
## Output Format
|
|
173
|
+
|
|
174
|
+
Checkov produces structured JSON with a results object split into `passed_checks` and `failed_checks`. Radar normalization processes only `failed_checks`.
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"check_type": "terraform",
|
|
179
|
+
"results": {
|
|
180
|
+
"passed_checks": [
|
|
181
|
+
{
|
|
182
|
+
"check_id": "CKV_AWS_18",
|
|
183
|
+
"bc_check_id": "BC_AWS_LOGGING_3",
|
|
184
|
+
"check_name": "Ensure the S3 bucket has access logging enabled",
|
|
185
|
+
"check_result": {
|
|
186
|
+
"result": "passed",
|
|
187
|
+
"evaluated_keys": ["logging/[0]/target_bucket"]
|
|
188
|
+
},
|
|
189
|
+
"file_path": "/terraform/modules/storage/main.tf",
|
|
190
|
+
"file_abs_path": "/home/runner/project/terraform/modules/storage/main.tf",
|
|
191
|
+
"repo_file_path": "/terraform/modules/storage/main.tf",
|
|
192
|
+
"file_line_range": [12, 28],
|
|
193
|
+
"resource": "aws_s3_bucket.audit_logs",
|
|
194
|
+
"evaluations": null,
|
|
195
|
+
"check_class": "checkov.terraform.checks.resource.aws.S3AccessLogs",
|
|
196
|
+
"fixed_definition": null,
|
|
197
|
+
"entity_tags": {
|
|
198
|
+
"Environment": "production",
|
|
199
|
+
"Team": "platform"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"failed_checks": [
|
|
204
|
+
{
|
|
205
|
+
"check_id": "CKV_AWS_19",
|
|
206
|
+
"bc_check_id": "BC_AWS_S3_14",
|
|
207
|
+
"check_name": "Ensure all data stored in the S3 bucket is securely encrypted at rest",
|
|
208
|
+
"check_result": {
|
|
209
|
+
"result": "failed",
|
|
210
|
+
"evaluated_keys": ["server_side_encryption_configuration/[0]/rule/[0]/apply_server_side_encryption_by_default/[0]/sse_algorithm"]
|
|
211
|
+
},
|
|
212
|
+
"file_path": "/terraform/modules/storage/main.tf",
|
|
213
|
+
"file_abs_path": "/home/runner/project/terraform/modules/storage/main.tf",
|
|
214
|
+
"repo_file_path": "/terraform/modules/storage/main.tf",
|
|
215
|
+
"file_line_range": [42, 67],
|
|
216
|
+
"resource": "aws_s3_bucket.application_data",
|
|
217
|
+
"evaluations": null,
|
|
218
|
+
"check_class": "checkov.terraform.checks.resource.aws.S3Encryption",
|
|
219
|
+
"fixed_definition": null,
|
|
220
|
+
"entity_tags": {
|
|
221
|
+
"Environment": "production",
|
|
222
|
+
"Team": "backend"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"check_id": "CKV_AWS_86",
|
|
227
|
+
"bc_check_id": "BC_AWS_S3_52",
|
|
228
|
+
"check_name": "Ensure S3 bucket has a lifecycle configuration",
|
|
229
|
+
"check_result": {
|
|
230
|
+
"result": "failed",
|
|
231
|
+
"evaluated_keys": ["lifecycle_rule"]
|
|
232
|
+
},
|
|
233
|
+
"file_path": "/terraform/modules/storage/main.tf",
|
|
234
|
+
"file_abs_path": "/home/runner/project/terraform/modules/storage/main.tf",
|
|
235
|
+
"repo_file_path": "/terraform/modules/storage/main.tf",
|
|
236
|
+
"file_line_range": [42, 67],
|
|
237
|
+
"resource": "aws_s3_bucket.application_data",
|
|
238
|
+
"evaluations": null,
|
|
239
|
+
"check_class": "checkov.terraform.checks.resource.aws.S3LifecycleConfiguration",
|
|
240
|
+
"fixed_definition": null,
|
|
241
|
+
"entity_tags": {
|
|
242
|
+
"Environment": "production",
|
|
243
|
+
"Team": "backend"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"check_id": "CKV_K8S_28",
|
|
248
|
+
"bc_check_id": "BC_K8S_27",
|
|
249
|
+
"check_name": "Minimize the admission of containers with added capability",
|
|
250
|
+
"check_result": {
|
|
251
|
+
"result": "failed",
|
|
252
|
+
"evaluated_keys": ["spec/[0]/containers/[0]/securityContext/[0]/capabilities/[0]/add"]
|
|
253
|
+
},
|
|
254
|
+
"file_path": "/kubernetes/deployments/api-server.yaml",
|
|
255
|
+
"file_abs_path": "/home/runner/project/kubernetes/deployments/api-server.yaml",
|
|
256
|
+
"repo_file_path": "/kubernetes/deployments/api-server.yaml",
|
|
257
|
+
"file_line_range": [33, 58],
|
|
258
|
+
"resource": "Deployment.default.api-server",
|
|
259
|
+
"evaluations": null,
|
|
260
|
+
"check_class": "checkov.kubernetes.checks.resource.k8s.Capabilities",
|
|
261
|
+
"fixed_definition": null,
|
|
262
|
+
"entity_tags": {}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"check_id": "CKV_DOCKER_2",
|
|
266
|
+
"bc_check_id": "BC_DKR_2",
|
|
267
|
+
"check_name": "Ensure that HEALTHCHECK instructions have been added to the container image",
|
|
268
|
+
"check_result": {
|
|
269
|
+
"result": "failed",
|
|
270
|
+
"evaluated_keys": ["HEALTHCHECK"]
|
|
271
|
+
},
|
|
272
|
+
"file_path": "/services/api/Dockerfile",
|
|
273
|
+
"file_abs_path": "/home/runner/project/services/api/Dockerfile",
|
|
274
|
+
"repo_file_path": "/services/api/Dockerfile",
|
|
275
|
+
"file_line_range": [1, 24],
|
|
276
|
+
"resource": "Dockerfile",
|
|
277
|
+
"evaluations": null,
|
|
278
|
+
"check_class": "checkov.dockerfile.checks.HealthcheckExists",
|
|
279
|
+
"fixed_definition": null,
|
|
280
|
+
"entity_tags": {}
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"check_id": "CKV_AWS_111",
|
|
284
|
+
"bc_check_id": "BC_AWS_IAM_56",
|
|
285
|
+
"check_name": "Ensure IAM policies does not have statements with admin permissions",
|
|
286
|
+
"check_result": {
|
|
287
|
+
"result": "failed",
|
|
288
|
+
"evaluated_keys": ["statement/[0]/action", "statement/[0]/resource"]
|
|
289
|
+
},
|
|
290
|
+
"file_path": "/terraform/iam/policies.tf",
|
|
291
|
+
"file_abs_path": "/home/runner/project/terraform/iam/policies.tf",
|
|
292
|
+
"repo_file_path": "/terraform/iam/policies.tf",
|
|
293
|
+
"file_line_range": [88, 107],
|
|
294
|
+
"resource": "aws_iam_policy.deployment_role_policy",
|
|
295
|
+
"evaluations": null,
|
|
296
|
+
"check_class": "checkov.terraform.checks.resource.aws.IAMAdminPolicyDocument",
|
|
297
|
+
"fixed_definition": null,
|
|
298
|
+
"entity_tags": {
|
|
299
|
+
"Environment": "production",
|
|
300
|
+
"ManagedBy": "terraform"
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"skipped_checks": [
|
|
305
|
+
{
|
|
306
|
+
"check_id": "CKV_AWS_20",
|
|
307
|
+
"check_name": "Ensure the S3 bucket does not have MFA delete disabled",
|
|
308
|
+
"check_result": {
|
|
309
|
+
"result": "skipped",
|
|
310
|
+
"suppress_comment": "S3 public access acceptable for static site hosting bucket"
|
|
311
|
+
},
|
|
312
|
+
"file_path": "/terraform/modules/cdn/main.tf",
|
|
313
|
+
"file_abs_path": "/home/runner/project/terraform/modules/cdn/main.tf",
|
|
314
|
+
"repo_file_path": "/terraform/modules/cdn/main.tf",
|
|
315
|
+
"file_line_range": [5, 19],
|
|
316
|
+
"resource": "aws_s3_bucket.static_assets"
|
|
317
|
+
}
|
|
318
|
+
],
|
|
319
|
+
"parsing_errors": []
|
|
320
|
+
},
|
|
321
|
+
"summary": {
|
|
322
|
+
"passed": 47,
|
|
323
|
+
"failed": 5,
|
|
324
|
+
"skipped": 1,
|
|
325
|
+
"parsing_error": 0,
|
|
326
|
+
"resource_count": 38,
|
|
327
|
+
"checkov_version": "3.2.158"
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Key Output Fields**:
|
|
333
|
+
- `check_type`: IaC framework evaluated (terraform, cloudformation, kubernetes, dockerfile, helm, arm)
|
|
334
|
+
- `results.failed_checks[]`: Checks that did not pass — these become Radar signals
|
|
335
|
+
- `results.passed_checks[]`: Checks that passed — informational only, not normalized as signals
|
|
336
|
+
- `results.skipped_checks[]`: Explicitly suppressed checks — audit trail only
|
|
337
|
+
- `check_id`: Checkov-native check identifier (CKV_AWS_*, CKV_K8S_*, CKV_DOCKER_*, etc.)
|
|
338
|
+
- `bc_check_id`: Bridgecrew SaaS platform check identifier (present even in open-source runs)
|
|
339
|
+
- `check_name`: Human-readable description of what the policy checks
|
|
340
|
+
- `check_result.result`: "passed", "failed", or "skipped"
|
|
341
|
+
- `check_result.evaluated_keys`: Specific attribute path(s) that determined the result
|
|
342
|
+
- `file_path`: Relative path to the IaC file containing the resource
|
|
343
|
+
- `file_line_range`: Line numbers bounding the resource block in the file
|
|
344
|
+
- `resource`: Terraform resource address or Kubernetes resource identifier
|
|
345
|
+
- `entity_tags`: Tags applied to the IaC resource (useful for blast radius scoping)
|
|
346
|
+
- `summary.checkov_version`: Version used, relevant for policy coverage differences
|
|
347
|
+
|
|
348
|
+
## Normalization
|
|
349
|
+
|
|
350
|
+
Checkov raw output requires normalization to Radar signal format. Only `failed_checks` entries are normalized — `passed_checks` and `skipped_checks` are not converted to signals.
|
|
351
|
+
|
|
352
|
+
| Checkov Field | Radar Signal Field | Transformation Logic |
|
|
353
|
+
|---------------|-------------------|----------------------|
|
|
354
|
+
| Auto-generated | `signal_id` | Pattern: `S-CHK-{NNN}` (sequential per scan run) |
|
|
355
|
+
| Fixed value | `source_tool` | Always "checkov" |
|
|
356
|
+
| `check_id` | `source_rule` | Direct mapping (e.g., CKV_AWS_19) |
|
|
357
|
+
| `check_name` | `title` | Direct mapping |
|
|
358
|
+
| `file_path` + `resource` | `file_path` | Combine: `{file_path}:{resource}` (e.g., "/terraform/modules/storage/main.tf:aws_s3_bucket.application_data") |
|
|
359
|
+
| `file_line_range` | `line_range` | Direct mapping as `[start, end]` tuple |
|
|
360
|
+
| `check_result.evaluated_keys` | `context` | Enriched: "Policy {check_id} evaluated attribute(s): {evaluated_keys}" |
|
|
361
|
+
| Derived from `check_id` category | `severity` | Category-based derivation — see rules below |
|
|
362
|
+
| Fixed value | `confidence_estimate` | Always "high" — IaC checks are deterministic pattern matching |
|
|
363
|
+
| Derived from resource scope | `blast_radius` | Infrastructure-wide resource types→widespread, single-resource→localized |
|
|
364
|
+
| Derived from `check_id` category | `domain_relevance` | Most→["04"], compliance-relevant checks→["04","05"] |
|
|
365
|
+
| `entity_tags` | Signal metadata | Attach as `resource_tags` metadata field for agent scoping |
|
|
366
|
+
|
|
367
|
+
### Normalization Rules
|
|
368
|
+
|
|
369
|
+
**Severity Derivation** (Checkov does not emit severity natively; derive from check category):
|
|
370
|
+
|
|
371
|
+
Checkov check IDs encode the provider and category in their naming. Map as follows:
|
|
372
|
+
|
|
373
|
+
- Encryption checks (`CKV_AWS_19`, `CKV_AWS_3`, `CKV_AWS_95`, and similar SSE/KMS checks) → `severity: "high"`
|
|
374
|
+
- Access control / IAM checks (`CKV_AWS_111`, `CKV_AWS_40`, `CKV_K8S_155`) → `severity: "high"`
|
|
375
|
+
- Network exposure checks (`CKV_AWS_24`, `CKV_AWS_25`, `CKV_AWS_260`) → `severity: "high"`
|
|
376
|
+
- Kubernetes privilege / capability checks (`CKV_K8S_16`, `CKV_K8S_28`, `CKV_K8S_6`) → `severity: "high"`
|
|
377
|
+
- Logging and audit checks (`CKV_AWS_18`, `CKV_AWS_50`, `CKV_GCP_26`) → `severity: "medium"`
|
|
378
|
+
- Monitoring and alerting checks (`CKV_AWS_67`, `CKV_AWS_80`) → `severity: "medium"`
|
|
379
|
+
- Backup and lifecycle checks (`CKV_AWS_86`, `CKV_AWS_96`) → `severity: "medium"`
|
|
380
|
+
- Container best practice checks (`CKV_DOCKER_2`, `CKV_DOCKER_7`) → `severity: "medium"`
|
|
381
|
+
- Tagging / metadata checks (`CKV_AWS_6`, org-specific tagging policies) → `severity: "low"`
|
|
382
|
+
- Informational / hygiene checks (descriptions, comments, formatting) → `severity: "informational"`
|
|
383
|
+
|
|
384
|
+
When a check does not clearly fit a category above, cross-reference `bc_check_id` prefix against Bridgecrew category taxonomy or default to `severity: "medium"`.
|
|
385
|
+
|
|
386
|
+
**Confidence Estimation**:
|
|
387
|
+
|
|
388
|
+
IaC checks are deterministic — they match attribute presence or value against a static rule. There is no probabilistic component.
|
|
389
|
+
- Default → `confidence_estimate: "high"` for all Checkov signals
|
|
390
|
+
- Exception: Checks that evaluate computed/interpolated values in Terraform (`evaluations` field non-null) → `confidence_estimate: "medium"` because the value may differ at apply time from the plan-time placeholder
|
|
391
|
+
|
|
392
|
+
**Blast Radius Derivation**:
|
|
393
|
+
|
|
394
|
+
Derive from the resource type and scope encoded in the `resource` field:
|
|
395
|
+
- IAM policies, shared VPC/network resources, global S3 buckets, RDS cluster-level settings → `blast_radius: "widespread"` (misconfiguration affects all consumers of the shared resource)
|
|
396
|
+
- Individual EC2 instance, single Lambda function, single Pod/Deployment → `blast_radius: "localized"` (misconfiguration is contained to that resource)
|
|
397
|
+
- Security groups, CloudWatch log groups, shared tagging policies → `blast_radius: "moderate"` (affects resources that reference the shared construct)
|
|
398
|
+
- Kubernetes Namespace or ClusterRole level → `blast_radius: "widespread"`
|
|
399
|
+
- Kubernetes Pod or Deployment level → `blast_radius: "localized"`
|
|
400
|
+
|
|
401
|
+
**Domain Relevance Assignment**:
|
|
402
|
+
- Default for infrastructure checks → `domain_relevance: ["04"]` (Security domain)
|
|
403
|
+
- Encryption-at-rest and in-transit checks → `domain_relevance: ["04", "05"]` (encryption controls are compliance-mapped)
|
|
404
|
+
- Access logging and audit trail checks → `domain_relevance: ["04", "05"]` (logging is a compliance requirement)
|
|
405
|
+
- IAM least-privilege checks → `domain_relevance: ["04", "05"]` (access control is compliance-relevant)
|
|
406
|
+
- Public exposure / network ACL checks → `domain_relevance: ["04"]`
|
|
407
|
+
- Container HEALTHCHECK and operational hygiene → `domain_relevance: ["04"]`
|
|
408
|
+
- Tagging / cost allocation checks → `domain_relevance: ["04"]`
|
|
409
|
+
|
|
410
|
+
**Deduplication Strategy**:
|
|
411
|
+
- Same `check_id` on the same `resource` in the same `file_path` across multiple scan invocations → Single signal, do not duplicate
|
|
412
|
+
- Deduplication key: `{check_id}:{file_path}:{resource}`
|
|
413
|
+
- If the same logical resource appears in both a `.tf` file and a corresponding `terraform_plan` scan, prefer the plan-based signal (more accurate for computed values) and discard the static HCL signal
|
|
414
|
+
|
|
415
|
+
**Special Cases**:
|
|
416
|
+
- `parsing_errors` entries → Do not normalize as signals; emit a tool-level diagnostic event so agents know coverage is incomplete for the affected files
|
|
417
|
+
- `skipped_checks` entries → Do not normalize as signals; preserve the `suppress_comment` in an audit log for compliance review
|
|
418
|
+
- Multi-framework scans → Signals from different frameworks (e.g., both terraform and kubernetes) are pooled in the same signal set; `source_rule` prefix distinguishes them (CKV_AWS_* vs CKV_K8S_* vs CKV_DOCKER_*)
|
|
419
|
+
- Checks with `file_line_range: [1, N]` where N equals the total file length → Resource could not be pinpointed; set `file_path` to the file path only without resource suffix
|
|
420
|
+
|
|
421
|
+
## Limitations
|
|
422
|
+
|
|
423
|
+
### Cannot Detect
|
|
424
|
+
|
|
425
|
+
1. **Runtime Misconfiguration Drift**: Checkov evaluates IaC source files or plans. If infrastructure has been manually modified after deployment (configuration drift), those changes are invisible. A resource that passed all checks at plan time may be misconfigured in production.
|
|
426
|
+
|
|
427
|
+
2. **Secrets in Environment Variables at Runtime**: While Checkov can flag hardcoded secrets in IaC files, it cannot detect secrets injected at runtime via CI/CD environment variables, secret manager lookups, or `user_data` scripts that reference external values.
|
|
428
|
+
|
|
429
|
+
3. **Transitive Module Misconfiguration**: When Terraform modules are sourced from external registries (Terraform Registry, GitHub), Checkov requires `--download-external-modules` to analyze them. Without it, module contents are not evaluated and misconfigurations inside modules are silent.
|
|
430
|
+
|
|
431
|
+
4. **Computed / Dynamic Values**: Terraform resources with attribute values determined by data sources, locals, or `for_each` expressions may evaluate to placeholder values at static analysis time. The actual deployed value may differ — especially for conditional expressions and dynamic blocks.
|
|
432
|
+
|
|
433
|
+
5. **Application-Layer Security**: Checkov operates on infrastructure definitions. It cannot detect vulnerabilities in application code deployed onto the infrastructure — SQL injection, XSS, insecure API design, or misconfigured application-layer security controls are out of scope.
|
|
434
|
+
|
|
435
|
+
6. **Live Cloud State Validation**: Checkov does not connect to cloud provider APIs. It cannot verify whether an IaC resource accurately reflects what is deployed, nor can it check cloud-native settings that are not representable in IaC (e.g., service control policies applied at the AWS Organization level).
|
|
436
|
+
|
|
437
|
+
7. **Policy Compliance Gaps Between Frameworks**: A check that exists for Terraform may not have an equivalent for CloudFormation or ARM. Cross-framework coverage is not symmetric — infrastructure expressed in different frameworks may receive different check coverage for the same security concern.
|
|
438
|
+
|
|
439
|
+
### Known False Positives
|
|
440
|
+
|
|
441
|
+
1. **Terraformed Resources With Defaults Enforced Elsewhere**: Some organizations enforce encryption, tagging, or logging through AWS Service Control Policies, CloudFormation StackSets, or organization-level defaults. Checkov flags the IaC resource for not explicitly declaring these controls even though they are enforced at a higher layer.
|
|
442
|
+
|
|
443
|
+
2. **Dev/Test Environment Resources**: Checkov applies the same policy set to production and non-production IaC without environment context. Resources intentionally configured with relaxed security for development (e.g., publicly accessible test databases, open security groups for local testing) are flagged at the same severity as production equivalents.
|
|
444
|
+
|
|
445
|
+
3. **Legacy Resource Definitions Not Yet Migrated**: Large IaC repositories often contain older resource definitions written before specific check policies were introduced. These are flagged as violations even though the resource may be scheduled for migration or retirement, or may represent accepted technical debt with a remediation plan.
|
|
446
|
+
|
|
447
|
+
4. **Helm Chart Default Values**: Kubernetes Helm chart scans evaluate `values.yaml` defaults, which are frequently intentionally permissive (designed to be overridden by operators at install time). Checkov may flag default permissive values as violations even though the chart's documentation specifies that production deployments override them.
|
|
448
|
+
|
|
449
|
+
5. **Checkov Version Sensitivity**: Policy definitions and evaluation logic change between Checkov releases. A check that passes on one version may fail on a newer version due to expanded scope or stricter evaluation, producing apparent regressions that are artifacts of the tool update rather than genuine new misconfigurations.
|
|
450
|
+
|
|
451
|
+
### Known False Negatives
|
|
452
|
+
|
|
453
|
+
1. **Inline Policy Documents as JSON Strings**: Terraform `aws_iam_policy_document` data sources written as raw JSON heredoc strings instead of using the structured `aws_iam_policy_document` Terraform resource are not parsed by IAM-specific checks. The IAM policy content is invisible to Checkov and goes unchecked.
|
|
454
|
+
|
|
455
|
+
2. **Kubernetes Resources Created by Helm at Runtime**: Helm charts that generate Kubernetes resources dynamically via templating (`{{ if }}`, `{{ range }}`) may produce resource definitions not representable in static YAML. Checkov evaluates the template source, not the rendered output, and may miss security issues that only appear in specific rendering contexts.
|
|
456
|
+
|
|
457
|
+
3. **Terraform Modules From Private Registries Without Download**: When `--download-external-modules` is not set (the default for performance and reproducibility), all resources defined inside external modules are skipped. Modules from private registries are always skipped regardless of the flag.
|
|
458
|
+
|
|
459
|
+
4. **CloudFormation Macros and Custom Resources**: CloudFormation templates using macros (`AWS::CloudFormation::Transform`, `AWS::Include`) or custom resources (`AWS::CloudFormation::CustomResource`) have their logic resolved only at deploy time. Checkov evaluates the pre-transform template and cannot check security properties that are determined by macro expansion.
|
|
460
|
+
|
|
461
|
+
5. **Misconfiguration Requiring Cross-Resource Context**: Some misconfigurations only exist when two resources interact incorrectly — for example, an S3 bucket policy that grants access to an overly permissive IAM role, or a security group that allows wide ingress combined with an EC2 instance that has a public IP. Checkov evaluates resources in isolation and cannot detect cross-resource relationship vulnerabilities.
|
|
462
|
+
|
|
463
|
+
6. **ARM Template Nested Deployments**: Azure ARM templates using `Microsoft.Resources/deployments` (nested or linked deployments) may reference external template URIs or define child resources with scoped permissions. Checkov does not follow external URI references and may miss misconfigurations in linked templates.
|