Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Overzicht
Dit artikel helpt u bij het oplossen van problemen met Web Application Firewall (WAF) voor Azure Application Gateway wanneer legitieme aanvragen worden geblokkeerd, zodat u geldig verkeer kunt toestaan terwijl de beveiliging behouden blijft.
Bekijk eerst het WAF-overzicht en de WAF-configuratiedocumentatie en zorg ervoor dat WAF-bewaking is ingeschakeld. In deze artikelen wordt uitgelegd hoe waf werkt, hoe de regelsets werken en hoe u toegang krijgen tot WAF-logboeken.
De OWASP-regelsets zijn ontworpen om strikt uit de doos te zijn en te worden afgestemd op de specifieke behoeften van de toepassing of organisatie die WAF gebruiken. Het is heel normaal, en in veel gevallen ook gebruikelijk, om uitsluitingen en aangepaste regels te maken, en zelfs regels uit te schakelen die problemen of vals-positieven kunnen veroorzaken. Met beleid per site en per URI kunnen deze wijzigingen alleen van invloed zijn op specifieke sites of URI's. Wijzigingen mogen dus geen invloed hebben op andere sites die mogelijk niet dezelfde problemen ondervinden.
WAF-logboeken begrijpen
Het doel van WAF-logboeken is om elke aanvraag weer te geven die MET WAF overeenkomt of blokkeert. Het is een grootboek van alle geëvalueerde aanvragen die overeenkomen met bepaalde criteria of worden geblokkeerd. Als u merkt dat de WAF een verzoek blokkeert dat niet geblokkeerd zou moeten worden (een vals-positief), kunt u een paar stappen ondernemen. Beperk eerst en vind de specifieke aanvraag. Bekijk de logboeken om de specifieke URI, tijdstempel of transactie-id van de aanvraag te vinden. Wanneer u de bijbehorende logboekvermeldingen vindt, kunt u beginnen met het reageren op fout-positieven.
Stel dat u een legitiem verkeer hebt met de tekenreeks 1=1 die u wilt doorgeven via uw WAF. Als u de aanvraag probeert, blokkeert WAF verkeer dat uw 1=1 tekenreeks bevat in een parameter of veld. Deze tekenreeks is vaak gekoppeld aan een SQL-injectieaanval. U kunt de logboeken bekijken en de tijdstempel van de aanvraag en de regels bekijken die zijn geblokkeerd of overeenkomen.
In het volgende voorbeeld ziet u dat er vier regels worden geactiveerd tijdens dezelfde aanvraag (met behulp van het veld TransactionId). De eerste geeft aan dat deze overeenkomt omdat de gebruiker een numeriek IP-adres voor de aanvraag heeft gebruikt, waardoor de anomaliescore met drie wordt verhoogd omdat het een waarschuwing is. De volgende regel die overeenkomt, is 942130, de regel die u zoekt. U kunt de 1=1 in het details.data veld zien. Hierdoor neemt de anomaliescore nogmaals met drie toe, omdat het ook een waarschuwing is. Over het algemeen verhoogt elke regel met de actie Matched de anomaliescore en op dit moment is de anomaliescore zes. Zie de modus Anomaliescore voor meer informatie.
De laatste twee logboekvermeldingen geven aan dat de aanvraag is geblokkeerd omdat de anomaliescore hoog genoeg was. Deze vermeldingen hebben een andere acties dan de overige twee. Ze laten zien dat ze het verzoek daadwerkelijk hebben geblokkeerd . Deze regels zijn verplicht en kunnen niet worden uitgeschakeld. Beschouw deze regels niet als regels, maar eerder als de kerninfrastructuur van de interne werking van de WAF.
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "920350",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"^[\\\\\\\\d.:]+$\\\" at REQUEST_HEADERS:Host. ",
"data": "40.90.218.160",
"file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf\\\"",
"line": "791"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "942130",
"message": "SQL Injection Attack: SQL Tautology Detected.",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"(?i:([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)([\\\\\\\\d\\\\\\\\w]++)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?:(?:=|\\u003c=\\u003e|r?like|sounds\\\\\\\\s+like|regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)\\\\\\\\2|(?:!=|\\u003c=|\\u003e=|\\u003c\\u003e|\\u003c|\\u003e|\\\\\\\\^|is\\\\\\\\s+not|not\\\\\\\\s+like|not\\\\\\\\s+regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?!\\\\\\\\2)([\\\\\\\\d\\\\\\\\w]+)))\\\" at ARGS:text1. ",
"data": "Matched Data: 1=1 found within ARGS:text1: 1=1",
"file": "rules\/REQUEST-942-APPLICATION-ATTACK-SQLI.conf\\\"",
"line": "554"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Score: 8)",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. ",
"data": "",
"file": "rules\/REQUEST-949-BLOCKING-EVALUATION.conf\\\"",
"line": "57"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Inbound Score: 8 - SQLI=5,XSS=0,RFI=0,LFI=0,RCE=0,PHPI=0,HTTP=0,SESS=0): SQL Injection Attack: SQL Tautology Detected.",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Warning. Operator GE matched 5 at TX:inbound_anomaly_score. ",
"data": "",
"file": "rules\/RESPONSE-980-CORRELATION.conf\\\"",
"line": "73"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
Fout-positieven corrigeren
Met deze informatie en de kennis dat regel 942130 de tekenreeks is die overeenkomt met de 1=1 tekenreeks, kunt u enkele stappen ondernemen om te voorkomen dat deze regel uw verkeer blokkeert:
Gebruik een uitsluitingslijst. Zie WAF-uitsluitingslijsten voor meer informatie over uitsluitingslijsten.
Schakel de regel uit.
Fout-positieven van Paranoianiveau 2 beperken
In OWASP CRS 3.2 behoren SQL-injectieregels 942430, 942440 en 942450 tot Paranoia Level 2 (PL2). Als in WAF-logboeken wordt aangegeven dat een legitieme verificatieaanvraag overeenkomt met een van deze regels, identificeert u het veld voor bijdragende aanvragen voordat u een uitsluiting toevoegt. Controleer of de aanvraag legitiem is en identificeer de regel-id en de geconfigureerde regelset. Zie WAF-regelgroepen en -regels voor beschrijvingen en versiespecifieke vervangingen. Schakel geen inactieve regel in of wijzig regelsets om dit voorbeeld te volgen.
- Gebruik in Log Analytics de volgende query als uw diagnostische instelling firewalllogboeken naar de
AzureDiagnosticstabel verzendt. Vervang de resource-id en het tijdsbereik door de gateway en het interval dat u wilt onderzoeken. Deze logboeken kunnen gevoelige aanvraaggegevens bevatten; deel geen veldwaarden of verificatietokens.
Voer de volgende query uit.
AzureDiagnostics
| where TimeGenerated > ago(1h)
| where _ResourceId =~ "<application-gateway-resource-id>"
| where Category == "ApplicationGatewayFirewallLog"
| where ruleId_s in ("942430", "942440", "942450")
| project TimeGenerated, transactionId_g, requestUri_s,
ruleId_s, action_s, details_message_s, details_data_s
| order by TimeGenerated desc
- Zoek de transactie voor de mislukte aanvraag. Een bijdragende regel kan actie
Matchedhebben, terwijl een afzonderlijke anomaliescoreregel de transactie blokkeert. Als u alle overeenkomsten voor die transactie wilt controleren, vervangt u het filter regel-id door een filter optransactionId_g. Sluit geen afwijkingsscoreregel uit in plaats van de bijdragende regel. - Voor een bevestigd vals positief resultaat configureer je een uitsluiting voor het specifieke veld en uitsluitend voor de regel-id’s die eraan hebben bijgedragen. Uitsluitingen per regel vereisen een ondersteunde WAF-beleidsregelset, zoals OWASP CRS 3.2. Gebruik
Equalsdeze optie voor de veldkiezer en bewaar andere regels en bestaande beleidsinstellingen. Zie de CLI- en PowerShell-procedure met regelbereik en de voorbeelden van uitsluiting per regel. Zie de Handleiding voor powerShell-aanpassingen en CLI-aanpassingshandleiding voor regeldetectie. - Lees het beleid terug om te bevestigen dat de uitsluiting de beoogde versie van de regelset, groep, regel-id's, overeenkomstvariabele en selector bevat. Een globale uitsluiting die al betrekking heeft op dat veld is nog steeds van toepassing; als u een beperktere uitsluiting toevoegt, wordt deze niet verwijderd. Bekijk alle bestaande brede uitsluitingen afzonderlijk in plaats van alle uitsluitingen te wissen.
- Herhaal dezelfde legitieme aanvraag en controleer de reactie en nieuwe transactielogboeken. Controleer of de geselecteerde regel niet meer overeenkomt met het uitgesloten veld en onderzoek eventuele andere bijdragende regels als de aanvraag geblokkeerd blijft. Een lege query zonder gereproduceerd verkeer en werkende diagnostische verzameling brengt geen succes tot stand. Controleer of niet-gerelateerde velden worden geïnspecteerd in een gecontroleerde testomgeving.
Sluit niet automatisch alle drie id's of alle verificatievelden uit. Houd de WAF in de preventiemodus voor deze gerichte wijziging. Als u dit ongedaan wilt maken, verwijdert u alleen de uitsluiting met regelbereik die u hebt toegevoegd nadat u het beleid hebt bekeken; bestaande uitsluitingen behouden.
Een uitsluitingslijst gebruiken
Om een weloverwogen beslissing te nemen over het afhandelen van een vals-positief, moet u zich verdiepen in de technologieën die uw applicatie gebruikt. Als uw technologiestack bijvoorbeeld geen SQL-server bevat en u fout-positieven krijgt met betrekking tot deze regels, verzwakt het uitschakelen van deze regels uw beveiliging niet noodzakelijkerwijs.
Een uitsluiting laat een geselecteerd aanvraagkenmerk uit inspectie weg. Een globale uitsluiting is van toepassing op alle beheerde regels, terwijl een uitsluiting per regel alleen van toepassing is op de geselecteerde regels in een ondersteunde regelset. Beide gelden waar het WAF-beleid is gekoppeld, dus controleer de toepassingen en paden van het beleid voordat u het wijzigt. Als u bijvoorbeeld een veld uitsluit, kan dit een risico vormen wanneer 1=1 geldig is voor de ene toepassing, maar niet voor een andere toepassing die het beleid deelt. Geef de voorkeur aan een nauw afgebakende uitsluiting boven het uitsluiten van het hele verzoek.
Soms worden specifieke parameters doorgegeven aan de WAF op een manier die mogelijk niet intuïtief is. Er is bijvoorbeeld een token dat wordt doorgegeven bij het verifiëren met behulp van Microsoft Entra ID.
__RequestVerificationToken wordt meestal doorgegeven als een request cookie. In sommige gevallen waarin cookies echter worden uitgeschakeld, wordt dit token ook doorgegeven als een aanvraagkenmerk of arg. Als dit gebeurt, moet u ervoor zorgen dat __RequestVerificationToken ook als naam van het aanvraagkenmerk aan de uitsluitingslijst wordt toegevoegd.
In dit voorbeeld wilt u de naam van het kenmerk Aanvraag uitsluiten die gelijk is aan tekst1. Deze kenmerknaam is duidelijk omdat u de kenmerknaam in de firewalllogboeken kunt zien: gegevens: Overeenkomende gegevens: 1=1 gevonden in ARGS:text1: 1=1. Het kenmerk is tekst1. U kunt deze kenmerknaam ook een paar andere manieren vinden. Zie Namen van aanvraagkenmerken zoeken.
U kunt uitsluitingen maken voor WAF in Application Gateway op verschillende bereikniveaus. Zie Web Application Firewall uitsluitingslijsten voor meer informatie.
Regels uitschakelen
Een andere manier om een fout-positief te verwerken, is door de regel uit te schakelen die overeenkomt met de invoer waarvan de WAF dacht dat het kwaadaardig was. Omdat u de WAF-logboeken hebt geparseerd en de regel hebt beperkt tot 942130, kunt u deze uitschakelen in de Azure-portal. Zie De regels van de webapplicatie-firewall aanpassen via het Azure-portaal.
Als u weet dat al het verkeer dat een bepaalde voorwaarde bevat die normaal wordt geblokkeerd, geldig verkeer is, kunt u die regel uitschakelen voor de hele WAF. Als het echter alleen geldig verkeer is in een specifieke use-case, opent u een beveiligingsprobleem door die regel voor de hele WAF uit te schakelen, omdat dit een globale instelling is.
Zie Firewallregels voor webtoepassingen aanpassen via PowerShell om Azure PowerShell te gebruiken. Zie Web Application Firewall-regels aanpassen via de Azure CLI om Azure CLI te gebruiken.
HAR-bestanden opnemen
U kunt uw browser of een extern hulpprogramma zoals Fiddler gebruiken om HTTP Archive-bestanden (HAR) vast te leggen. HAR-bestanden bevatten informatie over de aanvragen en antwoorden die uw browser doet bij het laden van een webpagina. Deze informatie kan handig zijn voor het oplossen van WAF-problemen.
Aanbeveling
Het is een goede gewoonte om het HAR-bestand gereed te maken wanneer u contact op neemt met de ondersteuning. Het ondersteuningsteam kan het HAR-bestand gebruiken om het probleem vast te stellen.
Voer de volgende stappen uit om een HAR-bestand op te nemen en op te slaan in Microsoft Edge:
Druk op F12 of Ctrl+Shift+I om Edge-Ontwikkelhulpprogramma's te openen. U kunt de hulpmiddelen ook openen in het werkbalkmenu onder Meer hulpmiddelen>Ontwikkelhulpprogramma's.
Selecteer op het tabblad Console de optie Consolewissen of druk op Ctrl+L.
Selecteer het tabblad Netwerk .
Selecteer Netwerklogboek wissen of druk op Ctrl+L en selecteer vervolgens het netwerklogboek opnemen als het niet wordt opgenomen.
Laad de webpagina die wordt beveiligd door uw WAF en die u wilt oplossen.
Selecteer de netwerklogboekopname stoppen om de opname te stoppen.
Selecteer HAR exporteren (opgeschoond)... en sla het HAR-bestand op.
Namen van aanvraagkenmerken zoeken
Gebruik Fiddler om afzonderlijke aanvragen te controleren en te bepalen welke specifieke velden van een webpagina worden aangeroepen. Als u deze informatie gebruikt, kunt u bepaalde velden uitsluiten van inspectie met behulp van uitsluitingslijsten.
In dit voorbeeld ziet u dat het veld waarin de tekenreeks 1=1 is ingevoerd tekst1 wordt genoemd.
Dit is een veld dat u kunt uitsluiten. Zie Uitsluitingslijsten van Web Application Firewall voor meer informatie over uitsluitingslijsten. U kunt de evaluatie in dit geval uitsluiten door de volgende uitsluiting te configureren:
U kunt ook de firewalllogboeken bekijken om de informatie op te halen die u moet toevoegen aan de uitsluitingslijst. Zie Back-endstatus, resourcelogboeken en metrische gegevens voor Application Gateway om logboekregistratie in te schakelen.
Controleer het firewalllogboek en bekijk het PT1H.json-bestand voor het uur dat de aanvraag die u wilt inspecteren is opgetreden.
In dit voorbeeld ziet u dat u vier regels met dezelfde TransactionID hebt en dat ze allemaal precies op hetzelfde moment hebben plaatsgevonden:
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "920350",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"^[\\\\\\\\d.:]+$\\\" at REQUEST_HEADERS:Host. ",
"data": "40.90.218.160",
"file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf\\\"",
"line": "791"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "942130",
"message": "SQL Injection Attack: SQL Tautology Detected.",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"(?i:([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)([\\\\\\\\d\\\\\\\\w]++)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?:(?:=|\\u003c=\\u003e|r?like|sounds\\\\\\\\s+like|regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)\\\\\\\\2|(?:!=|\\u003c=|\\u003e=|\\u003c\\u003e|\\u003c|\\u003e|\\\\\\\\^|is\\\\\\\\s+not|not\\\\\\\\s+like|not\\\\\\\\s+regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?!\\\\\\\\2)([\\\\\\\\d\\\\\\\\w]+)))\\\" at ARGS:text1. ",
"data": "Matched Data: 1=1 found within ARGS:text1: 1=1",
"file": "rules\/REQUEST-942-APPLICATION-ATTACK-SQLI.conf\\\"",
"line": "554"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Score: 8)",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. ",
"data": "",
"file": "rules\/REQUEST-949-BLOCKING-EVALUATION.conf\\\"",
"line": "57"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Inbound Score: 8 - SQLI=5,XSS=0,RFI=0,LFI=0,RCE=0,PHPI=0,HTTP=0,SESS=0): SQL Injection Attack: SQL Tautology Detected.",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Warning. Operator GE matched 5 at TX:inbound_anomaly_score. ",
"data": "",
"file": "rules\/RESPONSE-980-CORRELATION.conf\\\"",
"line": "73"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
Met uw kennis van de werking van de CRS-regelset en dat de CRS-regelset 3.0 werkt met een anomaliescoresysteem (zie Web Application Firewall voor Azure Application Gateway) weet u dat de onderste twee regels met de actie: Geblokkeerd blokkeren op basis van de totale anomaliescore. De regels waarop u zich moet richten, zijn de belangrijkste twee.
De eerste vermelding wordt geregistreerd omdat de gebruiker een numeriek IP-adres heeft gebruikt om naar de Toepassingsgateway te navigeren, die u in dit geval kunt negeren.
De tweede vermelding (regel 942130) wordt weergegeven in de details omdat deze overeenkomt met een patroon (1=1)en het veld heet tekst1. Volg dezelfde vorige stappen om de naam van het aanvraagkenmerk uit te sluiten die gelijk is aan text1.
Namen van aanvraagheaders zoeken
Gebruik Fiddler om de namen van requestheaders te vinden. In de volgende schermopname ziet u de headers voor deze GET-aanvraag, waaronder Content-Type, User-Agent en andere headers.
U kunt ook de ontwikkelhulpprogramma's in Microsoft Edge of Google Chrome gebruiken om aanvraag- en antwoordheaders weer te geven. Zie HAR-bestanden opnemen voor meer informatie.
Namen van aanvraagcookies zoeken
Als de aanvraag cookies bevat, selecteert u het tabblad Cookies om deze in Fiddler weer te geven.
Beperkingen toepassen op globale parameters om fout-positieven te elimineren
Inspectie van de aanvraagbody uitschakelen
Wanneer u Inspect request body op uit zet, controleert uw WAF de aanvraag-inhoud van uw verkeer niet. Deze instelling is handig als u weet dat de aanvraagteksten niet schadelijk zijn voor uw toepassing.
Wanneer u deze optie uitschakelt, wordt alleen de inspectie overgeslagen door de aanvraagbody. De headers en cookies worden nog steeds geïnspecteerd, tenzij u afzonderlijke items uitsluit via de uitsluitingslijst.
Maximale limiet voor aanvraagtekst uitschakelen
Wanneer u de limiet voor de maximale hoofdtekst van aanvragen uitschakelt, kan WAF grote aanvraaghoofdteksten verwerken zonder deze te weigeren omdat ze de groottelimiet overschrijden. Deze instelling is handig als u regelmatig grote aanvragen hebt.
Wanneer u deze optie uitschakelt, wordt de aanvraagbody alleen geïnspecteerd tot de maximale inspectielimiet voor de aanvraagbody. Als de aanvraag schadelijke inhoud bevat die buiten de maximale inspectielimiet voor de aanvraagbody valt, detecteert de WAF deze niet.
Maximale bestandsgroottes uitschakelen
Wanneer u de bestandsgroottelimieten voor uw WAF uitschakelt, kunnen grote bestanden worden geüpload zonder dat uw WAF deze bestandsuploads weigert. Door toe te staan dat grote bestanden worden geüpload, neemt het risico toe dat uw back-end overbelast raakt. Als u weet dat de maximale grootte van een bestandsupload kan zijn, stelt u een groottelimiet in voor bestandsuploads die iets hoger zijn dan de verwachte maximale grootte. Het beperken van de bestandsgrootte tot een normale use case voor uw toepassing is een andere manier om aanvallen te voorkomen. Als uw bestandsuploads echter regelmatig buiten de maximaal afdwingbare limiet voor het uploaden van bestanden vallen, moet u mogelijk de limieten voor het uploaden van bestanden volledig uitschakelen om fout-positieven te voorkomen.
Opmerking
Als u weet dat uw app nooit bestanden moet uploaden boven een bepaalde grootte, kunt u deze grootte beperken door een limiet in te stellen.
Waarschuwing
Wanneer u een nieuwe beheerde regelset toewijst aan een WAF-beleid, worden alle vorige aanpassingen van de bestaande beheerde regelsets, zoals regelstatus, regelacties en uitsluitingen op regelniveau opnieuw ingesteld op de standaardwaarden van de nieuwe beheerde regelset. Aangepaste regels, beleidsinstellingen en globale uitsluitingen blijven echter ongewijzigd tijdens de toewijzing van de nieuwe regelset.
Metrische gegevens van firewall (alleen WAF v1)
Voor v1 Web Application Firewalls biedt de portal nu de volgende metrische gegevens:
- Web Application Firewall Aantal geblokkeerde aanvragen Het aantal geblokkeerde aanvragen.
- Web Application Firewall Aantal blokkerende regels Alle regels die overeenkomen en het verzoek wordt geblokkeerd.
- Web Application Firewall Totale regelverdeling Alle regels die tijdens de evaluatie overeenkomen.
Als u metrische gegevens wilt inschakelen, selecteert u het tabblad Metrische gegevens in de portal en selecteert u een van de drie metrische gegevens.