Post

Microsoft Defender for Cloud - Recommendations

Recommendations

1. ‘container’

  • Containers running in Azure should have vulnerability findings resolved

2. ‘microsoft.apimanagement/service’

  • API Management minimum API version should be set to 2019-12-01 or higher
  • API Management services should use a virtual network
  • API Management should disable public network access to the service configuration endpoints
  • Azure API Management platform version should be stv2

3. ‘microsoft.apimanagement/service/apis’

  • API Management APIs should use only encrypted protocols
  • ‘microsoft.apimanagement/service/subscriptions’
  • API Management subscriptions should not be scoped to all APIs

4. ‘microsoft.cognitiveservices/accounts’

  • Azure AI Services resources should have key access disabled (disable local authentication)
  • Azure AI Services resources should restrict network access
  • Cognitive Services should use private link

5. ‘microsoft.compute/virtualmachines’

  • Adaptive application controls for defining safe applications should be enabled on your machines
  • Adaptive network hardening recommendations should be applied on internet facing virtual machines
  • All network ports should be restricted on network security groups associated to your virtual machine
  • Allowlist rules in your adaptive application control policy should be updated
  • Authentication to Linux machines should require SSH keys
  • Azure Backup should be enabled for virtual machines
  • EDR configuration issues should be resolved on virtual machines
  • EDR solution should be installed on Virtual Machines
  • Guest Attestation extension should be installed on supported Windows virtual machines
  • Guest Configuration extension should be installed on machines
  • Install endpoint protection solution on virtual machines
  • Internet-facing virtual machines should be protected with network security groups
  • IP forwarding on your virtual machine should be disabled
  • Linux virtual machines should enable Azure Disk Encryption or EncryptionAtHost.
  • Log Analytics agent should be installed on virtual machines
  • Machines should be configured securely
  • Machines should be configured to periodically check for missing system updates
  • Machines should have a vulnerability assessment solution
  • Machines should have secrets findings resolved
  • Machines should have vulnerability findings resolved
  • Management ports of virtual machines should be protected with just-in-time network access control
  • Management ports should be closed on your virtual machines
  • Non-internet-facing virtual machines should be protected with network security groups
  • Secure Boot should be enabled on supported Windows virtual machines
  • System updates should be installed on your machines
  • System updates should be installed on your machines (powered by Azure Update Manager)
  • Virtual machines should be migrated to new Azure Resource Manager resources
  • Virtual machines should encrypt temp disks, caches, and data flows between Compute and Storage resources
  • vTPM should be enabled on supported virtual machines
  • Vulnerabilities in security configuration on your Linux machines should be remediated (powered by Guest Configuration)
  • Vulnerabilities in security configuration on your Windows machines should be remediated (powered by Guest Configuration)
  • Windows Defender Exploit Guard should be enabled on machines
  • Windows servers should be configured to use secure communication protocols
  • Windows virtual machines should enable Azure Disk Encryption or EncryptionAtHost.

6. ‘microsoft.compute/virtualmachines’,’microsoft.compute/virtualmachinescalesets’

  • Virtual machines and virtual machine scale sets should have encryption at host enabled

7. ‘microsoft.compute/virtualmachines’,’microsoft.operationalinsights/workspaces/onpremisemachines’

  • Endpoint protection health issues on machines should be resolved

8. ‘microsoft.compute/virtualmachinescalesets’

  • Endpoint protection health issues on virtual machine scale sets should be resolved
  • Endpoint protection should be installed on virtual machine scale sets
  • Log Analytics agent should be installed on virtual machine scale sets
  • System updates on virtual machine scale sets should be installed
  • Virtual machine scale sets should be configured securely
  • ‘microsoft.compute/virtualmachinescalesets’,’microsoft.compute/virtualmachines’
  • File integrity monitoring should be enabled on machines

9. ‘microsoft.containerregistry/registries’

  • Container registries should not allow unrestricted network access
  • Container registries should use private link

