Skip to main content

Open-source AWS security scanner. 99 checks across 24 services. Blast Radius CLI, Threat Feed v1, DynamoDB hygiene (encryption/PITR/autoscaling), opinionated Config checks, smart S3 lifecycle, 64 IAM escalation methods, What-If simulator, AI-SPM (Bedrock/SageMaker), 6 compliance frameworks, 31 attack chain rules, breach cost estimation, MCP server. CLI + Terraform remediation for every finding.

Project description

cloud-audit logo

cloud-audit

English | 简体中文

Find AWS attack paths, IAM escalation routes, and the fixes that matter most.

Open-source CLI scanner that helps you decide what to fix first -
not just what's wrong.

Find attack chains and IAM escalation paths  -  Simulate fixes before you apply them  -  Fix root causes, not individual findings

PyPI version Python versions CI License: MIT PyPI downloads Docker Featured in HelpNet Security MCP Server Score Documentation

Documentation - Quick Start - Blast Radius - Live Visualizer - Attack Chains - IAM Escalation - Threat Feed - MCP Server

blast-audit visualizer - executive briefing view of Snowflake 2024 breach: $28M exposure, 4 years to detect, fix = enforce MFA
Drop a cloud-audit blast-radius JSON into the live visualizer at blast-audit.haitmg.pl - or click the screenshot to explore the Snowflake 2024 breach interactively.

Quick Start

pip install cloud-audit
cloud-audit scan

Uses your default AWS credentials and region. Try without an AWS account:

cloud-audit demo

NEW in v2.3: Blast Radius CLI + live visualizer

Walk outward from any AWS resource and show exactly what an attacker reaches if THAT resource is compromised. The CLI runs offline against a saved scan (zero AWS API calls at blast-radius time); the matching open visualizer at blast-audit.haitmg.pl renders the same JSON as an interactive attack graph with break-point highlighting, MITRE ATT&CK overlay, and an executive boardroom mode for CFO/CISO briefings.

Seeds: EC2 short id (i-XXX), IAM role/user ARN, Lambda ARN, S3 bucket ARN, Secrets Manager secret ARN.

# 1. Run a scan once (saves to ~/.cloud-audit/last-scan.json)
cloud-audit scan

# 2. Inspect blast radius from any resource (uses the last scan automatically)
cloud-audit blast-radius --resource i-0abc123def456              # tree (default)
cloud-audit blast-radius --resource i-0abc123 --format mermaid   # for docs/slides
cloud-audit blast-radius --resource i-0abc123 --format markdown  # for PR comments

# 3. Export JSON and visualize it interactively
cloud-audit blast-radius --resource arn:aws:iam::123456789012:role/deploy \
                        --format json --output blast.json
# → open https://blast-audit.haitmg.pl/demo/upload/ → drop blast.json

Counterfactual view: applying the IAM fix collapses Capital One exposure from $270M to $0
The visualizer's boardroom mode includes a one-click counterfactual - "What stops this attack?" - that animates the exposure tile to $0 when you preview the recommended IAM remediation.

Seven historical breach scenarios ship pre-loaded for context (Capital One 2019, Cryptomining 2025, AgentCore 2026, Snowflake UNC5537 2024, nx Supply Chain 2026, Codefinger SSE-C 2025, Trivy / TeamPCP 2026), each with verified primary-source citations. See the Blast Radius documentation for expansion rules, the BlastRadiusGraph v1.0 schema, and the risk-score heuristic.

Also new since v2.0

Version Highlight
v2.3.0 (May 2026) Blast Radius CLI + live visualizer + 15 security-hardening fixes (Mermaid XSS escape, ID collision, BFS bounds, symlink-safe writes, URL scheme allow-list). 812 tests.
v2.2.1 (May 2026) TF-001 SES phishing burst escalation + TF-004 defensive-tool exclusion.
v2.2.0 (May 2026) Threat Feed v1 - 10 active-abuse detectors from 2025-2026 incidents (cryptomining, leaked-cred scanners, MMDSv1, DataZone, Roles Anywhere, CloudTrail tampering). External research refs on every finding.
v2.1.0 (Apr 2026) 64 IAM escalation methods, full pathfinding.cloud coverage.
v2.0.0 (Apr 2026) IAM Escalation graph, What-If simulator, Trend tracking, AI-SPM (Bedrock + SageMaker).

