cloud-audit 1.2.2__tar.gz → 2.0.0__tar.gz

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.
Files changed (137) hide show
  1. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/workflows/release.yml +5 -5
  2. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/CHANGELOG.md +69 -1
  3. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/PKG-INFO +62 -156
  4. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/README.md +60 -154
  5. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/ROADMAP.md +11 -9
  6. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/mkdocs.yml +4 -0
  7. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/pyproject.toml +2 -2
  8. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/cli.py +359 -4
  9. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/compliance/__init__.py +6 -1
  10. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/compliance/engine.py +4 -0
  11. cloud_audit-2.0.0/src/cloud_audit/compliance/frameworks/bsi_c5_2020.json +1703 -0
  12. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/compliance/frameworks/cis_aws_v3.json +278 -101
  13. cloud_audit-2.0.0/src/cloud_audit/compliance/frameworks/hipaa_security.json +802 -0
  14. cloud_audit-2.0.0/src/cloud_audit/compliance/frameworks/iso27001_2022.json +1297 -0
  15. cloud_audit-2.0.0/src/cloud_audit/compliance/frameworks/nis2_directive.json +782 -0
  16. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/compliance/frameworks/soc2_type2.json +329 -57
  17. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/correlate.py +447 -0
  18. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/cost_model.py +23 -0
  19. cloud_audit-2.0.0/src/cloud_audit/history.py +173 -0
  20. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/models.py +42 -0
  21. cloud_audit-2.0.0/src/cloud_audit/providers/aws/checks/backup.py +154 -0
  22. cloud_audit-2.0.0/src/cloud_audit/providers/aws/checks/bedrock.py +159 -0
  23. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/cloudtrail.py +166 -2
  24. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/cloudwatch.py +85 -2
  25. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/config_.py +12 -2
  26. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/ecs.py +22 -14
  27. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/iam.py +137 -2
  28. cloud_audit-2.0.0/src/cloud_audit/providers/aws/checks/inspector.py +156 -0
  29. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/kms.py +2 -1
  30. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/s3.py +33 -4
  31. cloud_audit-2.0.0/src/cloud_audit/providers/aws/checks/sagemaker.py +233 -0
  32. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/secrets.py +2 -1
  33. cloud_audit-2.0.0/src/cloud_audit/providers/aws/checks/ssm.py +304 -0
  34. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/vpc.py +127 -1
  35. cloud_audit-2.0.0/src/cloud_audit/providers/aws/checks/waf.py +126 -0
  36. cloud_audit-2.0.0/src/cloud_audit/providers/aws/iam_analyzer.py +452 -0
  37. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/provider.py +17 -2
  38. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/compliance_html.py +1 -1
  39. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/html.py +1 -0
  40. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/templates/report.html.j2 +44 -0
  41. cloud_audit-2.0.0/src/cloud_audit/root_cause.py +223 -0
  42. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/scanner.py +10 -0
  43. cloud_audit-2.0.0/src/cloud_audit/simulate.py +190 -0
  44. cloud_audit-2.0.0/tests/aws/test_bedrock.py +48 -0
  45. cloud_audit-2.0.0/tests/aws/test_iam_analyzer.py +349 -0
  46. cloud_audit-2.0.0/tests/aws/test_sagemaker.py +91 -0
  47. cloud_audit-2.0.0/tests/test_compliance_frameworks.py +508 -0
  48. cloud_audit-2.0.0/tests/test_history.py +176 -0
  49. cloud_audit-2.0.0/tests/test_root_cause.py +245 -0
  50. cloud_audit-2.0.0/tests/test_simulate.py +168 -0
  51. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_soc2_framework.py +1 -1
  52. cloud_audit-1.2.2/src/cloud_audit/providers/aws/checks/ssm.py +0 -144
  53. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.cloud-audit.example.yml +0 -0
  54. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/FUNDING.yml +0 -0
  55. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  56. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  57. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  58. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/dependabot.yml +0 -0
  59. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/workflows/ci.yml +0 -0
  60. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/workflows/docs.yml +0 -0
  61. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.github/workflows/example-scan.yml +0 -0
  62. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.gitignore +0 -0
  63. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.mcp.json +0 -0
  64. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/.pre-commit-hooks.yaml +0 -0
  65. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/CODEOWNERS +0 -0
  66. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/CODE_OF_CONDUCT.md +0 -0
  67. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/CONTRIBUTING.md +0 -0
  68. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/Dockerfile +0 -0
  69. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/LICENSE +0 -0
  70. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/Makefile +0 -0
  71. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/SECURITY.md +0 -0
  72. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/action.yml +0 -0
  73. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/assets/demo.gif +0 -0
  74. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/assets/logo-nobg.png +0 -0
  75. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/assets/logo.png +0 -0
  76. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/assets/report-preview.png +0 -0
  77. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/assets/social-preview.png +0 -0
  78. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/examples/daily-scan-with-diff.yml +0 -0
  79. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/examples/github-actions.yml +0 -0
  80. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/examples/post-deploy-scan.yml +0 -0
  81. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/scripts/generate_demo_gif.py +0 -0
  82. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/scripts/generate_report_screenshot.py +0 -0
  83. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/__init__.py +0 -0
  84. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/__main__.py +0 -0
  85. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/config.py +0 -0
  86. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/diff.py +0 -0
  87. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/mcp_server.py +0 -0
  88. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/__init__.py +0 -0
  89. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/__init__.py +0 -0
  90. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/__init__.py +0 -0
  91. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/account.py +0 -0
  92. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/ec2.py +0 -0
  93. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/efs.py +0 -0
  94. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/eip.py +0 -0
  95. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/guardduty.py +0 -0
  96. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/lambda_.py +0 -0
  97. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/rds.py +0 -0
  98. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/aws/checks/securityhub.py +0 -0
  99. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/providers/base.py +0 -0
  100. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/py.typed +0 -0
  101. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/__init__.py +0 -0
  102. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/compliance_markdown.py +0 -0
  103. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/diff_markdown.py +0 -0
  104. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/markdown.py +0 -0
  105. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/src/cloud_audit/reports/sarif.py +0 -0
  106. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/__init__.py +0 -0
  107. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/__init__.py +0 -0
  108. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_cis_checks.py +0 -0
  109. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_cloudtrail.py +0 -0
  110. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_cloudwatch.py +0 -0
  111. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_config.py +0 -0
  112. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_ec2.py +0 -0
  113. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_ecs.py +0 -0
  114. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_eip.py +0 -0
  115. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_guardduty.py +0 -0
  116. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_iam.py +0 -0
  117. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_kms.py +0 -0
  118. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_lambda.py +0 -0
  119. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_rds.py +0 -0
  120. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_s3.py +0 -0
  121. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_secrets.py +0 -0
  122. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_ssm.py +0 -0
  123. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/aws/test_vpc.py +0 -0
  124. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/conftest.py +0 -0
  125. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_cli.py +0 -0
  126. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_cli_scan.py +0 -0
  127. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_config.py +0 -0
  128. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_correlate.py +0 -0
  129. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_cost_model.py +0 -0
  130. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_diff.py +0 -0
  131. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_html.py +0 -0
  132. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_markdown.py +0 -0
  133. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_mcp_server.py +0 -0
  134. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_models.py +0 -0
  135. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_provider.py +0 -0
  136. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_sarif.py +0 -0
  137. {cloud_audit-1.2.2 → cloud_audit-2.0.0}/tests/test_scanner.py +0 -0
@@ -32,7 +32,7 @@ jobs:
32
32
  fi
33
33
  - run: pip install build
34
34
  - run: python -m build
35
- - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
35
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
36
36
  with:
37
37
  name: dist
38
38
  path: dist/
@@ -51,7 +51,7 @@ jobs:
51
51
  with:
52
52
  name: dist
53
53
  path: dist/
54
- - uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
54
+ - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
55
55
 
56
56
  docker:
57
57
  name: Publish Docker image
@@ -62,12 +62,12 @@ jobs:
62
62
  packages: write
63
63
  steps:
64
64
  - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
65
- - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
65
+ - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
66
66
  with:
67
67
  registry: ghcr.io
68
68
  username: ${{ github.actor }}
69
69
  password: ${{ secrets.GITHUB_TOKEN }}
70
- - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
70
+ - uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
71
71
  with:
72
72
  username: ${{ secrets.DOCKERHUB_USERNAME }}
73
73
  password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -81,7 +81,7 @@ jobs:
81
81
  type=semver,pattern={{version}}
82
82
  type=semver,pattern={{major}}.{{minor}}
83
83
  type=raw,value=latest
84
- - uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
84
+ - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
85
85
  with:
86
86
  context: .
87
87
  push: true
@@ -7,6 +7,73 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.0.0] - 2026-04-14
11
+
12
+ ### Added
13
+
14
+ - **IAM Privilege Escalation Detection** - 25 escalation methods across 6 categories (IAM self-mutation, credential access, PassRole+service, Lambda code modification, trust policy abuse, permission boundary bypass). Replaces dead PMapper as the only maintained open-source IAM escalation scanner
15
+ - **What-If Remediation Simulator** - `cloud-audit simulate --fix aws-vpc-002` shows before/after impact on score, chains, and risk without changing anything in AWS
16
+ - **Security Posture Trend** - `cloud-audit trend` tracks health score, attack chains, and risk over time with sparkline visualization. Scan history auto-saved to `~/.cloud-audit/history/`
17
+ - **AI-SPM (Bedrock + SageMaker)** - 5 new checks: model invocation logging (aws-bedrock-001), guardrails (aws-bedrock-002), notebook root access (aws-sagemaker-001), notebook internet access (aws-sagemaker-002), endpoint encryption (aws-sagemaker-003)
18
+ - **Root Cause Grouping** - "fix 4 things, break 22 chains" prioritization. Groups findings by root cause and ranks by chain-breaking impact
19
+ - **Quick Wins** - CLI section showing LOW-effort fixes that break CRITICAL chains, with copy-paste commands
20
+ - **6 new attack chain rules** - AC-34 (PassRole escalation), AC-35 (IAM self-escalation), AC-36 (OIDC + escalation), AC-37 (AI model theft), AC-38 (LLMjacking), AC-39 (AI data poisoning)
21
+ - Compliance Beta labels for BSI C5, ISO 27001, HIPAA, NIS2 (CIS and SOC 2 remain Stable)
22
+ - `list-frameworks` shows Status column (Stable/Beta)
23
+
24
+ ### Changed
25
+
26
+ - Remediation CLI commands now inject real AWS account ID (via `provider.get_account_id()`) instead of `ACCOUNT_ID` placeholders
27
+ - Terraform remediation snippets completed with missing dependent resources (IAM roles, S3 buckets, KMS keys, CloudWatch log groups)
28
+ - VPC flow logs Terraform scoped IAM policy to specific log group ARN (was `Resource: *`)
29
+ - `get_account_id()` cached in AWSProvider (1 STS call instead of 10+ per scan)
30
+ - Root cause computation moved after cost estimation (fixes risk aggregation)
31
+ - `get_account_id()` calls moved inside try/except in kms, iam, s3 checks
32
+
33
+ ### Fixed
34
+
35
+ - Unicode characters (arrows, em-dashes, block characters) replaced with ASCII for Windows cp1250 compatibility
36
+
37
+ ## [1.3.0] - 2026-04-03
38
+
39
+ ### Added
40
+
41
+ - **BSI C5:2020 compliance framework** - 134 Cloud Computing Compliance Criteria mapped (20 automated, 37 partial, 77 manual), covering all 17 BSI domains (OIS, SP, HR, AM, PS, OPS, IDM, CRY, COM, PI, DEV, SIM, BCM, COS, INQ, PSS, LOG)
42
+ - **ISO/IEC 27001:2022 compliance framework** - 93 Annex A controls mapped (16 automated, 31 partial, 46 manual), covering Organizational (A.5), People (A.6), Physical (A.7), and Technological (A.8) controls
43
+ - **HIPAA Security Rule compliance framework** - 47 implementation specifications mapped (15 automated, 14 partial, 18 manual) across Administrative (§164.308), Physical (§164.310), and Technical (§164.312) safeguards
44
+ - **NIS2 Directive compliance framework** - 43 technical measures mapped (11 automated, 22 partial, 10 manual) covering Article 21(2)(a)-(j) minimum measures, Article 23 incident reporting, and Article 20 governance
45
+ - `--compliance bsi_c5_2020` CLI flag - BSI C5:2020 readiness assessment
46
+ - `--compliance iso27001_2022` CLI flag - ISO 27001:2022 Annex A readiness assessment
47
+ - `--compliance hipaa_security` CLI flag - HIPAA Security Rule readiness assessment
48
+ - `--compliance nis2_directive` CLI flag - NIS2 Directive readiness assessment
49
+ - All 20 attack chain rules mapped to controls in each new framework
50
+ - **8 new security checks** (80 -> 88 total):
51
+ - `aws-backup-001` - AWS Backup vault with backup plan (Backup)
52
+ - `aws-inspector-001` - Amazon Inspector v2 enabled (Inspector)
53
+ - `aws-waf-001` - WAFv2 WebACL exists (WAF)
54
+ - `aws-cw-016` - CloudWatch log group KMS encryption (CloudWatch)
55
+ - `aws-ssm-003` - EC2 patch compliance via SSM (SSM)
56
+ - `aws-vpc-006` - VPC subnet isolation (VPC)
57
+ - `aws-iam-017` - IAM role max session duration (IAM)
58
+ - `aws-ct-008` - CloudTrail delivers to CloudWatch Logs (CloudTrail)
59
+ - **5 new attack chain rules** (20 -> 25 total):
60
+ - AC-29: Unpatched Instance Exposed to Internet (CRITICAL)
61
+ - AC-30: Unpatched Instances Without Vulnerability Scanning (HIGH)
62
+ - AC-31: Internet-Exposed Without WAF or Flow Logs (HIGH)
63
+ - AC-32: CloudTrail Blind Spot — Alarms Non-Functional (HIGH)
64
+ - AC-33: All-Public VPC Without Network Segmentation (HIGH)
65
+ - 3 new service modules: AWS Backup, Amazon Inspector, AWS WAF
66
+ - 67 new tests for framework validation (412 total)
67
+
68
+ ### Changed
69
+
70
+ - Check count: 80 -> 88 across 21 AWS services (was 18)
71
+ - Attack chain count: 20 -> 25 rules
72
+ - `list-frameworks` now shows 6 frameworks (was 2)
73
+ - CLI help text updated with all 6 framework IDs
74
+ - pyproject.toml description updated to reflect 6 compliance frameworks
75
+ - 21 CIS controls corrected from Manual to Partial (had automated checks but wrong assessment type)
76
+
10
77
  ## [1.2.2] - 2026-04-01
11
78
 
12
79
  ### Added
@@ -401,7 +468,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
401
468
  - Docker image support
402
469
  - Rich terminal UI with progress bar and color-coded findings
403
470
 
404
- [Unreleased]: https://github.com/gebalamariusz/cloud-audit/compare/v1.2.2...HEAD
471
+ [Unreleased]: https://github.com/gebalamariusz/cloud-audit/compare/v1.3.0...HEAD
472
+ [1.3.0]: https://github.com/gebalamariusz/cloud-audit/compare/v1.2.2...v1.3.0
405
473
  [1.2.2]: https://github.com/gebalamariusz/cloud-audit/compare/v1.2.1...v1.2.2
406
474
  [1.2.1]: https://github.com/gebalamariusz/cloud-audit/compare/v1.2.0...v1.2.1
407
475
  [1.2.0]: https://github.com/gebalamariusz/cloud-audit/compare/v1.1.0...v1.2.0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloud-audit
3
- Version: 1.2.2
4
- Summary: Open-source AWS security scanner with CIS AWS v3.0 and SOC 2 Type II compliance, attack chains, breach cost estimation, and MCP server. 80 checks, 20 attack chain rules. Every finding includes CLI + Terraform remediation.
3
+ Version: 2.0.0
4
+ Summary: Open-source AWS security scanner with IAM escalation detection, What-If simulator, security trends, AI-SPM (Bedrock/SageMaker), 6 compliance frameworks, 31 attack chain rules, breach cost estimation, and MCP server. 94 checks across 23 services. Every finding includes CLI + Terraform remediation.
5
5
  Project-URL: Homepage, https://github.com/gebalamariusz/cloud-audit
6
6
  Project-URL: Documentation, https://haitmg.pl/cloud-audit/
7
7
  Project-URL: Repository, https://github.com/gebalamariusz/cloud-audit
@@ -56,8 +56,8 @@ Description-Content-Type: text/markdown
56
56
  </p>
57
57
 
58
58
  <p align="center">
59
- Open-source CLI scanner that correlates findings into exploitable paths<br>
60
- and generates copy-paste remediation (AWS CLI + Terraform).
59
+ Open-source CLI that correlates findings into exploitable paths,<br>
60
+ generates copy-paste remediation, and simulates fixes before you apply them.
61
61
  </p>
62
62
 
63
63
  <p align="center">
@@ -72,14 +72,20 @@ Description-Content-Type: text/markdown
72
72
  <a href="https://pypi.org/project/cloud-audit/"><img src="https://img.shields.io/pypi/dm/cloud-audit?style=flat" alt="PyPI downloads"></a>
73
73
  <a href="https://ghcr.io/gebalamariusz/cloud-audit"><img src="https://img.shields.io/badge/Docker-GHCR-blue?style=flat&logo=docker" alt="Docker"></a>
74
74
  <a href="https://www.helpnetsecurity.com/2026/03/11/cloud-audit-open-source-aws-security-scanner/"><img src="https://img.shields.io/badge/Featured_in-HelpNet_Security-blue?style=flat" alt="Featured in HelpNet Security"></a>
75
+ <a href="https://glama.ai/mcp/servers/gebalamariusz/cloud-audit"><img src="https://glama.ai/mcp/servers/gebalamariusz/cloud-audit/badges/score.svg" alt="MCP Server Score"></a>
75
76
  <a href="https://haitmg.pl/cloud-audit/"><img src="https://img.shields.io/badge/Docs-haitmg.pl-blue?style=flat" alt="Documentation"></a>
76
77
  </p>
77
78
 
78
79
  <p align="center">
79
80
  <a href="https://haitmg.pl/cloud-audit/">Documentation</a> -
80
81
  <a href="https://haitmg.pl/cloud-audit/getting-started/quick-start/">Quick Start</a> -
81
- <a href="https://haitmg.pl/cloud-audit/compliance/cis-aws-v3/">CIS AWS v3.0</a> -
82
+ <a href="https://haitmg.pl/cloud-audit/compliance/overview/">Compliance</a> -
83
+ <a href="https://haitmg.pl/cloud-audit/compliance/cis-aws-v3/">CIS</a> -
82
84
  <a href="https://haitmg.pl/cloud-audit/compliance/soc2-type2/">SOC 2</a> -
85
+ <a href="https://haitmg.pl/cloud-audit/compliance/bsi-c5-2020/">BSI C5</a> -
86
+ <a href="https://haitmg.pl/cloud-audit/compliance/iso27001-2022/">ISO 27001</a> -
87
+ <a href="https://haitmg.pl/cloud-audit/compliance/hipaa-security/">HIPAA</a> -
88
+ <a href="https://haitmg.pl/cloud-audit/compliance/nis2-directive/">NIS2</a> -
83
89
  <a href="https://haitmg.pl/cloud-audit/features/attack-chains/">Attack Chains</a> -
84
90
  <a href="https://haitmg.pl/cloud-audit/features/mcp-server/">MCP Server</a>
85
91
  </p>
@@ -103,23 +109,32 @@ cloud-audit demo
103
109
 
104
110
  ```
105
111
  +------- Health Score -------+
106
- | 42 / 100 | Risk exposure: $725K - $7.3M
112
+ | 34 / 100 | Risk exposure: $1.2M - $9.5M
107
113
  +----------------------------+
108
114
 
109
- +---- Attack Chains (3 detected) -----------------------------------+
115
+ +---- Attack Chains (5 detected) -----------------------------------+
110
116
  | CRITICAL Internet-Exposed Admin Instance |
111
117
  | i-0abc123 - public SG + admin IAM role + IMDSv1 |
112
- | Fix: Restrict security group (effort: LOW) |
118
+ | |
119
+ | CRITICAL IAM Privilege Escalation via iam:PassRole |
120
+ | ci-deploy-role - 3-step path to admin |
113
121
  | |
114
122
  | CRITICAL CI/CD to Admin Takeover |
115
123
  | github-deploy - OIDC no sub + admin policy |
116
- | Fix: Add sub condition (effort: LOW) |
117
124
  +--------------------------------------------------------------------+
118
125
 
119
- Findings by severity: CRITICAL: 3 HIGH: 8 MEDIUM: 12 LOW: 5
126
+ +---- Remediation Plan -------------------------------------------+
127
+ | Fix 4 root causes, break 22 attack chains |
128
+ | |
129
+ | Quick Wins (effort: LOW, chains broken: 14): |
130
+ | 1. Restrict SG ingress on sg-0abc123 -> breaks 8 chains |
131
+ | 2. Add OIDC sub condition -> breaks 6 chains |
132
+ +--------------------------------------------------------------------+
133
+
134
+ Findings by severity: CRITICAL: 5 HIGH: 9 MEDIUM: 14 LOW: 6
120
135
  ```
121
136
 
122
- 80 checks across 18 AWS services. Every finding includes AWS CLI + Terraform remediation.
137
+ 94 checks across 23 AWS services. Every finding includes AWS CLI + Terraform remediation code. Root-cause grouping tells you which fixes break the most chains so you fix what matters first.
123
138
 
124
139
  <p align="center">
125
140
  <a href="https://www.youtube.com/watch?v=5uHoqggmTB8">
@@ -144,17 +159,19 @@ Other scanners give you a flat list of findings. cloud-audit correlates them int
144
159
  aws-vpc-002 aws-ec2-004 Detected: AC-01, AC-02
145
160
  ```
146
161
 
147
- Examples from the 20 built-in rules:
162
+ Examples from the 31 built-in rules:
148
163
 
149
164
  | Chain | What it catches |
150
165
  |---|---|
166
+ | IAM Privilege Escalation | iam:PassRole + lambda:Create + iam:Attach = 3-step path to admin |
151
167
  | Internet-Exposed Admin Instance | Public SG + admin IAM role + IMDSv1 = account takeover |
152
168
  | CI/CD to Admin Takeover | OIDC without sub condition + admin policy = pipeline hijack |
153
169
  | SSRF to Credential Theft | Public instance + IMDSv1 + no VPC flow logs = invisible exfiltration |
170
+ | AI Model Data Exfiltration | Bedrock model with public endpoint + no logging = silent data leak |
154
171
 
155
- Based on [MITRE ATT&CK Cloud](https://attack.mitre.org/matrices/enterprise/cloud/) and [Datadog pathfinding.cloud](https://github.com/DataDog/pathfinding.cloud). [See all 20 rules in the docs](https://haitmg.pl/cloud-audit/features/attack-chains/).
172
+ Based on [MITRE ATT&CK Cloud](https://attack.mitre.org/matrices/enterprise/cloud/) and [Datadog pathfinding.cloud](https://github.com/DataDog/pathfinding.cloud). [See all 31 rules in the docs](https://haitmg.pl/cloud-audit/features/attack-chains/).
156
173
 
157
- ### Copy-Paste Remediation
174
+ ### Copy-Paste Remediation + What-If Simulator
158
175
 
159
176
  Every finding includes AWS CLI commands, Terraform HCL, and documentation links. Export all fixes as a runnable script:
160
177
 
@@ -162,24 +179,34 @@ Every finding includes AWS CLI commands, Terraform HCL, and documentation links.
162
179
  cloud-audit scan --export-fixes fixes.sh
163
180
  ```
164
181
 
165
- ### Scan Diff
182
+ Simulate a fix before applying it to see which chains it breaks and how your score changes:
183
+
184
+ ```bash
185
+ cloud-audit simulate --fix aws-vpc-002
186
+ # Score: 34 -> 58 (+24) | Chains broken: 8 of 22 | Findings resolved: 11
187
+ ```
188
+
189
+ ### Scan Diff and Trend Tracking
166
190
 
167
191
  Compare scans to track drift. Catches ClickOps changes, manual console edits, and regressions that IaC scanning misses.
168
192
 
169
193
  ```bash
170
194
  cloud-audit diff yesterday.json today.json
195
+ cloud-audit trend # Time-series posture history
171
196
  ```
172
197
 