10. ‘microsoft.containerservice/managedclusters’

  • Azure Kubernetes Service clusters should have Defender profile enabled
  • Azure Kubernetes Service clusters should have the Azure Policy add-on for Kubernetes installed
  • Azure running container images should have vulnerabilities resolved
  • Container CPU and memory limits should be enforced
  • Container images should be deployed from trusted registries only
  • Container with privilege escalation should be avoided
  • Containers sharing sensitive host namespaces should be avoided
  • Containers should only use allowed AppArmor profiles
  • Diagnostic logs in Kubernetes services should be enabled
  • Immutable (read-only) root filesystem should be enforced for containers
  • Kubernetes API server should be configured with restricted access
  • Kubernetes clusters should be accessible only over HTTPS
  • Kubernetes clusters should disable automounting API credentials
  • Kubernetes clusters should not grant CAPSYSADMIN security capabilities
  • Kubernetes clusters should not use the default namespace
  • Least privileged Linux capabilities should be enforced for containers
  • Privileged containers should be avoided
  • Role-Based Access Control should be used on Kubernetes Services
  • Running containers as root user should be avoided
  • Services should listen on allowed ports only
  • Usage of host networking and ports should be restricted
  • Usage of pod HostPath volume mounts should be restricted to a known list to restrict node access from compromised containers

11. ‘microsoft.dbforpostgresql/flexibleservers’

  • Microsoft Defender for SQL should be enabled for unprotected PostgreSQL flexible servers

12. ‘microsoft.documentdb/databaseaccounts’

  • Azure Cosmos DB accounts should have firewall rules
  • Azure Cosmos DB accounts should use Azure Active Directory as the only authentication method
  • Azure Cosmos DB should disable public network access
  • CosmosDB accounts should use private link

13. ‘microsoft.eventhub/namespaces’

  • Diagnostic logs in Event Hub should be enabled

14. ‘microsoft.keyvault/vaults’

  • Diagnostic logs in Key Vault should be enabled
  • Firewall should be enabled on Key Vault
  • Key vaults should have purge protection enabled
  • Key vaults should have soft delete enabled

15. ‘microsoft.network/applicationgateways’

  • Web Application Firewall (WAF) should be enabled for Application Gateway

16. ‘microsoft.network/virtualnetworkgateways’

  • VPN gateways should use only Azure Active Directory (Azure AD) authentication for point-to-site users

17. ‘microsoft.network/virtualnetworks’

  • Azure DDoS Protection Standard should be enabled
  • Network Watcher should be enabled
  • Virtual networks should be protected by Azure Firewall

18. ‘microsoft.network/virtualnetworks/subnets’

  • Subnets should be associated with a network security group

19. ‘microsoft.operationalinsights/workspaces/onpremisemachines’

  • Endpoint protection should be installed on machines

20. ‘microsoft.storage/storageaccounts’

  • Secure transfer to storage accounts should be enabled
  • Storage account public access should be disallowed
  • Storage account should use a private link connection
  • Storage accounts should be migrated to new Azure Resource Manager resources
  • Storage accounts should prevent shared key access
  • Storage accounts should restrict network access using virtual network rules

21. ‘subscription’

  • A maximum of 3 owners should be designated for subscriptions
  • Accounts with owner permissions on Azure resources should be MFA enabled
  • Accounts with read permissions on Azure resources should be MFA enabled
  • Accounts with write permissions on Azure resources should be MFA enabled
  • Auto provisioning of the Log Analytics agent should be enabled on subscriptions
  • Blocked accounts with owner permissions on Azure resources should be removed
  • Blocked accounts with read and write permissions on Azure resources should be removed
  • Email notification for high severity alerts should be enabled
  • Email notification to subscription owner for high severity alerts should be enabled
  • Guest accounts with owner permissions on Azure resources should be removed
  • Guest accounts with read permissions on Azure resources should be removed
  • Guest accounts with write permissions on Azure resources should be removed
  • Microsoft Defender for APIs should be enabled
  • Microsoft Defender for App Service should be enabled
  • Microsoft Defender for Azure SQL Database servers should be enabled
  • Microsoft Defender for Containers should be enabled
  • Microsoft Defender for Key Vault should be enabled
  • Microsoft Defender for open-source relational databases should be enabled
  • Microsoft Defender for Resource Manager should be enabled
  • Microsoft Defender for servers should be enabled
  • Microsoft Defender for SQL servers on machines should be enabled
  • Microsoft Defender for Storage plan should be enabled with Malware Scanning and Sensitive Data Threat Detection
  • Subscriptions should have a contact email address for security issues
  • There should be more than one owner assigned to subscriptions
This post is licensed under CC BY 4.0 by the author.