Cognito Identity Pools
Taarifa Msingi
Pools za kitambulisho zina jukumu muhimu kwa kuwezesha watumiaji wako kupata vyeti vya muda. Vyeti hivi ni muhimu kwa kupata huduma mbalimbali za AWS, ikiwa ni pamoja na lakini sio tu Amazon S3 na DynamoDB. Sifa muhimu ya pools za kitambulisho ni msaada wao kwa watumiaji wageni wasiojulikana na anuwai ya watoa huduma za kitambulisho kwa uthibitishaji wa mtumiaji. Watoa huduma za kitambulisho wanaoungwa mkono ni pamoja na:
Pools za watumiaji za Amazon Cognito
Chaguzi za kuingia kijamii kama Facebook, Google, Ingia na Amazon, na Ingia na Apple
Watoa huduma wanaofuata OpenID Connect (OIDC)
Watoa huduma wa kitambulisho wa SAML (Security Assertion Markup Language)
Kitambulisho kilichothibitishwa na msanidi programu
Cognito Sync
Ili kuzalisha vikao vya Dimbwi la Kitambulisho, kwanza unahitaji kuzalisha Kitambulisho na Kitambulisho. Hiki Kitambulisho ni utambulisho wa kikao cha mtumiaji huyo. Utambulisho huu unaweza kuwa na hadi seti 20 ambazo zinaweza kuhifadhi hadi 1MB ya jozi za funguo-na-thamani.
Hii ni ya manufaa kuhifadhi habari za mtumiaji (ambaye daima atakuwa akatumia Kitambulisho hicho hicho).
Zaidi ya hayo, huduma ya cognito-sync ndiyo huduma inayoruhusu kudhibiti na kusawazisha habari hizi (katika seti, kutuma habari katika mito na ujumbe wa SNS...).
Zana za pentesting
Pacu, fremu ya unyonyaji ya AWS, sasa inajumuisha moduli za "cognito__enum" na "cognito__attack" ambazo zinautomatisha uorodheshaji wa mali zote za Cognito katika akaunti na kuashiria miundo dhaifu, sifa za mtumiaji zinazotumiwa kwa kudhibiti upatikanaji, n.k., na pia kiotomatiki uundaji wa mtumiaji (ikiwa ni pamoja na usaidizi wa MFA) na upandishaji wa mamlaka kulingana na sifa za kawaida zinazoweza kuhaririwa, vitambulisho vya kitambulisho vinavyoweza kutumiwa, majukumu yanayoweza kufikiwa katika alama za kitambulisho, n.k.
Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya machapisho ya blogi. Kwa maelekezo ya usakinishaji angalia ukurasa wa kuu wa Pacu.
Matumizi
Matumizi ya jaribio la cognito__attack kujaribu uundaji wa mtumiaji na vekta zote za upandishaji wa mamlaka dhidi ya dimbwi la kitambulisho lililopewa na mteja wa dimbwi la mtumiaji:
Matumizi ya cognito__enum kuchanganua mabwawa yote ya watumiaji, wateja wa bwawa la watumiaji, mabwawa ya utambulisho, watumiaji, n.k. yanayoonekana katika akaunti ya AWS ya sasa:
Cognito Scanner ni chombo cha CLI kilichoandikwa kwa python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na uundaji usiohitajika wa akaunti na kuongezeka kwa dimbwi la kitambulisho.
Usanidi
Matumizi
Kwa maelezo zaidi angalia https://github.com/padok-team/cognito-scanner
Kupata Majukumu ya IAM
Bila Kuthibitishwa
Kitu pekee ambacho mshambuliaji anahitaji kujua ili kupata sifa za AWS katika programu ya Cognito kama mtumiaji asiye na uthibitisho ni Kitambulisho cha Dimbwi la Utambulisho, na hiki Kitambulisho lazima kiwekwe kwa nguvu katika programu ya wavuti/simu ili iitumie. Kitambulisho kinaonekana kama hiki: eu-west-1:098e5341-8364-038d-16de-1865e435da3b
(hakiwezi kufanyiwa nguvu ya kutafuta).
Jukumu la Cognito lisilo na uthibitisho la IAM lililoanzishwa kupitia kwa chaguo-msingi huitwa Cognito_<Jina la Dimbwi la Utambulisho>Unauth_Role
Ikiwa unapata Kitambulisho la Dimbwi la Utambulisho lililowekwa kwa nguvu na inaruhusu watumiaji wasio na uthibitisho, unaweza kupata sifa za AWS na:
Au unaweza kutumia amri za aws cli zifuatazo:
Tafadhali kumbuka kwamba kwa chaguo-msingi mtumiaji wa cognito ASIYE na uthibitishaji hawezi kuwa na idhini yoyote, hata kama ilipewa kupitia sera. Angalia sehemu ifuatayo.
Mfumo wa Uthibitishaji wa Kuboreshwa dhidi ya Msingi
Sehemu iliyopita ilifuata mfumo wa kawaida wa uthibitishaji ulioboreshwa. Mfumo huu huanzisha sera ya kikao iliyozuiliwa kwa kikao cha jukumu la IAM kilichozalishwa. Sera hii itaruhusu kikao kutumia huduma kutoka kwenye orodha hii (hata kama jukumu lilikuwa na ufikiaji wa huduma nyingine).
Hata hivyo, kuna njia ya kuzidi hili, ikiwa Hifadhi ya Kitambulisho ina "Mfumo wa Msingi (Mkongwe)" umewezeshwa, mtumiaji ataweza kupata kikao kutumia mfumo huo ambao hautakuwa na sera ya kikao iliyozuiliwa.
Ikiwa unapokea kosa hili, ni kwa sababu mtiririko wa msingi haujawezeshwa (chaguo-msingi)
Kumetokea kosa (InvalidParameterException) wakati wa kuita operesheni ya GetOpenIdToken: Mtiririko wa msingi (klasiki) haujaruhusiwa, tafadhali tumia mtiririko ulioboreshwa.
Ukiwa na seti ya vibali vya IAM unapaswa kuchunguza upatikanaji wako na jaribu kuinua mamlaka.
Kuthibitishwa
Kumbuka kuwa watumiaji waliothibitishwa huenda wakapewa idhini tofauti, hivyo ikiwa unaweza kujiandikisha ndani ya programu, jaribu kufanya hivyo na upate vibali vipya.
Pia kunaweza kuwa na majukumu yanayopatikana kwa watumiaji waliothibitishwa wanaoingia kwenye Dimbwi la Kitambulisho.
Kwa hili unaweza kuhitaji kupata upatikanaji wa mtoa huduma wa kitambulisho. Ikiwa hiyo ni Dimbwi la Watumiaji la Cognito, labda unaweza kutumia tabia ya chaguo-msingi na kuunda mtumiaji mpya mwenyewe.
Jukumu la kuthibitishwa la IAM Cognito lililoanzishwa kupitia huitwa kwa chaguo-msingi Cognito_<Jina la Dimbwi la Kitambulisho>Auth_Role
Kwa njia yoyote ile, mfano ufuatao unatarajia kuwa tayari umelogiwa ndani ya Dimbwi la Mtumiaji la Cognito linalotumiwa kupata upatikanaji wa Dimbwi la Kitambulisho (usisahau kuwa aina zingine za watoa huduma wa kitambulisho pia zinaweza kuwa zimeboreshwa).
Inawezekana kuweka majukumu tofauti ya IAM kulingana na mtoa huduma wa kitambulisho ambaye mtumiaji analogiwa au hata kulingana na mtumiaji (kutumia madai). Kwa hivyo, ikiwa una upatikanaji wa watumiaji tofauti kupitia mtoa huduma sawa au tofauti, inaweza kuwa yenye thamani kuingia na kupata majukumu ya IAM ya wote.
Last updated