checkov is a free, open source compliance & risk management project written in Python and released under Apache-2.0. It has 9,010 GitHub stars, 1,412 forks and 170 open issues, and was last pushed 9 hours ago. On this registry it ranks #8 of 45 tracked projects in Compliance & Risk Management, with 5 head-to-head comparisons available. It gained 9 stars over the last 3 tracked days.

What is checkov?

Checkov is an open-source static code analysis and software composition analysis tool that scans infrastructure as code, container images and open source packages for security and compliance misconfigurations during the build, and it is aimed at developers, DevOps engineers and security teams who want those checks to run before anything is deployed to AWS, Azure or Google Cloud.

What it is

Checkov is a Python static analysis tool for infrastructure as code, published under the Apache-2.0 licence and maintained by Prisma Cloud under the bridgecrewio organisation. It reads the declarative files that define cloud infrastructure and evaluates them against security and compliance best practices. It also acts as a software composition analysis (SCA) tool, scanning container images and open source packages for Common Vulnerabilities and Exposures (CVEs). It is the analysis engine that powers Prisma Cloud Application Security, so the same checks run behind the commercial platform and in the open-source command line tool.

The problem it solves is timing. Misconfigurations in the infrastructure ecosystem are normally caught after deployment, when the resources already exist in an AWS, Azure or GCP account and the cost of correcting them includes an incident, an audit finding or a rewrite of Terraform state. Checkov moves that detection into the build pipeline, where a failing scan blocks a pull request or a deploy step instead of surfacing in a console. It covers the whole declaration surface a team actually writes, from Terraform and Terraform plan through OpenTofu, CloudFormation, AWS SAM, ARM Templates, Bicep, Kubernetes manifests, Helm charts, Kustomize overlays, Serverless framework output, Dockerfiles and OpenAPI definitions, using graph-based scanning rather than file-by-file pattern matching.

Key capabilities

  • Scans Terraform (version 0.12.0 and above), Terraform plan output and OpenTofu, alongside CloudFormation, AWS SAM and Azure ARM Templates and Bicep.
  • Scans Kubernetes manifests, Helm charts, Kustomize builds, Serverless framework definitions, Dockerfiles and OpenAPI specifications in the same run.
  • Ships with over 1000 built-in policies covering security and compliance best practices for AWS, Azure and Google Cloud.
  • Performs Software Composition Analysis (SCA) over open source packages and container images to report known CVEs.
  • Detects misconfigurations using graph-based scanning, which follows relationships between resources rather than reading each file in isolation.
  • Runs as a command-line tool distributed on PyPI as checkov and as the bridgecrew/checkov Docker image, so it drops into CI without a Python toolchain on the host.
  • Feeds the same checks into Prisma Cloud Application Security, the developer-first platform that codifies cloud security across the development lifecycle.

Who uses it and how

  • CI pipelines use it as a gate: the repository itself runs build and security GitHub Actions workflows, and the same pattern applies to any pull request that touches infrastructure files.
  • Teams run the bridgecrew/checkov Docker image in build systems where installing Python packages is undesirable or impossible.
  • Multi-cloud platform teams scan Terraform, CloudFormation, ARM Templates and Kubernetes manifests in one command rather than maintaining a separate linter per provider.
  • Security teams fold container image and dependency CVE scanning into the same pipeline stage that checks infrastructure, instead of running two products.
  • Organisations that want a hosted dashboard, policy management and organisation-wide reporting adopt Prisma Cloud Application Security, which Checkov powers underneath.

Getting started

Install from PyPI with the checkov package, or pull and run the bridgecrew/checkov Docker image. Documentation, including the policy index and per-framework scan examples, lives at https://www.checkov.io/.

How it compares

No list of paid products that Checkov replaces is given in the available facts, and no competing open-source scanner is named there either, so on the evidence provided it stands alone in this registry. The one commercial relationship the facts do describe is a supportive one: Checkov powers Prisma Cloud Application Security rather than competing with it, which means the open-source tool and the hosted platform share an engine and an organisation.

When to use it — and when not to

Checkov runs as a command-line scan over files and images, so there is no database, object store or mail server for a self-hoster to operate; the operational burden is the CI job itself and the discipline of acting on findings. It is a poor fit for teams that do not keep their infrastructure in code, for anyone wanting a hosted interface with organisational reporting and no pipeline integration, and for detection of drift or runtime state, because its analysis happens at build time against declared configuration rather than against live cloud resources. Teams that need a managed service with dashboards should look at Prisma Cloud Application Security, which is the commercial route to the same scanning engine.

