Hoe webapplicaties te beveiligen met AWS WAF?



In dit artikel wordt uitgelegd hoe u webapplicaties kunt beveiligen met AWS WAF, gevolgd door een praktische demonstratie.

In dit artikel wordt uitgelegd hoe u webtoepassingen kunt beveiligen met WAF en volg het op met een praktische demonstratie. De volgende tips komen in dit artikel aan bod:

Dus laten we beginnen,





Verderop met dit artikel over ‘Hoe webapplicaties te beveiligen met AWS WAF?’

Aan de slag met enkele basisprincipes

AWS biedt services zoals EC2, ELB (Elastic Load Balancer), S3 (Simple Storage Service), EBS (Elastic Block Storage) om snel en met minder CAPEX (CAPital EXpenditure) nuttige en mooie applicaties te creëren. Bij het maken van deze applicaties is het even belangrijk om de applicatie te beveiligen en de gegevens te beschermen. Als ze niet goed zijn beveiligd, kunnen de applicatiegegevens in verkeerde handen vallen, zoals in het geval van de recente Capital One incident .



Capital One hostte een webapplicatie op EC2 en deze was niet goed beveiligd. Een ex-AWS-medewerker kon misbruik maken van deze kwetsbaarheid en heel veel klantgegevens downloaden van S3. Later bleek dat de gegevens van 30 andere organisaties ook vanuit AWS waren gedownload. Dus, nogmaals, het is niet alleen voldoende om een ​​applicatie te ontwerpen en te ontwerpen, maar het is net zo belangrijk om een ​​applicatie te beveiligen.

Capital One gebruikt AWS WAF (Firewall voor webtoepassingen) om de webapplicatie te beschermen, maar deze was niet goed geconfigureerd waardoor de hacker toegang kon krijgen tot de gegevens in S3 en deze kon downloaden. In dit artikel zullen we onderzoeken hoe u AWS WAF kunt gebruiken en configureren om u te beschermen tegen veelvoorkomende webaanvallen zoals SQL Injection, XSS (Cross Site Scripting) enz. AWS WAF moet samen met Application Load Balancer , CloudFront of API Gateway. In dit scenario gebruiken we de Application Load Balancer. Elk verzoek van de klant via de browser gaat via de AWS WAF en vervolgens naar de Application Load Balancer en tenslotte naar de webapplicatie op de EC2. AWS WAF kan worden gebruikt blokkeer het kwaadaardige verzoek van de hackers met behulp van een reeks regels en voorwaarden.

Afbeelding - Veilige webapplicaties met AWS WAF - Edureka

Verderop met dit artikel over ‘Hoe webapplicaties te beveiligen met AWS WAF?’



Volgorde van stappen om aan de slag te gaan met AWS WAF

Stap 1: Een kwetsbare webapplicatie maken,

De eerste stap is het maken van een webtoepassing die kwetsbaar is voor SSRF-aanvallen (Server Side Request Forgery), zoals vermeld in deze Blog over hoe de Capital One-aanval plaatsvond. Deze blog bevat de volgende stappen:

  1. Maak een EC2
  2. Installeer de vereiste software om de webtoepassing met SSRF-kwetsbaarheid te maken
  3. Maak een IAM-rol met S3 Read Only-machtigingen
  4. Koppel de IAM-rol aan EC2
  5. Maak ten slotte gebruik van de SSRF-kwetsbaarheid om de beveiligingsreferenties te verkrijgen die verband houden met de IAM-rol.

Zodra de reeks stappen in de genoemde blog is voltooid, vervangt u 5.6.7.8 door het openbare IP-adres van de EC2 in de onderstaande URL en opent u deze in de browser. De beveiligingsreferenties die aan de IAM-rol zijn gekoppeld, moeten in de browser worden weergegeven zoals hieronder weergegeven. Dit is hoe eigenlijk Capital One werd gehackt. Met de beveiligingsreferenties in de hand had de hacker toegang tot andere AWS-services zoals S3 om de gegevens te downloaden.

http://5.6.7.8:80?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

Stap 2: De Application Load Balancer maken

AWS WAF kan niet rechtstreeks worden geassocieerd met een webapplicatie. Maar kan alleen worden geassocieerd met Application Load Balancer, CloudFront en API Gateway. In deze zelfstudie zouden we de Application Load Balancer en het koppelen van de AWS WAF met hetzelfde.

Stap 2a: Een doelgroep is een verzameling EC2-instanties en moet worden gemaakt voordat de Application Load Balancer wordt gemaakt. Klik in de EC2 Management Console op de doelgroep in het linkerdeelvenster en klik op “Doelgroep aanmaken”.

Stap 2b: Voer de doelgroepnaam in en klik op 'Aanmaken'. De doelgroep wordt met succes aangemaakt.

Stap 2c: Zorg ervoor dat de doelgroep is geselecteerd en klik op het tabblad Targets en klik op bewerken om EC2-instanties bij de doelgroep te registreren.

Stap 2d: Selecteer het EC2-exemplaar en klik op 'Toevoegen aan geregistreerd' en klik op 'Opslaan'.

De instanties moeten worden geregistreerd zoals hieronder weergegeven voor de doelgroep.

Stap 2e: Tijd om de Application Load Balancer te maken. Klik op de Load Balancer in het linkerdeelvenster van de EC2 Management Console en klik op “Create Load Balancer”.

Klik op 'Create' voor de 'Application Load Balancer'.

Verderop met dit artikel over ‘Hoe webapplicaties te beveiligen met AWS WAF?’

Stap 2f: Voer de naam van de Application Load Balancer in. En zorg ervoor dat alle beschikbaarheidszones zijn geselecteerd en klik op Volgende.

Stap 2g: Klik in de “Beveiligingsinstellingen configureren” op Volgende.

Maak in “Beveiligingsgroepen configureren” een nieuwe beveiligingsgroep aan of selecteer een van de bestaande beveiligingsgroepen. Zorg ervoor dat poort 80 open is voor toegang tot de webpagina op de EC2. Klik op Volgende.

Stap 2 uur: Selecteer bij “Configureer Routing” “Bestaande doelgroep” en selecteer degene die in de vorige stap is aangemaakt. Klik op Volgende.

Stap 2i: De doelinstanties van EC2 zijn al geregistreerd als onderdeel van de doelgroepen. Dus klik op het tabblad 'Registreer doel' zonder enige wijzigingen op Volgende.

Stap 2j: Bekijk ten slotte alle details van de Application Load Balancer en klik op Create. De Application Load Balancer wordt gemaakt zoals hieronder wordt weergegeven.

ms sql-tutorials voor beginners

Stap 2k: Haal de domeinnaam van de Application Load Balancer op en vervang de gemarkeerde tekst in de onderstaande URL en open dezelfde in de browser. Merk op dat we de webapplicatie openen via de Application Load Balancer en de beveiligingsreferenties worden weergegeven zoals hieronder weergegeven. De onderstaande URL kan worden geblokkeerd door AWS WAF te gebruiken, zoals weergegeven in de volgende stappen om het lekken van de beveiligingsreferenties te stoppen.

MyALB-1929899948.us-east-1.elb.amazonaws.com ? url = http: //169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

Stap 3: De AWS WAF (Web Application Firewall) maken

Stap 3a: Ga naar de AWS WAF Management Console en klik op 'Configure web ACL'. Het AWS WAF-overzicht wordt weergegeven. Hier is de hiërarchie van AWS WAF. Web ACL heeft een heleboel regels en regels hebben een heleboel voorwaarden die we in de volgende stappen zouden creëren. Klik op Volgende.

Stap 3b: Voer de Web ACL-naam in, de Regio Noord-Virginia (of waar EC2 is gemaakt), het resourcetype 'Application Load Balancer' en selecteer ten slotte de Application Load Balancer die in de vorige stap is gemaakt. Klik op Volgende.

