Description:
Network security groups should be periodically evaluated for port misconfigurations. Where certain ports and protocols may be exposed to the Internet, they should be evaluated for necessity and restricted wherever they are not explicitly required and narrowly configured.
Rationale:
The potential security problem with using HTTP(S) over the Internet is that attackers can use various brute force techniques to gain access to Azure resources. Once the attackers gain access, they can use the resource as a launch point for compromising other resources within the Azure tenant.
Audit:
From Azure Portal
1. For each VM, open the Networking blade
2. Verify that the INBOUND PORT RULES does not have a rule for HTTP such as
o port = 80,
o protocol = TCP,
o Source = Any OR Internet
From Azure CLI
List Network security groups with corresponding non-default Security rules:
az network nsg list --query [*].[name,securityRules]
Ensure that none of the NSGs have security rule as below
"access" : "Allow"
"destinationPortRange" : "80" or "*" or "[port range containing 80]"
"direction" : "Inbound"
"protocol" : "TCP"
"sourceAddressPrefix" : "*" or "0.0.0.0" or "<nw>/0" or "/0" or "internet" or
"any"
Remediation:
Where HTTP(S) is not explicitly required and narrowly configured for resources attached to the Network Security Group, Internet-level access to your Azure resources should be restricted or eliminated.For internal access to relevant resources, configure an encrypted network tunnel such as:
ExpressRoute
Site-to-site VPN
Point-to-site VPN
References:
1. Express Route: https://docs.microsoft.com/en-us/azure/expressroute/