GCP - KMS Enum

Reading time: 5 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

KMS

The Cloud Key Management Service inatoa hifadhi salama kwa funguo za kificho, ambazo ni muhimu kwa shughuli kama kuandika na kufungua data nyeti. Funguo hizi zimepangwa ndani ya pete za funguo, kuruhusu usimamizi wa muundo. Zaidi ya hayo, udhibiti wa ufikiaji unaweza kuundwa kwa usahihi, iwe kwa kiwango cha funguo binafsi au kwa pete nzima ya funguo, kuhakikisha kuwa ruhusa zinaendana kwa usahihi na mahitaji ya usalama.

Pete za funguo za KMS kwa default huundwa kama za kimataifa, ambayo inamaanisha kuwa funguo ndani ya pete hiyo zinapatikana kutoka eneo lolote. Hata hivyo, inawezekana kuunda pete maalum za funguo katika mikoa maalum.

Kiwango cha Ulinzi wa Funguo

  • Funguo za programu: Funguo za programu zina undwa na kusimamiwa na KMS kabisa katika programu. Funguo hizi hazilindwi na moduli yoyote ya usalama wa vifaa (HSM) na zinaweza kutumika kwa majaribio na maendeleo. Funguo za programu hazipendekezwi kwa matumizi ya uzalishaji kwa sababu zinatoa usalama wa chini na zinaweza kushambuliwa.
  • Funguo za wingu: Funguo za wingu zina undwa na kusimamiwa na KMS katika wingu kwa kutumia miundombinu inayopatikana kwa urahisi na ya kuaminika. Funguo hizi zinalindwa na HSMs, lakini HSMs hazijitolea kwa mteja maalum. Funguo za wingu zinafaa kwa matumizi mengi ya uzalishaji.
  • Funguo za nje: Funguo za nje zina undwa na kusimamiwa nje ya KMS, na zinaingizwa katika KMS kwa matumizi katika shughuli za kificho. Funguo za nje zinaweza kuhifadhiwa katika moduli ya usalama wa vifaa (HSM) au maktaba ya programu, kulingana na mapendeleo ya mteja.

Malengo ya Funguo

  • Kuandika/kufungua kwa kutumia funguo sawa: Inatumika ku andika na kufungua data kwa kutumia funguo moja kwa shughuli zote mbili. Funguo sawa ni za haraka na zenye ufanisi kwa kuandika na kufungua kiasi kikubwa cha data.
  • Imepokelewa: cryptoKeys.encrypt, cryptoKeys.decrypt
  • Saini isiyo sawa: Inatumika kwa mawasiliano salama kati ya pande mbili bila kushiriki funguo. Funguo zisizo sawa zinakuja katika jozi, zinajumuisha funguo ya umma na funguo ya faragha. Funguo ya umma inashirikiwa na wengine, wakati funguo ya faragha inahifadhiwa kwa siri.
  • Imepokelewa: cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey
  • Kufungua isiyo sawa: Inatumika kuthibitisha uhalali wa ujumbe au data. Sahihi ya dijitali inaundwa kwa kutumia funguo ya faragha na inaweza kuthibitishwa kwa kutumia funguo ya umma inayolingana.
  • Imepokelewa: cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey
  • Saini ya MAC: Inatumika kuhakikisha uaminifu na uhalali wa data kwa kuunda msimbo wa uthibitishaji wa ujumbe (MAC) kwa kutumia funguo ya siri. HMAC inatumika mara nyingi kwa uthibitishaji wa ujumbe katika itifaki za mtandao na programu za programu.
  • Imepokelewa: cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify

Kipindi cha Mzunguko & Kipindi kilichopangwa kwa uharibifu

Kwa default, kila siku 90 lakini inaweza kubadilishwa kwa urahisi na kikamilifu.

Kipindi cha "Kimepangwa kwa uharibifu" ni wakati tangu mtumiaji aombe kufuta funguo na hadi funguo hiyo ifutwe. Haliwezi kubadilishwa baada ya funguo kuundwa (default siku 1).

Toleo Kuu

Kila funguo ya KMS inaweza kuwa na matoleo kadhaa, moja yao lazima iwe ya default, hii itakuwa ile inayotumika wakati toleo halijabainishwa wakati wa kuingiliana na funguo za KMS.

Uhesabuji

Kuwa na ruhusa ya kuorodhesha funguo hii ndiyo njia unavyoweza kuzipata:

bash
# List the global keyrings available
gcloud kms keyrings list --location global
gcloud kms keyrings get-iam-policy <KEYRING>

# List the keys inside a keyring
gcloud kms keys list --keyring <KEYRING> --location <global/other_locations>
gcloud kms keys get-iam-policy <KEY>

# Encrypt a file using one of your keys
gcloud kms encrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

# Decrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

Kuinua Mamlaka

GCP - KMS Privesc

Baada ya Kutekeleza

GCP - KMS Post Exploitation

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks