feat(compliance): add FedRAMP 20x KSI compliance framework - #8512
ethanolivertroy wants to merge 35 commits into
Conversation
…hecks - Added RESOURCE_CONTROL_POLICY to the list of available organization policy types - Added initial check to verify if RCPs are enabled and attached - Added check for S3 security enforcement via RCPs - Added NIST-aligned checks for encryption, IAM controls, logging/monitoring, and network security
- Created docs/requirements.txt with required MkDocs dependencies - Updated .readthedocs.yaml to use pip for dependency installation - This should fix the ReadTheDocs build failure
…works - Add FedRAMP 20x KSI compliance framework for AWS - Add FedRAMP 20x KSI compliance framework for Azure - Add FedRAMP 20x KSI compliance framework for GCP - Implement all 10 official FedRAMP KSIs based on FedRAMP documentation - Update compliance documentation to include new frameworks - Add comprehensive README for FedRAMP 20x KSI usage The frameworks support FedRAMP 20x Phase One pilot requirements and focus on: - Automation (80%+ automated validation target) - Continuous monitoring - Cloud-native security principles - Zero trust architecture Based on official FedRAMP KSI version 25.05C from: https://github.com/FedRAMP/docs/blob/main/FRMR.KSI.key-security-indicators.json
- Add dashboard modules for AWS, Azure, and GCP FedRAMP 20x KSI display - Fix text overlap issue by shortening long KSI descriptions in dashboard - Enable proper visualization of FedRAMP 20x KSI compliance results
|
Thank you for the PR @ethanolivertroy , we will review it soon and get back to you. |
|
@ethanolivertroy can you add the tests for the new checks? You can find the guide here. |
…meworks - Add dashboard module tests for AWS, Azure, and GCP KSI visualizations - Add compliance framework JSON validation tests - Fix empty dataframe handling in dashboard modules - Validate all 10 KSI requirements presence and structure - Test NIST control mappings and version consistency - Total: 29 unit tests covering all new functionality Tests cover: - Dashboard visualization functions (get_table) - KSI description shortening logic - Empty data edge cases - Framework JSON structure validation - Requirements completeness checks - Cross-provider consistency Addresses PR prowler-cloud#8512 test requirements
|
Tests added @MrCloudSec 👍 |
Thanks, please add the corresponding tests for the checks too. Also, add the changelog and run our pre-commit. |
- Added FedRAMP 20x Key Security Indicators compliance frameworks for AWS, Azure, and GCP - Included comprehensive unit tests for all frameworks - Updated CHANGELOG.md with new feature entry - Fixed missing newlines at end of files per pre-commit hooks - Removed RCP (Resource Control Policy) features that belong in separate branch
All done. Removed the RCP stuff because that from another branch. This functionality will really help out orgs working toward https://www.fedramp.gov/20x/goals/ |
There was a problem hiding this comment.
Pull Request Overview
This PR adds support for FedRAMP 20x Key Security Indicators (KSI) compliance framework to Prowler, enabling organizations pursuing FedRAMP authorization to assess their cloud environments against FedRAMP 20x requirements using existing security checks.
- Introduces 3 new compliance framework JSON files mapping existing Prowler checks to 10 KSI requirements across AWS, Azure, and GCP
- Adds dashboard visualization modules for each provider to handle long KSI descriptions
- Updates documentation with new framework counts and changelog entry
Reviewed Changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
prowler/compliance/aws/fedramp_20x_ksi_aws.json |
Maps 96 AWS checks to FedRAMP 20x KSI requirements |
prowler/compliance/azure/fedramp_20x_ksi_azure.json |
Maps 73 Azure checks to FedRAMP 20x KSI requirements |
prowler/compliance/gcp/fedramp_20x_ksi_gcp.json |
Maps 94 GCP checks to FedRAMP 20x KSI requirements |
dashboard/compliance/fedramp_20x_ksi_*.py |
Dashboard modules that shorten long KSI descriptions for UI display |
tests/lib/compliance/test_fedramp_20x_ksi_frameworks.py |
Framework validation tests |
tests/dashboard/compliance/test_fedramp_20x_ksi_*.py |
Dashboard module tests |
docs/tutorials/compliance.md |
Updated framework counts |
prowler/CHANGELOG.md |
Added changelog entry |
Comments suppressed due to low confidence (2)
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #8512 +/- ##
===========================================
+ Coverage 71.53% 89.65% +18.11%
===========================================
Files 80 1178 +1098
Lines 5653 32418 +26765
===========================================
+ Hits 4044 29065 +25021
- Misses 1609 3353 +1744
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
…meworks - Add dashboard module tests for AWS, Azure, and GCP KSI visualizations - Add compliance framework JSON validation tests - Fix empty dataframe handling in dashboard modules - Validate all 10 KSI requirements presence and structure - Test NIST control mappings and version consistency - Total: 29 unit tests covering all new functionality Tests cover: - Dashboard visualization functions (get_table) - KSI description shortening logic - Empty data edge cases - Framework JSON structure validation - Requirements completeness checks - Cross-provider consistency Addresses PR prowler-cloud#8512 test requirements
- Added FedRAMP 20x Key Security Indicators compliance frameworks for AWS, Azure, and GCP - Included comprehensive unit tests for all frameworks - Updated CHANGELOG.md with new feature entry - Fixed missing newlines at end of files per pre-commit hooks - Removed RCP (Resource Control Policy) features that belong in separate branch
Fixed incorrect KSI identifier codes in dashboard test files to align with official FedRAMP 20x KSI schema and our compliance framework files: - Changed ksi-mon to ksi-mla (Monitoring, Logging, and Auditing) - Changed ksi-pol to ksi-piy (Policy and Inventory) - Changed ksi-rec to ksi-rpl (Recovery Planning) This resolves the issues identified by GitHub Copilot in PR prowler-cloud#8512.
- Fixed ksi-inc to ksi-inr in Azure test file - Removed hardcoded string slice in dashboard modules for accurate matching - Aligns with official FedRAMP 20x KSI schema Addresses all issues from GitHub Copilot review in PR prowler-cloud#8512
BREAKING CHANGE: FedRAMP 20x KSI framework files renamed to include "_low" suffix Changes made to address PR prowler-cloud#8512 feedback: - Removed custom NistControls attribute from all FedRAMP 20x KSI JSON files - Renamed all fedramp_20x_ksi files to fedramp_20x_ksi_low to distinguish from upcoming moderate level - Updated framework names to "FedRAMP-20x-KSI-Low" - Updated all test imports and file references - Removed test for NistControls attribute since it's no longer needed - Frameworks now use generic compliance handler (no __main__.py changes needed) Files renamed: - prowler/compliance/{aws,azure,gcp}/fedramp_20x_ksi_*.json → fedramp_20x_ksi_low_*.json - dashboard/compliance/fedramp_20x_ksi_*.py → fedramp_20x_ksi_low_*.py - tests files similarly updated This prepares the codebase for adding FedRAMP 20x KSI Moderate level frameworks in accordance with RFC-0014 Phase Two requirements. Resolves feedback from @pedrooot on PR prowler-cloud#8512
Implements FedRAMP RFC-0014 Phase Two requirements for Low impact level: Changes: - Renamed KSI-INR from "Incident Reporting" to "Incident Response" per RFC-0014 - Added 3 new Low KSIs (13 total, up from 10): * KSI-CED-03: Role-specific training for dev/engineering staff * KSI-IAM-07: Account lifecycle and privilege management * KSI-MLA-07: Monitoring and logging inventory - Updated tests to validate 13 KSIs instead of 10 Coverage updates: - AWS: 175 checks (13 KSIs) - Azure: 186 checks (13 KSIs) - GCP: 122 checks (13 KSIs) All framework tests passing.
…0x Low frameworks This commit addresses framework validation issues and implements FedRAMP RFC-0014 Phase Two requirements for Low impact level compliance frameworks. Changes: - Added required 'Name' field to framework metadata for all three providers * Enables frameworks to appear in --list-compliance output * Required for Prowler compliance framework validation * Fixes: 'field required (type=value_error.missing)' validation error - Renamed KSI-INR from 'Incident Reporting' to 'Incident Response' per RFC-0014 - Added 3 new Phase Two Low KSIs (total now 13 instead of 10): * KSI-CED-03: Role-specific training for dev/engineering staff * KSI-IAM-07: Account lifecycle and privilege management * KSI-MLA-07: Monitoring and logging inventory Framework Coverage: - AWS: 175 checks across 13 KSIs - Azure: 186 checks across 13 KSIs - GCP: 122 checks across 13 KSIs Testing: - All framework unit tests passing (13/13) - Successfully tested with live AWS account scan (614 findings) - Dashboard visualization confirmed working - Frameworks load correctly in Prowler CLI and web dashboard Compliance: Fully aligned with FedRAMP RFC-0014 Phase Two specification
f810bdb to
4b5f47b
Compare
|
@pedrooot thanks for removing that CED Education check, I was trying to make it work but makes sense to just leave it out for now I removed the unneeded changes inside of API, sorry think I got some branch work mixed up 😅 |
|
Notes- FedRAMP 20x KSI Low Compliance Framework - Limitations & Usage GuideOverviewThe FedRAMP 20x Key Security Indicators (KSI) Low Impact Level compliance frameworks provide automated security assessment for cloud service providers pursuing FedRAMP Low authorization. These frameworks implement RFC-0014 Phase Two requirements across AWS, Azure, and GCP. Scope & PurposeWhat This Framework Checks:
What This Framework Does NOT Check:
Known Limitations1. Organizational & Training KSIs Not CoveredThe following RFC-0014 Phase Two KSIs are intentionally excluded because they require organizational policy validation rather than technical infrastructure checks:
Rationale: Prowler focuses on automated technical security assessments of cloud infrastructure. These education requirements must be validated through policy document review, training management systems, and manual audits. 2. Technical Implementation ApproachThis framework uses an umbrella category approach to organize checks:
Benefits: Comprehensive multi-layered coverage, easier maintenance across 483+ checks, and practical CSP validation. 3. CI/CD Pipeline Security GapRFC-0014 Requirement: KSI-CMT-03 (Persistent Automated Testing) Current Coverage: Partial
Missing Technical Checks:
Why This Gap Exists:
Mitigation: Organizations using AWS CodeBuild/CodePipeline should manually validate artifact encryption, build logging, secret management, and least privilege IAM roles. 4. Subject to RFC-0014 FinalizationCurrent Implementation: Based on RFC-0014 Phase Two as published at https://www.fedramp.gov/rfcs/0014/ Notes:
Implementation NotesWhat This Framework ImplementsOriginal KSI Categories (9):
RFC-0014 Phase Two Additions for Low (3):
Total: 12 KSI requirements with 184+ automated security checks Evolution from Original KSI to RFC-0014 Phase TwoRetired KSIs (consolidated into other requirements):
Enhanced Requirements:
Philosophical Shift:
What's ExcludedModerate-Only KSIs (not applicable to Low):
Retired KSIs (superseded by Phase Two consolidation):
Coverage AnalysisRFC-0014 Phase Two Low Impact Level Requirements
Framework Statistics
Usage GuidanceRunning FedRAMP 20x KSI Low Scans# AWS
prowler aws --compliance fedramp_20x_ksi_low_aws
# Azure
prowler azure --compliance fedramp_20x_ksi_low_azure
# GCP
prowler gcp --compliance fedramp_20x_ksi_low_gcpInterpreting ResultsPASS Results:
FAIL Results:
Important: A complete FedRAMP Low authorization requires both:
What Additional Validation Is RequiredOrganizations must manually validate:
References
SummaryThe FedRAMP 20x KSI Low frameworks provide 87.5% automated coverage of RFC-0014 Phase Two technical requirements across 483+ checks for AWS, Azure, and GCP. The frameworks excel at validating cloud infrastructure security but require complementary organizational policies and manual validation for training/education KSIs and CI/CD pipeline security to achieve complete FedRAMP Low compliance. |
|
Closing this to clean it up after talking with @pedrooot |