Detail per release in CHANGELOG.md.

NEW in v2.2: Threat Feed

Detect ACTIVE abuse patterns from 2025-2026 incidents (cryptomining campaigns, SES phishing setup, leaked-credential scanner activity, AgentCore CVEs):

cloud-audit threat-feed              # scan all 10 patterns
cloud-audit threat-feed --list       # show registered patterns
cloud-audit threat-feed --pattern aws-tf-003   # one pattern only

Each pattern carries external research references (Wiz, Datadog Security Labs, Unit 42, Permiso) on every finding. Exit code 1 when CRITICAL/HIGH detected (CI gate friendly). See Threat Feed docs.


Why It's Different

Most scanners give you findings. cloud-audit helps you decide what to fix first.

+---- Attack Chains (5 detected) -----------------------------------+
|  CRITICAL  Internet-Exposed Admin Instance                         |
|            i-0abc123 - public SG + admin IAM role + IMDSv1         |
|                                                                    |
|  CRITICAL  IAM Privilege Escalation via iam:PassRole               |
|            ci-deploy-role - 3-step path to admin                   |
|                                                                    |
|  CRITICAL  CI/CD to Admin Takeover                                 |
|            github-deploy - OIDC no sub + admin policy              |
+--------------------------------------------------------------------+

+---- Remediation Plan -------------------------------------------+
|  Fix 4 root causes, break 22 attack chains                       |
|                                                                    |
|  Quick Wins (effort: LOW, chains broken: 14):                      |
|    1. Restrict SG ingress on sg-0abc123    -> breaks 8 chains      |
|    2. Add OIDC sub condition               -> breaks 6 chains      |
+--------------------------------------------------------------------+

Other tools give you 200 findings sorted by severity. cloud-audit groups them by root cause, shows which single fixes collapse the most attack paths, and lets you simulate the impact before you touch anything:

cloud-audit simulate --fix aws-vpc-002
# Score: 34 -> 58 (+24)  |  Chains broken: 8 of 22  |  Findings resolved: 11

99 checks across 24 AWS services. Every finding includes copy-paste AWS CLI + Terraform remediation.

cloud-audit demo video
Watch the 1-minute demo


Feature matrix

Capability What it does
Blast Radius CLI (v2.3) cloud-audit blast-radius --resource <id> walks outward from any AWS resource and emits the reachable attack graph as tree, JSON (BlastRadiusGraph v1.0), Mermaid, or Markdown. The JSON drops straight into the live visualizer for interactive exploration.
Threat Feed v1 (v2.2) 10 active-abuse detectors from real 2025-2026 incidents - cryptomining, leaked-cred scanners, MMDSv1, DataZone overgrant, Roles Anywhere, CloudTrail tampering. Each detector ships with primary-source citation.
IAM Privilege Escalation (v2.1) 64 escalation methods across 9 categories, including lateral movement detection via AssumeRole graph traversal. PMapper has been unmaintained since v1.1.5 (Jan 2022); cloud-audit offers a CLI-native alternative that covers additional escalation patterns beyond PMapper's IAM-principal scope.
What-If Simulator (v2.0) cloud-audit simulate --fix aws-vpc-002 shows score change, chains broken, and risk reduction before you apply anything.
Root Cause Grouping (v2.0) "Fix 4 things, break 22 chains." Groups findings by shared root cause and ranks by impact.
Security Posture Trend (v2.0) cloud-audit trend tracks health score, chains, and risk over time with sparkline visualization.
AI-SPM (v2.0) Open-source Bedrock + SageMaker scanner. 5 checks, 3 attack chains (model theft, LLMjacking, data poisoning).

Features

Attack Chain Detection

31 rules correlate individual findings into exploitable attack paths.

  Internet --> Public SG --> EC2 (IMDSv1) --> Admin IAM Creds --> Account Takeover
               aws-vpc-002   aws-ec2-004       Detected: AC-01, AC-02
Chain What it catches
IAM Privilege Escalation iam:PassRole + lambda:Create + iam:Attach = 3-step path to admin
Internet-Exposed Admin Public SG + admin IAM role + IMDSv1 = account takeover
CI/CD to Admin Takeover OIDC without sub condition + admin policy = pipeline hijack
LLMjacking Bedrock no logging + no guardrails = undetected model abuse

