GCP - Cloud Build Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Build ni jukwaa la CI/CD lililodhibitiwa ambalo linautomate mchakato wa kujenga na kutolewa kwa programu, likijumuisha na hifadhi za msimbo wa chanzo na kusaidia lugha nyingi za programu. In aruhusu waendelezaji kujenga, kujaribu, na kutekeleza msimbo kiotomatiki huku ikitoa kubadilika kubinafsisha hatua za kujenga na mchakato.
Kila Cloud Build Trigger ni husika na Hifadhi ya Cloud au imeunganishwa moja kwa moja na hifadhi ya nje (Github, Bitbucket na Gitlab).
Singeweza kuona njia yoyote ya kuiba token ya Github/Bitbucket kutoka hapa au kutoka Hifadhi za Cloud kwa sababu wakati hifadhi inapopakuliwa inafikiwa kupitia URL ya https://source.cloud.google.com/ na Github haiwezi kufikiwa na mteja.
Cloud Build inaweza kuanzishwa ikiwa:
Push to a branch: Tafadhali eleza tawi
Push a new tag: Tafadhali eleza tag
Pull request: Tafadhali eleza tawi linalopokea PR
Manual Invocation
Pub/Sub message: Tafadhali eleza mada
Webhook event: Itatoa URL ya HTTPS na ombi lazima liidhinishwe kwa siri
Kuna chaguzi 3:
A yaml/json ikiashiria amri za kutekeleza. Kawaida: /cloudbuild.yaml
Moja tu ambayo inaweza kuainishwa “inline” katika konso ya wavuti na katika cli
Chaguo la kawaida zaidi
Husika kwa ufikiaji usio na uthibitisho
A Dockerfile ya kujenga
A Buildpack ya kujenga
Akaunti ya Huduma ina cloud-platform
scope, hivyo inaweza kutumia haki zote. Ikiwa hakuna SA imeainishwa (kama wakati wa kuwasilisha) SA ya default <proj-number>@cloudbuild.gserviceaccount.com
itatumika.
Kwa kawaida hakuna ruhusa zinazotolewa lakini ni rahisi sana kuzipatia:
Inawezekana kuunda Cloud Build ili ihitaji idhini kwa ajili ya utekelezaji wa kujenga (imezimwa kwa kawaida).
Wakati trigger ni PR kwa sababu mtu yeyote anaweza kufanya PRs kwa hifadhi za umma itakuwa hatari sana tu kuruhusu utekelezaji wa trigger na PR yoyote. Kwa hivyo, kwa kawaida, utekelezaji utakuwa otomatiki kwa wamiliki na washiriki, na ili kutekeleza trigger na PR za watumiaji wengine mmiliki au mshiriki lazima aweke maoni /gcbrun
.
Connections zinaweza kuundwa juu ya:
GitHub: Itatoa ombi la OAuth linaloomba ruhusa za kupata token ya Github ambayo itahifadhiwa ndani ya Meneja wa Siri.
GitHub Enterprise: Itahitaji kusakinisha GithubApp. Token ya uthibitishaji kutoka kwa mwenyeji wako wa GitHub Enterprise itaundwa na kuhifadhiwa katika mradi huu kama siri ya Meneja wa Siri.
GitLab / Enterprise: Unahitaji kutoa token ya ufikiaji wa API na token ya ufikiaji wa API ya Kusoma ambayo itahifadhiwa katika Meneja wa Siri.
Mara tu muunganisho unapoundwa, unaweza kuutumia kuunganisha hifadhi ambazo akaunti ya Github ina ufikiaji.
Chaguo hili linapatikana kupitia kitufe:
Kumbuka kwamba hifadhi zilizounganishwa kwa njia hii zinapatikana tu katika Triggers zinazotumia kizazi cha 2.
Hii si sawa na connection
. Hii inaruhusu njia tofauti za kupata ufikiaji wa hifadhi ya Github au Bitbucket lakini haiundui kituo cha muunganisho, lakini inaunda kituo cha hifadhi (cha kizazi cha 1).
Chaguo hili linapatikana kupitia kitufe:
Wakati mwingine Cloud Build itaunda hifadhi mpya kuhifadhi faili za trigger. Hii inatokea kwa mfano katika mfano ambao GCP inatoa na:
A Storage bucket called security-devbox_cloudbuild imeundwa kuhifadhi .tgz
yenye faili zitakazotumika.
Install gcloud ndani ya cloud build:
Unaweza kupata habari nyeti katika usanidi wa kujenga na kumbukumbu.
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)