Reguły niestandardowe usługi Web Application Firewall w wersji 2 w usłudze Azure Application Gateway

Zapora aplikacji internetowej (WAF) usługi aplikacja systemu Azure Gateway w wersji 2 zawiera wstępnie skonfigurowany zestaw reguł zarządzanych przez platformę, który zapewnia ochronę przed wieloma różnymi typami ataków. Te ataki obejmują skrypty między witrynami, wstrzyknięcie kodu SQL i inne. Jeśli jesteś administratorem zapory aplikacji internetowej, możesz napisać własne reguły, aby rozszerzyć reguły podstawowego zestawu reguł (CRS). Reguły niestandardowe mogą blokować, zezwalać lub rejestrować żądany ruch na podstawie kryteriów dopasowania. Jeśli zasady zapory aplikacji internetowej są ustawione na tryb wykrywania, a zostanie wyzwolona niestandardowa reguła blokowania, żądanie zostanie zarejestrowane i nie zostanie podjęta żadna akcja blokująca.

Reguły niestandardowe umożliwiają tworzenie własnych reguł, które są oceniane dla każdego żądania przekazywanego przez zaporę aplikacji internetowej. Te reguły mają wyższy priorytet niż pozostałe reguły w zarządzanych zestawach reguł. Reguły niestandardowe zawierają nazwę reguły, priorytet reguły i tablicę pasujących warunków. Jeśli te warunki zostaną spełnione, zostanie podjęta akcja (aby zezwolić, zablokować lub zarejestrować). Jeśli zostanie wyzwolona reguła niestandardowa i zostanie podjęta akcja zezwalania lub blokowania, nie są oceniane żadne dalsze reguły niestandardowe ani zarządzane. Reguły niestandardowe można włączać/wyłączać na żądanie.

Można na przykład zablokować wszystkie żądania z adresu IP w zakresie 192.168.5.0/24. W tej regule operator to IPMatch, element matchValues jest zakresem adresów IP (192.168.5.0/24), a akcja polega na zablokowaniu ruchu. Można również ustawić nazwę reguły, priorytet i stan włączony/wyłączony.

Niestandardowe reguły obsługują używanie logiki złożonej, aby bardziej zaawansowane reguły, które zaspokajają potrzeby związane z zabezpieczeniami. Możesz na przykład użyć dwóch reguł niestandardowych, aby utworzyć następującą logikę (rule1:Condition 1 i rule1:Condition 2) lub rule2:Condition 3. Ta logika oznacza, że jeśli warunek 1 i Warunek 2 zostaną spełnione lub jeśli warunek 3 zostanie spełniony, zapora aplikacji internetowej powinna podjąć akcję określoną w regułach niestandardowych.

Różne warunki dopasowania w ramach tej samej reguły są zawsze złożone przy użyciu i. Na przykład blokuje ruch z określonego adresu IP i tylko wtedy, gdy używa określonej przeglądarki.

Jeśli chcesz użyć lub między dwoma różnymi warunkami, dwa warunki muszą znajdować się w różnych regułach. Możesz na przykład zablokować ruch z określonego adresu IP lub zablokować ruch, jeśli używa określonej przeglądarki.

Wyrażenia regularne są również obsługiwane w regułach niestandardowych, podobnie jak w zestawach reguł CRS. Przykłady można znaleźć w temacie Przykłady 3 i 5 w temacie Tworzenie i używanie niestandardowych reguł zapory aplikacji internetowej.

Uwaga

Maksymalna liczba reguł niestandardowych zapory aplikacji internetowej to 100. Aby uzyskać więcej informacji na temat limitów usługi Application Gateway, zobacz Limity subskrypcji i usług platformy Azure, limity przydziału i ograniczenia.

Uwaga

Wszystkie reguły przekierowania zastosowane na poziomie bramy aplikacji będą pomijać reguły niestandardowe zapory aplikacji internetowej. Aby uzyskać więcej informacji na temat reguł przekierowania, zobacz Omówienie przekierowania usługi Application Gateway.

