AWS - WAF Enum
AWS - WAF Enum
AWS WAF
AWS WAF je web aplikacioni firewall dizajniran da zaštiti web aplikacije ili API-je od različitih web eksploatacija koje mogu uticati na njihovu dostupnost, sigurnost ili potrošnju resursa. Omogućava korisnicima kontrolu nad dolaznim saobraćajem postavljanjem sigurnosnih pravila koja umanjuju tipične vektore napada poput SQL injection-a ili cross-site scripting-a, kao i definisanjem prilagođenih pravila filtriranja.
Ključni koncepti
Web ACL (Access Control List)
Web ACL je kolekcija pravila koja možete primeniti na svoje web aplikacije ili API-je. Kada povežete Web ACL sa resursom, AWS WAF inspicira dolazne zahteve na osnovu pravila definisanih u Web ACL i preduzima određene akcije.
Rule Group
Rule Group je ponovno upotrebljiva kolekcija pravila koju možete primeniti na više Web ACL-ova. Rule grupe pomažu u upravljanju i održavanju doslednih skupova pravila preko različitih web aplikacija ili API-ja.
Svaka rule grupa ima svoj kapacitet, koji pomaže u izračunavanju i kontroli resursa koji se koriste za pokretanje vaših pravila, rule grupa i web ACL-ova. Jednom kada se vrednost postavi prilikom kreiranja, nije moguće je menjati.
Pravilo
Pravilo definiše skup uslova koje AWS WAF koristi za inspekciju dolaznih web zahteva. Postoje dva glavna tipa pravila:
Regularno Pravilo: Ovaj tip pravila koristi određene uslove da bi odredio da li treba dozvoliti, blokirati ili prebrojati web zahteve.
Rate-Based Pravilo: Broji zahteve sa određene IP adrese tokom petominutnog perioda. Korisnici ovde definišu prag, i ako broj zahteva sa IP adrese premaši ovaj limit u roku od pet minuta, naknadni zahtevi sa te IP adrese su blokirani dok se stopa zahteva ne spusti ispod praga. Minimalni prag za rate-based pravila je 2000 zahteva.
Upravljana Pravila
AWS WAF nudi prekonfigurisane, upravljane setove pravila koje održavaju AWS i prodavci AWS Marketplace-a. Ovi setovi pravila pružaju zaštitu od uobičajenih pretnji i redovno se ažuriraju kako bi se adresovale nove ranjivosti.
IP Set
IP Set je lista IP adresa ili opsega IP adresa koje želite da dozvolite ili blokirate. IP setovi pojednostavljuju proces upravljanja IP baziranim pravilima.
Regex Pattern Set
Regex Pattern Set sadrži jedan ili više regularnih izraza (regex) koji definišu obrasce za pretragu u web zahtevima. Ovo je korisno za složenije scenarije uparivanja, kao što je filtriranje specifičnih sekvenci karaktera.
Lock Token
Lock Token se koristi za kontrolu konkurentnosti prilikom ažuriranja WAF resursa. On osigurava da promene ne budu slučajno prepisane od strane više korisnika ili procesa koji pokušavaju da ažuriraju isti resurs istovremeno.
API Ključevi
API Ključevi u AWS WAF-u se koriste za autentifikaciju zahteva ka određenim API operacijama. Ovi ključevi su enkriptovani i bezbedno upravljani kako bi se kontrolisao pristup i osiguralo da samo ovlašćeni korisnici mogu vršiti promene na WAF konfiguracijama.
Primer: Integracija CAPTCHA API-ja.
Politika Dozvola
Politika Dozvola je IAM politika koja specificira ko može vršiti akcije na AWS WAF resursima. Definisanjem dozvola, možete kontrolisati pristup WAF resursima i osigurati da samo ovlašćeni korisnici mogu kreirati, ažurirati ili brisati konfiguracije.
Opseg
Parametar opsega u AWS WAF-u specificira da li se WAF pravila i konfiguracije primenjuju na regionalnu aplikaciju ili Amazon CloudFront distribuciju.
REGIONAL: Primenjuje se na regionalne servise poput Application Load Balancer-a (ALB), Amazon API Gateway REST API-ja, AWS AppSync GraphQL API-ja, Amazon Cognito korisničkog bazena, AWS App Runner servisa i AWS Verified Access instance. Navodite AWS region gde se ovi resursi nalaze.
CLOUDFRONT: Primenjuje se na Amazon CloudFront distribucije, koje su globalne. WAF konfiguracije za CloudFront se upravljaju kroz region
us-east-1
bez obzira gde se sadržaj servira.
Ključne funkcije
Kriterijumi praćenja (Uslovi)
Uslovi specificiraju elemente dolaznih HTTP/HTTPS zahteva koje AWS WAF prati, uključujući XSS, geografsku lokaciju (GEO), IP adrese, ograničenja veličine, SQL Injection i obrasce (stringove i regex uparivanje). Važno je napomenuti da zahtevi ograničeni na nivou CloudFront-a na osnovu zemlje neće stići do WAF-a.
Svaki AWS nalog može konfigurisati:
100 uslova za svaki tip (osim za Regex, gde su dozvoljeni samo 10 uslova, ali ovaj limit može biti povećan).
100 pravila i 50 Web ACL-ova.
Maksimalno 5 rate-based pravila.
Protok od 10,000 zahteva u sekundi kada se WAF implementira sa application load balancer-om.
Akcije pravila
Akcije su dodeljene svakom pravilu, sa opcijama:
Dozvoli: Zahtev se prosleđuje odgovarajućoj CloudFront distribuciji ili Application Load Balancer-u.
Blokiraj: Zahtev se odmah prekida.
Broj: Broji zahteve koji ispunjavaju uslove pravila. Ovo je korisno za testiranje pravila, potvrđujući tačnost pravila pre nego što se postavi na Dozvoli ili Blokiraj.
CAPTCHA i Izazov: Proverava se da li zahtev ne dolazi od bota korišćenjem CAPTCHA slagalica i tihih izazova.
Ako zahtev ne odgovara nijednom pravilu unutar Web ACL-a, prolazi kroz podrazumevanu akciju (Dozvoli ili Blokiraj). Redosled izvršenja pravila, definisan unutar Web ACL-a, je ključan i obično prati ovaj redosled:
Dozvoli IP adrese na beloj listi.
Blokiraj IP adrese na crnoj listi.
Blokiraj zahteve koji odgovaraju bilo kojim štetnim potpisima.
CloudWatch Integracija
AWS WAF se integriše sa CloudWatch-om za praćenje, nudeći metrike poput DozvoljeniZahtevi, BlokiraniZahtevi, BrojaniZahtevi i ProšliZahtevi. Ove metrike se podnose svaki minut podrazumevano i zadržavaju se u periodu od dve nedelje.
Enumeracija
Da biste interagovali sa CloudFront distribucijama, morate specificirati Region US East (N. Virginia):
CLI - Specificirajte Region US East kada koristite CloudFront opseg:
--scope CLOUDFRONT --region=us-east-1
.API i SDK-ovi - Za sve pozive, koristite Region endpoint us-east-1.
Da biste interagovali sa regionalnim servisima, trebalo bi da specificirate region:
Primer sa regionom Evropa (Španija):
--scope REGIONAL --region=eu-south-2
Post Eksploatacija / Bypass
Sa perspektive napadača, ovaj servis može pomoći napadaču da identifikuje WAF zaštite i mrežne ekspozicije koje bi mu mogle pomoći da kompromituje druge veb stranice.
Međutim, napadač bi takođe mogao biti zainteresovan za ometanje ovog servisa kako veb stranice ne bi bile zaštićene od WAF-a.
U mnogim operacijama Brisanja i Ažuriranja bilo bi potrebno pružiti token za zaključavanje. Ovaj token se koristi za kontrolu konkurentnosti nad resursima, osiguravajući da promene ne budu slučajno prepisane od strane više korisnika ili procesa koji pokušavaju da ažuriraju isti resurs istovremeno. Da biste dobili ovaj token, možete izvršiti odgovarajuće list ili get operacije nad određenim resursom.
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
Napadač bi mogao ugroziti sigurnost pogođenog resursa tako što bi:
Kreirao grupe pravila koje bi, na primer, mogle blokirati legitimni saobraćaj sa legitimnih IP adresa, uzrokujući uskraćivanje usluge.
Ažurirao grupe pravila, mogući da izmeni njihove akcije, na primer sa Blokiraj na Dozvoli.
Brisanje grupa pravila koje pružaju ključne sigurnosne mere.
Sledeći primeri pokazuju grupu pravila koja bi blokirala legitiman saobraćaj sa određenih IP adresa:
Fajl rule.json bi izgledao ovako:
Potencijalni uticaj: Neovlašćen pristup, povrede podataka i potencijalni DoS napadi.
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
Sa ovim dozvolama, napadač bi bio u mogućnosti da:
Kreira novi Web ACL, uvodeći pravila koja ili dozvoljavaju zlonamerni saobraćaj ili blokiraju legitimni saobraćaj, efikasno čineći WAF beskorisnim ili izazivajući odbijanje usluge.
Ažurira postojeće Web ACL-ove, mogući da modifikuje pravila kako bi dozvolio napade poput SQL ubacivanja ili skriptovanja preko stranica, koji su prethodno blokirani, ili da poremeti normalan tok saobraćaja blokiranjem validnih zahteva.
Obriše Web ACL, ostavljajući pogođene resurse potpuno nezaštićenim, izlažući ih širokom spektru web napada.
Možete obrisati navedeni WebACL samo ako je ManagedByFirewallManager false.
Originalni Web ACL:
Komanda za ažuriranje Web ACL-a:
Fajl rule.json bi izgledao ovako:
Potencijalni uticaj: Neovlašćen pristup, curenje podataka i potencijalni DoS napadi.
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
Dozvola wafv2:AssociateWebACL
omogućila bi napadaču da poveže web ACL-ove (Access Control List) sa resursima, omogućavajući zaobilaženje sigurnosnih kontrola, dozvoljavajući neovlašćenom saobraćaju da dostigne aplikaciju, potencijalno dovodeći do eksploatacije kao što su SQL injection ili cross-site scripting (XSS). S druge strane, sa dozvolom wafv2:DisassociateWebACL
, napadač bi mogao privremeno onemogućiti sigurnosne zaštite, izlažući resurse ranjivostima bez otkrivanja.
Dodatne dozvole bi bile potrebne u zavisnosti od tipa zaštićenog resursa:
Povezivanje
apigateway:SetWebACL
apprunner:AssociateWebAcl
appsync:SetWebACL
cognito-idp:AssociateWebACL
ec2:AssociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Razdvajanje
apigateway:SetWebACL
apprunner:DisassociateWebAcl
appsync:SetWebACL
cognito-idp:DisassociateWebACL
ec2:DisassociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Potencijalni Uticaj: Ugrožena sigurnost resursa, povećan rizik od eksploatacije i potencijalne prekide usluga unutar AWS okruženja zaštićenog AWS WAF-om.
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
Napadač bi bio u mogućnosti da kreira, ažurira i obriše IP setove koje upravlja AWS WAF-om. Ovo može biti opasno jer bi mogao da kreira nove IP setove kako bi omogućio zlonamerni saobraćaj, modifikuje IP setove kako bi blokirao legitimni saobraćaj, ažurira postojeće IP setove da uključi zlonamerne IP adrese, ukloni pouzdane IP adrese ili obriše ključne IP setove koji su namenjeni zaštititi ključne resurse.
Sledeći primer pokazuje kako prepisati postojeći IP set željenim IP setom:
Potencijalni uticaj: Neovlašćen pristup i blokiranje legitimnog saobraćaja.
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
Napadač sa ovim ovlašćenjima bio bi u mogućnosti da manipuliše skupovima regularnih izraza koje koristi AWS WAF kako bi kontrolisao i filtrirao dolazni saobraćaj na osnovu specifičnih obrazaca.
Kreiranje novih regex obrazaca bi pomoglo napadaču da omogući štetan sadržaj
Ažuriranjem postojećih obrazaca, napadač bi mogao da zaobiđe sigurnosna pravila
Brisanje obrazaca koji su dizajnirani da blokiraju zlonamerne aktivnosti moglo bi dovesti napadača do slanja zlonamernih payload-ova i zaobilaženja sigurnosnih mera.
Potencijalni uticaj: Zaobilaženje sigurnosnih kontrola, omogućavanje zlonamernog sadržaja i potencijalno otkrivanje osetljivih podataka ili ometanje usluga i resursa zaštićenih od strane AWS WAF.
(wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
Napadač sa dozvolom wafv2:DeleteLoggingConfiguration
bio bi u mogućnosti da ukloni konfiguraciju beleženja sa određenog Web ACL-a. Nakon toga, sa dozvolama wavf2:PutLoggingConfiguration
i iam:CreateServiceLinkedRole
, napadač bi mogao da kreira ili zameni konfiguracije beleženja (nakon što je obrisao) kako bi sprečio beleženje u potpunosti ili preusmerio zapise ka neovlašćenim odredištima, poput Amazon S3 kanti, Amazon CloudWatch Logs grupe zapisa ili Amazon Kinesis Data Firehose pod kontrolom.
Tokom procesa kreiranja, servis automatski postavlja neophodne dozvole kako bi omogućio pisanje zapisa na određeno odredište beleženja:
Amazon CloudWatch Logs: AWS WAF kreira pravilo resursa na određenoj CloudWatch Logs grupi zapisa. Ovo pravilo osigurava da AWS WAF ima potrebne dozvole za pisanje zapisa u grupu zapisa.
Amazon S3 kanta: AWS WAF kreira pravilo kante na određenoj S3 kanti. Ovo pravilo dodeljuje AWS WAF-u dozvole neophodne za otpremanje zapisa na određenu kantu.
Amazon Kinesis Data Firehose: AWS WAF kreira ulogu specifičnu za servis za interakciju sa Kinesis Data Firehose-om. Ova uloga omogućava AWS WAF-u da dostavlja zapise ka konfigurisanom Firehose toku.
Moguće je definisati samo jedno odredište beleženja po web ACL-u.
```bash # Put logging configuration aws wafv2 put-logging-configuration --logging-configuration # Delete logging configuration aws wafv2 delete-logging-configuration --resource-arn [--log-scope ] [--log-type ] ``` **Potencijalni uticaj:** Otežava vidljivost događaja vezanih za bezbednost, otežava proces odgovora na incidente i olakšava prikrivene zlonamerne aktivnosti unutar okruženja zaštitenog AWS WAF-om.
wafv2:DeleteAPIKey
wafv2:DeleteAPIKey
Napadač sa ovim dozvolama bio bi u mogućnosti da obriše postojeće API ključeve, čime bi CAPTCHA postala neefikasna i poremetila funkcionalnost koja zavisi od nje, kao što su podnošenje obrazaca i kontrola pristupa. Zavisno od implementacije ove CAPTCHA-e, ovo bi moglo dovesti ili do zaobilaženja CAPTCHA-e ili do DoS napada ako upravljanje greškama nije pravilno postavljeno na resursu.
Potencijalni uticaj: Onemogućavanje CAPTCHA zaštite ili ometanje funkcionalnosti aplikacije, što može dovesti do sigurnosnih propusta i potencijalne krađe podataka.
wafv2:TagResource
, wafv2:UntagResource
wafv2:TagResource
, wafv2:UntagResource
Napadač bi bio u mogućnosti da dodaje, modifikuje ili uklanja oznake sa AWS WAFv2 resursa, kao što su Web ACL-ovi, grupa pravila, IP setovi, regex šablon setovi i konfiguracije beleženja.
Potencijalni uticaj: Menjanje resursa, otkrivanje informacija, manipulacija troškovima i operativne smetnje.
Reference
Last updated