AWS - WAF Enum
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS WAF is 'n webtoepassing vuurmuur wat ontwerp is om webtoepassings of API's te beskerm teen verskeie webuitbuitings wat hul beskikbaarheid, sekuriteit of hulpbronverbruik kan beïnvloed. Dit stel gebruikers in staat om inkomende verkeer te beheer deur sekuriteitsreëls op te stel wat tipiese aanvalsvectors soos SQL-inspuiting of kruis-webskripting verminder en ook deur pasgemaakte filtrasie reëls te definieer.
'n Web ACL is 'n versameling reëls wat jy op jou webtoepassings of API's kan toepas. Wanneer jy 'n Web ACL met 'n hulpbron assosieer, ondersoek AWS WAF inkomende versoeke gebaseer op die reëls wat in die Web ACL gedefinieer is en neem die gespesifiseerde aksies.
'n Reël Groep is 'n herbruikbare versameling reëls wat jy op verskeie Web ACLs kan toepas. Reël groepe help om konsekwente reël stelle oor verskillende webtoepassings of API's te bestuur en te onderhou.
Elke reël groep het sy geassosieerde kapasiteit, wat help om die bedryfsbronne wat gebruik word om jou reëls, reël groepe, en web ACLs te laat loop, te bereken en te beheer. Sodra die waarde tydens die skepping gestel is, is dit nie moontlik om dit te wysig nie.
'n Reël definieer 'n stel voorwaardes wat AWS WAF gebruik om inkomende web versoeke te ondersoek. Daar is twee hoof tipes reëls:
Reguliere Reël: Hierdie reël tipe gebruik gespesifiseerde voorwaardes om te bepaal of web versoeke toegelaat, geblokkeer of getel moet word.
Tarief-gebaseerde Reël: Tel versoeke van 'n spesifieke IP-adres oor 'n vyf minuut periode. Hier definieer gebruikers 'n drempel, en as die aantal versoeke van 'n IP hierdie limiet binne vyf minute oorskry, word daaropvolgende versoeke van daardie IP geblokkeer totdat die versoek tarief onder die drempel daal. Die minimum drempel vir tarief-gebaseerde reëls is 2000 versoeke.
AWS WAF bied vooraf-gekonfigureerde, bestuurde reël stelle wat deur AWS en AWS Marketplace verkopers onderhou word. Hierdie reël stelle bied beskerming teen algemene bedreigings en word gereeld opgedateer om nuwe kwesbaarhede aan te spreek.
'n IP Stel is 'n lys van IP adresse of IP adresreekse wat jy wil toelaat of blokkeer. IP stelle vereenvoudig die proses om IP-gebaseerde reëls te bestuur.
'n Regex Patroon Stel bevat een of meer regulêre uitdrukkings (regex) wat patrone definieer om in web versoeke te soek. Dit is nuttig vir meer komplekse ooreenkoms scenario's, soos om spesifieke volgordes van karakters te filtreer.
'n Lock Token word gebruik vir mededingingsbeheer wanneer opdaterings aan WAF hulpbronne gemaak word. Dit verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie.
API Sleutels in AWS WAF word gebruik om versoeke na sekere API operasies te verifieer. Hierdie sleutels is versleuteld en veilig bestuur om toegang te beheer en te verseker dat slegs gemagtigde gebruikers veranderinge aan WAF konfigurasies kan maak.
Voorbeeld: Integrasie van die CAPTCHA API.
'n Toestemming Beleid is 'n IAM beleid wat spesifiseer wie aksies op AWS WAF hulpbronne kan uitvoer. Deur toestemmings te definieer, kan jy toegang tot WAF hulpbronne beheer en verseker dat slegs gemagtigde gebruikers konfigurasies kan skep, opdateer of verwyder.
Die bereik parameter in AWS WAF spesifiseer of die WAF reëls en konfigurasies van toepassing is op 'n streeks toepassing of 'n Amazon CloudFront verspreiding.
REGIONAL: Geld vir streeks dienste soos Toepassing Laai Balancers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito gebruikerspoel, AWS App Runner diens en AWS Verified Access instansie. Jy spesifiseer die AWS streek waar hierdie hulpbronne geleë is.
CLOUDFRONT: Geld vir Amazon CloudFront verspreidings, wat globaal is. WAF konfigurasies vir CloudFront word deur die us-east-1
streek bestuur ongeag waar die inhoud bedien word.
Voorwaardes spesifiseer die elemente van inkomende HTTP/HTTPS versoeke wat AWS WAF monitor, wat XSS, geografiese ligging (GEO), IP adresse, Grootte beperkings, SQL Inspuiting, en patrone (stringe en regex ooreenkoms) insluit. Dit is belangrik om te noem dat versoeke wat op die CloudFront vlak op grond van land beperk is, nie WAF sal bereik nie.
Elke AWS rekening kan konfigureer:
100 voorwaardes vir elke tipe (behalwe vir Regex, waar slegs 10 voorwaardes toegelaat word, maar hierdie limiet kan verhoog word).
100 reëls en 50 Web ACLs.
'n maksimum van 5 tarief-gebaseerde reëls.
'n deurset van 10,000 versoeke per sekonde wanneer WAF geïmplementeer word met 'n toepassing laai balancer.
Aksies word aan elke reël toegeken, met opsies wat is:
Toelaat: Die versoek word na die toepaslike CloudFront verspreiding of Toepassing Laai Balancer gestuur.
Blokkeer: Die versoek word onmiddellik beëindig.
Tel: Tel die versoeke wat aan die reël se voorwaardes voldoen. Dit is nuttig vir reël toetsing, om die akkuraatheid van die reël te bevestig voordat dit op Toelaat of Blokkeer gestel word.
CAPTCHA en Uitdaging: Dit word geverifieer dat die versoek nie van 'n bot kom nie deur CAPTCHA legkaarte en stille uitdagings te gebruik.
As 'n versoek nie aan enige reël binne die Web ACL voldoen nie, ondergaan dit die standaard aksie (Toelaat of Blokkeer). Die volgorde van reël uitvoering, wat binne 'n Web ACL gedefinieer is, is belangrik en volg tipies hierdie volgorde:
Toelaat Witlys IP's.
Blokkeer Swartlys IP's.
Blokkeer versoeke wat aan enige nadelige handtekeninge voldoen.
AWS WAF integreer met CloudWatch vir monitering, wat metrieke soos AllowedRequests, BlockedRequests, CountedRequests, en PassedRequests bied. Hierdie metrieke word elke minuut standaard gerapporteer en vir 'n periode van twee weke behou.
Om met CloudFront verspreidings te kommunikeer, moet jy die Streek US East (N. Virginia) spesifiseer:
CLI - Spesifiseer die Streek US East wanneer jy die CloudFront bereik gebruik: --scope CLOUDFRONT --region=us-east-1
.
API en SDK's - Vir alle oproepe, gebruik die Streek eindpunt us-east-1.
Om met streeks dienste te kommunikeer, moet jy die streek spesifiseer:
Voorbeeld met die streek Europa (Spanje): --scope REGIONAL --region=eu-south-2
Vanuit 'n aanvaller se perspektief kan hierdie diens die aanvaller help om WAF beskermings en netwerk blootstellings te identifiseer wat hom kan help om ander webwerwe te kompromitteer.
egter, 'n aanvaller kan ook belangstel om hierdie diens te ontwrig sodat die webwerwe nie deur die WAF beskerm word nie.
In baie van die Verwyder en Opdateer operasies sal dit nodig wees om die lock token te verskaf. Hierdie token word gebruik vir mededingingsbeheer oor die hulpbronne, wat verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie. Om hierdie token te verkry, kan jy die ooreenstemmende lys of kry operasies oor die spesifieke hulpbron uitvoer.
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
'n Aanvaller sal in staat wees om die sekuriteit van die geraakte hulpbron te kompromitteer deur:
Reëlgroepe te skep wat, byvoorbeeld, legitieme verkeer van legitieme IP adresse kan blokkeer, wat 'n ontkenning van diens veroorsaak.
Reëlgroepe op te dateer, wat in staat is om sy aksies te verander, byvoorbeeld van Block na Allow.
Reëlgroepe te verwyder wat kritieke sekuriteitsmaatreëls bied.
Die volgende voorbeelde toon 'n reëlgroep wat legitieme verkeer van spesifieke IP-adresse sou blokkeer:
Die rule.json lêer sal soos volg lyk:
Potensiële Impak: Ongeoorloofde toegang, datalekke, en potensiële DoS-aanvalle.
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
Met hierdie toestemmings kan 'n aanvaller:
'n Nuwe Web ACL skep, wat reëls bekendstel wat of kwaadwillige verkeer toelaat of legitieme verkeer blokkeer, wat die WAF effektief nutteloos maak of 'n diensonderbreking veroorsaak.
Bestaande Web ACLs opdateer, wat in staat is om reëls te wysig om aanvalle soos SQL-inspuiting of kruis-web scripting toe te laat, wat voorheen geblokkeer was, of normale verkeersvloei te ontwrig deur geldige versoeke te blokkeer.
'n Web ACL verwyder, wat die betrokke hulpbronne heeltemal onbeskermd laat, en dit blootstel aan 'n wye reeks webaanvalle.
Jy kan slegs die gespesifiseerde WebACL verwyder as ManagedByFirewallManager vals is.
Die volgende voorbeelde wys hoe om 'n Web ACL op te dateer om die legitieme verkeer van 'n spesifieke IP stel te blokkeer. As die oorspronklike IP nie met enige van daardie IP's ooreenstem nie, sal die standaardaksie ook wees om dit te blokkeer, wat 'n DoS veroorsaak.
Originele Web ACL:
Opdrag om die Web ACL op te dateer:
Die rule.json lêer sal soos volg lyk:
Potensiële Impak: Ongeoorloofde toegang, datalekke, en potensiële DoS-aanvalle.
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
Die wafv2:AssociateWebACL
toestemming sou 'n aanvaller in staat stel om web ACLs (Toegangsbeheerlis) met hulpbronne te assosieer, wat dit moontlik maak om sekuriteitsbeheermaatreëls te omseil, wat ongeoorloofde verkeer toelaat om die toepassing te bereik, wat potensieel kan lei tot eksploit van SQL-inspuiting of kruis-webskripting (XSS). Omgekeerd, met die wafv2:DisassociateWebACL
toestemming, kan die aanvaller sekuriteitsbeskermings tydelik deaktiveer, wat die hulpbronne aan kwesbaarhede blootstel sonder opsporing.
Die addisionele toestemmings sou benodig word, afhangende van die tipe beskermde hulpbron:
Assosieer
apigateway:SetWebACL
apprunner:AssociateWebAcl
appsync:SetWebACL
cognito-idp:AssociateWebACL
ec2:AssociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Deassosieer
apigateway:SetWebACL
apprunner:DisassociateWebAcl
appsync:SetWebACL
cognito-idp:DisassociateWebACL
ec2:DisassociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Potensiële Impak: Gecompromitteerde hulpbronne-sekuriteit, verhoogde risiko van eksploitatie, en potensiële diensonderbrekings binne AWS-omgewings wat deur AWS WAF beskerm word.
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
'n Aanvaller sou in staat wees om die IP-selle wat deur AWS WAF bestuur word, te skep, op te dateer en te verwyder. Dit kan gevaarlik wees aangesien dit nuwe IP-selle kan skep om kwaadwillige verkeer toe te laat, IP-selle kan wysig om legitieme verkeer te blokkeer, bestaande IP-selle kan opdateer om kwaadwillige IP-adresse in te sluit, vertroude IP-adresse kan verwyder of kritieke IP-selle kan verwyder wat bedoel is om kritieke hulpbronne te beskerm.
Die volgende voorbeeld wys hoe om die bestaande IP stel te oorskryf met die gewenste IP stel:
Potensiële Impak: Ongeoorloofde toegang en blokkering van legitieme verkeer.
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
'n Aanvaller met hierdie toestemmings sou in staat wees om die gereelde uitdrukking patroonstelle wat deur AWS WAF gebruik word, te manipuleer om inkomende verkeer op grond van spesifieke patrone te beheer en te filtreer.
Die skep van nuwe regex patrone sou 'n aanvaller help om skadelike inhoud toe te laat
Deur die bestaande patrone op te dateer, sou 'n aanvaller die sekuriteitsreëls kon omseil
Die verwydering van patrone wat ontwerp is om kwaadwillige aktiwiteite te blokkeer, kan 'n aanvaller lei om kwaadwillige payloads te stuur en die sekuriteitsmaatreëls te omseil.
Potensiële Impak: Oorskry sekuriteitsbeheer, wat kwaadwillige inhoud toelaat en moontlik sensitiewe data blootstel of dienste en hulpbronne wat deur AWS WAF beskerm word, ontwrig.
wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
'n Aanvaller met die wafv2:DeleteLoggingConfiguration
sou in staat wees om die logging konfigurasie van die gespesifiseerde Web ACL te verwyder. Vervolgens, met die wavf2:PutLoggingConfiguration
en iam:CreateServiceLinkedRole
toestemmings, kan 'n aanvaller logging konfigurasies skep of vervang (nadat dit verwyder is) om of logging heeltemal te voorkom of logs na ongemagtigde bestemmings te herlei, soos Amazon S3-buckets, Amazon CloudWatch Logs loggroep of 'n Amazon Kinesis Data Firehose onder beheer.
Tydens die skepproses stel die diens outomaties die nodige toestemmings op om te verseker dat logs na die gespesifiseerde logging bestemming geskryf kan word:
Amazon CloudWatch Logs: AWS WAF skep 'n hulpbronbeleid op die aangewese CloudWatch Logs loggroep. Hierdie beleid verseker dat AWS WAF die toestemmings het wat nodig is om logs na die loggroep te skryf.
Amazon S3 Bucket: AWS WAF skep 'n emmerbeleid op die aangewese S3-emmer. Hierdie beleid verleen AWS WAF die nodige toestemmings om logs na die gespesifiseerde emmer op te laai.
Amazon Kinesis Data Firehose: AWS WAF skep 'n diens-gekoppelde rol spesifiek vir interaksie met Kinesis Data Firehose. Hierdie rol laat AWS WAF toe om logs na die geconfigureerde Firehose-stroom te lewer.
Dit is moontlik om slegs een logging bestemming per web ACL te definieer.
Potensiële Impak: Obskureer sigbaarheid in sekuriteitsevents, moeilikheid die insidentresponsproses, en fasiliteer oorgenoemde kwaadwillige aktiwiteite binne AWS WAF-beskermde omgewings.
wafv2:DeleteAPIKey
'n Aanvaller met hierdie toestemmings sou in staat wees om bestaande API-sleutels te verwyder, wat die CAPTCHA ondoeltreffend maak en die funksionaliteit wat daarop staatmaak, soos vormindienings en toegangbeheer, ontwrig. Afhangende van die implementering van hierdie CAPTCHA, kan dit lei tot 'n CAPTCHA-omseiling of 'n DoS as die foutbestuur nie behoorlik in die hulpbron ingestel is nie.
Potensiële Impak: Deaktiveer CAPTCHA beskermings of onderbreek toepassingsfunksionaliteit, wat lei tot sekuriteitsbreuke en potensiële datadiefstal.
wafv2:TagResource
, wafv2:UntagResource
'n Aanvaller sal in staat wees om etikette by te voeg, te wysig of te verwyder van AWS WAFv2 hulpbronne, soos Web ACLs, reëlgroepe, IP stelle, regex patroon stelle, en registrasie konfigurasies.
Potensiële Impak: Hulpbron manipulasie, inligting lekkasie, koste manipulasie en operasionele onderbreking.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)