Review van een WAF-policy¶
Reviewer-runbook voor pull requests die een web application firewall (WAF) policy van de Application Gateway wijzigen: een custom rule, een override van een managed rule, een exclusion of een uitgeschakelde regel. De policybestanden en hun effecten staan in Application Gateway. De deployment is dezelfde als voor de gateway (Application Gateway-deployment).
Wat een WAF-policywijziging is¶
Een WAF in prevention mode blokkeert requests die overeenkomen met zijn managed rules. Een wijziging van een WAF-policy heeft normaal gesproken een van deze redenen:
| Reden | Voorbeeld |
|---|---|
| Een false positive: een legitiem request wordt geblokkeerd | Een request met veel speciale tekens in één argument. |
| Een nieuwe bescherming | Een custom rule die een bron of een patroon blokkeert. |
| Een nieuwe policy voor een workload | Een aparte policy voor één listener of pad. |
Elke policy is een bestand web_application_firewall_policy_<name>.json in <region>/web_application_firewall_policies/.
1. Open de pull request en controleer de status¶
Open het ticket, volg de link naar de pull request en doe de checks van Review van een pull request: geen draft, de validatiepipeline is groen, geen merge-conflicten, alle opmerkingen opgelost, een ticket gelinkt. Als er een faalt, stuur je de pull request terug.
2. Controleer het bewijs¶
Een wijziging die een regel uitschakelt of uitsluit, heeft bewijs in het ticket nodig:
| Bewijs | Waarom |
|---|---|
| Het geblokkeerde request: URI, de naam van het argument of de header, de rule ID uit het WAF-log | Laat zien naar welke regel je moet kijken. |
| Waarom het een false positive is | Zonder dat is de uitzondering een gok. |
| De goedkeuring van security | Een uitzondering verlaagt de bescherming. |
| Het einde van de uitzondering, of een reviewdatum | Uitzonderingen horen niet eeuwig te blijven. |
3. Controleer het bestand¶
Voor elk bestand in de pull request:
| Check | Waarom |
|---|---|
| De wijziging is de smalste die het probleem oplost: een exclusion voor één argument in plaats van een regel uitschakelen | Behoudt de rest van de bescherming. |
| De rule ID's zijn die uit het log | Een verkeerde ID laat de false positive bestaan. |
De bestandsnaam volgt web_application_firewall_policy_<name>.json en het staat in de juiste regiomap |
Het bestand wordt via dit patroon gevonden. |
| De JSON komt overeen met het WAF-policyschema | De config tests gebruiken het. |
De policy waarnaar een gateway, listener of pad verwijst bestaat, met een correcte firewall_policy_id |
Een verkeerde ID laat de gatewaywijziging falen. |
| Custom rules: unieke prioriteiten, een duidelijke match condition, een juiste actie | Een brede custom rule kan echte gebruikers blokkeren. |
De wijziging staat in canary en in prod, of de beschrijving zegt waarom alleen in prod |
Canary is de plek om te testen. |
| De lijst met exclusions en uitgeschakelde regels is bijgewerkt, met de rationale | Je hebt die nodig om ze later te reviewen. |
policy_settings worden alleen toegepast als de policy wordt aangemaakt
De module negeert latere wijzigingen van policy_settings (bijvoorbeeld de modus Detection of Prevention, en de limieten voor de
bodygrootte), omdat Azure Policy ze ook wijzigt. Een pull request die alleen deze instellingen wijzigt heeft geen
effect op een bestaande policy. Custom rules en overrides van managed rules worden wel bijgewerkt. Vraag de auteur hoe de instelling
wordt gewijzigd (in de portal, met een vastlegging van de wijziging, of met een nieuwe policy). Zie
WAF-policy voor de workload.
Test het effect
Het inschakelen van een extra WAF-instelling, zoals inspectie van de request body, zonder test kan legitieme requests blokkeren
(gebruikers zien 403). Vraag om een test op canary en controleer het WAF-log na de deployment
(Bekende problemen).
4. Eindreview¶
- Alles is in orde: keur de pull request goed en deploy (Application Gateway-deployment).
De layer is
connectivity. - Er klopt iets niet: geef commentaar, zet het ticket terug op New en wijs het toe aan de auteur.
Vraag de aanvrager na de deployment het geblokkeerde request te herhalen en controleer dat het erdoor komt. Kijk in het WAF-log naar de rule ID om te zien of die nog steeds overeenkomt.