Skip to main content

Remediation

Modify or Remove Insecure NSG Rule

Review the security rules associated with the relevant Network Security Group (NSG) and determine whether they are required. Take appropriate action based on necessity and scope:

  • If the rule is not required: Remove the rule entirely.

  • If the rule is required but overly permissive: Update the rule to narrowly scope access, restricting the source IP range to only what is strictly necessary.

Azure CLI

  1. Delete the rule:

    az network nsg rule delete \
    --resource-group {{resource-group-name}} \
    --nsg-name {{nsg-name}} \
    --name {{rule-name}}
  2. Restrict the rule:

    az network nsg rule update \
    --resource-group {{resource-group-name}} \
    --nsg-name {{nsg-name}} \
    --name {{rule-name}} \
    --source-address-prefixes {{trusted-cidr}}

    Replace placeholders with the appropriate values. Use space-separated values for multiple source prefixes or destination ports (e.g., --source-address-prefixes "1.2.3.4/32 5.6.7.8/32").

PowerShell

  1. Delete the rule:

    $nsg = Get-AzNetworkSecurityGroup `
    -ResourceGroupName "{{resource-group-name}}" `
    -Name "{{nsg-name}}"

    Remove-AzNetworkSecurityRuleConfig `
    -Name "{{rule-name}}" `
    -NetworkSecurityGroup $nsg

    Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg

    First, retrieve the NSG object: $nsg. Then use $nsg object in Remove-AzNetworkSecurityRuleConfig and Set-AzNetworkSecurityGroup.

  2. Restrict the rule:

    $nsg = Get-AzNetworkSecurityGroup `
    -ResourceGroupName "{{resource-group-name}}" `
    -Name "{{nsg-name}}"

    $rule = $nsg.SecurityRules | Where-Object { $_.Name -eq "{{rule-name}}" }

    $rule.SourceAddressPrefix = "{{trusted-cidr}}" # Replace with your source IP/CIDR

    Set-AzNetworkSecurityRuleConfig `
    -NetworkSecurityGroup $nsg `
    -Name $rule.Name `
    -Direction $rule.Direction `
    -Priority $rule.Priority `
    -Access $rule.Access `
    -Protocol $rule.Protocol `
    -SourceAddressPrefix $rule.SourceAddressPrefix `
    -SourcePortRange $rule.SourcePortRange `
    -DestinationAddressPrefix $rule.DestinationAddressPrefix `
    -DestinationPortRange $rule.DestinationPortRange

    Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg

Note: Always validate changes through the Azure portal, CLI, or PowerShell to ensure that unrestricted access is effectively removed and that intended functionality remains intact.