feat(compliance): add Cyber Essentials 3.3 for Azure#11588
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds a ChangesNCSC Cyber Essentials 3.3 Azure Framework
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related issues
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
✅ Conflict Markers Resolved All conflict markers have been successfully resolved in this pull request. |
252e830 to
70f884a
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/lib/check/universal_compliance_models_test.py`:
- Around line 938-942: The assertion validating
req.attributes["CloudApplicability"] is incomplete and missing a valid enum
value. Add "limited" to the set of accepted values in the assertion so it
includes all four valid values from the
ASDEssentialEight_Requirement_Attribute_CloudApplicability enum: "full",
"partial", "limited", and "non-applicable". Alternatively, validate directly
against the actual enum definition instead of hardcoding the set of values to
prevent this from happening again if the enum is updated.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 39c228a2-a5c4-44c3-8534-9c5144da438f
⛔ Files ignored due to path filters (1)
prowler/compliance/cyber_essentials.jsonis excluded by!prowler/compliance/**/*.json
📒 Files selected for processing (2)
prowler/CHANGELOG.mdtests/lib/check/universal_compliance_models_test.py
70f884a to
110bc03
Compare
Adds a new universal compliance framework mapping all 28 sub-requirements across the five Cyber Essentials themes (Firewalls, Secure Configuration, Security Update Management, User Access Control, Malware Protection) to existing Azure checks where automatable, with manual/non-applicable attributes for requirements outside cloud scope.
110bc03 to
34ca675
Compare
Context
Related to #11579.
NCSC Cyber Essentials is the UK government-backed cybersecurity certification scheme. There is currently no Cyber Essentials coverage for Azure in Prowler.
I noticed PR #11586 also proposes a Cyber Essentials framework for Azure, using the legacy provider-specific schema (
prowler/compliance/azure/...json, v3.1). This PR offers an alternative implementation using the universal compliance schema (the schema recommended for new frameworks per the Security Compliance Framework guide), targeting the current Cyber Essentials version (3.3, April 2026). Posting this so maintainers can compare approaches and pick whichever fits best — happy to close this if #11586 is preferred, or to adjust based on feedback.Description
Adds
prowler/compliance/cyber_essentials.json, a new universal compliance framework covering NCSC Cyber Essentials: Requirements for IT Infrastructure v3.3.Theme,AssessmentStatus(Automated/Manual),CloudApplicability(full/partial/non-applicable),RemediationProcedure, andReferencesattributes.AssessmentStatus: "Manual"/CloudApplicability: "non-applicable", per the framework spec requirement that every requirement be present even when no check can automate it.outputsconfig groups byThemeand includes a PDF chart summarizing compliance by theme.Adds
tests/lib/check/universal_compliance_models_test.py::TestCyberEssentialsFrameworkcovering schema validity, provider support, theme coverage, unique requirement IDs, and attribute/enum consistency.Adds a CHANGELOG.md entry under
### 🚀 Added.Steps to review
uv run pytest -q tests/lib/check/universal_compliance_models_test.py -k cyber_essentials— runs the new tests.uv run python prowler-cli.py azure --list-compliance— confirmscyber_essentialsis discovered.uv run python prowler-cli.py azure --list-compliance-requirements cyber_essentials— lists all 28 requirements with descriptions and check mappings.Checklist
SDK/CLI
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Summary by CodeRabbit
New Features
Tests