Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
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
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ Findings map to NIST FIPS 203 (ML-KEM), FIPS 204 (ML-DSA), and FIPS 205 (SLH-DSA

| Feature | Description |
|---|---|
| **Misconfiguration Scanner** | Runs 144 Azure security rules across storage, network, identity, database, compute, Key Vault, AKS, Kubernetes workloads, post-quantum cryptography, backup, serverless, private endpoint, and supply chain posture |
| **Misconfiguration Scanner** | Runs 154 Azure security rules across storage, network, identity, database, compute, Key Vault, AKS, Kubernetes workloads, post-quantum cryptography, backup, serverless, private endpoint, supply chain, and governance posture |
| **Compliance Mapper** | Maps findings to CIS Benchmarks, NIST CSF, ISO 27001, and SOC 2 framework JSON files |
| **Scan History API** | Stores scans and findings in PostgreSQL and exposes findings, score, scan history, compliance posture, drift, and resource inventory over REST |
| **Remediation Playbooks** | Every documented rule ships with a matching review-gated remediation script (144 playbooks) |
| **Remediation Playbooks** | Every documented rule ships with a matching review-gated remediation script (154 playbooks) |
| **Security Dashboard** | Full React dashboard deployed on Vercel - live monitoring, findings, compliance, drift, prioritization, and AI-layer views |
| **Project Website** | Documentation and reference site at [owasp.github.io/openshield](https://owasp.github.io/openshield/) - blog, rules gallery, architecture, evidence guides, roadmap, and releases |
| **Sentinel Integration** | Normalises findings and pushes them into Microsoft Sentinel via a Log Analytics custom table and KQL analytics rules |
Expand Down Expand Up @@ -120,11 +120,11 @@ Project policies and assurance evidence:
flowchart TD
A["React Dashboard\nVercel · Live"]
B["Flask REST API\nJWT · CORS · Blueprints"]
C["Scanner Engine\n144 Python rules"]
C["Scanner Engine\n154 Python rules"]
D["Azure Subscription\nScanned via Azure SDK + Graph"]
E["Compliance Framework JSON\nCIS · NIST · ISO 27001 · SOC 2"]
F["PostgreSQL Database\nFindings · Scans"]
G["Azure CLI Playbooks\n144 remediation scripts"]
G["Azure CLI Playbooks\n154 remediation scripts"]
H["sentinel/ingest.py\nNormalise + HMAC upload"]
I["Microsoft Sentinel\nOpenShieldFindings_CL · KQL rules"]

Expand Down
120 changes: 120 additions & 0 deletions compliance/frameworks/cis_azure_benchmark.json
Original file line number Diff line number Diff line change
Expand Up @@ -1734,6 +1734,126 @@
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-001": {
"control_id": "N/A-GOV-001",
"control_name": "Subscription Outside Approved Management Group Hierarchy",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-001. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-002": {
"control_id": "N/A-GOV-002",
"control_name": "Required Security Policy Initiative Missing",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-002. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-003": {
"control_id": "N/A-GOV-003",
"control_name": "Preventive Policy Uses Non-Enforcing Effect",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-003. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-004": {
"control_id": "N/A-GOV-004",
"control_name": "Policy Exemption Missing Governance Metadata",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-004. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-005": {
"control_id": "N/A-GOV-005",
"control_name": "Critical Production Resource Missing Deletion Lock",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-005. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-006": {
"control_id": "N/A-GOV-006",
"control_name": "Excessive Subscription Owner Assignments",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-006. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-007": {
"control_id": "N/A-GOV-007",
"control_name": "Privileged Access Assigned at Broad Scope",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-007. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-008": {
"control_id": "N/A-GOV-008",
"control_name": "Undocumented Resource Provider Registered",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-008. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-009": {
"control_id": "N/A-GOV-009",
"control_name": "Production Resource Missing Ownership Metadata",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-009. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-010": {
"control_id": "N/A-GOV-010",
"control_name": "Security Configuration Drift Exceeds SLA",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "not_applicable",
"evidence_type": "no_direct_mapping",
"primary_source": "OpenShield compliance mapping pack, authored against CIS Microsoft Azure Foundations Benchmark v2.0.0. Technical-evidence mapping only.",
"rationale": "No numbered control in this mapping pack directly maps to AZ-GOV-010. This rule is excluded from this framework score.",
"owner": null,
"review_status": "pending_review",
"review_date": null
}
}
}
120 changes: 120 additions & 0 deletions compliance/frameworks/iso27001.json
Original file line number Diff line number Diff line change
Expand Up @@ -1734,6 +1734,126 @@
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-001": {
"control_id": "A.5.15",
"control_name": "Access control",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.15",
"rationale": "AZ-GOV-001 supplies Azure configuration evidence supporting A.5.15. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-002": {
"control_id": "A.5.1",
"control_name": "Policies for information security",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.1",
"rationale": "AZ-GOV-002 supplies Azure configuration evidence supporting A.5.1. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-003": {
"control_id": "A.5.1",
"control_name": "Policies for information security",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.1",
"rationale": "AZ-GOV-003 supplies Azure configuration evidence supporting A.5.1. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-004": {
"control_id": "A.5.1",
"control_name": "Policies for information security",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.1",
"rationale": "AZ-GOV-004 supplies Azure configuration evidence supporting A.5.1. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-005": {
"control_id": "A.8.9",
"control_name": "Configuration management",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.8.9",
"rationale": "AZ-GOV-005 supplies Azure configuration evidence supporting A.8.9. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-006": {
"control_id": "A.5.18",
"control_name": "Access rights",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.18",
"rationale": "AZ-GOV-006 supplies Azure configuration evidence supporting A.5.18. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-007": {
"control_id": "A.5.18",
"control_name": "Access rights",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.18",
"rationale": "AZ-GOV-007 supplies Azure configuration evidence supporting A.5.18. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-008": {
"control_id": "A.5.9",
"control_name": "Inventory of information and other associated assets",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.9",
"rationale": "AZ-GOV-008 supplies Azure configuration evidence supporting A.5.9. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-009": {
"control_id": "A.5.9",
"control_name": "Inventory of information and other associated assets",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.5.9",
"rationale": "AZ-GOV-009 supplies Azure configuration evidence supporting A.5.9. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
},
"AZ-GOV-010": {
"control_id": "A.8.8",
"control_name": "Management of technical vulnerabilities",
"description": "OpenShield evaluates this governance control from read-only Azure control-plane evidence and organisation-approved policy inputs.",
"mapping_type": "supporting",
"evidence_type": "automated_configuration_scan",
"primary_source": "ISO/IEC 27001:2022, Annex A control A.8.8",
"rationale": "AZ-GOV-010 supplies Azure configuration evidence supporting A.8.8. It does not establish full organizational compliance; policy and process evidence require separate review.",
"owner": null,
"review_status": "pending_review",
"review_date": null
}
}
}
Loading
Loading