Egyéni szabályok a Web Application Firewall v2 esetében az Azure Application Gatewayen
A Azure-alkalmazás Gateway Web Application Firewall (WAF) v2 előre konfigurált, platform által felügyelt szabálykészlettel rendelkezik, amely számos különböző típusú támadással szemben nyújt védelmet. Ezek a támadások közé tartozik a helyek közötti szkriptelés, az SQL-injektálás és mások. Ha Ön WAF-rendszergazda, érdemes lehet saját szabályokat írnia az alapvető szabálykészlet (CRS) szabályainak kibővítéséhez. Az egyéni szabályok egyező feltételek alapján blokkolhatják, engedélyezhetik vagy naplózhatják a kért forgalmat. Ha a WAF-szabályzat észlelési módra van állítva, és egy egyéni blokkszabály aktiválódik, a rendszer naplózza a kérést, és nem hajt végre blokkoló műveletet.
Az egyéni szabályok lehetővé teszik, hogy saját szabályokat hozzon létre, amelyeket a rendszer kiértékel a WAF-on áthaladó minden egyes kéréshez. Ezek a szabályok magasabb prioritással rendelkeznek, mint a felügyelt szabálykészletek többi szabálya. Az egyéni szabályok szabálynevet, szabályprioritást és egy egyező feltételek tömböt tartalmaznak. Ha ezek a feltételek teljesülnek, a rendszer műveletet hajt végre (az engedélyezés, a letiltás vagy a naplózás érdekében). Ha egy egyéni szabály aktiválódik, és engedélyező vagy letiltó műveletet hajt végre, a rendszer nem értékel ki további egyéni vagy felügyelt szabályokat. Az egyéni szabályok igény szerint engedélyezhetők vagy letilthatók.
Letilthatja például a 192.168.5.0/24 tartomány ip-címéről érkező összes kérést. Ebben a szabályban az operátor IPMatch, a matchValues az IP-címtartomány (192.168.5.0/24), a művelet pedig a forgalom blokkolása. A szabály nevét, prioritását és engedélyezett/letiltott állapotát is beállíthatja.
Az egyéni szabályok támogatják az összetettségi logika használatát a biztonsági igényeknek megfelelő speciális szabályok létrehozásához. Két egyéni szabály használatával például létrehozhatja a következő logikát (szabály1:1 . feltétel és szabály1:2. feltétel) vagy szabály2:3. feltételt). Ez a logika azt jelenti, hogy ha az 1 . és a 2. feltétel teljesül, vagy a 3. feltétel teljesül, a WAF-nek meg kell tennie az egyéni szabályokban megadott műveletet.
Az ugyanazon szabályon belüli különböző egyező feltételek használata és használata mindig összetett. Tiltsa le például a forgalmat egy adott IP-címről, és csak akkor, ha egy bizonyos böngészőt használ.
Ha két különböző feltételt szeretne használni , akkor a két feltételnek különböző szabályokban kell lennie. Tiltsa le például egy adott IP-címről érkező forgalmat, vagy tiltsa le a forgalmat, ha egy adott böngészőt használ.
A reguláris kifejezések az egyéni szabályokban is támogatottak, csakúgy, mint a CRS-szabálykészletekben. Példák: 3. és 5 . példa az egyéni webalkalmazási tűzfalszabályok létrehozása és használata című témakörben.
Feljegyzés
A WAF egyéni szabályainak maximális száma 100. Az Application Gateway korlátaival kapcsolatos további információkért lásd az Azure-előfizetések és -szolgáltatások korlátait, kvótáit és korlátozásait.
Figyelemfelhívás
Az Application Gateway szintjén alkalmazott átirányítási szabályok megkerülik a WAF egyéni szabályait. Az átirányítási szabályokról további információt az Application Gateway átirányítási áttekintésében talál.
Engedélyezése és blokkolása
A forgalom engedélyezése és blokkolása egyszerű egyéni szabályokkal. Letilthatja például az IP-címek tartományából érkező összes forgalmat. Létrehozhat egy másik szabályt a forgalom engedélyezéséhez, ha a kérés egy adott böngészőből származik.
Ha engedélyezni szeretne valamit, győződjön meg arról, hogy a -Action
paraméter Engedélyezés értékre van állítva. Ha blokkolni szeretne valamit, győződjön meg arról, hogy a -Action
paraméter Blokk értékre van állítva.
$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
Az előző $BlockRule
leképezések a következő egyéni szabályra képezhetők le az Azure Resource Managerben:
"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"
]
}
]
}
],
Ez az egyéni szabály egy nevet, prioritást, egy műveletet és egyező feltételek tömböt tartalmaz, amelyeket teljesíteni kell a művelet végrehajtásához. A mezők további magyarázatát a következő mezőleírásokban talál. Például egyéni szabályok: Egyéni webalkalmazási tűzfalszabályok létrehozása és használata.
Egyéni szabályok mezői
Név [nem kötelező]
A szabály neve. Megjelenik a naplókban.
Szabály engedélyezése [nem kötelező]
Kapcsolja be/ki a szabályt. Az egyéni szabályok alapértelmezés szerint engedélyezve vannak.
Prioritás [kötelező]
- Meghatározza a szabály értékelési sorrendjét. Minél alacsonyabb az érték, annál korábbi a szabály kiértékelése. Az engedélyezett tartomány 1–100.
- Minden egyéni szabálynak egyedinek kell lennie. A 40 prioritású szabály kiértékelése a 80-ás prioritású szabály előtt történik.
Szabály típusa [kötelező]
Jelenleg a MatchRule-nak kell lennie.
Változó egyeztetése [kötelező]
A változók egyikének kell lennie:
- RemoteAddr – A távoli számítógép-kapcsolat IPv4-címe/tartománya
- RequestMethod – HTTP-kérési módszer
- QueryString – Változó az URI-ban
- PostArgs – A POST törzsben küldött argumentumok. Az egyezés változót használó egyéni szabályok csak akkor lesznek alkalmazva, ha a "Content-Type" fejléc "application/x-www-form-urlencoded" és "multipart/form-data" értékre van állítva. A CRS 3.2-es vagy újabb verziója, a robotvédelmi szabálykészlet és az egyéni szabályok földrajzi egyeztetése további tartalomtípusokat
application/json
is támogat. - RequestUri – A kérelem URI-ja
- RequestHeaders – A kérés fejlécei
- RequestBody – Ez a változó a teljes kérelemtörzset tartalmazza. Az egyezési változót használó egyéni szabályok csak akkor lesznek alkalmazva, ha a "Content-Type" fejléc médiatípusra
application/x-www-form-urlencoded
van beállítva. További tartalomtípusokapplication/soap+xml, application/xml, text/xml
támogatottak a CRS 3.2-es vagy újabb verziójával, a robotvédelmi szabálykészlettel és az egyéni szabályok földrajzi egyeztetésével. - RequestCookies – A kérés cookie-k
Választó [nem kötelező]
A matchVariable gyűjtemény mezője. Ha például a matchVariable a RequestHeaders, a választó a User-Agent fejlécen lehet.
Operátor [kötelező]
Az alábbi operátorok egyikének kell lennie:
- IPMatch – csak akkor használatos, ha a változó egyeztetése RemoteAddr, és csak az IPv4-et támogatja
- Egyenlőség – a bemenet megegyezik a MatchValue értékével
- Bármely – Nem lehet MatchValue. Azt javasoljuk, hogy érvényes választóval egyezzen a változóval.
- Contains
- LessThan
- GreaterThan
- LessThanOrEqual
- GreaterThanOrEqual
- BeginsWith
- EndsWith
- Regex
- Geomatch
Negate feltétel [nem kötelező]
Az aktuális feltételt nem lehet kivenni.
Átalakítás [nem kötelező]
Azoknak a sztringeknek a listája, amelyen az átalakítások neve szerepel, mielőtt a rendszer megkísérelné az egyeztetést. Ezek lehetnek a következő átalakítások:
- Kisbetűs
- Nagybetűs
- Trim
- UrlDecode
- UrlEncode
- RemoveNulls
- HtmlEntityDecode
Értékek egyeztetése [kötelező]
Azoknak az értékeknek a listája, amelyek az OR'ed értéknek tekinthetők. Lehet például IP-cím vagy más sztring. Az értékformátum az előző operátortól függ.
Támogatott HTTP-kérési metódusértékek a következők:
- KAP
- HEAD
- POST
- BEÁLLÍTÁSOK
- PUT
- Törlés...
- JAVÍTÁS
Művelet [kötelező]
WAF-szabályzatészlelési módban, ha egy egyéni szabály aktiválódik, a rendszer mindig naplózza a műveletet, függetlenül az egyéni szabályon beállított műveleti értéktől.
- Engedélyezés – Engedélyezi a tranzakciót, kihagyva az összes többi szabályt. A megadott kérés hozzá lesz adva az engedélyezési listához, és a megfeleltetés után a kérés leállítja a további kiértékelést, és elküldi a háttérkészletnek. Az engedélyezési listán szereplő szabályokat a rendszer nem értékeli ki további egyéni szabályok vagy felügyelt szabályok esetében.
- Blokk – Letiltja vagy naplózza a tranzakciót a SecDefaultAction (észlelési/megelőzési mód) alapján.
- Megelőzési mód – Letiltja a tranzakciót a SecDefaultAction alapján. A művelethez hasonlóan
Allow
a kérelem kiértékelése és a blokklistához való hozzáadása után a rendszer leállítja a kiértékelést, és letiltja a kérést. Az azonos feltételeknek megfelelő kéréseket a rendszer nem értékeli ki, és letiltja. - Észlelési mód – Naplózza a tranzakciót a SecDefaultAction alapján, amely után a kiértékelés leáll. Az azonos feltételeknek megfelelő kéréseket a rendszer nem értékeli ki, és csak naplózza.
- Megelőzési mód – Letiltja a tranzakciót a SecDefaultAction alapján. A művelethez hasonlóan
- Napló – Lehetővé teszi, hogy a szabály a naplóba írjon, de lehetővé teszi a többi szabály futtatását a kiértékeléshez. A többi egyéni szabályt prioritás szerinti sorrendben értékeli ki a rendszer, majd a felügyelt szabályokat.
Egyéni szabályok másolása és duplikálása
Az egyéni szabályok duplikálhatók egy adott szabályzatban. Egy szabály duplikálásakor meg kell adnia a szabály egyedi nevét és egy egyedi prioritási értéket. Emellett az egyéni szabályok átmásolhatók az Egyik Application Gateway WAF-szabályzatából egy másikba, ha a szabályzatok ugyanabban az előfizetésben találhatók. Amikor egy szabályt az egyik házirendből a másikba másol, ki kell választania azt az Application Gateway WAF-házirendet, amelybe a szabályt át szeretné másolni. Miután kiválasztotta a WAF-szabályzatot, egyedi nevet kell adnia a szabálynak, és prioritási rangot kell hozzárendelnie.
Földrajzi egyeztetéses egyéni szabályok
Az egyéni szabályok segítségével testre szabott szabályokat hozhat létre az alkalmazások és a biztonsági szabályzatok pontos igényeinek megfelelően. A webalkalmazásokhoz való hozzáférést ország/régió szerint korlátozhatja. További információ: Geomatch egyéni szabályok.