173
198
  Exit code 0 = no new findings, 1 = regression. See [daily-scan-with-diff.yml](examples/daily-scan-with-diff.yml) for a CI/CD workflow.
174
199
 
175
- ### CIS AWS v3.0 Compliance
200
+ ### 6 Compliance Frameworks
176
201
 
177
202
  Built-in compliance engine with per-control evidence, readiness scoring, and auditor-ready reports.
178
203
 
179
204
  - **CIS AWS v3.0** - 62 controls, 55 automated (89%)
180
205
  - **SOC 2 Type II** - 43 criteria, 24 automated (56%)
181
-
182
- Planned: BSI C5, ISO 27001, HIPAA, NIS2.
206
+ - **BSI C5:2020** `Beta` - 134 criteria, 57 automated/partial
207
+ - **ISO 27001:2022** `Beta` - 93 Annex A controls, 47 automated/partial
208
+ - **HIPAA Security Rule** `Beta` - 47 specs, 29 automated/partial
209
+ - **NIS2 Directive** `Beta` - 43 measures, 33 automated/partial
183
210
 
184
211
  ### Breach Cost Estimation
185
212
 
@@ -201,17 +228,19 @@ claude mcp add cloud-audit -- uvx --from cloud-audit cloud-audit-mcp
201
228
 
202
229
  | Feature | Prowler | Trivy | Checkov | cloud-audit |
203
230
  |---------|---------|-------|---------|-------------|
204
- | Checks | 576 | 517 | 2500+ | **80** |
205
- | Attack chain detection | No | No | No | **20 rules** |
231
+ | Checks | 576 | 517 | 2500+ | **94** |
232
+ | Attack chain detection | No | No | No | **31 rules + root-cause grouping** |
233
+ | What-If remediation simulator | No | No | No | **Yes** |
234
+ | IAM privilege escalation paths | No | No | No | **25 methods** |
206
235
  | Remediation per finding | CIS only | No | Links | **100% (CLI + Terraform)** |
207
236
  | Breach cost estimation | No | No | No | **Per finding + chain** |
208
- | CIS v3.0 compliance engine | Yes | No | No | **62 controls with evidence** |
209
- | SOC 2 Type II compliance | No | No | No | **43 criteria with evidence** |
237
+ | AI-SPM (Bedrock/SageMaker) | No | No | No | **Yes** |
238
+ | Compliance frameworks | CIS only | | | **6 (CIS, SOC 2 + 4 Beta)** |
210
239
  | MCP server (AI agents) | Paid ($99/mo) | No | No | **Free, standalone** |
211
240
 
212
- cloud-audit has fewer checks than Prowler but deeper output per finding: remediation code, attack chain context, cost estimates, and compliance evidence. If you need exhaustive compliance coverage across multiple clouds, Prowler is the better choice. If you need a focused scan that shows how findings combine into real attack paths and tells you exactly how to fix each one, cloud-audit is built for that.
241
+ cloud-audit has fewer checks than Prowler but goes deeper per finding: remediation code, attack chain correlation, cost estimates, and a What-If simulator that shows the impact of each fix before you apply it. If you need exhaustive compliance coverage across multiple clouds, Prowler is the better choice. If you need a focused scan that shows how findings chain into real attack paths and prioritizes what to fix first, cloud-audit is built for that.
213
242
 
214
- <sub>Feature snapshot as of March 2026. Verify against upstream docs for the latest details.</sub>
243
+ <sub>Feature snapshot as of v2.0.0 (April 2026). Verify against upstream docs for the latest details.</sub>
215
244
 
216
245
  ---
217
246
 
