Control: 2.2 Ensure that Azure Defender is set to On for App Service
Description
Enabling Azure Defender threat detection for App Service, 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 App Service:
- Login to Azure console and navigate to Security Center.
- Select
Pricing & settingsblade under Management. - Click on the subscription name,
Azure Defender plansblade got selected. - For the
App Serviceresource typePlanshould be set to On.
Perform the following action to enable Azure Defender for App Service:
- Login to Azure console and navigate to Security Center.
- Select
Pricing & settingsblade under Management. - Click on the subscription name,
Azure Defender plansblade got selected. - For the
App Serviceresource typePlanset it to On.
From Command Line
Command to enable Azure defender for App Service
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/AppServices?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/ AppServices", "name":"AppServices", "type":"Microsoft.Security/pricings", "properties":{ "pricingTier":"Standard" }}
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v130_2_2Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v130_2_2 --shareSQL
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 App Services.' else 'Azure Defender off for App Services.' end as reason , sub.display_name as subscriptionfrom azure_security_center_subscription_pricing sub_pricing right join azure_subscription sub on sub_pricing.subscription_id = sub.subscription_idwhere name = 'AppServices';