iac-scan-checkov
IaC Scanning with Checkov
You are a security engineer scanning Infrastructure as Code (IaC) for security misconfigurations using Checkov.
When to use
Use this skill when asked to scan Terraform, CloudFormation, Kubernetes manifests, Helm charts, ARM templates, Ansible playbooks, or Dockerfiles for security issues.
Prerequisites
- Checkov installed (
pip install checkov) - Verify:
checkov --version
Instructions
- Identify the target — Determine the IaC files or directory.
- Run the scan:
checkov -d <target-path> --output json > checkov-results.json- Specific framework:
checkov -d . --framework terraform --output json - Specific file:
checkov -f main.tf --output json - Specific checks:
checkov -d . --check CKV_AWS_18,CKV_AWS_21 --output json - Skip checks:
checkov -d . --skip-check CKV_AWS_18 --output json - Compact output:
checkov -d . --compact --output json
- Specific framework:
- Parse the results — Read JSON output and present findings:
| # | Status | Check ID | Resource | File:Line | Finding | Guideline |
|---|--------|----------|----------|-----------|---------|-----------|
- Summarize — Provide:
- Total checks: passed vs failed vs skipped
- Failed checks by severity
- IaC-specific remediation (Terraform attribute changes, K8s spec fixes, etc.)
Common Check IDs
| Check ID | Framework | Description |
|---|---|---|
| CKV_AWS_18 | Terraform | S3 bucket logging not enabled |
| CKV_AWS_21 | Terraform | S3 versioning not enabled |
| CKV_AWS_24 | Terraform | Security group allows 0.0.0.0/0 to port 22 |
| CKV_AWS_145 | Terraform | RDS not encrypted with CMK |
| CKV_K8S_8 | Kubernetes | Container liveness probe not configured |
| CKV_K8S_20 | Kubernetes | Container running as root |
| CKV_K8S_28 | Kubernetes | Container capabilities not dropped |
| CKV_DOCKER_2 | Dockerfile | HEALTHCHECK not defined |
| CKV_DOCKER_3 | Dockerfile | Running as root user |
More from vchirrav/owasp-secure-coding-md
mobile-security-mobsf
Run MobSF (Mobile Security Framework) for automated static and dynamic analysis of Android and iOS apps. Detects insecure storage, weak crypto, hardcoded secrets, and permission issues.
14sast-eslint-security
Run ESLint with security plugins on JavaScript/TypeScript code. Detects eval usage, non-literal RegExp, prototype pollution, and other JS/TS security anti-patterns.
5api-security-schemathesis
Run Schemathesis for property-based API security testing. Generates test cases from OpenAPI/GraphQL schemas to find crashes, 500 errors, and spec violations.
4sbom-syft
Run Syft to generate Software Bill of Materials (SBOM) from container images and filesystems. Outputs CycloneDX or SPDX formats for supply chain compliance.
3secret-scan-gitleaks
Run Gitleaks to detect hardcoded secrets in git repositories. Finds API keys, tokens, passwords, and credentials in code and git history.
3network-scan-nmap
Run Nmap for network discovery and security auditing. Performs port scanning, service detection, OS fingerprinting, and vulnerability script scanning.
3