turbot/steampipe-mod-azure-compliance

Control: 2.5 Ensure that Azure Defender is set to On for Storage

Description

Enabling Azure Defender threat detection for Storage, providing threat intelligence, anomaly detection, and behavior analytics in the Azure Security Center. It also allows for greater defense-in-depth, with threat detection provided by the Microsoft Security Response Center (MSRC).

Remediation

From Console

Perform the following action to check Azure Defender is set to On for Storage:

  1. Login to Azure console and navigate to Security Center.
  2. Select Pricing & settings blade under Management.
  3. Click on the subscription name, Azure Defender plans blade got selected.
  4. For the Storage resource type Plan should be set to On.

Perform the following action to enable Azure Defender for Storage:

  1. Login to Azure console and navigate to Security Center.
  2. Select Pricing & settings blade under Management.
  3. Click on the subscription name, Azure Defender plans blade got selected.
  4. For the Storage resource type Plan set it to On.

From Command Line

Command to enable Azure defender for Storage

az account get-access-token --query "{subscription:subscription,accessToken:accessToken}" --out tsv | xargs -L1 bash -c 'curl -X PUT -H "Authorization: Bearer $1" -H "Content-Type: application/json" https://management.azure.com/subscriptions/$0/providers/Microsoft.Security/pr icings/StorageAccounts?api-version=2018-06-01 -d@"input.json"'

Where input.json contains the request body json data as mentioned below

{
"id":"/subscriptions/<Your_Subscription_Id>/providers/Microsoft.Security/pricings/ StorageAccounts",
"name":"StorageAccounts",
"type":"Microsoft.Security/pricings",
"properties":{
"pricingTier":"Standard"
}
}

Usage

Run the control in your terminal:

powerpipe control run azure_compliance.control.cis_v130_2_5

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run azure_compliance.control.cis_v130_2_5 --share

SQL

This control uses a named query:

select
sub_pricing.id as resource,
case
when pricing_tier = 'Standard' then 'ok'
else 'alarm'
end as status,
case
when pricing_tier = 'Standard' then 'Azure Defender on for Storage.'
else 'Azure Defender off for Storage.'
end as reason
, sub.display_name as subscription
from
azure_security_center_subscription_pricing sub_pricing
right join azure_subscription sub on sub_pricing.subscription_id = sub.subscription_id
where
name = 'StorageAccounts';

Tags