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 είναι μια διαχειριζόμενη πλατφόρμα CI/CD που αυτοματοποιεί τη διαδικασία κατασκευής και κυκλοφορίας λογισμικού, ενσωματώνοντας με αποθετήρια κώδικα και υποστηρίζοντας μια ευρεία γκάμα γλωσσών προγραμματισμού. Επιτρέπει στους προγραμματιστές να κατασκευάζουν, να δοκιμάζουν και να αναπτύσσουν κώδικα αυτόματα ενώ παρέχει ευελιξία για την προσαρμογή των βημάτων και των ροών εργασίας κατασκευής.
Κάθε Trigger Cloud Build είναι σχετικό με ένα Cloud Repository ή συνδεδεμένο απευθείας με ένα εξωτερικό αποθετήριο (Github, Bitbucket και Gitlab).
Δεν μπόρεσα να δω κανέναν τρόπο να κλέψω το token Github/Bitbucket από εδώ ή από τα Cloud Repositories γιατί όταν το repo κατεβαίνει, προσπελάζεται μέσω ενός https://source.cloud.google.com/ URL και το Github δεν προσπελάζεται από τον πελάτη.
Το Cloud Build μπορεί να ενεργοποιηθεί αν:
Push σε ένα branch: Προσδιορίστε το branch
Push ενός νέου tag: Προσδιορίστε το tag
Pull request: Προσδιορίστε το branch που λαμβάνει το PR
Χειροκίνητη κλήση
Μήνυμα Pub/Sub: Προσδιορίστε το θέμα
Webhook event: Θα εκθέσει ένα HTTPS URL και το αίτημα πρέπει να είναι αυθεντικοποιημένο με ένα μυστικό
Υπάρχουν 3 επιλογές:
Ένα yaml/json που προσδιορίζει τις εντολές προς εκτέλεση. Συνήθως: /cloudbuild.yaml
Μόνο μία που μπορεί να προσδιοριστεί “inline” στην web κονσόλα και στο cli
Η πιο κοινή επιλογή
Σχετική για μη αυθεντικοποιημένη πρόσβαση
Ένα Dockerfile για κατασκευή
Ένα Buildpack για κατασκευή
Ο Λογαριασμός Υπηρεσίας έχει το πεδίο cloud-platform
, επομένως μπορεί να χρησιμοποιήσει όλα τα προνόμια. Αν δεν προσδιοριστεί SA (όπως όταν γίνεται υποβολή) θα χρησιμοποιηθεί ο προεπιλεγμένος SA <proj-number>@cloudbuild.gserviceaccount.com
.
Από προεπιλογή δεν δίνονται δικαιώματα αλλά είναι αρκετά εύκολο να του δοθούν μερικά:
Είναι δυνατόν να ρυθμιστεί ένα Cloud Build να απαιτεί εγκρίσεις για τις εκτελέσεις κατασκευής (απενεργοποιημένο από προεπιλογή).
Όταν το trigger είναι PR επειδή ο καθένας μπορεί να εκτελεί PRs σε δημόσια αποθετήρια θα ήταν πολύ επικίνδυνο να επιτρέπεται η εκτέλεση του trigger με οποιοδήποτε PR. Επομένως, από προεπιλογή, η εκτέλεση θα είναι αυτόματη μόνο για τους ιδιοκτήτες και τους συνεργάτες, και προκειμένου να εκτελεστεί το trigger με PR άλλων χρηστών, ένας ιδιοκτήτης ή συνεργάτης πρέπει να σχολιάσει /gcbrun
.
Οι συνδέσεις μπορούν να δημιουργηθούν μέσω:
GitHub: Θα εμφανίσει ένα OAuth prompt ζητώντας άδειες για να αποκτήσει ένα Github token που θα αποθηκευτεί μέσα στον Secret Manager.
GitHub Enterprise: Θα ζητήσει να εγκατασταθεί μια GithubApp. Ένα authentication token από τον host GitHub Enterprise σας θα δημιουργηθεί και θα αποθηκευτεί σε αυτό το έργο ως μυστικό του Secret Manager.
GitLab / Enterprise: Πρέπει να παρέχετε το API access token και το Read API access token που θα αποθηκευτούν στον Secret Manager.
Αφού δημιουργηθεί μια σύνδεση, μπορείτε να τη χρησιμοποιήσετε για να συνδέσετε αποθετήρια στα οποία έχει πρόσβαση ο λογαριασμός Github.
Αυτή η επιλογή είναι διαθέσιμη μέσω του κουμπιού:
Σημειώστε ότι τα αποθετήρια που συνδέονται με αυτή τη μέθοδο είναι μόνο διαθέσιμα σε Triggers που χρησιμοποιούν 2η γενιά.
Αυτό δεν είναι το ίδιο με μια connection
. Αυτό επιτρέπει διαφορετικούς τρόπους για να αποκτήσετε πρόσβαση σε ένα Github ή Bitbucket αποθετήριο αλλά δεν δημιουργεί ένα αντικείμενο σύνδεσης, αλλά δημιουργεί ένα αντικείμενο αποθετηρίου (1ης γενιάς).
Αυτή η επιλογή είναι διαθέσιμη μέσω του κουμπιού:
Μερικές φορές το Cloud Build θα δημιουργήσει μια νέα αποθήκευση για να αποθηκεύσει τα αρχεία για το trigger. Αυτό συμβαίνει για παράδειγμα στο παράδειγμα που προσφέρει το GCP με:
Ένα Storage bucket με το όνομα security-devbox_cloudbuild δημιουργείται για να αποθηκεύσει ένα .tgz
με τα αρχεία που θα χρησιμοποιηθούν.
Εγκαταστήστε το gcloud μέσα στο cloud build:
Μπορείτε να βρείτε ευαίσθητες πληροφορίες σε ρυθμίσεις κατασκευής και αρχεία καταγραφής.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)