Cognito Identity Pools
Taarifa Msingi
Pools za kitambulisho zina jukumu muhimu kwa kuwezesha watumiaji wako kupata vitambulisho vya muda. Vitambulisho 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 vile Facebook, Google, Ingia na Amazon, na Ingia na Apple
Watoa huduma wanaofuata OpenID Connect (OIDC)
Watoa huduma 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. Vitambulisho hivi vinaweza 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 akitumia Kitambulisho hicho hicho).
Zaidi ya hayo, huduma ya cognito-sync ndiyo huduma inayoruhusu kusimamia na kusawazisha habari hizi (katika seti, kutuma habari katika mito na ujumbe wa SNS...).
Zana za pentesting
Pacu, fremu ya unyonyaji wa 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 dimbwi la kitambulisho vinavyoweza kutumiwa, majukumu yanayoweza kuchukuliwa katika alama za kitambulisho, n.k.
Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya machapisho ya blogu. Kwa maelekezo ya usakinishaji angalia ukurasa wa kuu wa Pacu.
Matumizi
Matumizi ya mfano ya 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:
Mfano wa matumizi ya cognito__enum kukusanya mabwawa yote ya watumiaji, wateja wa bwawa la watumiaji, mabwawa ya utambulisho, watumiaji, n.k. yanayoonekana kwenye 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 vibali vya AWS katika programu ya Cognito kama mtumiaji asiye na uthibitisho ni Kitambulisho cha Dimbwi la Kitambulisho, 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).
Jukumu la Cognito la IAM lisilo na uthibitisho lililoanzishwa kupitia kwa chaguo-msingi huitwa Cognito_<Jina la Dimbwi la Kitambulisho>Unauth_Role
Ikiwa unapata Kitambulisho la Dimbwi la Kitambulisho lililowekwa kwa nguvu na inaruhusu watumiaji wasio na uthibitisho, unaweza kupata vibali vya 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 hicho tu 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 kwa kutumia mfumo huo ambao hautakuwa na sera ya kikao iliyozuiliwa.
Ikiwa unapokea kosa hili, ni kwa sababu mtiririko wa msingi haujafunguliwa (chaguo-msingi)
Kosa lilijitokeza (InvalidParameterException) wakati wa kuita operesheni ya GetOpenIdToken: Mtiririko wa msingi (klasiki) haujafunguliwa, 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 kitambulisho. Ikiwa hiyo ni Dimbwi la Watumiaji wa Cognito, labda unaweza kutumia tabia ya chaguo-msingi na kuunda mtumiaji mpya mwenyewe.
Jukumu la kuthibitishwa la IAM Cognito lililoanzishwa kupitia linaitwa kwa chaguo-msingi Cognito_<Jina la Dimbwi la Kitambulisho>Auth_Role
Kwa njia yoyote, mfano ufuatao unatarajia kuwa tayari umelogiwa ndani ya Dimbwi la Watumiaji wa Cognito linalotumiwa kupata upatikanaji wa Dimbwi la Kitambulisho (usisahau kuwa aina zingine za watoa kitambulisho pia zinaweza kuwa zimeboreshwa).
Inawezekana kuweka vipimo tofauti vya IAM kulingana na mtoa 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