Skip to content
Closed
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
8d1e9f5
feat(aws): add Resource Control Policies (RCP) support and security c…
ethanolivertroy Mar 12, 2025
c23df45
fix: update ReadTheDocs configuration to use pip instead of Poetry
ethanolivertroy Mar 12, 2025
ff53a7d
Merge branch 'prowler-cloud:master' into master
ethanolivertroy Aug 1, 2025
ae54280
Merge branch 'prowler-cloud:master' into master
ethanolivertroy Aug 5, 2025
1993294
Merge branch 'prowler-cloud:master' into master
ethanolivertroy Aug 12, 2025
656f41f
feat: Add FedRAMP 20x Key Security Indicators (KSIs) compliance frame…
ethanolivertroy Aug 12, 2025
f9a6203
feat: Add dashboard compliance modules for FedRAMP 20x KSI frameworks
ethanolivertroy Aug 12, 2025
68f8f39
Remove FEDRAMP_20X_KSI_README.md - not needed for main repo
ethanolivertroy Aug 13, 2025
404c1ba
test: Add comprehensive unit tests for FedRAMP 20x KSI compliance fra…
ethanolivertroy Aug 13, 2025
60f7aba
Merge branch 'prowler-cloud:master' into feature/fedramp-20x-ksi-comp…
ethanolivertroy Aug 14, 2025
e4c4d7a
feat: Add FedRAMP 20x KSI compliance framework with tests
ethanolivertroy Aug 14, 2025
b07d179
chore: revision
MrCloudSec Aug 15, 2025
24d9d57
fix(tests): correct FedRAMP KSI identifiers to match official schema
ethanolivertroy Aug 18, 2025
c8d2e2d
fix(tests): complete FedRAMP KSI identifier fixes from code review
ethanolivertroy Aug 18, 2025
ca45855
chore: merge latest master into feature branch
ethanolivertroy Oct 29, 2025
21ccd45
chore: resolve merge conflicts from stashed changes
ethanolivertroy Oct 29, 2025
4d58424
fix(compliance): rename FedRAMP 20x KSI to Low and remove NistControls
ethanolivertroy Oct 29, 2025
1244552
feat: Add RFC-0014 Phase Two KSIs to FedRAMP 20x Low frameworks
ethanolivertroy Oct 29, 2025
86ef2b6
fix: add required Name field and RFC-0014 Phase Two KSIs to FedRAMP 2…
ethanolivertroy Oct 29, 2025
f810bdb
chore(revision): add some changes
pedrooot Nov 3, 2025
3fac12c
feat: Add FedRAMP 20x Key Security Indicators (KSIs) compliance frame…
ethanolivertroy Aug 12, 2025
9494be0
feat: Add dashboard compliance modules for FedRAMP 20x KSI frameworks
ethanolivertroy Aug 12, 2025
2a85303
Remove FEDRAMP_20X_KSI_README.md - not needed for main repo
ethanolivertroy Aug 13, 2025
1787b19
test: Add comprehensive unit tests for FedRAMP 20x KSI compliance fra…
ethanolivertroy Aug 13, 2025
8610239
feat: Add FedRAMP 20x KSI compliance framework with tests
ethanolivertroy Aug 14, 2025
b84cb01
fix(tests): correct FedRAMP KSI identifiers to match official schema
ethanolivertroy Aug 18, 2025
4df5c91
fix(tests): complete FedRAMP KSI identifier fixes from code review
ethanolivertroy Aug 18, 2025
04bccdb
fix(compliance): rename FedRAMP 20x KSI to Low and remove NistControls
ethanolivertroy Oct 29, 2025
c380d64
feat: Add RFC-0014 Phase Two KSIs to FedRAMP 20x Low frameworks
ethanolivertroy Oct 29, 2025
4eb5b77
fix: add required Name field and RFC-0014 Phase Two KSIs to FedRAMP 2…
ethanolivertroy Oct 29, 2025
4b5f47b
chore(revision): add some changes
pedrooot Nov 3, 2025
13a1a10
Merge branch 'master' into feature/fedramp-20x-ksi-compliance
pedrooot Nov 7, 2025
62acf24
chore: merge master into feature/fedramp-20x-ksi-compliance
pedrooot Nov 10, 2025
08d5574
chore: update readme
pedrooot Nov 10, 2025
d60667f
Merge branch 'master' into feature/fedramp-20x-ksi-compliance
pedrooot Nov 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions dashboard/compliance/fedramp_20x_ksi_aws.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import warnings

from dashboard.common_methods import get_section_containers_cis

warnings.filterwarnings("ignore")