Context
This PR adds support for FedRAMP 20x Key Security Indicators (KSIs) compliance framework to Prowler. FedRAMP 20x is a modernization initiative aimed at automating the FedRAMP authorization process, focusing on continuous monitoring and cloud-native security principles. The 10 KSIs represent core security areas that cloud service providers must address as part of the FedRAMP 20x Phase One pilot program.
This framework enables organizations pursuing FedRAMP authorization to assess their cloud environments against the FedRAMP 20x requirements using Prowler's existing security checks.
Description
This PR introduces FedRAMP 20x KSI compliance frameworks for AWS, Azure, and GCP providers. The implementation maps Prowler's existing security checks to the 10 Key Security Indicators defined by FedRAMP:
Changes included:
Added 3 new compliance framework JSON files:
prowler/compliance/aws/fedramp_20x_ksi_aws.json- Maps 96 AWS checks to KSIsprowler/compliance/azure/fedramp_20x_ksi_azure.json- Maps 73 Azure checks to KSIsprowler/compliance/gcp/fedramp_20x_ksi_gcp.json- Maps 94 GCP checks to KSIsAdded dashboard visualization modules:
dashboard/compliance/fedramp_20x_ksi_aws.pydashboard/compliance/fedramp_20x_ksi_azure.pydashboard/compliance/fedramp_20x_ksi_gcp.pyUpdated documentation:
docs/tutorials/compliance.mdThe 10 KSIs covered:
Each KSI is mapped to relevant NIST 800-53 controls and existing Prowler checks, following the official FedRAMP 20x documentation structure.
Checklist
API
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Additional Notes for Reviewers: