Az Azure WAF geomatch egyéni szabályainak használata a hálózati biztonság javítása érdekében

A webalkalmazási tűzfalak (WAF-ek) fontos eszközök, amelyek segítenek megvédeni a webalkalmazásokat a káros támadásoktól. Előre beállított és egyéni szabályokkal szűrhetik, figyelhetik és állíthatják le a webes forgalmat. Létrehozhat egy saját szabályt, amelyet a WAF minden kérését ellenőrzi. Az egyéni szabályok magasabb prioritással rendelkeznek, mint a felügyelt szabályok, és a rendszer először ellenőrzi.

Az Azure Web Application Firewall egyik leghatékonyabb funkciója az egyéni geomatch szabályok. Ezek a szabályok lehetővé teszik a webes kérések egyeztetését annak a földrajzi helynek a helyével, ahonnan származnak. Előfordulhat, hogy le szeretné állítani a káros tevékenységről ismert helyekről érkező kéréseket, vagy engedélyezni szeretné a vállalkozása számára fontos helyekről érkező kéréseket. A Geomatch egyéni szabályai az adatelkonvertség és az adatvédelmi törvények követésében is segíthetnek, ha a webalkalmazásokhoz való hozzáférést a felhasználók tartózkodási helye alapján korlátozza.

Használja a prioritási paramétert okosan geomatch egyéni szabályok használatakor a szükségtelen feldolgozás és ütközések elkerülése érdekében. Az Azure WAF a prioritási paraméter által meghatározott sorrendben értékeli ki a szabályokat, egy numerikus érték 1 és 100 között, alacsonyabb értékekkel, magasabb prioritást jelezve. A prioritásnak minden egyéni szabályban egyedinek kell lennie. Rendeljen magasabb prioritást a webalkalmazás biztonsága szempontjából kritikus vagy meghatározott szabályokhoz, és alacsonyabb prioritást a kevésbé alapvető vagy általános szabályokhoz. Ez biztosítja, hogy a WAF a legmegfelelőbb műveleteket alkalmazza a webes forgalomra. Az explicit URI-útvonalak azonosítására szolgáló forgatókönyv például a legspecifikusabb, és magasabb prioritású szabállyal kell rendelkeznie, mint más típusú minták. Ez az alkalmazás kritikus elérési útját védi a legmagasabb prioritással, és lehetővé teszi az általánosabb forgalom kiértékelését más egyéni szabályok vagy felügyelt szabálykészletek között.

Ha a jelenlegi feszült és aktív hangot használó technikai közönség számára szeretné érthetőbbé tenni a bekezdést, az alábbiak szerint írhatja át:

Mindig tesztelje a szabályokat, mielőtt éles környezetben alkalmazza őket, és rendszeresen monitorozza azok teljesítményét és hatását. Az ajánlott eljárások követésével növelheti a webalkalmazások biztonságát a geomatch egyéni szabályainak használatával.

Ez a cikk bemutatja az Azure WAF geomatch egyéni szabályait, és bemutatja, hogyan hozhatja létre és kezelheti őket az Azure Portal, a Bicep és az Azure PowerShell használatával.

Geomatch egyéni szabályminták

A Geomatch egyéni szabályai lehetővé teszik a különböző biztonsági célok elérését, például a magas kockázatú területekről érkező kérelmek blokkolását és a megbízható helyekről érkező kérések engedélyezését. Különösen hatékonyak az elosztott szolgáltatásmegtagadási (DDoS) támadások enyhítésében, amelyek a webalkalmazást számos különböző forrásból érkező kéréssel próbálják elárasztani. A geomatch egyéni szabályaival azonnal rögzítheti és letilthatja a legtöbb DDoS-forgalmat generáló régiókat, miközben továbbra is hozzáférést biztosít a jogszerű felhasználók számára. Ebben a cikkben megismerheti a különböző egyéni szabálymintákat, amelyeket az Azure WAF geomatch egyéni szabályokkal való optimalizálásához használhat.

1. forgatókönyv – Az "x" kivételével az összes országból érkező forgalom letiltása

A geomatch egyéni szabályai akkor bizonyulnak hasznosnak, ha az összes országból érkező forgalmat szeretné blokkolni, és nem zár ki egyet. Ha például a webalkalmazás kizárólag a Egyesült Államok felhasználóit kiszolgálja, létrehozhat egy egyéni geomatch-szabályt, amely akadályoz minden olyan kérést, amely nem az USA-ból származik. Ez a stratégia hatékonyan minimalizálja a webalkalmazás támadási felületét, és megakadályozza a jogosulatlan hozzáférést más régiókból. Ez a speciális technika egy olyan eltolási feltételt alkalmaz, amely megkönnyíti ezt a forgalmi mintát. Ha olyan egyéni geomatch-szabályt szeretne létrehozni, amely az USA kivételével minden országból akadályozza a forgalmat, tekintse meg a következő portált, a Bicep-et és a PowerShell-példákat:

