Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,9 @@ jobs:
pip-audit -r requirements.txt \
--ignore-vuln PYSEC-2025-217 \
--ignore-vuln CVE-2026-1839 \
--ignore-vuln CVE-2026-4372
--ignore-vuln CVE-2026-4372 \
--ignore-vuln CVE-2026-45830 \
--ignore-vuln CVE-2026-45833

# ── Software Bill of Materials (Syft, CycloneDX) ──────────────────────────
sbom:
Expand Down
37 changes: 37 additions & 0 deletions compliance/frameworks/cis_azure_benchmark.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,32 @@
"control_name": "Ensure that 'Secure transfer required' is set to 'Enabled'",
"description": "Enabling 'Secure transfer required' on a storage account ensures that all requests made to the storage account use HTTPS. Any requests using HTTP are rejected, protecting data in transit from eavesdropping and man-in-the-middle attacks."
},
"AZ-STOR-006": {
"control_id": "N/A-STOR-006",
"control_name": "Storage Account Shared-Key Authorization Enabled",
"description": "OpenShield checks this service-specific control without claiming an unrelated CIS recommendation."
},
"AZ-STOR-007": {
"control_id": "N/A-STOR-007",
"control_name": "Storage Account Allows TLS Below 1.2",
"description": "OpenShield checks this service-specific control without claiming an unrelated CIS recommendation."
},
"AZ-STOR-008": {
"control_id": "N/A-STOR-008",
"control_name": "Required Storage Customer-Managed Key Protection Missing",
"description": "OpenShield checks this service-specific control without claiming an unrelated CIS recommendation."
},
"AZ-STOR-009": {
"control_id": "N/A-STOR-009",
"control_name": "Required Blob Container Immutability Missing",
"description": "OpenShield checks this service-specific control without claiming an unrelated CIS recommendation."
},
"AZ-DB-005": {"control_id": "N/A-DB-005", "control_name": "SQL Server Microsoft Entra-Only Authentication Not Enforced", "description": "Service-specific OpenShield control."},
"AZ-DB-006": {"control_id": "N/A-DB-006", "control_name": "SQL Vulnerability Assessment Not Configured", "description": "Service-specific OpenShield control."},
"AZ-DB-007": {"control_id": "N/A-DB-007", "control_name": "SQL Auditing Retention Below Minimum", "description": "Service-specific OpenShield control."},
"AZ-COSMOS-001": {"control_id": "N/A-COSMOS-001", "control_name": "Cosmos DB Local Authentication Enabled", "description": "Service-specific OpenShield control."},
"AZ-COSMOS-002": {"control_id": "N/A-COSMOS-002", "control_name": "Cosmos DB Public Network Access Enabled", "description": "Service-specific OpenShield control."},
"AZ-CACHE-001": {"control_id": "N/A-CACHE-001", "control_name": "Managed Cache Public or Non-TLS Access", "description": "Service-specific OpenShield control."},
"AZ-NET-001": {
"control_id": "6.2",
"control_name": "Ensure that SSH access from the Internet is evaluated and restricted",
Expand Down Expand Up @@ -313,6 +339,17 @@
"AZ-BAK-002": {"control_id":"N/A-BAK-002","control_name":"Backup vault immutability","description":"No direct CIS Azure recommendation is assigned; OpenShield evaluates the Azure Backup immutability control."},
"AZ-BAK-004": {"control_id":"N/A-BAK-004","control_name":"Backup multi-user authorization","description":"No direct CIS Azure recommendation is assigned; OpenShield evaluates the Azure Backup authorization control."},
"AZ-BAK-006": {"control_id":"N/A-BAK-006","control_name":"Backup security monitoring","description":"No direct CIS Azure recommendation is assigned; OpenShield evaluates the Azure Backup monitoring control."},
"AZ-IDN-016": {"control_id": "N/A-IDN-016", "control_name": "Privileged User Missing Phishing-Resistant MFA", "description": "Service-specific OpenShield control for phishing-resistant MFA enforcement on privileged users."},
"AZ-IDN-017": {"control_id": "N/A-IDN-017", "control_name": "Global Administrator Permanently Assigned Outside PIM", "description": "Service-specific OpenShield control for PIM-governed Global Administrator assignments."},
"AZ-IDN-018": {"control_id": "N/A-IDN-018", "control_name": "Privileged Role Assigned Outside PIM", "description": "Service-specific OpenShield control requiring all privileged roles to be managed via PIM."},
"AZ-IDN-019": {"control_id": "N/A-IDN-019", "control_name": "Stale Privileged Account Retains Active Access", "description": "Service-specific OpenShield control for dormant privileged accounts."},
"AZ-IDN-020": {"control_id": "N/A-IDN-020", "control_name": "Emergency Access Accounts Missing or Misconfigured", "description": "Service-specific OpenShield control for break-glass account configuration."},
"AZ-IDN-021": {"control_id": "N/A-IDN-021", "control_name": "Legacy Authentication Not Blocked by Conditional Access", "description": "Service-specific OpenShield control for blocking legacy authentication protocols."},
"AZ-IDN-022": {"control_id": "N/A-IDN-022", "control_name": "Azure Management Not Protected by Conditional Access", "description": "Service-specific OpenShield control requiring CA protection for Azure management."},
"AZ-IDN-023": {"control_id": "N/A-IDN-023", "control_name": "Identity Protection Risk Policies Not Enabled", "description": "Service-specific OpenShield control for Identity Protection risk policy enablement."},
"AZ-IDN-024": {"control_id": "N/A-IDN-024", "control_name": "Workload Identities Excluded From Conditional Access", "description": "Service-specific OpenShield control for workload identity CA coverage."},
"AZ-IDN-025": {"control_id": "N/A-IDN-025", "control_name": "Privileged Role-Assignable Group Has No Owner", "description": "Service-specific OpenShield control for privileged group ownership governance."},

"AZ-SC-001": {
"control_id": "N/A-SC-001",
"control_name": "Container Registry admin user baseline (not mapped in CIS Azure Foundations 2.0.0)",
Expand Down
37 changes: 37 additions & 0 deletions compliance/frameworks/iso27001.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,32 @@
"control_name": "Policy on the use of cryptographic controls",
"description": "Requiring secure transfer ensures cryptographic controls are applied to data in transit. A policy on the use of cryptographic controls for protection of information should be developed and implemented."
},
"AZ-STOR-006": {
"control_id": "N/A-STOR-006",
"control_name": "Storage Account Shared-Key Authorization Enabled",
"description": "OpenShield checks this service-specific control without claiming an unrelated ISO 27001 recommendation."
},
"AZ-STOR-007": {
"control_id": "N/A-STOR-007",
"control_name": "Storage Account Allows TLS Below 1.2",
"description": "OpenShield checks this service-specific control without claiming an unrelated ISO 27001 recommendation."
},
"AZ-STOR-008": {
"control_id": "N/A-STOR-008",
"control_name": "Required Storage Customer-Managed Key Protection Missing",
"description": "OpenShield checks this service-specific control without claiming an unrelated ISO 27001 recommendation."
},
"AZ-STOR-009": {
"control_id": "N/A-STOR-009",
"control_name": "Required Blob Container Immutability Missing",
"description": "OpenShield checks this service-specific control without claiming an unrelated ISO 27001 recommendation."
},
"AZ-DB-005": {"control_id": "A.9.4.2", "control_name": "Secure log-on procedures", "description": "SQL authentication is restricted to approved Entra identities."},
"AZ-DB-006": {"control_id": "A.12.6.1", "control_name": "Management of technical vulnerabilities", "description": "Required SQL vulnerability assessment is configured."},
"AZ-DB-007": {"control_id": "A.12.4.1", "control_name": "Event logging", "description": "SQL audit logs are retained according to policy."},
"AZ-COSMOS-001": {"control_id": "A.9.4.2", "control_name": "Secure log-on procedures", "description": "Cosmos authentication is restricted to approved Entra identities."},
"AZ-COSMOS-002": {"control_id": "A.13.1.1", "control_name": "Network controls", "description": "Cosmos public network access is restricted according to policy."},
"AZ-CACHE-001": {"control_id": "A.13.1.1", "control_name": "Network controls", "description": "Managed cache access is private and uses approved TLS."},
"AZ-NET-001": {
"control_id": "A.13.1.1",
"control_name": "Network controls",
Expand Down Expand Up @@ -373,6 +399,17 @@
"control_name": "Network controls",
"description": "A private endpoint connection is pending, rejected, or disconnected and does not provide an active private path, leaving traffic to traverse the public network boundary instead."
},
"AZ-IDN-016": {"control_id": "A.9.4.2", "control_name": "Secure log-on procedures", "description": "Privileged users must use phishing-resistant multi-factor authentication."},
"AZ-IDN-017": {"control_id": "A.9.2.3", "control_name": "Management of privileged access rights", "description": "Global Administrator access must be time-bound through PIM rather than permanently assigned."},
"AZ-IDN-018": {"control_id": "A.9.2.3", "control_name": "Management of privileged access rights", "description": "Privileged role assignments must be managed and audited through PIM."},
"AZ-IDN-019": {"control_id": "A.9.2.5", "control_name": "Review of user access rights", "description": "Dormant privileged accounts must be periodically reviewed and revoked."},
"AZ-IDN-020": {"control_id": "A.9.1.2", "control_name": "Access to networks and network services", "description": "Emergency access accounts ensure administrative access during lockout scenarios."},
"AZ-IDN-021": {"control_id": "A.9.4.2", "control_name": "Secure log-on procedures", "description": "Legacy authentication protocols that bypass MFA controls must be blocked."},
"AZ-IDN-022": {"control_id": "A.9.4.1", "control_name": "Information access restriction", "description": "Azure management interfaces must require MFA via Conditional Access."},
"AZ-IDN-023": {"control_id": "A.12.4.1", "control_name": "Event logging", "description": "Identity Protection risk policies detect and respond to anomalous sign-in activity."},
"AZ-IDN-024": {"control_id": "A.9.2.3", "control_name": "Management of privileged access rights", "description": "Workload identities must not be broadly excluded from Conditional Access enforcement."},
"AZ-IDN-025": {"control_id": "A.9.2.5", "control_name": "Review of user access rights", "description": "Role-assignable groups must have owners to govern privileged membership changes."},

"AZ-SC-001": {
"control_id": "A.9.2.1",
"control_name": "User registration and de-registration",
Expand Down
37 changes: 37 additions & 0 deletions compliance/frameworks/nist_csf.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,32 @@
"control_name": "Data-in-transit is protected",
"description": "Requiring secure transfer ensures data in transit between clients and Azure Storage is encrypted using HTTPS, protecting against interception and tampering."
},
"AZ-STOR-006": {
"control_id": "N/A-STOR-006",
"control_name": "Storage Account Shared-Key Authorization Enabled",
"description": "OpenShield checks this service-specific control without claiming an unrelated NIST recommendation."
},
"AZ-STOR-007": {
"control_id": "N/A-STOR-007",
"control_name": "Storage Account Allows TLS Below 1.2",
"description": "OpenShield checks this service-specific control without claiming an unrelated NIST recommendation."
},
"AZ-STOR-008": {
"control_id": "N/A-STOR-008",
"control_name": "Required Storage Customer-Managed Key Protection Missing",
"description": "OpenShield checks this service-specific control without claiming an unrelated NIST recommendation."
},
"AZ-STOR-009": {
"control_id": "N/A-STOR-009",
"control_name": "Required Blob Container Immutability Missing",
"description": "OpenShield checks this service-specific control without claiming an unrelated NIST recommendation."
},
"AZ-DB-005": {"control_id": "PR.AC-6", "control_name": "Identity proofing and authentication", "description": "SQL authentication is restricted to approved Entra identities."},
"AZ-DB-006": {"control_id": "DE.CM-8", "control_name": "Vulnerability scans are performed", "description": "Required SQL vulnerability assessment is configured."},
"AZ-DB-007": {"control_id": "A.12.4.1", "control_name": "Event logging", "description": "SQL audit logs are retained according to policy."},
"AZ-COSMOS-001": {"control_id": "PR.AC-6", "control_name": "Identity proofing and authentication", "description": "Cosmos authentication is restricted to approved Entra identities."},
"AZ-COSMOS-002": {"control_id": "PR.AC-5", "control_name": "Network integrity is protected", "description": "Cosmos public network access is restricted according to policy."},
"AZ-CACHE-001": {"control_id": "PR.AC-5", "control_name": "Network integrity is protected", "description": "Managed cache access is private and uses approved TLS."},
"AZ-NET-001": {
"control_id": "PR.AC-3",
"control_name": "Remote access is managed",
Expand Down Expand Up @@ -373,6 +399,17 @@
"control_name": "Network integrity is protected",
"description": "A private endpoint connection is pending, rejected, or disconnected and does not provide an active private path, leaving traffic to traverse the public network boundary instead."
},
"AZ-IDN-016": {"control_id": "PR.AC-7", "control_name": "Users, devices, and other assets are authenticated", "description": "Privileged users must register phishing-resistant authentication methods."},
"AZ-IDN-017": {"control_id": "PR.AC-4", "control_name": "Access permissions and authorizations are managed", "description": "Global Administrator assignments must be time-bound and managed through PIM."},
"AZ-IDN-018": {"control_id": "PR.AC-4", "control_name": "Access permissions and authorizations are managed", "description": "All privileged role assignments must be governed through Privileged Identity Management."},
"AZ-IDN-019": {"control_id": "PR.AC-1", "control_name": "Identities and credentials are managed", "description": "Dormant privileged accounts must be reviewed and disabled."},
"AZ-IDN-020": {"control_id": "PR.AC-4", "control_name": "Access permissions and authorizations are managed", "description": "At least two correctly configured emergency access accounts must exist."},
"AZ-IDN-021": {"control_id": "PR.AC-7", "control_name": "Users, devices, and other assets are authenticated", "description": "Legacy authentication protocols that bypass MFA must be blocked."},
"AZ-IDN-022": {"control_id": "PR.AC-4", "control_name": "Access permissions and authorizations are managed", "description": "Azure management interfaces require MFA enforcement via Conditional Access."},
"AZ-IDN-023": {"control_id": "DE.CM-3", "control_name": "Personnel activity is monitored to detect potential cybersecurity events", "description": "Identity Protection risk policies must be enabled to detect and respond to compromised accounts."},
"AZ-IDN-024": {"control_id": "PR.AC-4", "control_name": "Access permissions and authorizations are managed", "description": "Workload identities with privileged roles must not be broadly excluded from CA policies."},
"AZ-IDN-025": {"control_id": "PR.AC-4", "control_name": "Access permissions and authorizations are managed", "description": "Role-assignable groups must have designated owners to control privileged group membership."},

"AZ-SC-001": {
"control_id": "PR.AC-1",
"control_name": "Identities and credentials are issued, managed, verified, revoked, and audited",
Expand Down
Loading
Loading