AWS - KMS Enum

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

KMS - Huduma ya Usimamizi wa Funguo

Huduma ya Usimamizi wa Funguo ya AWS (AWS KMS) inajitokeza kama huduma iliyoandaliwa, ikisimplisha mchakato kwa watumiaji kuunda na kusimamia funguo za msingi za wateja (CMKs). CMK hizi ni muhimu katika kuficha data ya mtumiaji. Sifa muhimu ya AWS KMS ni kwamba CMK zinadumishwa hasa na moduli za usalama za vifaa (HSMs), ikiboresha ulinzi wa funguo za kuficha.

KMS hutumia uficho wa kisymmetri. Hii hutumiwa kuficha habari kama ilivyo (kwa mfano, ndani ya S3). Ikiwa unahitaji kuficha habari inayosafirishwa unahitaji kutumia kitu kama TLS.

KMS ni huduma maalum ya eneo.

Waadiministrata wa Amazon hawana ufikivu wa funguo zako. Hawawezi kurejesha funguo zako na hawakusaidii kuficha funguo zako. AWS inasimamia tu mfumo wa uendeshaji na programu ya msingi, ni jukumu letu kusimamia funguo zetu za kuficha na jinsi funguo hizo zinavyotumiwa.

Funguo za Msingi za Wateja (CMK): Zinaweza kuficha data hadi 4KB kwa ukubwa. Kawaida hutumiwa kuunda, kuficha, na kufichua DEKs (Funguo za Kuficha Data). Kisha DEKs hutumiwa kuficha data.

Funguo ya msingi ya mteja (CMK) ni uwakilishi wa mantiki wa funguo kuu katika AWS KMS. Mbali na vitambulisho vya funguo kuu na metadata nyingine, ikiwa ni pamoja na tarehe ya uundaji, maelezo, na hali ya funguo, CMK ina vifaa vya funguo vinavyotumiwa kuficha na kufichua data. Unapounda CMK, kwa chaguo-msingi, AWS KMS huzalisha vifaa vya funguo kwa CMK hiyo. Walakini, unaweza kuchagua kuunda CMK bila vifaa vya funguo kisha kuingiza vifaa vyako vya funguo katika CMK hiyo.

Kuna aina 2 za funguo kuu:

  • CMK zilizosimamiwa na AWS: Hutumiwa na huduma zingine kuficha data. Hutumiwa na huduma iliyounda katika eneo hilo. Zinaundwa mara ya kwanza unapotekeleza kuficha katika huduma hiyo. Hurekebishwa kila baada ya miaka 3 na haiwezekani kubadilisha.

  • CMK za meneja wa wateja: Utekelezaji, mzunguko, ufikiaji ulioweza kusanidiwa na sera ya funguo. Wezesha na afya funguo.

Uficho wa Bahasha katika muktadha wa Huduma ya Usimamizi wa Funguo (KMS): Mfumo wa ikiwa na ngazi mbili wa kuficha data na funguo ya data kisha kuficha funguo ya data na funguo kuu.

Sera za Funguo

Hizi hufafanua nani anaweza kutumia na kupata ufikivu wa funguo katika KMS.

Kwa chaguo-msingi:

  • Inampa akaunti ya AWS inayomiliki funguo la KMS ufikivu kamili wa funguo la KMS.

Tofauti na sera zingine za rasilimali za AWS, sera ya funguo ya AWS KMS haitoi moja kwa moja idhini kwa akaunti au watumiaji wake yeyote. Ili kumpa idhini waadmiministrata wa akaunti, sera ya funguo lazima iwe na taarifa wazi inayotoa idhini hii, kama hii.

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

  • Inaruhusu akaunti kutumia sera za IAM kuruhusu ufikivu wa funguo la KMS, mbali na sera ya funguo.

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

  • Inapunguza hatari ya funguo kuwa vigumu kusimamia kwa kumpa idhini ya kudhibiti ufikivu kwa waadmiministrata wa akaunti, ikiwa ni pamoja na mtumiaji wa msingi wa akaunti, ambaye hawezi kufutwa.

Mfano wa sera ya chaguo-msingi:

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

Ikiwa akaunti imeruhusiwa ("arn:aws:iam::111122223333:root") principal kutoka kwa akaunti hiyo bado itahitaji ruhusa za IAM kutumia funguo za KMS. Hata hivyo, ikiwa ARN ya jukumu kwa mfano imetolewa ruhusa maalum katika Sera ya Funguo, jukumu hilo halihitaji ruhusa za IAM.

Undani wa Sera

Mali ya sera:

  • Hati inayotegemea JSON

  • Rasmi --> Rasmi zilizoathiriwa (inaweza kuwa "*")

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

  • Athari --> Ruhusu/Kataa

  • Kuu --> arn iliyoathiriwa

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

Ruzuku:

  • Ruhusu kumwezesha kudai ruhusa zako kwa mamlaka nyingine ya AWS ndani ya akaunti yako ya AWS. Unahitaji kuziunda kwa kutumia APIs za AWS KMS. Inaweza kudai kitambulisho cha CMK, mamlaka ya mpokeaji na kiwango kinachohitajika cha uendeshaji (Decrypt, Encrypt, GenerateDataKey...)

  • Baada ya ruzuku kuundwa, GrantToken na GratID hutolewa

Upatikanaji:

  • Kupitia sera ya funguo -- Ikiwepo, hii inachukua kipaumbele kuliko sera ya IAM

  • Kupitia sera ya IAM

  • Kupitia ruhusu

Waendeshaji wa Funguo

Mwendeshaji wa funguo kwa chaguo-msingi:

  • Wanaweza kupata ufikiaji wa kusimamia KMS lakini sio kusimbua au kusimbua data

  • Tu watumiaji na majukumu ya IAM wanaweza kuongezwa kwenye orodha ya Waendeshaji wa Funguo (si vikundi)

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

Kubadilisha CMKs

  • Kadiri funguo sawa linabaki mahali, data zaidi inasimbwa na funguo hilo, na ikiwa funguo hilo litavunjwa, basi eneo kubwa la data litakuwa hatarini. Mbali na hii, kadiri funguo linavyoendelea kuwa hai, uwezekano wa kuvunjwa kwake unazidi kuongezeka.

  • KMS huzungusha funguo za wateja kila baada ya siku 365 (au unaweza kutekeleza mchakato huo kwa mikono unapotaka) na funguo zinazosimamiwa na AWS kila baada ya miaka 3 na wakati huu haiwezi kubadilishwa.

  • Funguo za zamani zinahifadhiwa kusimbua data iliyosimbwa kabla ya mzunguko

  • Katika uvunjaji, kuzungusha funguo haitaondoa tishio kwani itawezekana kusimbua data yote iliyosimbwa na funguo lililovunjwa. Hata hivyo, data mpya itasimbwa na funguo mpya.

  • Ikiwa CMK iko katika hali ya kulemazwa au kufutwa kusubiri, KMS haitazungusha funguo hadi CMK irudishwe katika hali ya kuwezeshwa au kufutwa kufutwa.

Kubadilisha kwa Mikono

  • CMK mpya inahitaji kuundwa, kisha, CMK-ID mpya inaundwa, hivyo utahitaji kuboresha maombi yoyote kurejelea CMK-ID mpya.

  • Ili kufanya mchakato huu kuwa rahisi unaweza kutumia alama za kurejelea kitambulisho cha funguo na kisha tu boresha funguo ambalo alama inarejelea.

  • Unahitaji kudumisha funguo za zamani kusimbua faili za zamani zilizosimbwa nayo.

Unaweza kuingiza funguo kutoka miundombinu yako ya funguo ya ndani.

Taarifa Nyingine muhimu za KMS

KMS ina bei kulingana na idadi ya maombi ya kusimbua/kusimbua data yanayopokelewa kutoka kwa huduma zote kwa mwezi.

KMS ina ushirikiano kamili wa ukaguzi na uthibitisho pamoja na CloudTrail; hapa ndipo unaweza kukagua mabadiliko yote yaliyotekelezwa kwenye KMS.

Kwa sera ya KMS unaweza kufanya yafuatayo:

  • Punguza nani anaweza kuunda funguo za data na ni huduma zipi zina ufikiaji wa kutumia funguo hizo

  • Punguza ufikiaji wa mifumo kusimbua tu, kusimbua tu au zote mbili

  • Taja kuwezesha mifumo kupata funguo kote mikoa (ingawa sio kupendekeza kwani kushindwa katika eneo linalohifadhi KMS kutawaathiri upatikanaji wa mifumo katika mikoa mingine).

Hauwezi kusawazisha au kuhamisha/nakili funguo kati ya mikoa; unaweza tu kutaja sheria kuruhusu ufikiaji kote mikoa.

Urambazaji

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

pageAWS - KMS Privesc

Post Exploitation

pageAWS - KMS Post Exploitation

Persistence

pageAWS - KMS Persistence

References

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated