AWS - WAF Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS WAF ni firewall ya programu za wavuti iliyoundwa ili kulinda programu za wavuti au APIs dhidi ya mashambulizi mbalimbali ya wavuti ambayo yanaweza kuathiri upatikanaji wao, usalama, au matumizi ya rasilimali. Inawapa watumiaji uwezo wa kudhibiti trafiki inayokuja kwa kuweka sheria za usalama ambazo hupunguza njia za kawaida za shambulio kama vile SQL injection au cross-site scripting na pia kwa kufafanua sheria za kuchuja za kawaida.
Web ACL ni mkusanyiko wa sheria ambazo unaweza kutumia kwa programu zako za wavuti au APIs. Unapounganisha Web ACL na rasilimali, AWS WAF inachunguza maombi yanayokuja kulingana na sheria zilizofafanuliwa katika Web ACL na kuchukua hatua zilizotajwa.
Rule Group ni mkusanyiko wa sheria zinazoweza kutumika tena ambazo unaweza kutumia kwa Web ACL nyingi. Makundi ya sheria husaidia kusimamia na kudumisha seti za sheria zinazofanana katika programu tofauti za wavuti au APIs.
Kila kundi la sheria lina uwezo wake, ambao husaidia kuhesabu na kudhibiti rasilimali zinazotumika kuendesha sheria zako, makundi ya sheria, na Web ACLs. Mara thamani yake inapowekwa wakati wa uundaji, haiwezekani kuibadilisha.
Sheria inafafanua seti ya masharti ambayo AWS WAF inatumia kuchunguza maombi ya wavuti yanayokuja. Kuna aina mbili kuu za sheria:
Sheria ya Kawaida: Aina hii ya sheria inatumia masharti yaliyotajwa ili kuamua ikiwa ruhusa, kuzuia, au kuhesabu maombi ya wavuti.
Sheria ya Kiwango: Inahesabu maombi kutoka kwa anwani maalum ya IP katika kipindi cha dakika tano. Hapa, watumiaji wanafafanua kigezo, na ikiwa idadi ya maombi kutoka kwa IP inazidi kikomo hiki ndani ya dakika tano, maombi yanayofuata kutoka kwa IP hiyo yanazuia hadi kiwango cha maombi kishuke chini ya kigezo. Kigezo cha chini kwa sheria za kiwango ni maombi 2000.
AWS WAF inatoa seti za sheria zilizowekwa awali, zinazodhibitiwa na AWS na wauzaji wa AWS Marketplace. Seti hizi za sheria zinatoa ulinzi dhidi ya vitisho vya kawaida na zinafanyiwa sasisho mara kwa mara ili kushughulikia udhaifu mpya.
IP Set ni orodha ya anwani za IP au anwani za IP ambazo unataka kuruhusu au kuzuia. IP sets hurahisisha mchakato wa kusimamia sheria za msingi wa IP.
Regex Pattern Set ina moja au zaidi ya maelezo ya kawaida (regex) ambayo yanafafanua mifumo ya kutafuta katika maombi ya wavuti. Hii ni muhimu kwa hali ngumu za ulinganifu, kama vile kuchuja mfuatano maalum wa wahusika.
Lock Token inatumika kwa udhibiti wa ushirikiano wakati wa kufanya sasisho kwa rasilimali za WAF. Inahakikisha kwamba mabadiliko hayafutwi kwa bahati na watumiaji au michakato kadhaa wanaojaribu kubadilisha rasilimali hiyo hiyo kwa wakati mmoja.
API Keys katika AWS WAF zinatumika kuthibitisha maombi kwa operesheni fulani za API. Funguo hizi zimefungwa na kusimamiwa kwa usalama ili kudhibiti ufikiaji na kuhakikisha kwamba ni watumiaji walioidhinishwa pekee wanaweza kufanya mabadiliko kwenye usanidi wa WAF.
Mfano: Uunganisho wa API ya CAPTCHA.
Permission Policy ni sera ya IAM inayofafanua ni nani anaweza kufanya vitendo kwenye rasilimali za AWS WAF. Kwa kufafanua ruhusa, unaweza kudhibiti ufikiaji wa rasilimali za WAF na kuhakikisha kwamba ni watumiaji walioidhinishwa pekee wanaweza kuunda, kusasisha, au kufuta usanidi.
Parameta ya scope katika AWS WAF inafafanua ikiwa sheria na usanidi wa WAF zinatumika kwa programu ya kikanda au usambazaji wa Amazon CloudFront.
REGIONAL: Inatumika kwa huduma za kikanda kama vile Application Load Balancers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito user pool, huduma ya AWS App Runner na mfano wa AWS Verified Access. Unataja eneo la AWS ambapo rasilimali hizi ziko.
CLOUDFRONT: Inatumika kwa usambazaji wa Amazon CloudFront, ambao ni wa kimataifa. Usanidi wa WAF kwa CloudFront unasimamiwa kupitia eneo la us-east-1
bila kujali mahali ambapo maudhui yanatolewa.
Masharti yanafafanua vipengele vya maombi ya HTTP/HTTPS yanayokuja ambayo AWS WAF inafuatilia, ambayo ni pamoja na XSS, eneo la kijiografia (GEO), anwani za IP, vikwazo vya ukubwa, SQL Injection, na mifumo (mifumo ya wahusika na ulinganifu wa regex). Ni muhimu kutambua kwamba maombi yaliyopunguziliwa mbali kwenye kiwango cha CloudFront kulingana na nchi hayatafika kwa WAF.
Kila akaunti ya AWS inaweza kufafanua:
masharti 100 kwa kila aina (isipokuwa kwa Regex, ambapo ni masharti 10 pekee yanaruhusiwa, lakini kikomo hiki kinaweza kuongezwa).
sheria 100 na Web ACLs 50.
Kiwango cha juu cha sheria 5 za kiwango.
Uhamasishaji wa maombi 10,000 kwa sekunde wakati WAF inatekelezwa na balancer ya mzigo wa programu.
Hatua zinapewa kila sheria, na chaguzi ni:
Ruhusu: Ombi linaelekezwa kwa usambazaji unaofaa wa CloudFront au Application Load Balancer.
Zuia: Ombi linakatishwa mara moja.
Hesabu: Inahesabu maombi yanayokidhi masharti ya sheria. Hii ni muhimu kwa majaribio ya sheria, kuthibitisha usahihi wa sheria kabla ya kuweka kuwa Ruhusu au Zuia.
CAPTCHA na Changamoto: Inathibitishwa kwamba ombi halitoki kwa roboti kwa kutumia puzzles za CAPTCHA na changamoto za kimya.
Ikiwa ombi halifai na sheria yoyote ndani ya Web ACL, linafanyiwa hatua ya kawaida (Ruhusu au Zuia). Mpangilio wa utekelezaji wa sheria, uliofafanuliwa ndani ya Web ACL, ni muhimu na kawaida unafuata mpangilio huu:
Ruhusu IP zilizoorodheshwa.
Zuia IP zilizoorodheshwa.
Zuia maombi yanayolingana na saini zozote mbaya.
AWS WAF inajumuisha na CloudWatch kwa ajili ya ufuatiliaji, ikitoa vipimo kama vile AllowedRequests, BlockedRequests, CountedRequests, na PassedRequests. Vipimo hivi vinaripotiwa kila dakika kwa msingi na kuhifadhiwa kwa kipindi cha wiki mbili.
Ili kuingiliana na usambazaji wa CloudFront, lazima ueleze Eneo la US East (N. Virginia):
CLI - Eleza Eneo la US East unapotumia scope ya CloudFront: --scope CLOUDFRONT --region=us-east-1
.
API na SDKs - Kwa simu zote, tumia mwisho wa eneo us-east-1.
Ili kuingiliana na huduma za kikanda, unapaswa kueleza eneo:
Mfano na eneo la Ulaya (Uhispania): --scope REGIONAL --region=eu-south-2
Kutoka kwa mtazamo wa mshambuliaji, huduma hii inaweza kumsaidia mshambuliaji kubaini ulinzi wa WAF na kufichua mitandao ambayo inaweza kumsaidia kuathiri tovuti nyingine.
Hata hivyo, mshambuliaji anaweza pia kuwa na hamu ya kuharibu huduma hii ili tovuti zisihifadhiwe na WAF.
Katika nyingi za operesheni za Kufuta na Kusasisha itakuwa muhimu kutoa lock token. Token hii inatumika kwa udhibiti wa ushirikiano juu ya rasilimali, kuhakikisha kwamba mabadiliko hayakosi kwa bahati na kuandikwa upya na watumiaji au michakato kadhaa wanaojaribu kusasisha rasilimali hiyo hiyo kwa wakati mmoja. Ili kupata token hii unaweza kufanya operesheni zinazofaa za list au get juu ya rasilimali maalum.
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
Mshambuliaji angeweza kuathiri usalama wa rasilimali iliyoathiriwa kwa:
Kuunda vikundi vya sheria ambavyo vinaweza, kwa mfano, kuzuia trafiki halali kutoka kwa anwani halali za IP, na kusababisha kukatizwa kwa huduma.
Kusasisha vikundi vya sheria, akiwa na uwezo wa kubadilisha vitendo vyake kwa mfano kutoka Block hadi Allow.
Kufuta vikundi vya sheria vinavyotoa hatua muhimu za usalama.
Mfano ufuatao unaonyesha kundi la sheria ambalo lingezuia trafiki halali kutoka kwa anwani maalum za IP:
Faili la rule.json litakuwa na muonekano kama:
Madhara Yanayoweza Kutokea: Ufikiaji usioidhinishwa, uvunjaji wa data, na mashambulizi ya DoS yanayoweza kutokea.
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
Kwa ruhusa hizi, mshambuliaji angeweza:
Kuunda Web ACL mpya, kuanzisha sheria ambazo zinaruhusu trafiki mbaya kupita au kuzuia trafiki halali, hivyo kufanya WAF kuwa haina maana au kusababisha kukatizwa kwa huduma.
Kusasisha Web ACL zilizopo, akiwa na uwezo wa kubadilisha sheria ili kuruhusu mashambulizi kama vile SQL injection au cross-site scripting, ambayo hapo awali yalikuwa yamezuiliwa, au kuharibu mtiririko wa trafiki wa kawaida kwa kuzuia maombi halali.
Kufuta Web ACL, kuacha rasilimali zilizoathiriwa zisizo na ulinzi kabisa, na kuziweka katika hatari ya mashambulizi mbalimbali ya mtandao.
Unaweza kufuta tu WebACL iliyoainishwa ikiwa ManagedByFirewallManager ni false.
Mifano ifuatayo inaonyesha jinsi ya kuboresha Web ACL ili kuzuia trafiki halali kutoka kwa seti maalum ya IP. Ikiwa IP ya asili haitalingana na yoyote ya hizo IP, hatua ya default itakuwa pia kuzuia, na kusababisha DoS.
Original Web ACL:
Amri ya kusasisha Web ACL:
Faili la rule.json litakuwa kama ifuatavyo:
Madhara Yanayoweza Kutokea: Ufikiaji usioidhinishwa, uvunjaji wa data, na mashambulizi ya DoS yanayoweza kutokea.
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
Ruhusa ya wafv2:AssociateWebACL
ingemruhusu mshambuliaji kuunganisha ACL za wavuti (Orodha za Udhibiti wa Ufikiaji) na rasilimali, akiwa na uwezo wa kupita udhibiti wa usalama, kuruhusu trafiki isiyoidhinishwa kufikia programu, ambayo inaweza kusababisha matumizi mabaya kama vile SQL injection au cross-site scripting (XSS). Kinyume chake, kwa ruhusa ya wafv2:DisassociateWebACL
, mshambuliaji anaweza kuzima ulinzi wa usalama kwa muda, akifichua rasilimali kwa hatari bila kugundulika.
Ruhusa za ziada zitahitajika kulingana na aina ya rasilimali iliyolindwa:
Unganisha
apigateway:SetWebACL
apprunner:AssociateWebAcl
appsync:SetWebACL
cognito-idp:AssociateWebACL
ec2:AssociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Tenganisha
apigateway:SetWebACL
apprunner:DisassociateWebAcl
appsync:SetWebACL
cognito-idp:DisassociateWebACL
ec2:DisassociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Madhara Yanayoweza Kutokea: Usalama wa rasilimali ulioathiriwa, ongezeko la hatari ya unyakuzi, na uwezekano wa usumbufu wa huduma ndani ya mazingira ya AWS yaliyolindwa na AWS WAF.
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
Mshambuliaji angeweza kuunda, kusasisha na kufuta seti za IP zinazodhibitiwa na AWS WAF. Hii inaweza kuwa hatari kwani inaweza kuunda seti mpya za IP kuruhusu trafiki mbaya, kubadilisha seti za IP ili kuzuia trafiki halali, kusasisha seti za IP zilizopo ili kujumuisha anwani za IP mbaya, kuondoa anwani za IP zinazotegemewa au kufuta seti muhimu za IP ambazo zinapaswa kulinda rasilimali muhimu.
Mfano ufuatao unaonyesha jinsi ya kufuta seti ya IP iliyopo kwa seti ya IP inayotakiwa:
Madhara Yanayoweza Kutokea: Ufikiaji usioidhinishwa na kuzuia trafiki halali.
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
Mshambuliaji mwenye ruhusa hizi angeweza kubadilisha seti za mifumo ya kawaida ya regex inayotumiwa na AWS WAF kudhibiti na kuchuja trafiki inayokuja kulingana na mifumo maalum.
Kuunda mifumo mipya ya regex kungemsaidia mshambuliaji kuruhusu maudhui mabaya
K updating mifumo iliyopo, mshambuliaji angeweza kupita sheria za usalama
Kufuta mifumo ambayo yameundwa kuzuia shughuli mbaya kunaweza kumsaidia mshambuliaji kutuma payloads mbaya na kupita hatua za usalama.
Madhara Yanayoweza Kutokea: Kupita udhibiti wa usalama, kuruhusu maudhui mabaya na kwa uwezekano kufichua data nyeti au kuharibu huduma na rasilimali zinazolindwa na AWS WAF.
wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
Mshambuliaji mwenye wafv2:DeleteLoggingConfiguration
angeweza kuondoa usanidi wa uandishi kutoka kwa Web ACL iliyoainishwa. Baadaye, kwa ruhusa za wavf2:PutLoggingConfiguration
na iam:CreateServiceLinkedRole
, mshambuliaji angeweza kuunda au kubadilisha usanidi wa uandishi (baada ya kuondoa) ili kuzuia uandishi kabisa au kuelekeza kumbukumbu kwenye maeneo yasiyoidhinishwa, kama vile ndoo za Amazon S3, kundi la kumbukumbu za Amazon CloudWatch Logs au Amazon Kinesis Data Firehose chini ya udhibiti.
Wakati wa mchakato wa uundaji, huduma huweka kiotomatiki ruhusa zinazohitajika kuruhusu kumbukumbu kuandikwa kwenye eneo lililoainishwa la uandishi:
Amazon CloudWatch Logs: AWS WAF inaunda sera ya rasilimali kwenye kundi la kumbukumbu la CloudWatch Logs lililoainishwa. Sera hii inahakikisha kwamba AWS WAF ina ruhusa zinazohitajika kuandika kumbukumbu kwenye kundi la kumbukumbu.
Amazon S3 Bucket: AWS WAF inaunda sera ya ndoo kwenye ndoo ya S3 iliyoainishwa. Sera hii inampa AWS WAF ruhusa zinazohitajika kupakia kumbukumbu kwenye ndoo iliyoainishwa.
Amazon Kinesis Data Firehose: AWS WAF inaunda jukumu lililounganishwa na huduma mahsusi kwa ajili ya kuingiliana na Kinesis Data Firehose. Jukumu hili linaruhusu AWS WAF kuwasilisha kumbukumbu kwenye mtiririko wa Firehose ulioanzishwa.
Inawezekana kufafanua eneo moja tu la uandishi kwa kila web ACL.
Madhara Yanayoweza Kutokea: Kuondoa uwazi katika matukio ya usalama, kuleta ugumu katika mchakato wa majibu ya tukio, na kuwezesha shughuli za uhalifu zisizoonekana ndani ya mazingira yaliyo na ulinzi wa AWS WAF.
wafv2:DeleteAPIKey
Mshambuliaji mwenye ruhusa hii angeweza kufuta funguo za API zilizopo, na kufanya CAPTCHA isifanye kazi na kuharibu utendaji unaotegemea hiyo, kama vile uwasilishaji wa fomu na udhibiti wa ufikiaji. Kulingana na utekelezaji wa CAPTCHA hii, hii inaweza kusababisha ama kupita CAPTCHA au DoS ikiwa usimamizi wa makosa haujawekwa vizuri katika rasilimali.
Madhara Yanayoweza Kutokea: Kuondoa ulinzi wa CAPTCHA au kuharibu utendaji wa programu, na kusababisha uvunjaji wa usalama na wizi wa data unaoweza kutokea.
wafv2:TagResource
, wafv2:UntagResource
Mshambuliaji angeweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za AWS WAFv2, kama vile Web ACLs, vikundi vya sheria, seti za IP, seti za mifumo ya regex, na mipangilio ya uandishi.
Madhara Yanayoweza Kutokea: Ubadilishaji wa rasilimali, uvujaji wa taarifa, udanganyifu wa gharama na usumbufu wa operesheni.
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)