turbot/steampipe-mod-azure-compliance

Control: 2.3.3 Ensure That 'Notify about alerts with the following severity' is Set to 'High'

Description

Enables emailing security alerts to the subscription owner or other designated security contact.

Enabling security alert emails ensures that security alert emails are received from Microsoft. This ensures that the right people are aware of any potential security issues and are able to mitigate the risk.

Remediation

From Azure Portal

  1. From Azure Home select the Portal Menu
  2. Select Microsoft Defender for Cloud
  3. Select Environment Settings
  4. Click on the appropriate Management Group, Subscription, or Workspace
  5. Click on Email notifications
  6. Under Notification types, check the check box next to Notify about alerts with the following severity (or higher): and select High from the drop down menu
  7. Click Save

From Azure CLI

Use the below command to set Send email notification for high severity alerts to On.

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/
securityContacts/default1?api-version=2017-08-01-preview -d@"input.json"'

Where input.json contains the Request body json data as mentioned below. To enable email notifications on multiple emails at once, replace "<validEmailAddress>" on the line "email": with <directory>/<csvfilename>.csv

{
"id":"/subscriptions/<Your_Subscription_Id>/providers/Microsoft.Security/securityContacts/default1",
"name": "default1",
"type": "Microsoft.Security/securityContacts",
"properties": {
"email": "<validEmailAddress>",
"alertNotifications": "On",
"alertsToAdmins": "On"
}
}

Default Value

By default, Send email notification for high severity alerts is not set.

Usage

Run the control in your terminal:

powerpipe control run azure_compliance.control.cis_v150_2_3_3

Snapshot and share results via Turbot Pipes:

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

SQL

This control uses a named query:

with contact_info as (
select
count(*) filter (where alert_notifications = 'On') as notification_alert_count,
subscription_id
from
azure_security_center_contact
group by
subscription_id
limit 1
)
select
sub.subscription_id as resource,
case
when notification_alert_count > 0 then 'ok'
else 'alarm'
end as status,
case
when notification_alert_count > 0 then '"Notify about alerts with the following severity" set to High.'
else '"Notify about alerts with the following severity" not set to High.'
end as reason
, sub.display_name as subscription
from
azure_subscription sub
left join contact_info ci on sub.subscription_id = ci.subscription_id;

Tags