def get_table(data):
aux = data[
[
"REQUIREMENTS_ID",
"REQUIREMENTS_DESCRIPTION",
"REQUIREMENTS_ATTRIBUTES_SECTION",
"CHECKID",
"STATUS",
"REGION",
"ACCOUNTID",
"RESOURCEID",
]
].copy()

# Shorten the long FedRAMP KSI descriptions for better display
ksi_short_names = {
"A secure cloud service offering will protect user data, control access, and apply zero trust principles": "Identity and Access Management",
"A secure cloud service offering will use cloud native architecture and design principles to enforce and enhance the Confidentiality, Integrity and Availability of the system": "Cloud Native Architecture",
"A secure cloud service provider will ensure that all system changes are properly documented and configuration baselines are updated accordingly": "Change Management",
"A secure cloud service provider will continuously educate their employees on cybersecurity measures, testing them regularly": "Cybersecurity Education",
"A secure cloud service offering will document, report, and analyze security incidents to ensure regulatory compliance and continuous security improvement": "Incident Reporting",
"A secure cloud service offering will monitor, log, and audit all important events, activity, and changes": "Monitoring, Logging, and Auditing",
"A secure cloud service offering will have intentional, organized, universal guidance for how every information resource, including personnel, is secured": "Policy and Inventory",
"A secure cloud service offering will define, maintain, and test incident response plan(s) and recovery capabilities to ensure minimal service disruption and data loss": "Recovery Planning",
"A secure cloud service offering will follow FedRAMP encryption policies, continuously verify information resource integrity, and restrict access to third-party information resources": "Service Configuration",
"A secure cloud service offering will understand, monitor, and manage supply chain risks from third-party information resources": "Third-Party Information Resources",
}

# Replace long descriptions with short names - use contains for partial matching
if not aux.empty:
for long_desc, short_name in ksi_short_names.items():
mask = aux["REQUIREMENTS_DESCRIPTION"].str.contains(
long_desc[:50], na=False, regex=False
)
aux.loc[mask, "REQUIREMENTS_DESCRIPTION"] = short_name

return get_section_containers_cis(
aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION"
)
46 changes: 46 additions & 0 deletions dashboard/compliance/fedramp_20x_ksi_azure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import warnings

from dashboard.common_methods import get_section_containers_cis

warnings.filterwarnings("ignore")


def get_table(data):
aux = data[
[
"REQUIREMENTS_ID",
"REQUIREMENTS_DESCRIPTION",
"REQUIREMENTS_ATTRIBUTES_SECTION",
"CHECKID",
"STATUS",
"REGION",
"ACCOUNTID",
"RESOURCEID",
]
].copy()

# Shorten the long FedRAMP KSI descriptions for better display
ksi_short_names = {
"A secure cloud service offering will protect user data, control access, and apply zero trust principles": "Identity and Access Management",
"A secure cloud service offering will use cloud native architecture and design principles to enforce and enhance the Confidentiality, Integrity and Availability of the system": "Cloud Native Architecture",
"A secure cloud service provider will ensure that all system changes are properly documented and configuration baselines are updated accordingly": "Change Management",
"A secure cloud service provider will continuously educate their employees on cybersecurity measures, testing them regularly": "Cybersecurity Education",
"A secure cloud service offering will document, report, and analyze security incidents to ensure regulatory compliance and continuous security improvement": "Incident Reporting",
"A secure cloud service offering will monitor, log, and audit all important events, activity, and changes": "Monitoring, Logging, and Auditing",
"A secure cloud service offering will have intentional, organized, universal guidance for how every information resource, including personnel, is secured": "Policy and Inventory",
"A secure cloud service offering will define, maintain, and test incident response plan(s) and recovery capabilities to ensure minimal service disruption and data loss": "Recovery Planning",
"A secure cloud service offering will follow FedRAMP encryption policies, continuously verify information resource integrity, and restrict access to third-party information resources": "Service Configuration",
"A secure cloud service offering will understand, monitor, and manage supply chain risks from third-party information resources": "Third-Party Information Resources",
}

# Replace long descriptions with short names - use contains for partial matching
if not aux.empty:
for long_desc, short_name in ksi_short_names.items():
mask = aux["REQUIREMENTS_DESCRIPTION"].str.contains(
long_desc[:50], na=False, regex=False
)
aux.loc[mask, "REQUIREMENTS_DESCRIPTION"] = short_name

return get_section_containers_cis(
aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION"
)
46 changes: 46 additions & 0 deletions dashboard/compliance/fedramp_20x_ksi_gcp.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import warnings

from dashboard.common_methods import get_section_containers_cis

warnings.filterwarnings("ignore")