Stap 3c: Hier een voorwaarde om een ​​specifiek webtoepassingsverzoek te blokkeren moet worden gemaakt. Scroll naar beneden en klik op 'Create condition' voor de 'String and regex match conditions'.

Stap 3d: Voer de naam van de voorwaarde in, het Type als 'Tekenreeksovereenkomst', filter op 'Alle queryparameters' en de rest van de parameters precies zoals hieronder weergegeven. En klik op “Filter toevoegen” en vervolgens op Maken. Hier proberen we een voorwaarde te creëren die overeenkomt met de URL die de waarde van de queryparameter 169.254.169.254 bevat. Dit IP-adres is gerelateerd aan het EC2-metagegevens .

Stap 3e: Dit is het moment om een ​​regel te maken die een verzameling voorwaarden is. Klik op “Regel aanmaken” en specificeer de parameters zoals hieronder exact weergegeven. Klik op “Voorwaarde toevoegen”, Aanmaken en “Bekijken en aanmaken”.

Verderop met dit artikel over ‘Hoe webapplicaties te beveiligen met AWS WAF?’

Stap 3f: Bekijk tenslotte alle details en klik op “Bevestigen en aanmaken”. De Web ACL (Access Control List) wordt gemaakt en gekoppeld aan de Application Load Balancer, zoals hieronder weergegeven.

Stap 3g: Probeer nu via de browser toegang te krijgen tot de Application Load Balancer-URL zoals uitgevoerd in Stap 2k . Deze keer zouden we de '403 Forbidden' krijgen omdat onze URL overeenkomt met de Web ACL-voorwaarde en we deze blokkeren. Het verzoek bereikt nooit de Application Load Balancer of de webapplicatie op de EC2. Hier merken we dat hoewel de applicatie de toegang tot de beveiligingsreferenties toestaat, de WAF hetzelfde blokkeert.

Stap 4: De AWS-bronnen opschonen die in deze zelfstudie zijn gemaakt. Het opruimen moet in exact dezelfde volgorde gebeuren als hieronder vermeld. Dit is om ervoor te zorgen dat AWS de facturering voor de bijbehorende bronnen die als onderdeel van deze zelfstudie zijn gemaakt, stopt.

  • Verwijder voorwaarde in de regel
  • Verwijder de regel in de WebACL
  • Koppel de ALB los van de WebACL
  • Verwijder WebACL
  • Verwijder de regel
  • Verwijder het filter in de voorwaarde
  • Verwijder de voorwaarde
  • Verwijder de ALB en de doelgroep
  • Beëindig de EC2
  • Verwijder de IAM-rol

Conclusie

Zoals eerder vermeld, is het maken van een webapplicatie met AWS erg eenvoudig en interessant. Maar we moeten er ook voor zorgen dat de applicatie veilig is en dat de gegevens niet in verkeerde handen worden gelekt. De beveiliging kan op meerdere lagen worden aangebracht. In deze tutorial hebben we gezien hoe je de AWS WAF (Web Application Firewall) gebruikt om de webapplicatie te beschermen tegen aanvallen zoals het matchen met het IP-adres van de EC2 Metadata. We hadden ook WAF kunnen gebruiken om te beschermen tegen veelvoorkomende aanvallen zoals SQL Injection en XSS (Cross Site Scripting).

Het gebruik van AWS WAF of in feite een ander beveiligingsproduct maakt de applicatie niet veilig, maar het product moet correct worden geconfigureerd. Als ze niet correct zijn geconfigureerd, kunnen de gegevens in verkeerde handen terechtkomen, net als bij Capital One en andere organisaties. Het andere belangrijke om te overwegen is dat beveiliging vanaf de eerste dag moet worden overwogen en niet in een later stadium op de applicatie moet worden aangesloten.

Dit brengt ons bij het einde van dit artikel over het beveiligen van webapplicaties met AWS WAF. We hebben ook een curriculum bedacht dat precies dekt wat u nodig heeft om het Solution Architect Exam te kraken! U kunt de cursusdetails bekijken voor opleiding.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze What is AWS-blog en we nemen zo snel mogelijk contact met u op.