Vlastní pravidla pro Firewall webových aplikací v2 ve službě Azure Application Gateway

Firewall webových aplikací brány Aplikace Azure (WAF) v2 obsahuje předkonfigurovanou sadu pravidel spravovanou platformou, která nabízí ochranu před mnoha různými typy útoků. Mezi tyto útoky patří skriptování mezi weby, injektáž SQL a další. Pokud jste správce WAF, můžete chtít napsat vlastní pravidla pro rozšíření základních pravidel (CRS). Vaše vlastní pravidla můžou na základě odpovídajících kritérií blokovat, povolit nebo protokolovat požadovaný provoz. Pokud je zásada WAF nastavená na režim detekce a aktivuje se vlastní pravidlo blokování, zaprotokoluje se požadavek a neprovedou se žádné blokující akce.

Vlastní pravidla umožňují vytvořit vlastní pravidla, která se vyhodnocují pro každý požadavek procházející WAF. Tato pravidla mají vyšší prioritu než ostatní pravidla ve spravovaných sadách pravidel. Vlastní pravidla obsahují název pravidla, prioritu pravidla a pole shodných podmínek. Pokud jsou tyto podmínky splněné, provede se akce (pro povolení, blokování nebo protokol). Pokud se aktivuje vlastní pravidlo a provede se akce povolení nebo blokování, nevyhodnotí se žádná další vlastní nebo spravovaná pravidla. Vlastní pravidla je možné povolit nebo zakázat na vyžádání.

Můžete například blokovat všechny požadavky z IP adresy v rozsahu 192.168.5.0/24. V tomto pravidle je operátor IPMatch, matchValues je rozsah IP adres (192.168.5.0/24) a akce je blokovat provoz. Také nastavíte název pravidla, prioritu a povolený/zakázaný stav.

Vlastní pravidla podporují použití složeného logiky k vytváření pokročilejších pravidel, která řeší vaše potřeby zabezpečení. Můžete například použít dvě vlastní pravidla k vytvoření následující logiky ((rule1:Condition 1 a rule1:Condition 2) nebo rule2:Condition 3). Tato logika znamená, že pokud jsou splněny podmínky 1 a podmínka 2 nebo pokud je splněna podmínka 3, měl by WAF provést akci uvedenou ve vlastních pravidlech.

Různé odpovídající podmínky v rámci stejného pravidla se vždy skládají pomocí a. Například zablokujte provoz z konkrétní IP adresy a jenom v případě, že používají určitý prohlížeč.

Pokud chcete použít nebo mezi dvěma různými podmínkami, musí být tyto dvě podmínky v různých pravidlech. Pokud například používáte konkrétní prohlížeč, zablokujte provoz z konkrétní IP adresy nebo zablokujte provoz.

Regulární výrazy jsou podporovány také ve vlastních pravidlech, stejně jako v sadách pravidel CRS. Příklady najdete v tématu Příklady 3 a 5 v tématu Vytvoření a použití vlastních pravidel firewallu webových aplikací.

Poznámka:

Maximální počet vlastních pravidel WAF je 100. Další informace o limitech služby Application Gateway najdete v tématu Limity, kvóty a omezení předplatného a služeb Azure.

Upozornění

Všechna pravidla přesměrování použitá na úrovni aplikační brány budou obcházet vlastní pravidla WAF. Další informace o pravidlech přesměrování najdete v přehledu přesměrování služby Application Gateway.

Povolení vs. blokování

Povolení a blokování provozu je jednoduché pomocí vlastních pravidel. Můžete například blokovat veškerý provoz přicházející z rozsahu IP adres. Pokud požadavek pochází z konkrétního prohlížeče, můžete nastavit další pravidlo, které povolí provoz.

Pokud chcete něco povolit, ujistěte se, že -Action je parametr nastavený na Povolit. Pokud chcete něco zablokovat, ujistěte se, že -Action je parametr nastavený na Blokovat.

$AllowRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example1 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Allow `
   -State Enabled

$BlockRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example2 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Block `
   -State Enabled

$BlockRule Předchozí mapování na následující vlastní pravidlo v Azure Resource Manageru:

"customRules": [
      {
        "name": "blockEvilBot",
        "priority": 2,
        "ruleType": "MatchRule",
        "action": "Block",
        "state": "Enabled",
        "matchConditions": [
          {
            "matchVariables": [
              {
                "variableName": "RequestHeaders",
                "selector": "User-Agent"
              }
            ],
            "operator": "Contains",
            "negationCondition": false,
            "matchValues": [
              "evilbot"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ], 

Toto vlastní pravidlo obsahuje název, prioritu, akci a pole shodných podmínek, které musí být splněny, aby se akce uskutečnila. Další vysvětlení těchto polí najdete v následujících popisech polí. Například vlastní pravidla najdete v tématu Vytvoření a použití vlastních pravidel firewallu webových aplikací.

Pole pro vlastní pravidla

Název [volitelné]

Název pravidla. Zobrazí se v protokolech.

Povolit pravidlo [volitelné]

Zapněte nebo vypněte toto pravidlo. Vlastní pravidla jsou ve výchozím nastavení povolená.

Priorita [povinné]

  • Určuje objednávku ocenění pravidla. Nižší hodnota, dřívější vyhodnocení pravidla. Povolený rozsah je od 1 do 100.
  • Musí být jedinečné pro všechna vlastní pravidla. Pravidlo s prioritou 40 se vyhodnocuje před pravidlem s prioritou 80.

Typ pravidla [povinné]

V současné době musí být matchRule.

Shoda s proměnnou [povinné]

Musí to být jedna z proměnných:

  • RemoteAddr – IPv4 Address/Range of the remote computer connection
  • RequestMethod – metoda požadavku HTTP
  • QueryString – proměnná v identifikátoru URI
  • PostArgs – argumenty odeslané v textu POST. Vlastní pravidla používající tuto proměnnou shody se použijí pouze v případě, že je hlavička Content-Type nastavená na application/x-www-form-urlencoded a multipart/form-data. U CRS verze 3.2 nebo vyšší se podporuje další typ application/json obsahu, sada pravidel ochrany robota a vlastní pravidla geografické shody.
  • RequestUri – identifikátor URI požadavku
  • RequestHeaders – hlavičky požadavku
  • RequestBody – Tato proměnná obsahuje celý text požadavku jako celek. Vlastní pravidla používající tuto proměnnou shody se použijí pouze v případě, že je hlavička Content-Type nastavená na application/x-www-form-urlencoded typ média. Další typy application/soap+xml, application/xml, text/xml obsahu jsou podporovány v CRS verze 3.2 nebo vyšší, sada pravidel ochrany robota a vlastní pravidla geografické shody.
  • RequestCookies – soubory cookie žádosti

Selektor [volitelné]

Popisuje pole matchVariable kolekce. Pokud je například matchVariable RequestHeaders, může být selektor v hlavičce User-Agent .

Operátor [povinný]

Musí to být jeden z následujících operátorů:

  • IPMatch – používá se pouze v případě, že je proměnná Match RemoteAddr a podporuje pouze protokol IPv4.
  • Equal – input is the same as the MatchValue
  • Any – Neměl by mít MatchValue. Doporučuje se použít možnost Přizpůsobit proměnnou s platným selektorem.
  • Contains
  • LessThan
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • BeginsWith
  • EndsWith
  • Regulární výraz
  • Geomatch

Negate condition [optional]

Neguje aktuální podmínku.

Transformace [volitelné]

Seznam řetězcůschch Může to být následující transformace:

  • Malá písmena
  • Velká písmena
  • Trim
  • UrlDecode
  • Urlencode
  • RemoveNulls
  • HtmlEntityDecode

Shoda hodnot [povinné]

Seznamhodnotýchch hodnot, které lze považovat za OR Může to být například IP adresy nebo jiné řetězce. Formát hodnoty závisí na předchozím operátoru.

Mezi podporované hodnoty metody požadavku HTTP patří:

  • GET
  • HEAD
  • POST
  • OPTIONS
  • PUT
  • DELETE
  • PATCH

Akce [požadována]

Pokud se v režimu detekce zásad WAF aktivuje vlastní pravidlo, akce se vždy protokoluje bez ohledu na hodnotu akce nastavenou na vlastní pravidlo.

  • Allow – Autorizuje transakci a přeskočí všechna ostatní pravidla. Zadaný požadavek se přidá do seznamu povolených a po shody se požadavek zastaví další vyhodnocení a odešle se do back-endového fondu. Pravidla, která jsou na seznamu povolených, se nevyhodnocují pro žádná další vlastní pravidla ani spravovaná pravidla.
  • Blok – Blokuje nebo protokoluje transakci na základě secDefaultAction (režim detekce/prevence).
    • Režim prevence – Blokuje transakci na základě SecDefaultAction. Stejně jako u Allow akce se požadavek vyhodnotí a přidá do seznamu blokovaných položek, vyhodnocení se zastaví a požadavek se zablokuje. Všechny požadavky po splnění stejných podmínek se nevyhodnotí a zablokují se.
    • Režim detekce – Protokoluje transakci na základě SecDefaultAction, po kterém je vyhodnocení zastaveno. Všechny požadavky po splnění stejných podmínek se nevyhodnocují a právě se zaprotokolují.
  • Protokol – Umožňuje, aby pravidlo zapisovat do protokolu, ale zbytek pravidel se spustil pro vyhodnocení. Ostatní vlastní pravidla se vyhodnocují v pořadí podle priority a následně spravovaných pravidel.

Kopírování a duplikování vlastních pravidel

Vlastní pravidla se dají duplikovat v rámci dané zásady. Při duplikování pravidla musíte zadat jedinečný název pravidla a jedinečnou hodnotu priority. Kromě toho je možné vlastní pravidla zkopírovat z jedné zásady WAF služby Application Gateway do druhé, pokud jsou zásady ve stejném předplatném. Při kopírování pravidla z jedné zásady do druhé musíte vybrat zásadu WAF služby Application Gateway, do které chcete pravidlo zkopírovat. Jakmile vyberete zásadu WAF, musíte pravidlu dát jedinečný název a přiřadit pořadí priority.

Vlastní pravidla geografické shody

Vlastní pravidla umožňují vytvářet přizpůsobená pravidla tak, aby vyhovovala přesným potřebám vašich aplikací a zásad zabezpečení. Přístup k webovým aplikacím můžete omezit podle země nebo oblasti. Další informace najdete v tématu Vlastní pravidla Geomatch.

Další kroky