Zezwalanie a blokowanie

Zezwalanie i blokowanie ruchu jest proste w przypadku reguł niestandardowych. Można na przykład zablokować cały ruch pochodzący z zakresu adresów IP. Możesz utworzyć kolejną regułę zezwalania na ruch, jeśli żądanie pochodzi z określonej przeglądarki.

Aby zezwolić na coś, upewnij się, że -Action parametr ma ustawioną wartość Zezwalaj. Aby zablokować coś, upewnij się, że -Action parametr jest ustawiony na Wartość Blokuj.

$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

Poprzednie $BlockRule mapowanie na następującą regułę niestandardową w usłudze Azure Resource Manager:

"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"
            ]
          }
        ]
      }
    ], 

Ta reguła niestandardowa zawiera nazwę, priorytet, akcję i tablicę pasujących warunków, które muszą zostać spełnione, aby akcja została spełnina. Aby uzyskać więcej informacji na temat tych pól, zobacz następujące opisy pól. Na przykład reguły niestandardowe można znaleźć w temacie Create and use custom web application firewall rules (Tworzenie i używanie niestandardowych reguł zapory aplikacji internetowej).

Pola dla reguł niestandardowych

Nazwa [opcjonalnie]

Nazwa reguły. Zostanie on wyświetlony w dziennikach.

Włącz regułę [opcjonalnie]

Włącz/wyłącz tę regułę. Reguły niestandardowe są domyślnie włączone.

Priorytet [wymagany]

  • Określa kolejność wyceny reguły. Im niższa wartość, to wcześniejsza ocena reguły. Dozwolony zakres wynosi od 1 do 100.
  • Musi być unikatowa we wszystkich regułach niestandardowych. Reguła z priorytetem 40 jest oceniana przed regułą z priorytetem 80.

Typ reguły [wymagane]

Obecnie musi mieć wartość MatchRule.

Dopasuj zmienną [required]

Musi być jedną ze zmiennych:

  • RemoteAddr — adres IPv4/zakres połączenia komputera zdalnego
  • RequestMethod — metoda żądania HTTP
  • QueryString — zmienna w identyfikatorze URI
  • PostArgs — argumenty wysyłane w treści POST. Reguły niestandardowe używające tej zmiennej dopasowania są stosowane tylko wtedy, gdy nagłówek "Content-Type" jest ustawiony na wartość "application/x-www-form-urlencoded" i "multipart/form-data". Dodatkowy typ zawartości jest obsługiwany w przypadku reguł niestandardowych application/json CRS w wersji 3.2 lub nowszej, zestawu reguł ochrony bota oraz reguł niestandardowych dopasowania geograficznego.
  • RequestUri — identyfikator URI żądania
  • RequestHeaders — nagłówki żądania
  • RequestBody — ta zmienna zawiera całą treść żądania. Reguły niestandardowe używające tej zmiennej dopasowania są stosowane tylko wtedy, gdy nagłówek "Content-Type" jest ustawiony na application/x-www-form-urlencoded typ nośnika. Dodatkowe typy application/soap+xml, application/xml, text/xml zawartości są obsługiwane w systemie CRS w wersji 3.2 lub nowszej, zestawie reguł ochrony botów i regułach niestandardowych dopasowania geograficznego.
  • RequestCookies — pliki cookie żądania

Selektor [opcjonalnie]

Opisuje pole kolekcji matchVariable. Jeśli na przykład element matchVariable to RequestHeaders, selektor może znajdować się w nagłówku User-Agent .

Operator [required]

