rules/findings/azure/storage/azure-storage-account-blob-anonymous-access-allowed.json
|
{
"provider": "Azure", "serviceType": "Storage Accounts", "serviceName": "Storage", "displayName": "Ensure that \u0027Allow Blob Anonymous Access\u0027 is set to \u0027Disabled\u0027", "description": "\r\n\t\t\t\tThe Azure Storage setting ‘Allow Blob Anonymous Access’ (aka \"allowBlobPublicAccess\") controls whether anonymous access is allowed for blob data in a storage account. When this property is set to True, it enables public read access to blob data, which can be convenient for sharing data but may carry security risks. When set to False, it disallows public access to blob data, providing a more secure storage environment.\r\n ", "rationale": "If \"Allow Blob Anonymous Access\" is enabled, blobs can be accessed by adding the blob name to the URL to see the contents. An attacker can enumerate a blob using methods, such as brute force, and access them. Exfiltration of data by brute force enumeration of items from a storage account may occur if this setting is set to `Enabled`. ", "impact": "Additional consideration may be required for exceptional circumstances where elements of a storage account require public accessibility. In these circumstances, it is highly recommended that all data stored in the public facing storage account be reviewed for sensitive or potentially compromising data, and that sensitive or compromising data is never stored in these storage accounts.", "remediation": { "text": "\r\n\t\t\t###### Remediate from Azure Portal \r\n\t\t\t1. Go to Storage Accounts. \r\n\t\t\t2. For each storage account, under Settings, click Configuration. \r\n\t\t\t3. Set Allow Blob Anonymous Access to Disabled. \r\n\t\t\t4. Click Save. \r\n\t", "code": { "powerShell": null, "iac": null, "terraform": null, "other": null } }, "recommendation": null, "references": [ "https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent?tabs=portal", "https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent?source=recommendations\u0026tabs=portal", "https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent-classic?tabs=portal" ], "compliance": [ { "name": "CIS Microsoft Azure Foundations", "version": "5.0.0", "reference": "9.3.8", "profile": [ "Level 1" ] } ], "level": "low", "tags": [ ], "rule": { "path": "az_storage_accounts", "subPath": null, "selectCondition": { }, "query": [ { "filter": [ { "conditions": [ [ "properties.allowBlobPublicAccess", "ne", "false" ] ] } ] } ], "shouldExist": null, "returnObject": null, "removeIfNotExists": null }, "output": { "html": { "data": { "properties": { "name": "Name", "location": "Location", "ResourceGroupName": "ResourceGroupName", "properties.allowBlobPublicAccess": "Blob Public Access" }, "expandObject": null }, "table": "default", "decorate": [ { "itemName": "Blob Public Access", "itemValue": "enabled", "className": "badge badge-danger badge-xl" } ], "emphasis": [ ], "actions": { "objectData": { "properties": [ "id", "name", "properties" ], "expandObject": null, "limit": null }, "showGoToButton": "True", "showModalButton": "True", "directLink": null } }, "text": { "data": { "properties": { "name": "Name", "location": "Location", "ResourceGroupName": "ResourceGroupName", "properties.allowBlobPublicAccess": "Blob Public Access" }, "expandObject": null }, "status": { "keyName": ["name"], "message": "Ensure that \u0027Allow Blob Anonymous Access\u0027 is set to \u0027Disabled\u0027 for {name}", "defaultMessage": "Ensure that \u0027Allow Blob Anonymous Access\u0027 is set to \u0027Disabled\u0027" }, "properties": { "resourceName": "name", "resourceId": "id", "resourceType": "AzureStorageAccount" }, "onlyStatus": false } }, "idSuffix": "storage_accounts_allow_blob_anonymous_access_enabled", "notes": [ ], "categories": [ ], "immutable_properties": [ "id" ], "id": "azure_storage_018" } |