OWASP / OWASP/openshield

Add rule AZ‑STOR‑007 — Storage Account Missing Private Endpoint

Open
#322 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
57
Forks
68
Avg merge
3d 15h
Merged PRs (30d)
17

Description

Rule Details

  • Rule ID: AZ-STOR-007
  • Severity: HIGH
  • Category: Storage
  • Frameworks: CIS / NIST / ISO 27001 / SOC 2

What does it detect?

  This rule detects Azure Storage Accounts that do not have any Private Endpoint connections configured.
  A Storage Account without a Private Endpoint remains reachable over the public internet, increasing exposure to unauthorized access, data exfiltration, and network‑based attacks.

Detection logic

  • Query Storage Accounts using:
    Microsoft.Storage/storageAccounts

-Inspect the property:
properties.privateEndpointConnections

-If:

  • The list is empty, or

  • The property is null, or

* No Private Endpoint connection is in an Approved state

  → return one HIGH severity finding.
  • If one or more Private Endpoints exist → return no findings.

Why is this a security risk?

Storage Accounts exposed publicly can be accessed from any network on the internet.
Without Private Endpoints:

  • Traffic does not stay inside the customer’s VNet

  • Attack surface increases significantly

  • Lateral movement becomes easier

  • Compliance frameworks (CIS, NIST, ISO) are violated

  • Sensitive data may be reachable from untrusted networks

Private Endpoints enforce network isolation, ensuring Storage traffic flows only through private IPs inside Azure VNets.

Remediation steps

Azure CLI

az network private-endpoint create
--name
--resource-group
--vnet-name
--subnet
--private-connection-resource-id
--group-id blob

Test plan

  • Tested against real Azure free trial subscription
  • Compliant case returns no findings
  • Non-compliant case returns correct finding
  • CLI playbook written and tested
  • All four compliance framework JSONs updated

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the existing Python rule entry point for Microsoft.Storage/storageAccounts and comparable storage checks, then inspect how properties.privateEndpointConnections and framework mappings are represented. Implement the approved-Private-Endpoint cases, add compliant and non-compliant tests, verify the Azure CLI playbook, and update the CIS, NIST, ISO 27001, and SOC 2 JSON mappings.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, python
Domain
cloud, security
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.