GH Actions - Cache Poisoning

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

  • Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!

  • Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs

  • Συμμετάσχετε 💬 στην ομάδα Discord](https://discord.gg/hRep4RUj7f) ή στην ομάδα telegram](https://t.me/peass) ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.

  • Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.

Για περισσότερες λεπτομέρειες, ανατρέξτε στην αρχική ανάρτηση https://scribesecurity.com/blog/github-cache-poisoning/

Προσβολή Προσωρινής Αποθήκευσης

Η ενέργεια Git action/cache εισάγει έναν μηχανισμό προσωρινής αποθήκευσης στη διαδικασία Συνεχούς Ενσωμάτωσης (CI), περιλαμβάνοντας δύο κρίσιμες φάσεις:

  1. Εκτέλεση Ενέργειας: Αυτή η φάση περιλαμβάνει την αναζήτηση και την ανάκτηση προσωρινών δεδομένων κατά τη διάρκεια της εκτέλεσης της CI. Η αναζήτηση χρησιμοποιεί ένα μοναδικό κλειδί προσωρινής αποθήκευσης, με δύο αποτελέσματα:

  • Επιτυχία ανάκτησης από την προσωρινή αποθήκευση: Τα ζητούμενα δεδομένα βρίσκονται στην προσωρινή αποθήκευση και ανακτώνται για άμεση χρήση.

  • Αποτυχία ανάκτησης από την προσωρινή αποθήκευση: Δεν βρέθηκαν αντίστοιχα δεδομένα στην προσωρινή αποθήκευση, με αποτέλεσμα τη νέα λήψη των απαιτούμενων αρχείων και καταλόγων, παρόμοια με μια αίτηση για πρώτη φορά.

  1. Ενέργεια Μετά τη Ροή Εργασίας: Αυτή η φάση αφιερώνεται στην προσωρινή αποθήκευση δεδομένων μετά τη ροή της CI. Ειδικότερα, εάν συμβεί αποτυχία ανάκτησης από την προσωρινή αποθήκευση κατά τη διάρκεια της εκτέλεσης της ενέργειας, τηρείται η τρέχουσα κατάσταση των καθορισμένων καταλόγων με τη χρήση του παρεχόμενου κλειδιού. Αυτή η διαδικασία είναι αυτοματοποιημένη και δεν απαιτεί εμφανή κλήση.

Μέτρα Ασφαλείας: Απομόνωση Προσωρινής Αποθήκευσης και Περιορισμοί Πρόσβασης

Για τη διατήρηση της ασφάλειας και την εξασφάλιση της απομόνωσης της προσωρινής αποθήκευσης, επιβάλλονται περιορισμοί πρόσβασης, δημιουργώντας μια λογική διαχωρισμένη περιοχή μεταξύ διαφορετικών κλαδιών. Για παράδειγμα, μια προσωρινή αποθήκευση που δημιουργείται για το κλαδί Feature-A (με βάση το κύριο κλαδί) δεν θα είναι προσβάσιμη από μια αίτηση εξαγωγής για το κλαδί Feature-B (επίσης με βάση το κύριο κλαδί).

Η ενέργεια προσωρινής αποθήκευσης ακολουθεί μια συγκεκριμένη σειρά αναζήτησης:

  • Αρχικά αναζητά τις επιτυχημένες ανακτήσεις από το ίδιο κλαδί με τη ροή εργασίας.

  • Εάν αποτύχει, επεκτείνει την αναζήτηση στο γονικό κλαδί και σε άλλα ανώτερα κλαδιά.

Σημαντικό είναι ότι η πρόσβαση στην προσωρινή αποθήκευση περιορίζεται στο κλαδί, επεκτείνοντας την περιοχή σε όλες τις ροές εργασίας και εκτελέσεις ενός συγκεκριμένου κλαδιού. Επιπλέον, η GitHub επιβάλλει μια πολιτική μόνο για ανάγνωση για τις καταχωρήσεις της προσωρινής αποθήκευσης αφού δημιουργηθούν, απαγορεύοντας οποι

Last updated