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
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ RUN apt-get update \
&& apt-get dist-upgrade -y \
&& rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
COPY requirements.txt ./
RUN pip install --no-cache-dir --upgrade \
pip==26.1.2 \
Expand Down
26 changes: 26 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
26 changes: 26 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
26 changes: 26 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": "PR.PT-1", "control_name": "Audit/log records are determined, documented, implemented, and reviewed", "description": "SQL audit logs are retained for at least 90 days in accordance with the defined audit 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
26 changes: 26 additions & 0 deletions compliance/frameworks/soc2.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,32 @@
"control_name": "Protects Data in Transit",
"description": "Allowing unencrypted HTTP traffic to a storage account exposes data in transit to interception and tampering. CC6.7 requires that data transmitted over networks is protected using encryption. Enforcing HTTPS-only ensures all storage traffic is encrypted in transit."
},
"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 SOC 2 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 SOC 2 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 SOC 2 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 SOC 2 recommendation."
},
"AZ-DB-005": {"control_id": "CC6.3", "control_name": "Logical access security", "description": "SQL authentication is restricted to approved Entra identities."},
"AZ-DB-006": {"control_id": "CC7.1", "control_name": "Detection of security events", "description": "Required SQL vulnerability assessment is configured."},
"AZ-DB-007": {"control_id": "CC7.2", "control_name": "System monitoring", "description": "SQL audit logs are retained according to policy."},
"AZ-COSMOS-001": {"control_id": "CC6.3", "control_name": "Logical access security", "description": "Cosmos authentication is restricted to approved Entra identities."},
"AZ-COSMOS-002": {"control_id": "CC6.6", "control_name": "Logical access security measures", "description": "Cosmos public network access is restricted according to policy."},
"AZ-CACHE-001": {"control_id": "CC6.6", "control_name": "Logical access security measures", "description": "Managed cache access is private and uses approved TLS."},
"AZ-STOR-003": {
"control_id": "CC8.1",
"control_name": "Change Management",
Expand Down
6 changes: 4 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,12 @@ There are 80 rule files in `scanner/rules/`. See `docs/rules-reference.md` for t

| Category | Count | Rules |
|---|---|---|
| Storage | 5 | AZ-STOR-001 to 005 |
| Storage | 9 | AZ-STOR-001 to 009 |
| Network | 15 | AZ-NET-001 to 015 |
| Identity | 15 | AZ-IDN-001 to 015 |
| Database | 4 | AZ-DB-001 to 004 |
| Database | 7 | AZ-DB-001 to 007 |
| Cosmos DB | 2 | AZ-COSMOS-001 to 002 |
| Managed Cache | 1 | AZ-CACHE-001 |
| Compute | 4 | AZ-CMP-001 to 004 |
| Key Vault | 5 | AZ-KV-001 to 005 |
| Kubernetes | 6 | AZ-AKS-001 to 006 |
Expand Down
Loading
Loading