Framework/Configurations/SVT/Services/VirtualMachine.json

{
  "FeatureName": "VirtualMachine",
  "Reference": "aka.ms/azsdkosstcp/vm",
  "IsManintenanceMode": false,
   "Controls": [
      {
         "ControlID": "Azure_VirtualMachine_Deploy_Latest_OS_Version",
         "Description": "Virtual Machine should have latest OS version installed",
         "Id": "VirtualMachine110",
         "ControlSeverity": "Medium",
         "Automated": "Yes",
         "MethodName": "CheckOSVersion",
         "Recommendation": "Run command 'Update-AzureRmVM -ResourceGroupName {resourceGroupName} -VM (Get-AzureRmVM -ResourceGroupName {resourceGroupName} -Name {vmName})' . Run 'Get-Help Update-​Azure​Rm​VM -full' for more help.",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Deploy",
            "Windows",
            "Linux"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_Config_OS_Auto_Update_Windows",
         "Description": "OS automatic updates must be enabled on Windows Virtual Machine",
         "Id": "VirtualMachine120",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckOSAutoUpdateStatus",
         "Recommendation": "Run command 'Set-AzureRmVMOperatingSystem' with the EnableAutoUpdate flag. Run 'Get-Help Set-AzureRmVMOperatingSystem -full' for more help or Refer: https://docs.microsoft.com/en-us/powershell/module/azurerm.compute/set-azurermvmoperatingsystem",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Config",
            "Windows"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_SI_Enable_Antimalware_Windows",
         "Description": "Antimalware must be enabled with real time protection on Windows Virtual Machine",
         "Id": "VirtualMachine130",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckAntimalwareStatus",
         "Recommendation": "Go to Azure Portal --> VM Properties --> Extensions --> Add 'Microsoft Antimalware' --> Enable Real-Time Protection and Scheduled Scan --> Click Ok. Refer: https://docs.microsoft.com/en-us/azure/security/azure-security-antimalware",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Config",
            "Windows",
            "SOX"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_Config_Enable_NSG",
         "Description": "NSG must be configured for Virtual Machine",
         "Id": "VirtualMachine140",
         "ControlSeverity": "Medium",
         "Automated": "Yes",
         "MethodName": "CheckNSGConfig",
         "Recommendation": "Refer: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/endpoints-in-resource-manager, https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-ps",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Config",
            "Windows",
            "Linux"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_NetSec_Justify_PublicIPs",
         "Description": "Public IPs on a Virtual Machine should carefully reviewed",
         "Id": "VirtualMachine150",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckPublicIP",
         "Recommendation": "Go to Azure Portal --> VM Properties --> Network Interfaces --> <Select NIC> --> IP Configurations --> <Selec IP Configs with Public IP> --> Click “Disabled” --> Save. Refer: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-network-interface#a-namecreate-ip-configaadd-a-secondary-ip-configuration-to-a-nic ",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "NetSec",
            "Windows",
            "Linux"
         ],
         "Enabled": true,
         "DataObjectProperties": [
            "PublicIpAllocationMethod",
            "IpConfiguration",
            "Id",
            "DnsSettings"
         ]
      },
      {
         "ControlID": "Azure_VirtualMachine_DP_Enable_Disk_Encryption_Windows",
         "Description": "Disk encryption must be enabled on both OS and data disks for Windows Virtual Machine",
         "Id": "VirtualMachine160",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckDiskEncryption",
         "Recommendation": "Refer: https://docs.microsoft.com/en-us/azure/security-center/security-center-disk-encryption?toc=%2fazure%2fsecurity%2ftoc.json",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "DP",
            "Windows"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_Audit_ASC_Healthy",
         "Description": "Virtual Machine must be in a healthy state in Azure Security Center",
         "Id": "VirtualMachine170",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckASCStatus",
         "Recommendation": "Refer: https://docs.microsoft.com/en-us/azure/security-center/security-center-recommendations",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Audit",
            "Windows",
            "Linux"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_Audit_Vulnerabilities",
         "Description": "Virtual Machine must be in a healthy state in Azure Security Center",
         "Id": "VirtualMachine171",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckASCVulnerabilities",
         "Recommendation": "Refer: https://docs.microsoft.com/en-us/azure/security-center/security-center-recommendations",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Audit",
            "Windows"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_SI_Missing_OS_Patches",
         "Description": "Virtual Machine must have all the required OS patches installed.",
         "Id": "VirtualMachine172",
         "ControlSeverity": "High",
         "Automated": "Yes",
         "MethodName": "CheckASCVMMissingPatchingStatus",
         "Recommendation": "Refer: https://docs.microsoft.com/en-us/azure/security-center/security-center-recommendations",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "Audit",
            "Windows",
            "SOX"
         ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_Audit_Enable_Diagnostics",
         "Description": "Diagnostics (IaaSDiagnostics extension on Windows; LinuxDiagnostic extension on Linux) must be enabled on Virtual Machine",
         "Id": "VirtualMachine180",
         "ControlSeverity": "Medium",
         "Automated": "Yes",
         "MethodName": "CheckVMDiagnostics",
         "Recommendation": "Go to Azure Portal --> VM Properties --> Diagnostics settings --> Enable guest-level-monitoring. Refer: https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/azure-diagnostics",
        "Tags": [
          "SDL",
          "TCP",
          "Automated",
          "Audit",
          "Windows",
          "Linux"
        ],
         "Enabled": true
      },
      {
         "ControlID": "Azure_VirtualMachine_NetSec_Dont_Open_Management_Ports",
         "Description": "Do not leave management ports open on Virtual Machines",
         "Id": "VirtualMachine190",
         "ControlSeverity": "Critical",
         "Automated": "Yes",
         "MethodName": "CheckOpenPorts",
         "Recommendation": "Go to Azure Portal --> VM Properties --> Network Interfaces --> Network security group --> Inbound security rules --> Select RDP/WINRM Security Rule --> Click 'Deny' under Action --> Click Save.",
         "Tags": [
            "SDL",
            "TCP",
            "Automated",
            "NetSec",
            "Windows",
            "Linux",
            "Owner"
         ],
         "Enabled": true
      }
   ]
}