Wat is Azure Web Application Firewall?
Hier leert u de basisprincipes van Azure Web Application Firewall. Dit overzicht helpt u te evalueren of Azure Web Application Firewall een nuttig hulpprogramma is om toe te voegen aan de algehele netwerkbeveiligingsstrategie van Contoso.
Overzicht van Azure Web Application Firewall
Mogelijk denkt u dat kwaadwillende gebruikers zich niet storen bij uw web-apps. Tests hebben echter aangegeven dat bots of kwaadwillende actoren nieuwe web-apps testen op zwakke plekken binnen enkele minuten na de implementatie. Als u een app op internet plaatst, gaat u ervan uit dat bedreigingsactoren de app bijna onmiddellijk testen op beveiligingsproblemen. U kunt er ook van uitgaan dat dergelijke tests blijven bestaan gedurende de levensduur van de app.
De meeste schadelijke tests van web-apps controleren op de aanwezigheid van een of meer veelvoorkomende beveiligingsproblemen. Indien gevonden, kan een bedreigingsacteur deze beveiligingsproblemen gebruiken om aanvallen uit te voeren, zoals de volgende aanvallen:
- SQL-injectie
- Script uitvoeren op meerdere sites
- Lokale en externe bestandsopname
- HTTP/HTTPS-overstromingen
- Schadelijke botaanvallen
Een veelvoorkomende taak in de ontwikkelingscyclus van de web-app omvat het schrijven van code om de meest voorkomende beveiligingsgaten te sluiten. Het schrijven van de beveiligingscode vereist tijd, expertise en testen.
Azure Web Application Firewall is een Azure-service die gecentraliseerde beveiliging biedt voor door Azure gehoste web-apps. Azure Web Application Firewall beschermt web-apps tegen veelvoorkomende bedreigingen, zoals SQL-injectie en cross-site scripting.
U kunt Azure Web Application Firewall binnen enkele minuten implementeren. Uw web-apps krijgen onmiddellijk krachtige beveiliging tegen bekende bedreigingen, allemaal zonder dat u één regel beveiligingscode hoeft te schrijven.
Belangrijkste functies van Azure Web Application Firewall
Hier volgen enkele belangrijke functies om u te helpen Bij het evalueren van Azure Web Application Firewall:
Beheerde regels: de regels die Door Azure Web Application Firewall worden gebruikt om veelvoorkomende aanvallen te detecteren, te voorkomen, worden gemaakt, onderhouden en bijgewerkt door het beveiligingsteam van Microsoft. Als een regel verandert of een regelset (raadpleeg de volgende beschrijving) wordt gewijzigd, werkt Microsoft Azure Web Application Firewall automatisch en naadloos bij.
Notitie
U kunt de beheerde regels die door Azure Web Application Firewall worden aangeboden, niet wijzigen of verwijderen. Als een bepaalde regel echter problematisch is voor uw omgeving (het blokkeert bijvoorbeeld legitiem verkeer naar uw web-app) kunt u uitsluitingen maken of de regel of regelset uitschakelen. U kunt ook aangepaste regels maken om het standaardgedrag te overschrijven.
Botregels: de botregels identificeren goede bots en beschermen tegen slechte bots. Ongeldige bots worden gedetecteerd op basis van Bedreigingsinformatie van Microsoft.
Aangepaste regels: als de beheerde regels die door Azure Web Application Firewall worden aangeboden, geen specifieke bedreiging voor uw webtoepassing behandelen, kunt u een aangepaste regel maken.
Modi: Azure Web Application Firewall kan worden uitgevoerd in een van de twee modi: detectiemodus registreert alleen aanvragen die een regel schenden, terwijl de preventiemodus zowel logboeken als aanvragen blokkeert die een regel schenden.
Uitsluitingslijsten: U kunt Azure Web Application Firewall configureren om specifieke kenmerken te negeren wanneer aanvragen worden gecontroleerd.
Beleid: U kunt een set beheerde regels, aangepaste regels, uitsluitingen en andere Azure Web Application Firewall-instellingen combineren in één element, een Azure Web Application Firewall-beleid genoemd. U kunt dat beleid vervolgens toepassen op meerdere web-apps voor eenvoudig beheer en onderhoud.
Limieten voor aanvraaggrootte: u kunt Azure Web Application Firewall configureren om aanvragen te markeren die te klein of te groot zijn.
Waarschuwingen: Azure Web Application Firewall kan worden geïntegreerd met Azure Monitor. Deze integratie biedt u bijna realtime waarschuwingen wanneer de WAF een bedreiging detecteert.
Veelvoorkomende aanvallen die worden voorkomen door Azure Web Application Firewall
In de volgende tabel worden de meest voorkomende typen schadelijke bedreigingen beschreven die door Azure Web Application Firewall worden beschermd.
Bedreiging | Beschrijving |
---|---|
Script uitvoeren op meerdere sites | Een bedreigingsacteur gebruikt een webtoepassing om schadelijke code naar de webbrowser van een andere gebruiker te verzenden. De browser voert de code uit, waarmee het script toegang krijgt tot de sessiegegevens, cookies en andere gevoelige informatie van de gebruiker. |
Lokale bestandsopname | Een aanvaller misbruikt beveiligingsproblemen in de verwerking van include instructies van een server, meestal in PHP-scripts. Door speciaal geconfigureerde tekst door te geven aan de instructie van include een script, kan de aanvaller bestanden opnemen die lokaal aanwezig zijn op de server. De aanvaller kan vervolgens toegang krijgen tot gevoelige informatie en serveropdrachten uitvoeren. |
PHP-injectie | De aanvaller voegt tekst in die speciaal is geconfigureerd om de server te misleiden bij het uitvoeren van PHP-opdrachten. Met deze opdrachten kan de aanvaller lokale of externe PHP-code uitvoeren. De aanvaller kan vervolgens toegang krijgen tot gevoelige gegevens en opdrachten uitvoeren op de server. |
Protocolaanvallen | Een aanvaller voegt speciaal geconfigureerde tekst in een HTTP/HTTPS-aanvraagheader in. Afhankelijk van de specifieke tekst die in de header is geïnjecteerd, kan de aanvaller de server misleiden om gevoelige gegevens weer te geven of code uit te voeren. |
Uitvoeren van opdrachten op afstand | De aanvaller misleidt een server bij het uitvoeren van opdrachten die zijn gekoppeld aan het besturingssysteem van de server. Op een UNIX-systeem kan de aanvaller bijvoorbeeld de server laten uitvoeren ls om een lijst met mappen op te halen. |
Externe bestandsopname | Hetzelfde als het opnemen van lokale bestanden, met uitzondering van de aanvaller, verzendt de server speciaal geconfigureerde tekst die een extern bestand doorgeeft, dat wil zeggen, een bestand op een externe server die door de aanvaller wordt beheerd, naar de instructie van include een script. |
Sessiefixatie | Een aanvaller exploiteert een beveiligingsprobleem in de web-app waarmee de aanvaller een geldige sessie-id kan verkrijgen. De aanvaller misleidt een gebruiker om een nieuwe sessie met die id te verifiëren. De aanvaller kapt vervolgens deze door de gebruiker gevalideerde sessie. |
SQL-injectie | In een webformulierveld voegt de aanvaller tekst in (of injecteert) tekst die speciaal is geconfigureerd om de server te misleiden bij het uitvoeren van SQL-opdrachten. Met deze opdrachten kan de aanvaller toegang krijgen tot gevoelige gegevens, gegevens invoegen, bijwerken of verwijderen of SQL-bewerkingen uitvoeren. |
Alle aanvallen die in de voorgaande tabel worden vermeld, zijn alleen mogelijk wanneer de server de invoer vertrouwt die wordt ontvangen. Het schrijven van code die alleen op deze aanvallen controleert en opschont, is lastig en tijdrovend. Slechts een klein deel van de mogelijke aanvallen van een web-app kan worden weergegeven in de vorige tabel. Azure Web Application Firewall is ontworpen om deze aanvallen en nog veel meer te voorkomen.
Invoer opschonen
De bedreigingen waarmee moderne web-apps worden geconfronteerd, zijn gevarieerd en geavanceerd. In de meeste gevallen is het echter mogelijk dat de web-app impliciet de invoer vertrouwt die wordt ontvangen.
Denk bijvoorbeeld aan een webformulier waarmee een geautoriseerde web-app-gebruiker zich kan aanmelden bij het account van de gebruiker. Het formulier bestaat uit slechts drie elementen:
- Een tekstvak gebruikersnaam
- Tekstvak Wachtwoord
- Een knop Aanmelden
Wanneer een geautoriseerde gebruiker het formulier invult en Aanmelden selecteert, slaat een web-appscript de gebruikersnaam en het wachtwoord op in variabelen. Stel dat deze variabelen een naam userName
hebben en userPassword
respectievelijk. Het script voert vervolgens de volgende instructie uit:
sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"
Als de gebruikersnaam bijvoorbeeld is support
en het wachtwoord is 1234ABCD
, heeft de sql
variabele de volgende waarde:
SELECT * FROM users WHERE username='support' AND password='1234ABCD'
De web-app voert deze SQL-instructie uit. Als een record wordt geretourneerd vanuit de query, wordt de gebruiker door de web-app aangemeld.
Stel nu dat een aanvaller het veld Gebruikersnaam invoert admin'--
en het veld Wachtwoord leeg laat. In dit geval ziet u de resulterende SQL-instructie:
SELECT * FROM users WHERE username='admin'--' AND password=''
Op veel SQL-systemen markeren de dubbele streepjes (--
) het begin van een opmerking. Alles na --
is genegeerd, dus de vorige instructie is gelijk aan de volgende code:
SELECT * FROM users WHERE username='admin'
Ervan uitgaande dat er een gebruiker met de naam is, admin
meldt deze opdracht de aanvaller aan als de gebruiker met beheerdersrechten; een ernstige schending.
Het voorgaande voorbeeld is een exemplaar van een exploit met de naam SQL-injectie. Aanvallers kunnen profiteren van SQL-injectie en andere aanvallen in web-apps die alle invoer vertrouwen.
Azure Web Application Firewall creëert een barrière van niet-vertrouwen tussen een web-app en de gebruikersinvoer. Azure Web Application Firewall gaat ervan uit dat alle invoer mogelijk schadelijk is, zodat deze invoer wordt opgeschoond .
Het opschonen van de invoer betekent verschillende dingen, afhankelijk van de context. Het opschonen van de invoer kan bijvoorbeeld betekenen dat duidelijk gevaarlijke tekstelementen, zoals SQL-opmerkingenindicatoren, worden verwijderd. Het resultaat is echter invoer die geen schade kan toebrengen aan de web-app of de back-endgegevens.