Példa portálra – Application Gateway

Screenshot showing the Application Gateway WAF add custom rule screen.

Példa portálra – Front Door

Screenshot showing the Front Door WAF add custom rule screen.

Feljegyzés

Figyelje meg az Azure Front Door WAF-ben, hogy a megfelelő változót használja SocketAddr , és nem RemoteAddr. A RemoteAddr változó az eredeti ügyfél IP-címe, amelyet általában a X-Forwarded-For kérés fejlécén keresztül küldenek el. A SocketAddr változó a WAF által látott forrás IP-cím.

Bicep-példa – Application Gateway

properties: {
    customRules: [
      {
        name: 'GeoRule1'
        priority: 10
        ruleType: 'MatchRule'
        action: 'Block'
        matchConditions: [
          {
            matchVariables: [
              {
                variableName: 'RemoteAddr'
              }
            ]
            operator: 'GeoMatch'
            negationConditon: true
            matchValues: [
              'US'
            ]
            transforms: []
          }
        ]
        state: 'Enabled'
      }

Bicep-példa – Front Door

properties: {
    customRules: {
      rules: [
        {
          name: 'GeoRule1'
          enabledState: 'Enabled'
          priority: 10
          ruleType: 'MatchRule'
          matchConditions: [
            {
              matchVariable: 'SocketAddr'
              operator: 'GeoMatch'
              negateCondition: true
              matchValue: [
                'US'
              ]
              transforms: []
            }
          ]
          action: 'Block'
        }

Azure PowerShell-példa – Application Gateway

$RGname = "rg-waf "
$policyName = "waf-pol"
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator GeoMatch -MatchValue "US" -NegationCondition $true
$rule = New-AzApplicationGatewayFirewallCustomRule -Name GeoRule1 -Priority 10 -RuleType MatchRule -MatchCondition $condition -Action Block
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $RGname
$policy.CustomRules.Add($rule)
Set-AzApplicationGatewayFirewallPolicy -InputObject $policy

Azure PowerShell-példa – Front Door

$RGname = "rg-waf"
$policyName = "wafafdpol"
$matchCondition = New-AzFrontDoorWafMatchConditionObject -MatchVariable SocketAddr -OperatorProperty GeoMatch -MatchValue "US" -NegateCondition $true
$customRuleObject = New-AzFrontDoorWafCustomRuleObject -Name "GeoRule1" -RuleType MatchRule -MatchCondition $matchCondition -Action Block -Priority 10
$afdWAFPolicy= Get-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $RGname
Update-AzFrontDoorWafPolicy -InputObject $afdWAFPolicy -Customrule $customRuleObject

2. forgatókönyv – Az összes országból érkező forgalom blokkolása az "x" és az "y" kivételével, amelyek a "foo" vagy a "bar" URI-t célják

Fontolja meg azt a forgatókönyvet, amelyben geomatch egyéni szabályokkal kell blokkolnia az összes országból érkező forgalmat, kivéve két vagy több konkrétat, amelyek egy adott URI-t céloznak meg. Tegyük fel, hogy a webalkalmazás konkrét URI-elérési utakat csak az Egyesült Államokban és Kanadában lévő felhasználók számára szán. Ebben az esetben létrehoz egy egyéni geomatch-szabályt, amely letiltja az összes olyan kérést, amely nem ezekből az országokból származik.

Ez a minta a felügyelt szabálykészleteken keresztül feldolgozza a kérelmek hasznos adatait az USA-ból és Kanadából, és észleli a rosszindulatú támadásokat, miközben blokkolja az összes többi országból érkező kéréseket. Ez a megközelítés biztosítja, hogy csak a célközönség férhessen hozzá a webalkalmazáshoz, elkerülve a más régiókból érkező nemkívánatos forgalmat.

A lehetséges hamis pozitív értékek minimalizálása érdekében vegye fel a listára a ZZ országkódját, hogy rögzítse azOkat az IP-címeket, amelyekre még nem képezték le az Azure-adathalmaz egy országát. Ez a technika a földrajzi hely típusához egy negate feltételt, az URI-egyezéshez pedig nem negate feltételt használ.

Ha olyan egyéni geomatch-szabályt szeretne létrehozni, amely letiltja az Usa és Kanada kivételével az összes országból érkező forgalmat egy adott URI-ba, tekintse meg a portálon, a Bicepben és az Azure PowerShellben elérhető példákat.

Példa portálra – Application Gateway

Screenshot showing add custom rule for Application Gateway.

Példa portálra – Front Door

Screenshot showing add custom rule for Front Door.

Bicep-példa – Application Gateway

properties: {
    customRules: [
      {
        name: 'GeoRule2'
        priority: 11
        ruleType: 'MatchRule'
        action: 'Block'
        matchConditions: [
          {
            matchVariables: [
              {
                variableName: 'RemoteAddr'
              }
            ]
            operator: 'GeoMatch'
            negationConditon: true
            matchValues: [
              'US'
              'CA'
            ]
            transforms: []
          }
          {
            matchVariables: [
              {
                variableName: 'RequestUri'
              }
            ]
            operator: 'Contains'
            negationConditon: false
            matchValues: [
              '/foo'
              '/bar'
            ]
            transforms: []
          }
        ]
        state: 'Enabled'
      }

Bicep-példa – Front Door

properties: {
    customRules: {
      rules: [
        {
          name: 'GeoRule2'
          enabledState: 'Enabled'
          priority: 11
          ruleType: 'MatchRule'
          matchConditions: [
            {
              matchVariable: 'SocketAddr'
              operator: 'GeoMatch'
              negateCondition: true
              matchValue: [
                'US'
                'CA'
              ]
              transforms: []
            }
            {
              matchVariable: 'RequestUri'
              operator: 'Contains'
              negateCondition: false
              matchValue: [
                '/foo'
                '/bar'
              ]
              transforms: []
            }
          ]
          action: 'Block'
        }

Azure PowerShell-példa – Application Gateway

$RGname = "rg-waf "
$policyName = "waf-pol"
$variable1a = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition1a = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable1a -Operator GeoMatch -MatchValue @(“US”, “CA”) -NegationCondition $true
$variable1b = New-AzApplicationGatewayFirewallMatchVariable -VariableName RequestUri
$condition1b = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable1b -Operator Contains -MatchValue @(“/foo”, “/bar”) -NegationCondition $false
$rule1 = New-AzApplicationGatewayFirewallCustomRule -Name GeoRule2 -Priority 11 -RuleType MatchRule -MatchCondition $condition1a, $condition1b -Action Block
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $RGname
$policy.CustomRules.Add($rule1)
Set-AzApplicationGatewayFirewallPolicy -InputObject $policy

Azure PowerShell-példa – Front Door

$RGname = "rg-waf"
$policyName = "wafafdpol"
$matchCondition1a = New-AzFrontDoorWafMatchConditionObject -MatchVariable SocketAddr -OperatorProperty GeoMatch -MatchValue @(“US”, "CA") -NegateCondition $true
$matchCondition1b = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty Contains -MatchValue @(“/foo”, “/bar”) -NegateCondition $false
$customRuleObject1 = New-AzFrontDoorWafCustomRuleObject -Name "GeoRule2" -RuleType MatchRule -MatchCondition $matchCondition1a, $matchCondition1b -Action Block -Priority 11
$afdWAFPolicy= Get-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $RGname
Update-AzFrontDoorWafPolicy -InputObject $afdWAFPolicy -Customrule $customRuleObject1

3. forgatókönyv – Kifejezetten az "x" országból érkező forgalom blokkolása

A geomatch egyéni szabályaival letilthatja az adott országokból érkező forgalmat. Ha például a webalkalmazás sok rosszindulatú kérést fogad az "x" országból, hozzon létre egy egyéni geomatch egyéni szabályt, amely letiltja az adott országból érkező összes kérést. Ez védi a webalkalmazást a lehetséges támadásoktól, és csökkenti az erőforrás-terhelést. Alkalmazza ezt a mintát több rosszindulatú vagy ellenséges ország blokkolásához. Ehhez a technikához a forgalmi minta egyezésfeltétele szükséges. Az "x" országból érkező forgalom letiltásához tekintse meg a következő portált, a Bicep-et és az Azure PowerShell-példákat.

Példa portálra – Application Gateway

Screenshot showing the application gateway add custom rule screen.

Példa portálra – Front Door

Screenshot showing the front door add custom rule screen.

Bicep-példa – Application Gateway

properties: {
    customRules: [
      {
        name: 'GeoRule3'
        priority: 12
        ruleType: 'MatchRule'
        action: 'Block'
        matchConditions: [
          {
            matchVariables: [
              {
                variableName: 'RemoteAddr'
              }
            ]
            operator: 'GeoMatch'
            negationConditon: false
            matchValues: [
              'US'
            ]
            transforms: []
          }
        ]
        state: 'Enabled'
      }

Bicep-példa – Front Door

properties: {
    customRules: {
      rules: [
        {
          name: 'GeoRule3'
          enabledState: 'Enabled'
          priority: 12
          ruleType: 'MatchRule'
          matchConditions: [
            {
              matchVariable: 'SocketAddr'
              operator: 'GeoMatch'
              negateCondition: false
              matchValue: [
                'US'
              ]
              transforms: []
            }
          ]
          action: 'Block'
        }

Azure PowerShell-példa – Application Gateway

$RGname = "rg-waf "
$policyName = "waf-pol"
$variable2 = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition2 = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable2 -Operator GeoMatch -MatchValue "US" -NegationCondition $false
$rule2 = New-AzApplicationGatewayFirewallCustomRule -Name GeoRule3 -Priority 12 -RuleType MatchRule -MatchCondition $condition2 -Action Block
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $RGname
$policy.CustomRules.Add($rule2)
Set-AzApplicationGatewayFirewallPolicy -InputObject $policy

Azure PowerShell-példa – Front Door

$RGname = "rg-waf"
$policyName = "wafafdpol"
$matchCondition2 = New-AzFrontDoorWafMatchConditionObject -MatchVariable SocketAddr -OperatorProperty GeoMatch -MatchValue "US" -NegateCondition $false
$customRuleObject2 = New-AzFrontDoorWafCustomRuleObject -Name "GeoRule3" -RuleType MatchRule -MatchCondition $matchCondition2 -Action Block -Priority 12
$afdWAFPolicy= Get-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $RGname
Update-AzFrontDoorWafPolicy -InputObject $afdWAFPolicy -Customrule $customRuleObject2

Geomatch custom rule anti-patterns

Kerülje az anti-mintákat a geomatch egyéni szabályok használata esetén, például az egyéni szabályművelet allow beállítása helyett block. Ennek nem szándékos következményei lehetnek, például lehetővé teszik, hogy a forgalom megkerülje a WAF-ot, és potenciálisan felfedje a webalkalmazást más fenyegetéseknek.

Művelet használata allow helyett használjon block negate feltétellel rendelkező műveletet, ahogyan az a korábbi mintákban is látható. Ez biztosítja, hogy csak a kívánt országokból érkező forgalom engedélyezett, és a WAF blokkolja az összes többi forgalmat.

4. forgatókönyv – az "x" országból érkező forgalom engedélyezése

Kerülje a geomatch egyéni szabály beállítását egy adott országból érkező forgalom engedélyezéséhez. Ha például egy nagy ügyfélbázis miatt szeretné engedélyezni a forgalmat a Egyesült Államok, hozzon létre egy egyéni szabályt a művelettelallow, és az érték United States megoldásnak tűnhet. Ez a szabály azonban lehetővé teszi a Egyesült Államok összes forgalmát, függetlenül attól, hogy rosszindulatú hasznos adattal rendelkezik-e, mivel a allow művelet a felügyelt szabálykészletek további szabályfeldolgozását hajtja végre. Emellett a WAF továbbra is feldolgozza az összes többi országból érkező forgalmat, és erőforrásokat használ fel. Ez elérhetővé teszi a webalkalmazást azoknak a rosszindulatú kéréseknek a Egyesült Államok, amelyeket a WAF egyébként blokkolna.

5. forgatókönyv – Az összes megyéből érkező forgalom engedélyezése az "x" kivételével

Kerülje a szabályművelet allow beállítását az egyéni geomatch szabályok használatakor kizárandó országok listájának megadásához. Ha például a Egyesült Államok kivételével minden országból engedélyezni szeretné a forgalmat, ahol rosszindulatú tevékenységre gyanakszik, ennek a megközelítésnek nem szándékos következményei lehetnek. Ez lehetővé teheti a nem ellenőrzött vagy nem biztonságos országokból vagy olyan országokból érkező forgalmat, amelyek biztonsági szabványai alacsonyak vagy nincsenek, és a webalkalmazást potenciális biztonsági réseknek vagy támadásoknak teszik ki. A művelet az allow USA kivételével minden ország esetében azt jelzi a WAF-nek, hogy állítsa le a kérelem hasznos adatainak feldolgozását a felügyelt szabálykészletek ellen. Az egyéni szabály allow feldolgozása után az összes szabály kiértékelése megszűnik, és az alkalmazást nemkívánatos rosszindulatú támadásoknak teszi ki.

Ehelyett használjon szigorúbb és konkrétabb szabályműveleteket, például tiltásokat, és adjon meg egy listát azokról az országokról, amelyeket negate feltétellel engedélyezhet. Ez biztosítja, hogy csak megbízható és ellenőrzött forrásokból érkező forgalom férhessen hozzá a webalkalmazáshoz, miközben blokkolja a gyanús vagy nemkívánatos forgalmat.

Következő lépések