Skip to content

Commit 86708e0

Browse files
authored
Merge pull request #111701 from jomolesk/asb01
Add Azure Security Benchmark control mapping
2 parents 67fbc14 + d2b7d75 commit 86708e0

File tree

2 files changed

+370
-0
lines changed

2 files changed

+370
-0
lines changed
Lines changed: 365 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,365 @@
1+
---
2+
title: Azure Security Benchmark blueprint sample controls
3+
description: Control mapping of the Azure Security Benchmark blueprint sample to Azure Policy.
4+
ms.date: 04/16/2020
5+
ms.topic: sample
6+
---
7+
# Control mapping of the Azure Security Benchmark blueprint sample
8+
9+
The following article details how the Azure Blueprints Azure Security Benchmark
10+
blueprint sample maps to the Azure Security Benchmark controls. For more
11+
information about the controls, see [Azure Security Benchmark](https://docs.microsoft.com/azure/security/benchmarks/overview).
12+
13+
The following mappings are to the **Azure Security Benchmark** controls. Use the navigation on the
14+
right to jump directly to a specific control mapping. The mapped controls are implemented with an
15+
[Azure Policy](../../../policy/overview.md) initiative. To review the complete initiative, open
16+
**Policy** in the Azure portal and select the **Definitions** page. Then, find and select the
17+
**\[Preview\]: Audit Azure Security Benchmark recommendations and deploy specific supporting VM
18+
Extensions** built-in policy initiative.
19+
20+
> [!IMPORTANT]
21+
> Each control below is associated with one or more [Azure Policy](../../../policy/overview.md)
22+
> definitions. These policies may help you [assess compliance](../../../policy/how-to/get-compliance-data.md)
23+
> with the control; however, there often is not a 1:1 or complete match between a control and one or
24+
> more policies. As such, **Compliant** in Azure Policy refers only to the policies themselves; this
25+
> doesn't ensure you're fully compliant with all requirements of a control. In addition, the
26+
> compliance standard may include controls that aren't addressed by any Azure Policy definitions at
27+
> this time. Therefore, compliance in Azure Policy is only a partial view of your overall compliance
28+
> status. The associations between controls and Azure Policy definitions for this compliance
29+
> blueprint sample may change over time. To view the change history, see the
30+
> [GitHub Commit History](https://github.com/MicrosoftDocs/azure-docs/commits/master/articles/governance/blueprints/samples/azure-security-benchmark/control-mapping.md).
31+
32+
## 1.1 Protect resources using Network Security Groups or Azure Firewall on your Virtual Network
33+
34+
- Subnets should be associated with a Network Security Group
35+
- Adaptive Network Hardening recommendations should be applied on internet facing virtual machines
36+
- Virtual machines should be connected to an approved virtual network
37+
- Internet-facing virtual machines should be protected with Network Security Groups
38+
- Service Bus should use a virtual network service endpoint
39+
- App Service should use a virtual network service endpoint
40+
- SQL Server should use a virtual network service endpoint
41+
- Event Hub should use a virtual network service endpoint
42+
- Cosmos DB should use a virtual network service endpoint
43+
- Key Vault should use a virtual network service endpoint
44+
- Audit unrestricted network access to storage accounts
45+
- Storage Accounts should use a virtual network service endpoint
46+
- Container Registry should use a virtual network service endpoint
47+
- Virtual networks should use specified virtual network gateway
48+
- Authorized IP ranges should be defined on Kubernetes Services
49+
- \[Preview\]: IP Forwarding on your virtual machine should be disabled
50+
- Internet-facing virtual machines should be protected with Network Security Groups
51+
- Just-In-Time network access control should be applied on virtual machines
52+
- Management ports should be closed on your virtual machines
53+
54+
## 1.2 Monitor and log the configuration and traffic of Vnets, Subnets, and NICs
55+
56+
- Network Watcher should be enabled
57+
58+
## 1.3 Protect critical web applications
59+
60+
- Ensure WEB app has 'Client Certificates (Incoming client certificates)' set to 'On'
61+
- CORS should not allow every resource to access your Web Applications
62+
- CORS should not allow every resource to access your Function Apps
63+
- CORS should not allow every resource to access your API App
64+
- Remote debugging should be turned off for Web Applications
65+
- Remote debugging should be turned off for Function Apps
66+
- Remote debugging should be turned off for API Apps
67+
68+
## 1.4 Deny communications with known malicious IP addresses
69+
70+
- DDoS Protection Standard should be enabled
71+
- Just-In-Time network access control should be applied on virtual machines
72+
- Adaptive Network Hardening recommendations should be applied on internet facing virtual machines
73+
74+
## 1.5 Record network packets and flow logs
75+
76+
- Network Watcher should be enabled
77+
78+
## 1.11 Use automated tools to monitor network resource configurations and detect changes
79+
80+
- Deploy prerequisites to audit Windows VMs configurations in 'Security Options - Network Access'
81+
- Show audit results from Windows VMs configurations in 'Security Options - Microsoft Network Client'
82+
- Deploy prerequisites to audit Windows VMs configurations in 'Security Options - Network Security'
83+
- Show audit results from Windows VMs configurations in 'Security Options - Network Security'
84+
- Deploy prerequisites to audit Windows VMs configurations in 'Security Options - Microsoft Network Server'
85+
- Show audit results from Windows VMs configurations in 'Security Options - Microsoft Network Server'
86+
- Deploy prerequisites to audit Windows VMs configurations in 'Administrative Templates - Network'
87+
- Show audit results from Windows VMs configurations in 'Administrative Templates - Network'
88+
89+
## 2.2 Configure central security log management
90+
91+
- The Log Analytics agent should be installed on virtual machines
92+
- The Log Analytics agent should be installed on Virtual Machine Scale Sets
93+
- Deploy prerequisites to audit Windows VMs on which the Log Analytics agent is not connected as expected
94+
- Show audit results from Windows VMs on which the Log Analytics agent is not connected as expected
95+
- Azure Monitor log profile should collect logs for categories 'write,' 'delete,' and 'action'
96+
- Azure Monitor should collect activity logs from all regions
97+
- Automatic provisioning of the Log Analytics monitoring agent should be enabled on your subscription
98+
99+
## 2.3 Enable audit logging for Azure resources
100+
101+
- Diagnostic logs in Azure Data Lake Store should be enabled
102+
- Diagnostic logs in Logic Apps should be enabled
103+
- Diagnostic logs in IoT Hub should be enabled
104+
- Diagnostic logs in Batch accounts should be enabled
105+
- Diagnostic logs in Virtual Machine Scale Sets should be enabled
106+
- Diagnostic logs in Event Hub should be enabled
107+
- Diagnostic logs in Search services should be enabled
108+
- Diagnostic logs in App Services should be enabled
109+
- Diagnostic logs in Data Lake Analytics should be enabled
110+
- Diagnostic logs in Key Vault should be enabled
111+
- Diagnostic logs in Service Bus should be enabled
112+
- Diagnostic logs in Azure Stream Analytics should be enabled
113+
- Auditing on SQL server should be enabled
114+
- Audit diagnostic setting
115+
116+
## 2.4 Collect security logs from operating systems
117+
118+
- Automatic provisioning of the Log Analytics monitoring agent should be enabled on your subscription
119+
- The Log Analytics agent should be installed on virtual machines
120+
- The Log Analytics agent should be installed on Virtual Machine Scale Sets
121+
- Deploy prerequisites to audit Windows VMs on which the Log Analytics agent is not connected as expected
122+
- Show audit results from Windows VMs on which the Log Analytics agent is not connected as expected
123+
124+
## 2.7 Enable alerts for anomalous activity
125+
126+
- Security Center standard pricing tier should be selected
127+
- Advanced data security should be enabled on your SQL servers
128+
- Advanced data security should be enabled on your SQL managed instances
129+
- Advanced Threat Protection types should be set to 'All' in SQL server Advanced Data Security settings
130+
- Advanced Threat Protection types should be set to 'All' in SQL managed instance Advanced Data Security settings
131+
132+
## 2.8 Centralize anti-malware logging
133+
134+
- Microsoft Antimalware for Azure should be configured to automatically update protection signatures
135+
- Monitor missing Endpoint Protection in Azure Security Center
136+
- Endpoint protection solution should be installed on virtual machine scale sets
137+
138+
## 3.1 Maintain an inventory of administrative accounts
139+
140+
- A maximum of 3 owners should be designated for your subscription
141+
- There should be more than one owner assigned to your subscription
142+
- External accounts with owner permissions should be removed from your subscription
143+
- Deprecated accounts with owner permissions should be removed from your subscription
144+
145+
## 3.3 Use dedicated administrative accounts
146+
147+
- Deploy prerequisites to audit Windows VMs in which the Administrators group does not contain only the specified members
148+
- Show audit results from Windows VMs in which the Administrators group does not contain only the specified members
149+
- Deploy prerequisites to audit Windows VMs in which the Administrators group does not contain all of the specified members
150+
- Show audit results from Windows VMs in which the Administrators group does not contain all of the specified members
151+
- Deploy prerequisites to audit Windows VMs in which the Administrators group contains any of the specified members
152+
- Show audit results from Windows VMs in which the Administrators group contains any of the specified members
153+
- A maximum of 3 owners should be designated for your subscription
154+
- There should be more than one owner assigned to your subscription
155+
156+
## 3.5 Use multi-factor authentication for all Azure Active Directory based access
157+
158+
- MFA should be enabled on accounts with owner permissions on your subscription
159+
- MFA should be enabled accounts with write permissions on your subscription
160+
- MFA should be enabled on accounts with read permissions on your subscription
161+
162+
## 3.7 Log and alert on suspicious activity from administrative accounts
163+
164+
- Security Center standard pricing tier should be selected
165+
166+
## 3.9 Use Azure Active Directory
167+
168+
- An Azure Active Directory administrator should be provisioned for SQL servers
169+
- Service Fabric clusters should only use Azure Active Directory for client authentication
170+
- Ensure that Register with Azure Active Directory is enabled on API app
171+
- Ensure that Register with Azure Active Directory is enabled on WEB App
172+
- Ensure that Register with Azure Active Directory is enabled on Function App
173+
174+
## 3.10 Regularly review and reconcile user access
175+
176+
- Deprecated accounts should be removed from your subscription
177+
- Deprecated accounts with owner permissions should be removed from your subscription
178+
- External accounts with read permissions should be removed from your subscription
179+
- External accounts with write permissions should be removed from your subscription
180+
- External accounts with owner permissions should be removed from your subscription
181+
182+
## 4.1 Maintain an inventory of sensitive Information
183+
184+
- Sensitive data in your SQL databases should be classified
185+
186+
## 4.4 Encrypt all sensitive information in transit
187+
188+
- Secure transfer to storage accounts should be enabled
189+
- Latest TLS version should be used in your API App
190+
- Latest TLS version should be used in your Web App
191+
- Latest TLS version should be used in your Function App
192+
- Function App should only be accessible over HTTPS
193+
- Web Application should only be accessible over HTTPS
194+
- API App should only be accessible over HTTPS
195+
- Enforce SSL connection should be enabled for MySQL database servers
196+
- Enforce SSL connection should be enabled for PostgreSQL database servers
197+
- Only secure connections to your Redis Cache should be enabled
198+
199+
## 4.5 Use an active discovery tool to identify sensitive data
200+
201+
- Sensitive data in your SQL databases should be classified
202+
- Advanced data security should be enabled on your SQL servers
203+
- Advanced data security should be enabled on your SQL managed instances
204+
205+
## 4.6 Use Azure RBAC to control access to resources
206+
207+
- Role-Based Access Control (RBAC) should be used on Kubernetes Services
208+
- Audit usage of custom RBAC rules
209+
210+
## 4.8 Encrypt sensitive information at rest
211+
212+
- Transparent Data Encryption on SQL databases should be enabled
213+
- Disk encryption should be applied on virtual machines
214+
- Unattached disks should be encrypted
215+
- SQL server TDE protector should be encrypted with your own key
216+
- SQL managed instance TDE protector should be encrypted with your own key
217+
- Automation account variables should be encrypted
218+
- Service Fabric clusters should have the ClusterProtectionLevel property set to EncryptAndSign
219+
220+
## 4.9 Log and alert on changes to critical Azure resources
221+
222+
- Azure Monitor should collect activity logs from all regions
223+
224+
## 5.1 Run automated vulnerability scanning tools
225+
226+
- Vulnerability assessment should be enabled on your SQL servers
227+
- Vulnerability assessment should be enabled on your SQL managed instances
228+
- \[Preview\] Vulnerability Assessment should be enabled on Virtual Machines
229+
- Vulnerability Assessment settings for SQL server should contain an email address to receive scan reports
230+
231+
## 5.2 Deploy automated operating system patch management solution
232+
233+
- System updates should be installed on your machines
234+
- System updates on virtual machine scale sets should be installed
235+
- Ensure that '.NET Framework' version is the latest, if used as a part of the Function App
236+
- Ensure that '.NET Framework' version is the latest, if used as a part of the Web app
237+
- Ensure that '.NET Framework' version is the latest, if used as a part of the API app
238+
239+
## 5.3 Deploy automated third-party software patch management solution
240+
241+
- Ensure that 'PHP version' is the latest, if used as a part of the Api app
242+
- Ensure that 'PHP version' is the latest, if used as a part of the WEB app
243+
- Ensure that 'PHP version' is the latest, if used as a part of the Function app
244+
- Ensure that 'Java version' is the latest, if used as a part of the Web app
245+
- Ensure that 'Java version' is the latest, if used as a part of the Function app
246+
- Ensure that 'Java version' is the latest, if used as a part of the Api app
247+
- Ensure that 'Python version' is the latest, if used as a part of the Web app
248+
- Ensure that 'Python version' is the latest, if used as a part of the Function app
249+
- Ensure that 'Python version' is the latest, if used as a part of the Api app
250+
- Kubernetes Services should be upgraded to a non-vulnerable Kubernetes version
251+
252+
## 5.5 Use a risk-rating process to prioritize the remediation of discovered vulnerabilities
253+
254+
- Vulnerabilities should be remediated by a Vulnerability Assessment solution
255+
- Vulnerabilities in security configuration on your machines should be remediated
256+
- Vulnerabilities in security configuration on your virtual machine scale sets should be remediated
257+
- Vulnerabilities in container security configurations should be remediated
258+
- Vulnerabilities on your SQL databases should be remediated
259+
260+
## 6.8 Use only approved applications
261+
262+
- Security Center standard pricing tier should be selected
263+
- Adaptive Application Controls should be enabled on virtual machines
264+
265+
## 6.9 Use only approved Azure services
266+
267+
- Virtual machines should be migrated to new Azure Resource Manager resources
268+
- Storage accounts should be migrated to new Azure Resource Manager resources
269+
270+
## 6.10 Implement approved application list
271+
272+
- Security Center standard pricing tier should be selected
273+
- Adaptive Application Controls should be enabled on virtual machines
274+
275+
## 7.3 Maintain secure Azure resource configurations
276+
277+
- \[Preview\]: Pod Security Policies should be defined on Kubernetes Services
278+
279+
## 7.4 Maintain secure operating system configurations
280+
281+
- Vulnerabilities in security configuration on your machines should be remediated
282+
- Vulnerabilities in container security configurations should be remediated
283+
- Vulnerabilities in security configuration on your virtual machine scale sets should be remediated
284+
285+
## 7.9 Implement automated configuration monitoring for Azure services
286+
287+
- \[Preview\]: Pod Security Policies should be defined on Kubernetes Services
288+
289+
## 7.10 Implement automated configuration monitoring for operating systems
290+
291+
- Vulnerabilities in security configuration on your machines should be remediated
292+
- Vulnerabilities in container security configurations should be remediated
293+
- Vulnerabilities in security configuration on your virtual machine scale sets should be remediated
294+
295+
## 7.11 Manage Azure secrets securely
296+
297+
- Key Vault objects should be recoverable
298+
299+
## 7.12 Manage identities securely and automatically
300+
301+
- Managed identity should be used in your Function App
302+
- Managed identity should be used in your Web App
303+
- Managed identity should be used in your API App
304+
305+
## 8.1 Use centrally managed anti-malware software
306+
307+
- Monitor missing Endpoint Protection in Azure Security Center
308+
- Endpoint protection solution should be installed on virtual machine scale sets
309+
310+
## 8.2 Pre-scan files to be uploaded to non-compute Azure resources
311+
312+
- Security Center standard pricing tier should be selected
313+
314+
## 8.3 Ensure anti-malware software and signatures are updated
315+
316+
- Microsoft Antimalware for Azure should be configured to automatically update protection signatures
317+
318+
## 9.1 Ensure regular automated back ups
319+
320+
- Long-term geo-redundant backup should be enabled for Azure SQL Databases
321+
- Geo-redundant backup should be enabled for Azure Database for MySQL
322+
- Geo-redundant backup should be enabled for Azure Database for PostgreSQL
323+
- Geo-redundant backup should be enabled for Azure Database for MariaDB
324+
- Azure Backup should be enabled for Virtual Machines
325+
326+
## 9.2 Perform complete system backups and backup any customer managed keys
327+
328+
- Long-term geo-redundant backup should be enabled for Azure SQL Databases
329+
- Geo-redundant backup should be enabled for Azure Database for MySQL
330+
- Geo-redundant backup should be enabled for Azure Database for PostgreSQL
331+
- Geo-redundant backup should be enabled for Azure Database for MariaDB
332+
- Azure Backup should be enabled for Virtual Machines
333+
334+
## 9.4 Ensure protection of backups and customer managed keys
335+
336+
- Key Vault objects should be recoverable
337+
338+
## 10.2 Create an incident scoring and prioritization procedure
339+
340+
- Security Center standard pricing tier should be selected
341+
342+
## 10.4 Provide security incident contact details and configure alert notifications for security incidents
343+
344+
- A security contact email address should be provided for your subscription
345+
- A security contact phone number should be provided for your subscription
346+
- Advanced data security settings for SQL server should contain an email address to receive security alerts
347+
- Advanced data security settings for SQL managed instance should contain an email address to receive security alerts
348+
- Email notifications to admins and subscription owners should be enabled in SQL server advanced data security settings
349+
- Email notifications to admins and subscription owners should be enabled in SQL managed instance advanced data security settings
350+
351+
## Next steps
352+
353+
Now that you've reviewed the control mapping of the Azure Security Benchmark blueprint, visit Azure
354+
Policy in the Azure portal to assign the initiative:
355+
356+
> [!div class="nextstepaction"]
357+
> [Azure Policy](https://portal.azure.com/#blade/Microsoft_Azure_Policy/PolicyMenuBlade/Definitions)
358+
359+
Additional articles about blueprints and how to use them:
360+
361+
- Learn about the [blueprint lifecycle](../../concepts/lifecycle.md).
362+
- Understand how to use [static and dynamic parameters](../../concepts/parameters.md).
363+
- Learn to customize the [blueprint sequencing order](../../concepts/sequencing-order.md).
364+
- Find out how to make use of [blueprint resource locking](../../concepts/resource-locking.md).
365+
- Learn how to [update existing assignments](../../how-to/update-existing-assignments.md).

articles/governance/blueprints/toc.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
- name: Index
3131
displayName: list, examples
3232
href: ./samples/index.md
33+
- name: Azure Security Benchmark
34+
items:
35+
- name: Control mapping
36+
displayName: standards, azure, benchmark
37+
href: ./samples/azure-security-benchmark/control-mapping.md
3338
- name: Canada Federal PBMM
3439
items:
3540
- name: Overview

0 commit comments

Comments
 (0)