Framework/Configurations/SVT/Services/ERvNet.json

{
  "FeatureName": "ERvNet",
  "Reference": "aka.ms/azsdkosstcp/ervnet",
  "IsManintenanceMode": false,
  "Controls": [
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Use_PublicIPs",
      "Description": "There must not be any Public IPs (i.e., NICs with PublicIP) on ExpressRoute-connected VMs",
      "Id": "ERvNet110",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckPublicIps",
      "Recommendation": "All Public IP addresses must be removed from from an ExpressRoute-connected virtual network. Refer: https://docs.microsoft.com/en-us/powershell/module/azurerm.network/remove-azurermpublicipaddress",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Use_Multi_NIC_VMs",
      "Description": "There must not be multiple NICs on ExpressRoute-connected VMs",
      "Id": "ERvNet120",
      "ControlSeverity": "Medium",
      "Automated": "Yes",
      "MethodName": "CheckMultiNICVMUsed",
      "Recommendation": "Only one NIC must be configured. All additional NICs must be removed. Refer: http://stackoverflow.com/questions/34526032/how-can-i-programmatically-detach-a-nic-from-its-vm-in-azure-arm",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Enable_IPForwarding_for_NICs",
      "Description": "The 'EnableIPForwarding' flag must not be set to true for NICs in the ExpressRoute-connected vNet",
      "Id": "ERvNet130",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckIPForwardingforNICs",
      "Recommendation": "IP Forwarding must be disabled on ExpressRoute-connected NICs. Refer: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-udr-overview",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Use_NSGs_on_GatewaySubnet",
      "Description": "There must not be any NSGs on the GatewaySubnet of the ExpressRoute-connected vNet",
      "Id": "ERvNet140",
      "ControlSeverity": "Medium",
      "Automated": "Yes",
      "MethodName": "CheckNSGUseonGatewaySubnet",
      "Recommendation": "If there is an NSG on the Gateway Subnet, remove it. Refer: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-manage-nsg-arm-ps#delete-an-nsg",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Add_UDRs_on_Subnets",
      "Description": "There must not be a UDR on *any* subnet in an ExpressRoute-connected vNet",
      "Id": "ERvNet150",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckUDRAddedOnSubnet",
      "Recommendation": "Remove association between UDRs and respective subnets using the 'Remove-AzureSubnetRouteTable' command. Run 'Get-Help Remove-AzureSubnetRouteTable -full' for more help.",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Add_VPN_Gateways",
      "Description": "There must not be another virtual network gateway (GatewayType = Vpn) in an ExpressRoute-connected vNet",
      "Id": "ERvNet160",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckGatewayUsed",
      "Recommendation": "Remove any VPN Gateways from the ExpressRoute-connected virtual network. Refer: https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-delete-vnet-gateway-powershell",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Dont_Use_VNet_Peerings",
      "Description": "There must not be any virtual network peerings on an ExpressRoute-connected vNet",
      "Id": "ERvNet170",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckVnetPeering",
      "Recommendation": "Remove VNet peering using the 'Remove-AzureRmVirtualNetworkPeering' PS command. Run 'Get-Help Remove-AzureRmVirtualNetworkPeering -full' for more help.",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_NetSec_Use_Only_Internal_Load_Balancers",
      "Description": "Only internal load balancers (ILBs) may be used inside an ExpressRoute-connected vNet",
      "Id": "ERvNet180",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckInternalLoadBalancers",
      "Recommendation": "Remove external load balancers using the 'Remove-AzureRmLoadBalancer' PS command. Run 'Get-Help Remove-AzureRmLoadBalancer -full' for more help.",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "NetSec"
      ],
      "Enabled": true
    },
    {
      "ControlID": "Azure_ERvNet_SI_Add_Only_Network_Resources",
      "Description": "Only resources of type Microsoft.Network/* must be added in the ERNetwork resource group",
      "Id": "ERvNet190",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckOnlyNetworkResourceExist",
      "Recommendation": "Move all other resources except Microsoft.Network/* to another resource group. To move a resource, simply go to the Overview tab for it in the Azure portal and select the Move option.",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "SI"
      ],
      "Enabled": false
    },
    {
      "ControlID": "Azure_ERvNet_SI_Dont_Remove_Resource_Lock",
      "Description": "Ensure that the ERNetwork resource group is protected with a resource lock",
      "Id": "ERvNet200",
      "ControlSeverity": "High",
      "Automated": "Yes",
      "MethodName": "CheckResourceLockConfigured",
      "Recommendation": "Create a new resource lock using command 'New-AzureRmResourceLock' and apply it to the ERNetwork resource group. Run 'Get-Help New-AzureRmResourceLock -full' for more help.",
      "Tags": [
        "SDL",
        "TCP",
        "Automated",
        "SI"
      ],
      "Enabled": false
    }
  ]
}