@@ -316,142 +345,19 @@ Ready-to-use workflows: [basic scan](examples/github-actions.yml), [daily diff](
316
345
 
317
346
  ## AWS Permissions
318
347
 
319
- cloud-audit requires **read-only** access. Attach `SecurityAudit`:
348
+ cloud-audit requires **read-only** access. Attach `SecurityAudit` (covers all checks including IAM escalation analysis):
320
349
 
321
350
  ```bash
322
351
  aws iam attach-role-policy --role-name auditor --policy-arn arn:aws:iam::aws:policy/SecurityAudit
323
352
  ```
324
353
 
325
- cloud-audit never modifies your infrastructure.
354
+ cloud-audit never modifies your infrastructure. The `simulate` command runs locally against scan data -- it does not call AWS APIs.
326
355
 
327
356
  ## What It Checks
328
357
 
329
- 80 checks across IAM, S3, EC2, VPC, RDS, EIP, EFS, CloudTrail, GuardDuty, KMS, CloudWatch, Lambda, ECS, SSM, Secrets Manager, AWS Config, Security Hub, and Account.
358
+ 94 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, and Amazon SageMaker.
330
359
 
331
- <details>
332
- <summary>Full check list (80 checks)</summary>
333
-
334
- ### IAM (16 checks)
335
-
336
- | ID | Severity | Description |
337
- |----|----------|-------------|
338
- | `aws-iam-001` | Critical | Root account without MFA |
339
- | `aws-iam-002` | High | IAM user with console access but no MFA |
340
- | `aws-iam-003` | Medium | Access key older than 90 days |
341
- | `aws-iam-004` | Medium | Access key unused for 45+ days |
342
- | `aws-iam-005` | Critical | IAM policy with Action:\* and Resource:\* |
343
- | `aws-iam-006` | Medium | Password policy below CIS requirements |
344
- | `aws-iam-007` | Critical | OIDC trust policy without sub condition |
345
- | `aws-iam-008` | Critical | Root account has active access keys |
346
- | `aws-iam-009` | Medium | Multiple active access keys per user |
347
- | `aws-iam-010` | Medium | Direct policy attachment on user (not via group) |
348
- | `aws-iam-011` | Medium | No AWSSupportAccess role |
349
- | `aws-iam-012` | Medium | IAM Access Analyzer not enabled |
350
- | `aws-iam-013` | Medium | Expired SSL/TLS certificate in IAM |
351
- | `aws-iam-014` | Medium | AWSCloudShellFullAccess attached |
352
- | `aws-iam-015` | Medium | Root uses virtual MFA (not hardware) |
353
- | `aws-iam-016` | Medium | EC2 instance without IAM role |
354
-
355
- ### S3 (7 checks)
356
-
357
- | ID | Severity | Description |
358
- |----|----------|-------------|
359
- | `aws-s3-001` | High | S3 bucket without public access block |
360
- | `aws-s3-002` | Low | S3 bucket using SSE-S3 instead of SSE-KMS |
361
- | `aws-s3-003` | Low | S3 bucket without versioning |
362
- | `aws-s3-004` | Low | S3 bucket without lifecycle rules |
363
- | `aws-s3-005` | Medium | S3 bucket without access logging |
364
- | `aws-s3-006` | Medium | S3 bucket policy does not deny HTTP |
365
- | `aws-s3-007` | Low | S3 bucket without MFA Delete |
366
-
367
- ### EC2 (6 checks)
368
-
369
- | ID | Severity | Description |
370
- |----|----------|-------------|
371
- | `aws-ec2-001` | High | Publicly shared AMI |
372
- | `aws-ec2-002` | Medium | Unencrypted EBS volume |
373
- | `aws-ec2-003` | Low | Stopped EC2 instance (EBS charges continue) |
374
- | `aws-ec2-004` | High | EC2 instance with IMDSv1 (SSRF risk) |
375
- | `aws-ec2-005` | Low | EC2 instance without termination protection |
376
- | `aws-ec2-006` | Medium | EBS default encryption disabled |
377
-
378
- ### VPC (5 checks)
379
-
380
- | ID | Severity | Description |
381
- |----|----------|-------------|
382
- | `aws-vpc-001` | Medium | Default VPC in use |
383
- | `aws-vpc-002` | Critical | Security group open to 0.0.0.0/0 or ::/0 on sensitive ports |
384
- | `aws-vpc-003` | Medium | VPC without flow logs |
385
- | `aws-vpc-004` | Medium | NACL allows internet access to admin ports |
386
- | `aws-vpc-005` | Medium | Default security group has active rules |
387
-
388
- ### RDS (4 checks)
389
-
390
- | ID | Severity | Description |
391
- |----|----------|-------------|
392
- | `aws-rds-001` | Critical | Publicly accessible RDS instance |
393
- | `aws-rds-002` | High | Unencrypted RDS instance |
394
- | `aws-rds-003` | Medium | Single-AZ RDS instance |
395
- | `aws-rds-004` | Low | RDS auto minor version upgrade disabled |
396
-
397
- ### CloudTrail (7 checks)
398
-
399
- | ID | Severity | Description |
400
- |----|----------|-------------|
401
- | `aws-ct-001` | Critical | No multi-region CloudTrail trail |
402
- | `aws-ct-002` | High | CloudTrail log file validation disabled |
403
- | `aws-ct-003` | Critical | CloudTrail S3 bucket is publicly accessible |
404
- | `aws-ct-004` | High | CloudTrail S3 bucket has no access logging |
405
- | `aws-ct-005` | Medium | CloudTrail not encrypted with KMS |
406
- | `aws-ct-006` | Medium | S3 object-level write events not logged |
407
- | `aws-ct-007` | Medium | S3 object-level read events not logged |
408
-
409
- ### CloudWatch (15 checks)
410
-
411
- | ID | Severity | Description |
412
- |----|----------|-------------|
413
- | `aws-cw-001` | High | No alarm for root account usage |
414
- | `aws-cw-002` | Medium | No alarm for unauthorized API calls |
415
- | `aws-cw-003` | Medium | No alarm for console sign-in without MFA |
416
- | `aws-cw-004` | Medium | No alarm for IAM policy changes |
417
- | `aws-cw-005` | Medium | No alarm for CloudTrail config changes |
418
- | `aws-cw-006` | Medium | No alarm for console auth failures |
419
- | `aws-cw-007` | Medium | No alarm for CMK disable/deletion |
420
- | `aws-cw-008` | Medium | No alarm for S3 bucket policy changes |
421
- | `aws-cw-009` | Medium | No alarm for Config changes |
422
- | `aws-cw-010` | Medium | No alarm for security group changes |
423
- | `aws-cw-011` | Medium | No alarm for NACL changes |
424
- | `aws-cw-012` | Medium | No alarm for network gateway changes |
425
- | `aws-cw-013` | Medium | No alarm for route table changes |
426
- | `aws-cw-014` | Medium | No alarm for VPC changes |
427
- | `aws-cw-015` | Medium | No alarm for Organizations changes |
428
-
429
- ### Other Services (20 checks)
430
-
431
- | ID | Severity | Description |
432
- |----|----------|-------------|
433
- | `aws-gd-001` | High | GuardDuty not enabled |
434
- | `aws-gd-002` | Medium | GuardDuty findings unresolved for 30+ days |
435
- | `aws-cfg-001` | Medium | AWS Config not enabled |
436
- | `aws-cfg-002` | High | AWS Config recorder stopped |
437
- | `aws-kms-001` | Medium | KMS key without automatic rotation |
438
- | `aws-kms-002` | High | KMS key policy with Principal:\* |
439
- | `aws-lambda-001` | High | Lambda function URL with no authentication |
440
- | `aws-lambda-002` | Medium | Lambda running on a deprecated runtime |
441
- | `aws-lambda-003` | High | Potential secrets in Lambda env vars |
442
- | `aws-ecs-001` | Critical | ECS task running in privileged mode |
443
- | `aws-ecs-002` | High | ECS task without log configuration |
444
- | `aws-ecs-003` | Medium | ECS service with Execute Command enabled |
445
- | `aws-ssm-001` | Medium | EC2 instance not managed by SSM |
446
- | `aws-ssm-002` | High | SSM parameter stored as plain String |
447
- | `aws-sm-001` | Medium | Secret without rotation |
448
- | `aws-sm-002` | Low | Secret unused for 90+ days |
449
- | `aws-eip-001` | Low | Unattached Elastic IP |
450
- | `aws-efs-001` | Medium | EFS file system not encrypted |
451
- | `aws-sh-001` | Medium | Security Hub not enabled |
452
- | `aws-account-001` | Medium | No security alternate contact |
453
-
454
- </details>
360
+ [See all 94 checks by service](https://haitmg.pl/cloud-audit/checks/) or run `cloud-audit list-checks` locally.
455
361
 
456
362
  ## Alternatives
457
363
 
@@ -465,21 +371,21 @@ cloud-audit never modifies your infrastructure.
465
371
  cloud-audit has grown beyond what a single README can cover. The full documentation is at **[haitmg.pl/cloud-audit](https://haitmg.pl/cloud-audit/)** and includes:
466
372
 
467
373
  - **[Getting Started](https://haitmg.pl/cloud-audit/getting-started/installation/)** - installation, quick start, demo mode
468
- - **[Compliance](https://haitmg.pl/cloud-audit/compliance/overview/)** - CIS AWS v3.0 with all 62 controls, planned SOC 2, BSI C5, HIPAA, NIS2
469
- - **[Attack Chains](https://haitmg.pl/cloud-audit/features/attack-chains/)** - all 20 rules with MITRE ATT&CK references
374
+ - **[Compliance](https://haitmg.pl/cloud-audit/compliance/overview/)** - 6 frameworks: CIS AWS v3.0, SOC 2, BSI C5, ISO 27001, HIPAA, NIS2
375
+ - **[Attack Chains](https://haitmg.pl/cloud-audit/features/attack-chains/)** - all 31 rules with MITRE ATT&CK references
470
376
  - **[MCP Server](https://haitmg.pl/cloud-audit/features/mcp-server/)** - full setup guide for Claude Code, Cursor, VS Code
471
377
  - **[Configuration](https://haitmg.pl/cloud-audit/configuration/config-file/)** - config file, env vars, suppressions
472
378
  - **[CI/CD](https://haitmg.pl/cloud-audit/ci-cd/github-actions/)** - GitHub Actions, SARIF, pre-commit hooks
473
379
  - **[Reports](https://haitmg.pl/cloud-audit/reports/html/)** - HTML, JSON, SARIF, Markdown output formats
474
- - **[All 80 Checks](https://haitmg.pl/cloud-audit/checks/)** - full check reference by service
380
+ - **[All 94 Checks](https://haitmg.pl/cloud-audit/checks/)** - full check reference by service
475
381
 
476
382
  This README covers the essentials. For compliance framework details, advanced configuration, and per-check documentation, see the full docs.
477
383
 
478
384
  ## What's Next
479
385
 
480
- - SOC 2, BSI C5, HIPAA, NIS2 compliance frameworks
386
+ - Multi-account scanning (AWS Organizations)
481
387
  - Terraform drift detection
482
- - Root cause grouping
388
+ - Data perimeter checks (S3, KMS, STS boundary policies)
483
389
 
484
390
  Past releases: [CHANGELOG.md](CHANGELOG.md)
485
391