AWS - KMS Enum

Support HackTricks

KMS - Huduma ya Usimamizi wa Funguo

Huduma ya Usimamizi wa Funguo ya AWS (AWS KMS) inawasilishwa kama huduma inayosimamiwa, ikirahisisha mchakato kwa watumiaji ku unda na kusimamia funguo kuu za wateja (CMKs). CMKs hizi ni muhimu katika usimbaji wa data za watumiaji. Kipengele muhimu cha AWS KMS ni kwamba CMKs kwa kiasi kikubwa zimehifadhiwa na moduli za usalama wa vifaa (HSMs), zikiongeza ulinzi wa funguo za usimbaji.

KMS inatumia simbiko la kawaida. Hii inatumika ku simbua taarifa wakati wa kupumzika (kwa mfano, ndani ya S3). Ikiwa unahitaji ku simbua taarifa wakati wa usafiri unahitaji kutumia kitu kama TLS.

KMS ni huduma maalum ya eneo.

Wasimamizi katika Amazon hawana ufaccess wa funguo zako. Hawawezi kurejesha funguo zako na hawawezi kukusaidia katika usimbaji wa funguo zako. AWS inasimamia tu mfumo wa uendeshaji na programu ya msingi, ni jukumu letu kusimamia funguo zetu za usimbaji na kusimamia jinsi funguo hizo zinavyotumika.

Funguo Kuu za Wateja (CMK): Zinaweza kusimbua data hadi ukubwa wa 4KB. Kwa kawaida hutumiwa kuunda, kusimbua, na kufungua DEKs (Funguo za Usimbaji wa Data). Kisha DEKs zinatumika kusimbua data.

Funguo kuu ya mteja (CMK) ni uwakilishi wa kimantiki wa funguo kuu katika AWS KMS. Mbali na vitambulisho vya funguo kuu na metadata nyingine, ikiwa ni pamoja na tarehe ya kuundwa, maelezo, na hali ya funguo, CMK ina nyenzo za funguo ambazo zilitumika kusimbua na kufungua data. Unapounda CMK, kwa kawaida, AWS KMS inazalisha nyenzo za funguo kwa CMK hiyo. Hata hivyo, unaweza kuchagua kuunda CMK bila nyenzo za funguo na kisha kuingiza nyenzo zako za funguo katika CMK hiyo.

Kuna aina 2 za funguo kuu:

  • CMKs zinazodhibitiwa na AWS: Zinatumika na huduma nyingine kusimbua data. Inatumika na huduma iliyoiunda katika eneo. Zinaundwa mara ya kwanza unapoanzisha usimbaji katika huduma hiyo. Hubadilishwa kila miaka 3 na haiwezekani kubadilishwa.

  • CMKs za Meneja wa Wateja: Uwezo, kubadilisha, ufikiaji unaoweza kubadilishwa na sera za funguo. Wezesha na uzuie funguo.

Usimbaji wa Envelope katika muktadha wa Huduma ya Usimamizi wa Funguo (KMS): Mfumo wa ngazi mbili ili kusimbua data kwa funguo za data na kisha kusimbua funguo za data kwa funguo kuu.

Sera za Funguo

Hizi zinaeleza nani anaweza kutumia na kufikia funguo katika KMS.

Kwa kawaida:

  • Inatoa akaunti ya AWS inayomiliki funguo za KMS ufikiaji kamili kwa funguo za KMS.

Tofauti na sera nyingine za rasilimali za AWS, sera ya funguo za KMS ya AWS haipatii ruhusa moja kwa moja kwa akaunti au watumiaji wake. Ili kutoa ruhusa kwa wasimamizi wa akaunti, sera ya funguo lazima iwe na taarifa wazi inayotoa ruhusa hii, kama hii.

  • Bila kuruhusu akaunti ("AWS": "arn:aws:iam::111122223333:root") ruhusa za IAM hazitafanya kazi.

  • In aruhusu akaunti kutumia sera za IAM kuruhusu ufikiaji wa funguo za KMS, pamoja na sera ya funguo.

Bila ruhusa hii, sera za IAM zinazoruhusu ufikiaji wa funguo hazifanyi kazi, ingawa sera za IAM zinazokataa ufikiaji wa funguo bado zinafanya kazi.

  • In punguza hatari ya funguo kuwa ngumu kusimamia kwa kutoa ruhusa ya udhibiti wa ufikiaji kwa wasimamizi wa akaunti, ikiwa ni pamoja na mtumiaji wa mzizi wa akaunti, ambaye cannot kufutwa.

Mfano wa sera ya kawaida:

{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:*",
"Resource": "*"
}

Ikiwa akaunti inaruhusiwa ("arn:aws:iam::111122223333:root"), mwanachama kutoka kwenye akaunti bado anahitaji ruhusa za IAM kutumia funguo za KMS. Hata hivyo, ikiwa ARN ya jukumu kwa mfano inaruhusiwa hasa katika Sera ya Funguo, jukumu hilo halihitaji ruhusa za IAM.

