Control: 7.4 Ensure that HTTP(S) access from the Internet is evaluated and restricted
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.
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.
Remediation
From Azure Portal
- Go to
Virtual machines
. - For each VM, open the
Networking
blade. - Click on
Inbound port rules
. - Delete the rule with:
- Port = 80/443 OR [port range containing 80/443]
- Protocol = TCP OR Any
- Source = Any (*) OR IP Addresses(0.0.0.0/0) OR Service Tag(Internet)
- Action = Allow
From Azure CLI
- Run below command to list network security groups:
az network nsg list --subscription <subscription-id> --output table
- For each network security group, run below command to list the rules associated with the specified port:
az network nsg rule list --resource-group <resource-group> --nsg-name <nsg-name> --query "[?destinationPortRange=='80 or 443']"
- Run the below command to delete the rule with:
- Port = 80/443 OR [port range containing 80/443]
- Protocol = TCP OR "*"
- Source = Any (*) OR IP Addresses(0.0.0.0/0) OR Service Tag(Internet)
- Action = Allow
az network nsg rule delete --resource-group <resource-group> --nsg-name <nsg-name> --name <rule-name>
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v300_7_4
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v300_7_4 --share
SQL
This control uses a named query:
network_security_group_https_access_restricted