project readme (upstream, from github) — read inline

checkov

Maintained by Prisma Cloud build status security status code_coverage docs PyPI Python Version Terraform Version Downloads Docker Pulls slack-community

Checkov is a static code analysis tool for infrastructure as code (IaC) and also a software composition analysis (SCA) tool for images and open source packages.

It scans cloud infrastructure provisioned using Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Templates, or OpenTofu and detects security and compliance misconfigurations using graph-based scanning.

It performs Software Composition Analysis (SCA) scanning which is a scan of open source packages and images for Common Vulnerabilities and Exposures (CVEs).

Checkov also powers Prisma Cloud Application Security, the developer-first platform that codifies and streamlines cloud security throughout the development lifecycle. Prisma Cloud identifies, fixes, and prevents misconfigurations in cloud resources and infrastructure-as-code files.

Table of contents

Features

  • Over 1000 built-in policies cover security and compliance best practices for AWS, Azure and Google Cloud.
  • Scans Terraform, Terraform Plan, Terraform JSON, CloudFormation, AWS SAM, Kubernetes, Helm, Kustomize, Dockerfile, Serverless framework, Ansible, Bicep, ARM, and OpenTofu template files.
  • Scans Argo Workflows, Azure Pipelines, BitBucket Pipelines, Circle CI Pipelines, GitHub Actions and GitLab CI workflow files
  • Supports Context-awareness policies based on in-memory graph-based scanning.
  • Supports Python format for attribute policies and YAML format for both attribute and composite policies.
  • Detects AWS credentials in EC2 Userdata, Lambda environment variables and Terraform providers.
  • Identifies secrets using regular expressions, keywords, and entropy based detection.
  • Evaluates Terraform Provider settings to regulate the creation, management, and updates of IaaS, PaaS or SaaS managed through Terraform.
  • Policies support evaluation of variables to their optional default value.
  • Supports in-line suppression of accepted risks or false-positives to reduce recurring scan failures. Also supports global skip from using CLI.
  • Output currently available as CLI, CycloneDX, JSON, JUnit XML, CSV, SARIF and github markdown and link to remediation guides.

Screenshots

Scan results in CLI

scan-screenshot

Scheduled scan result in Jenkins

jenikins-screenshot

Getting started

Requirements

  • Python >= 3.9, = 0.12

Installation

To install pip follow the official docs

pip3 install checkov

Certain environments (e.g., Debian 12) may require you to install Checkov in a virtual environment

# Create and activate a virtual environment
python3 -m venv /path/to/venv/checkov
cd /path/to/venv/checkov
source ./bin/activate

# Install Checkov with pip
pip install checkov

# Optional: Create a symlink for easy access
sudo ln -s /path/to/venv/checkov/bin/checkov /usr/local/bin/checkov

or with Homebrew (macOS or Linux)

brew install checkov

Enabling bash autocomplete

source <(register-python-argcomplete checkov)

Upgrade

if you installed checkov with pip3

pip3 install -U checkov

or with Homebrew

brew upgrade checkov

Configure an input folder or file

checkov --directory /user/path/to/iac/code

Or a specific file or files

checkov --file /user/tf/example.tf

Or

checkov -f /user/cloudformation/example1.yml -f /user/cloudformation/example2.yml

Or a terraform plan file in json format

terraform init
terraform plan -out tf.plan
terraform show -json tf.plan  > tf.json
checkov -f tf.json

Note: terraform show output file tf.json will be a single line. For that reason all findings will be reported line number 0 by Checkov

check: CKV_AWS_21: "Ensure all data stored in the S3 bucket have versioning enabled"
	FAILED for resource: aws_s3_bucket.customer
	File: /tf/tf.json:0-0
	Guide: https://docs.prismacloud.io/en/enterprise-edition/policy-reference/aws-policies/s3-policies/s3-16-enable-versioning

If you have installed jq you can convert json file into multiple lines with the following command:

terraform show -json tf.plan | jq '.' > tf.json

Scan result would be much user friendly.

checkov 

readme truncated — read the full docs on github

Frequently asked questions

Is checkov free to use?

checkov is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does checkov do?

Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by

What is checkov written in?

checkov is primarily written in Python. Its source is publicly available at https://github.com/bridgecrewio/checkov, and it has 9,010 GitHub stars.