Maelezo ya Sera

Mali za sera:

  • Hati inayotegemea JSON

  • Rasilimali --> Rasilimali zilizoathirika (zinaweza kuwa "*")

  • Kitendo --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (ruhusa)

  • Athari --> Ruhusu/Kataa

  • Mwanachama --> arn aliyeathirika

  • Masharti (hiari) --> Masharti ya kutoa ruhusa

Mikopo:

  • Ruhusu kuhamasisha ruhusa zako kwa mwanachama mwingine wa AWS ndani ya akaunti yako ya AWS. Unahitaji kuziunda kwa kutumia APIs za AWS KMS. Inaweza kuonyeshwa kitambulisho cha CMK, mwanachama wa mkopo na kiwango kinachohitajika cha operesheni (Decrypt, Encrypt, GenerateDataKey...)

  • Baada ya mkopo kuundwa, GrantToken na GrantID zinatolewa

Upatikanaji:

  • Kupitia sera ya funguo -- Ikiwa hii ipo, hii inachukua kipaumbele juu ya sera ya IAM

  • Kupitia sera ya IAM

  • Kupitia mikopo

Wasimamizi wa Funguo

Msimamizi wa funguo kwa default:

  • Wana upatikanaji wa kusimamia KMS lakini si kuandika au kufungua data

  • Watumiaji wa IAM pekee na majukumu yanaweza kuongezwa kwenye orodha ya Wasimamizi wa Funguo (sio vikundi)

  • Ikiwa CMK ya nje inatumika, Wasimamizi wa Funguo wana ruhusa ya kuingiza vifaa vya funguo

Mzunguko wa CMKs

  • Kadri funguo hiyo hiyo inavyoachwa mahali, ndivyo data zaidi inavyoandikwa kwa funguo hiyo, na ikiwa funguo hiyo itavunjwa, basi eneo kubwa la data liko hatarini. Mbali na hii, kadri funguo hiyo inavyokuwa hai, uwezekano wa kuathirika unakua.

  • KMS inageuza funguo za wateja kila siku 365 (au unaweza kufanya mchakato huo kwa mikono wakati wowote unavyotaka) na funguo zinazodhibitiwa na AWS kila miaka 3 na wakati huu haiwezi kubadilishwa.

  • Funguo za zamani zinahifadhiwa kufungua data ambayo ilandikwa kabla ya mzunguko

  • Katika tukio la uvunjaji, kugeuza funguo hakutafuta tishio kwani itakuwa inawezekana kufungua data yote iliyandikwa kwa funguo iliyovunjika. Hata hivyo, data mpya itandikwa kwa funguo mpya.

  • Ikiwa CMK iko katika hali ya kuzuiliwa au kusubiri kuondolewa, KMS haitafanya mzunguko wa funguo hadi CMK irejeshwe au kuondolewa kukataliwa.

Mzunguko wa Mikono

  • CMK mpya inahitaji kuundwa, kisha, CMK-ID mpya inaundwa, hivyo utahitaji kusaidia yoyote programu ili kuashiria CMK-ID mpya.

  • Ili kufanya mchakato huu kuwa rahisi unaweza kutumia majina ya utambulisho kuashiria kitambulisho cha funguo na kisha tu sasisha funguo ambayo jina la utambulisho linarejelea.

  • Unahitaji kuhifadhi funguo za zamani kufungua faili za zamani zilizandikwa kwa hiyo.

Unaweza kuingiza funguo kutoka kwenye miundombinu yako ya funguo ya ndani.

Taarifa nyingine muhimu za KMS

KMS inagharimu kulingana na idadi ya maombi ya kuandika/kufungua yaliyopokelewa kutoka kwa huduma zote kwa mwezi.

KMS ina ukaguzi kamili na ujumuishaji wa kufuata na CloudTrail; hapa ndipo unaweza kukagua mabadiliko yote yaliyofanywa kwenye KMS.

Kwa sera ya KMS unaweza kufanya yafuatayo:

  • Punguza nani anaweza kuunda funguo za data na huduma zipi zina upatikanaji wa kutumia funguo hizi

  • Punguza upatikanaji wa mifumo kuandika tu, kufungua tu au zote mbili

  • Mwelekeo wa kuwezesha mifumo kupata funguo katika maeneo tofauti (ingawa haipendekezwi kwani kushindwa katika eneo linalohifadhi KMS kutakathiri upatikanaji wa mifumo katika maeneo mengine).

Huwezi kuunganisha au kuhamasisha/kopi funguo katika maeneo tofauti; unaweza tu kufafanua sheria za kuruhusu upatikanaji katika eneo tofauti.

Uainishaji

aws kms list-keys
aws kms list-key-policies --key-id <id>
aws kms list-grants --key-id <id>
aws kms describe-key --key-id <id>
aws kms get-key-policy --key-id <id> --policy-name <name> # Default policy name is "default"
aws kms describe-custom-key-stores

Privesc

Post Exploitation

Persistence

References

Support HackTricks

Last updated