Pre-Beta Pre-beta signups are open now. The full audytx engine is live for pre-beta. Everything free today stays free — paid tiers arrive Sep 01, 2026 from $20/month for unlimited repositories.
← Notes
Field guide · July 19, 2026

Checkov vs Trivy in 2026: a field guide for Terraform teams

TL;DR: both are good, actively maintained tools, and they're solving different problems. Checkov has the widest IaC policy catalog in open source, backed by Prisma Cloud. Trivy bundles containers, images, SBOMs, and IaC into one binary, and now carries tfsec's engine. Decide on scope and you'll pick well. Whichever you land on, there are two things neither does: IAM attack-path reasoning and automatic false-positive suppression — the layer audytx was built to add.
Disclosure first

Who's writing this

We build audytx, a context-aware AWS Terraform scanner, so we're not neutral here. Two things should keep this piece useful anyway: every measured number below comes from a pinned public benchmark you can re-run yourself (corpus, ground truth, and scorer are all public), and we say "use Checkov" and "use Trivy" below, without hedging, where each is the right call.

The contenders

Two tools, two missions

Checkov (Prisma Cloud, formerly Bridgecrew) is the policy-as-code standard-bearer: 1,000+ built-in policies across AWS, Azure, and GCP, a Python check framework anyone can extend, and native integration with the Prisma Cloud platform. Its graph engine builds cross-resource detections — it's built to find more, and it does.

Trivy (Aqua Security) started as a container-vulnerability scanner and grew into the tool teams reach for when they want one binary for everything: images, filesystems, SBOMs, Kubernetes, VM images, and IaC misconfigurations. Aqua has folded tfsec's development into Trivy, making it the official home of that lineage (we cover the migration on the tfsec page).

The measured differences

What the public corpus shows

We benchmarked both (with KICS and Terrascan) on 28 AWS Terraform corpora — the BishopFox iam-vulnerable privilege-escalation suite plus 21 clean, well-maintained community modules where every HIGH finding is noise. Versions pinned, scoring deterministic, steps published.

DimensionCheckovTrivy
IAM privesc recall (31 paths)100% — full recall0% — 7 HIGH findings, none correct
False positives, 21 clean modules1,193175
Terraform check breadth1,000+ policies, multi-cloudnarrower; inherited tfsec's check set
Beyond IaCIaC-focused (+ secrets, SCA)containers, images, SBOMs, K8s, VMs
Suppression modelmanual — checkov:skip commentsmanual — inline ignore comments

Don't read those columns as grades — each tool is doing the job it was built for. Checkov catches every IAM escalation path because casting the widest net is the whole idea, and it pays for that in volume: 1,193 clean-module false positives means real triage work. Trivy's Terraform checks are quieter (175), but its IaC scanning rides along in a tool that's mostly about artifacts, and IAM attack paths were never something it set out to do.

The recommendation

Pick by scope — both are defensible

Choose Checkov when Terraform/IaC policy coverage is the whole point: you want the widest checklist available, you're multi-cloud, you may extend checks in Python, or you're on Prisma Cloud already. Budget for the noise — a skip-list culture or a triage rotation is part of the total cost.

Choose Trivy when consolidation is the point: one maintained binary for images, dependencies, SBOMs, and a solid baseline of IaC misconfiguration checks. If you're coming from tfsec, it's the official path. Accept that deep IAM analysis isn't what it's for.

Run both if the org is large enough that image scanning and IaC policy live with different teams — they don't step on each other.

The missing layer

What neither column solves

Both tools share the same basic architecture: judge each resource (or with Checkov's graph, each detected pattern) against a rule, and leave the question "is this finding real in this codebase?" to a human with a skip comment. That's where the 1,193-vs-175 noise trade-off comes from, and no amount of tuning gets you out of it.

audytx starts from the other end: map the cross-resource relationships first (who invokes what, which roles trust whom, what's exposed), let rules fire naively, and let context decide what survives — every suppression printed with its reason. On the same corpus, that reaches 100% IAM privesc recall with 33 clean-module false positives — the same full recall as Checkov, quieter than Trivy. It doesn't replace either tool above — it's a precision layer on the Terraform, whichever breadth tool you run beside it. The mechanism is on the false-positives page; per-tool pages: vs Checkov · vs Trivy.

Reproduce any number in this post: the corpus, ground truth, and deterministic scorer are public — steps on the comparison page. Competitor status claims cite each project's own repository, checked July 2026.
Open beta

Add the precision layer

Whichever breadth tool you run, audytx reviews the Terraform on every pull request with cross-resource context — free during the beta.

Prefer the agent surface? Wire audytx into your coding agent over MCP. Migrating from an archived or consolidated tool? See Terrascan and tfsec.