def get_table(data):
aux = data[
[
"REQUIREMENTS_ID",
"REQUIREMENTS_DESCRIPTION",
"REQUIREMENTS_ATTRIBUTES_SECTION",
"CHECKID",
"STATUS",
"REGION",
"ACCOUNTID",
"RESOURCEID",
]
].copy()

# Shorten the long FedRAMP KSI descriptions for better display
ksi_short_names = {
"A secure cloud service offering will protect user data, control access, and apply zero trust principles": "Identity and Access Management",
"A secure cloud service offering will use cloud native architecture and design principles to enforce and enhance the Confidentiality, Integrity and Availability of the system": "Cloud Native Architecture",
"A secure cloud service provider will ensure that all system changes are properly documented and configuration baselines are updated accordingly": "Change Management",
"A secure cloud service provider will continuously educate their employees on cybersecurity measures, testing them regularly": "Cybersecurity Education",
"A secure cloud service offering will document, report, and analyze security incidents to ensure regulatory compliance and continuous security improvement": "Incident Reporting",
"A secure cloud service offering will monitor, log, and audit all important events, activity, and changes": "Monitoring, Logging, and Auditing",
"A secure cloud service offering will have intentional, organized, universal guidance for how every information resource, including personnel, is secured": "Policy and Inventory",
"A secure cloud service offering will define, maintain, and test incident response plan(s) and recovery capabilities to ensure minimal service disruption and data loss": "Recovery Planning",
"A secure cloud service offering will follow FedRAMP encryption policies, continuously verify information resource integrity, and restrict access to third-party information resources": "Service Configuration",
"A secure cloud service offering will understand, monitor, and manage supply chain risks from third-party information resources": "Third-Party Information Resources",
}

# Replace long descriptions with short names - use contains for partial matching
if not aux.empty:
for long_desc, short_name in ksi_short_names.items():
mask = aux["REQUIREMENTS_DESCRIPTION"].str.contains(
long_desc[:50], na=False, regex=False
)
aux.loc[mask, "REQUIREMENTS_DESCRIPTION"] = short_name

return get_section_containers_cis(
aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION"
)
10 changes: 7 additions & 3 deletions docs/tutorials/compliance.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ In order to see which compliance frameworks are covered by Prowler, you can use
prowler <provider> --list-compliance
```

### AWS (36 frameworks)
### AWS (37 frameworks)

- `aws_account_security_onboarding_aws`
- `aws_audit_manager_control_tower_guardrails_aws`
Expand All @@ -45,6 +45,7 @@ prowler <provider> --list-compliance
- `cis_5.0_aws`
- `cisa_aws`
- `ens_rd2022_aws`
- `fedramp_20x_ksi_aws`
- `fedramp_low_revision_4_aws`
- `fedramp_moderate_revision_4_aws`
- `ffiec_aws`
Expand All @@ -68,25 +69,28 @@ prowler <provider> --list-compliance
- `rbi_cyber_security_framework_aws`
- `soc2_aws`

### Azure (10 frameworks)
### Azure (11 frameworks)

- `cis_2.0_azure`
- `cis_2.1_azure`
- `cis_3.0_azure`
- `cis_4.0_azure`
- `ens_rd2022_azure`
- `fedramp_20x_ksi_azure`
- `iso27001_2022_azure`
- `mitre_attack_azure`
- `nis2_azure`
- `pci_4.0_azure`
- `prowler_threatscore_azure`
- `soc2_azure`

### GCP (10 frameworks)
### GCP (11 frameworks)

- `cis_2.0_gcp`
- `cis_3.0_gcp`
- `cis_4.0_gcp`
- `ens_rd2022_gcp`
- `fedramp_20x_ksi_gcp`
- `iso27001_2022_gcp`
- `mitre_attack_gcp`
- `nis2_gcp`
Expand Down
1 change: 1 addition & 0 deletions prowler/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ All notable changes to the **Prowler SDK** are documented in this file.
## [v5.11.0] (Prowler UNRELEASED)

### Added
- FedRAMP 20x Key Security Indicators (KSI) compliance framework for AWS, Azure, and GCP providers [(#8512)](https://github.com/prowler-cloud/prowler/pull/8512)
- Certificate authentication for M365 provider [(#8404)](https://github.com/prowler-cloud/prowler/pull/8404)
- `vm_sufficient_daily_backup_retention_period` check for Azure provider [(#8200)](https://github.com/prowler-cloud/prowler/pull/8200)
- `vm_jit_access_enabled` check for Azure provider [(#8202)](https://github.com/prowler-cloud/prowler/pull/8202)
Expand Down
Loading