Based on MITRE ATT&CK Cloud and pathfinding.cloud. See all 31 rules.

Remediation + Simulator

Every finding includes AWS CLI, Terraform HCL, and docs links. Export all fixes:

cloud-audit scan --export-fixes fixes.sh

Simulate before applying:

cloud-audit simulate --fix aws-vpc-002
# Score: 34 -> 58 (+24)  |  Chains broken: 8 of 22  |  Findings resolved: 11

cloud-audit simulate --fix aws-vpc-002,aws-ct-001,aws-iam-007
# Score: 34 -> 82 (+48)  |  Chains broken: 19 of 22

Trend Tracking

cloud-audit diff yesterday.json today.json    # Catches ClickOps drift
cloud-audit trend                              # Posture over time

6 Compliance Frameworks

  • CIS AWS v3.0 - 62 controls, 55 automated (89%)
  • SOC 2 Type II - 43 criteria, 24 automated (56%)
  • BSI C5:2020 Beta - 134 criteria, 57 automated/partial
  • ISO 27001:2022 Beta - 93 controls, 47 automated/partial
  • HIPAA Security Rule Beta - 47 specs, 29 automated/partial
  • NIS2 Directive Beta - 43 measures, 33 automated/partial

Breach Cost Estimation

Every finding and chain includes a dollar-range risk estimate based on IBM/Verizon breach data, with source links.

MCP Server for AI Agents

claude mcp add cloud-audit -- uvx --from cloud-audit cloud-audit-mcp

6 tools: scan_aws, get_findings, get_attack_chains, get_remediation, get_health_score, list_checks. Free and standalone.


How It Compares

Prowler is the AWS security standard: 600 checks across 84 services, 44 compliance frameworks (CIS, PCI-DSS, HIPAA, SOC2, NIST 800, ISO 27001, GDPR, FedRAMP, NIS2, MITRE ATT&CK and more), auto-remediation fixers, and graph-based attack path analysis in the Prowler App (Cartography + Neo4j). It also covers Azure, GCP, Kubernetes, M365, and several other providers.

cloud-audit is AWS-only and intentionally narrower (99 curated checks). It goes deep where Prowler goes wide: attack chain correlation and IAM escalation detection run in the free CLI with zero infrastructure, every finding ships with reviewable Terraform + AWS CLI remediation, and scan diff / drift tracking is built into the CLI.

Feature Prowler cloud-audit
AWS checks 600 across 84 services 99 across 24 services
Compliance frameworks (AWS) 44 (CIS, PCI-DSS, HIPAA, SOC2, NIST, ISO 27001, GDPR, FedRAMP, NIS2, ...) 6 (CIS v3.0, SOC 2, BSI C5, ISO 27001, HIPAA, NIS2)
Auto-remediation 55 fixers across 17 AWS services (direct API calls) 99/99 findings with CLI + Terraform output (reviewable, you apply)
Attack path / graph analysis Prowler App (Cartography + graph queries) CLI-native (31 rules, no infra)
IAM privilege escalation graph Prowler App CLI-native (61 methods + AssumeRole graph)
What-If remediation simulator No Yes
AI/ML security checks (Bedrock + SageMaker) ~20 checks 5 checks + 3 attack chain rules
Scan diff / drift tracking Prowler App Built-in CLI (cloud-audit diff)
Breach cost estimates (USD) No Per-finding + per-chain
MCP Server Free Free
Multi-cloud AWS + 13 others AWS only
License Apache 2.0 MIT

Use Prowler for compliance breadth, multi-cloud coverage, and graph-based attack path analysis. Use cloud-audit for fast CLI-native attack chain detection, reviewable Terraform remediation, and CI/CD drift tracking. They are complementary, not competitors - a common setup is Prowler for quarterly compliance evidence plus cloud-audit daily in CI/CD.

Prowler stats verified from github.com/prowler-cloud/prowler on 2026-05-25. cloud-audit snapshot as of v2.3.0.

Blast radius specifically

Most existing AWS blast-radius tooling either lives behind paid SaaS, requires standing up Neo4j + Cartography, or has been unmaintained for years. cloud-audit blast-radius aims to be a lightweight CLI-native alternative: arbitrary AWS resource seeds (EC2, IAM, Lambda, S3, secret), a documented JSON contract (BlastRadiusGraph v1.0) that downstream tools can consume, and no infrastructure to stand up.

Tool Forward BFS from arbitrary AWS resource? Pure CLI? Last release
Wiz / Stream Security CloudTwin yes no (paid SaaS) active
Prowler App yes no (needs Neo4j + Cartography) active
Prowler CLI no yes active
PMapper IAM-only, optimised for privesc-to-admin yes v1.1.5, Jan 2022 (unmaintained)
Cloudsplaining no (IAM policy analysis only) yes v0.8.2, Oct 2024
CloudFox no for AWS (lateral-movement GCP only) yes active
DetentionDodger IAM-only, only post-quarantine users yes v1.0, Oct 2024
awspx partial (graph + web UI) Docker v1.3.4, Aug 2021 (unmaintained)
ScoutSuite no yes v5.14.0, May 2024
Cartography no built-in (bring your own Cypher) no (graph ingestor) active
BloodHound CE no for AWS (AD + Azure scope) no (web app) active
pathfinding.cloud no (it's a catalog) n/a n/a
Trivy no yes active
cloud-audit blast-radius yes yes v2.3.0, May 2026

The companion visualizer at blast-audit.haitmg.pl consumes the same JSON without an account, install, or upload-to-cloud step. Everything stays in your browser.


Reports

cloud-audit scan --format html -o report.html     # Client-ready HTML
cloud-audit scan --format json -o report.json      # Machine-readable
cloud-audit scan --format sarif -o results.sarif   # GitHub Code Scanning
cloud-audit scan --format markdown -o report.md    # PR comments

Installation

pip install cloud-audit          # pip (recommended)
pipx install cloud-audit         # pipx (isolated)
docker run ghcr.io/gebalamariusz/cloud-audit scan  # Docker

Docker with credentials:

docker run -v ~/.aws:/home/cloudaudit/.aws:ro ghcr.io/gebalamariusz/cloud-audit scan

Usage

cloud-audit scan -R                                    # Show remediation
cloud-audit scan --profile prod --regions eu-central-1  # Specific profile/region
cloud-audit scan --regions all                          # All enabled regions
cloud-audit scan --min-severity high                   # Filter by severity
cloud-audit scan --role-arn arn:aws:iam::...:role/audit # Cross-account
cloud-audit scan --quiet                               # Exit code only (CI/CD)
cloud-audit simulate --fix aws-vpc-002                 # What-If simulator
cloud-audit trend                                      # Posture over time
cloud-audit list-checks                                # List all checks
Exit code Meaning
0 No findings
1 Findings detected
2 Scan error
Configuration file

Create .cloud-audit.yml in your project root:

provider: aws
regions:
  - eu-central-1
  - eu-west-1
min_severity: medium
exclude_checks:
  - aws-eip-001
suppressions:
  - check_id: aws-vpc-001
    resource_id: vpc-abc123
    reason: "Legacy VPC, migration planned for Q3"
    accepted_by: "jane@example.com"
    expires: "2026-09-30"
  - check_id: "aws-cw-*"
    reason: "CloudWatch alarms managed by separate team"
    accepted_by: "ops@example.com"
Environment variables
Variable Example
CLOUD_AUDIT_REGIONS eu-central-1,eu-west-1
CLOUD_AUDIT_MIN_SEVERITY high
CLOUD_AUDIT_EXCLUDE_CHECKS aws-eip-001,aws-iam-001
CLOUD_AUDIT_ROLE_ARN arn:aws:iam::...:role/auditor

Precedence: CLI flags > env vars > config file > defaults.

CI/CD

- run: pip install cloud-audit
- run: cloud-audit scan --format sarif --output results.sarif
- uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: results.sarif

Ready-to-use workflows: basic scan, daily diff, post-deploy.

AWS Permissions

cloud-audit requires read-only access. Attach SecurityAudit (covers all checks including IAM escalation analysis):

aws iam attach-role-policy --role-name auditor --policy-arn arn:aws:iam::aws:policy/SecurityAudit

cloud-audit never modifies your infrastructure. The simulate command runs locally against scan data -- it does not call AWS APIs.

What It Checks

99 checks across IAM, S3, EC2, VPC, RDS, EIP, EFS, CloudTrail, GuardDuty, KMS, CloudWatch, Lambda, ECS, SSM, Secrets Manager, AWS Config, Security Hub, Account, AWS Backup, Amazon Inspector, AWS WAF, Amazon Bedrock, Amazon SageMaker, and Amazon DynamoDB.

See all 99 checks by service or run cloud-audit list-checks locally.

Documentation

Full docs at haitmg.pl/cloud-audit:

Companion visualizer

The same BlastRadiusGraph v1.0 JSON that cloud-audit blast-radius --format json emits also drives the live visualizer at blast-audit.haitmg.pl - no install, no signup, no upload to a third-party cloud (everything runs in your browser).

blast-audit operator view of the Capital One 2019 attack chain with the break-point IAM role highlighted

Seven historical breach scenarios are pre-loaded with primary-source citations:

Scenario Year One-line pitch URL
Capital One 2019 SSRF → IMDSv1 → admin S3 (100M records, $190M total damage) /demo/capital-one-2019/
Cryptomining 2025 Leaked AKID → 14 ASGs spinning in 10 minutes /demo/cryptomining-2025/
Bedrock AgentCore 2026 Sandbox bypass via DNS resolver (AWS classed "won't fix") /demo/agentcore-2026/
Snowflake / UNC5537 2024 Infostealer-harvested credentials replayed against no-MFA tenants (165 orgs, $28M+ AT&T settlement) /demo/snowflake-unc5537-2024/
nx Supply Chain / UNC6426 2026 Trojanised npm → LLM stealer → GitHub OIDC → AWS Admin in <72 h /demo/unc6426-nx-2026/
Codefinger 2025 AWS-native SSE-C ransomware (no key recovery from CloudTrail) /demo/codefinger-ssec-2025/
Trivy / TeamPCP 2026 76 of 77 GitHub Action tags force-pushed to a credential stealer /demo/trivy-teampcp-2026/

Boardroom mode (?board=1 on any scenario) renders the same graph as a CFO/CISO briefing with the dollar exposure, time-to-detect, and recommended fix surfaced as 3 big tiles - click "What stops this attack?" and the exposure tile animates to $0.

What's Next

  • Multi-account scanning (AWS Organizations)
  • SCP + permission boundary evaluation in IAM escalation
  • Terraform drift detection
  • Security Graph v3.0.0 (network reachability, cross-account propagation, permission-boundary semantics)

Past releases: CHANGELOG.md

Development

git clone https://github.com/gebalamariusz/cloud-audit.git
cd cloud-audit
pip install -e ".[dev]"

pytest -v                          # 812 tests
ruff check src/ tests/             # lint
mypy src/                          # type check

See CONTRIBUTING.md for how to add a new check.

License

MIT - Mariusz Gebala / HAIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloud_audit-2.3.1.tar.gz (7.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloud_audit-2.3.1-py3-none-any.whl (318.1 kB view details)

Uploaded Python 3

File details

Details for the file cloud_audit-2.3.1.tar.gz.

File metadata

  • Download URL: cloud_audit-2.3.1.tar.gz
  • Upload date:
  • Size: 7.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cloud_audit-2.3.1.tar.gz
Algorithm Hash digest
SHA256 26b29aca8538dc5a5189f1ed230e6bb42bf7334478e280069ee1f213c5b856d1
MD5 02823c5067b28af576d35def00e05985
BLAKE2b-256 8062f226fcf5d79e1ecc95a59e48f25a2d628bb8b5cd9823aff1af7165dfd201

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloud_audit-2.3.1.tar.gz:

Publisher: release.yml on gebalamariusz/cloud-audit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cloud_audit-2.3.1-py3-none-any.whl.

File metadata

  • Download URL: cloud_audit-2.3.1-py3-none-any.whl
  • Upload date:
  • Size: 318.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cloud_audit-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8429c769a17e6f06b478944b3ed9afd2c7d851ad89d514800fd4642dc54684ea
MD5 c503bdac6fd7b1497d0456bd83cc607b
BLAKE2b-256 bcbe12ffb8d2f18c15dd04c808e17c5262b49d32fc37e74def4fa5715b2bc558

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloud_audit-2.3.1-py3-none-any.whl:

Publisher: release.yml on gebalamariusz/cloud-audit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page