Musi być jednym z następujących operatorów:

  • IPMatch — używany tylko wtedy, gdy zmienna dopasowania jest remoteAddr i obsługuje tylko protokół IPv4
  • Equal — dane wejściowe są takie same jak MatchValue
  • Dowolny — nie powinien mieć wartości MatchValue. Zaleca się dopasowanie zmiennej z prawidłowym selektorem.
  • Contains
  • LessThan
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • BeginsWith
  • EndsWith
  • Wyrażenie regularne
  • Zrównanie geograficzne

Negate warunek [opcjonalnie]

Neguje bieżący warunek.

Przekształcanie [opcjonalne]

Lista ciągów z nazwami przekształceń do wykonania przed podjęciem próby dopasowania. Mogą to być następujące przekształcenia:

  • Małe litery
  • Wielkie litery
  • Trim
  • UrlDecode
  • Urlencode
  • RemoveNulls
  • HtmlEntityDecode

Dopasuj wartości [wymagane]

Lista wartości do dopasowania, które można traktować jako OR'ed. Na przykład może to być adresy IP lub inne ciągi. Format wartości zależy od poprzedniego operatora.

Obsługiwane wartości metody żądania HTTP obejmują:

  • GET
  • HEAD
  • POST
  • OPTIONS
  • ODŁÓŻ
  • DELETE
  • PATCH

Akcja [wymagana]

W trybie wykrywania zasad zapory aplikacji internetowej, jeśli zostanie wyzwolona reguła niestandardowa, akcja jest zawsze rejestrowana niezależnie od wartości akcji ustawionej na regule niestandardowej.

  • Zezwalaj — autoryzuje transakcję, pomijając wszystkie inne reguły. Określone żądanie jest dodawane do listy dozwolonych i po dopasowaniu żądanie zatrzymuje dalszą ocenę i jest wysyłane do puli zaplecza. Reguły, które znajdują się na liście dozwolonych, nie są oceniane pod kątem dalszych reguł niestandardowych ani reguł zarządzanych.
  • Blokuj — blokuje lub rejestruje transakcję na podstawie secDefaultAction (tryb wykrywania/zapobiegania).
    • Tryb zapobiegania — blokuje transakcję na podstawie secDefaultAction. Podobnie jak w przypadku Allow akcji, gdy żądanie zostanie ocenione i dodane do listy zablokowanych, ocena zostanie zatrzymana i żądanie zostanie zablokowane. Każde żądanie po spełnieniu tych samych warunków nie zostanie ocenione i zostanie zablokowane.
    • Tryb wykrywania — rejestruje transakcję w oparciu o secDefaultAction, po której ocena została zatrzymana. Każde żądanie po spełnieniu tych samych warunków nie jest oceniane i jest rejestrowane.
  • Dziennik — umożliwia zapis reguły w dzienniku, ale umożliwia uruchamianie pozostałych reguł na potrzeby oceny. Inne reguły niestandardowe są oceniane według priorytetu, a następnie reguły zarządzane.

Kopiowanie i duplikowanie reguł niestandardowych

Reguły niestandardowe można duplikować w ramach określonych zasad. Podczas duplikowania reguły należy określić unikatową nazwę reguły i unikatową wartość priorytetu. Ponadto reguły niestandardowe można skopiować z jednej zasady zapory aplikacji internetowej usługi Application Gateway do innej, o ile zasady znajdują się w tej samej subskrypcji. Podczas kopiowania reguły z jednej zasady do innej należy wybrać zasady zapory aplikacji internetowej usługi Application Gateway, do których chcesz skopiować regułę. Po wybraniu zasad zapory aplikacji internetowej należy nadać regule unikatową nazwę i przypisać rangę priorytetu.

Reguły niestandardowe geodopasowania

Reguły niestandardowe umożliwiają tworzenie dostosowanych reguł zgodnie z dokładnymi potrzebami aplikacji i zasad zabezpieczeń. Dostęp do aplikacji internetowych można ograniczyć według kraju/regionu. Aby uzyskać więcej informacji, zobacz Geomatch custom rules (Reguły niestandardowe dotyczące niezgodności geograficznej).

Następne kroki