TravisCI Security
Last updated
Last updated
Το Travis CI είναι ένα φιλοξενούμενο ή εντός εγκατεστημένο υπηρεσία συνεχούς ενσωμάτωσης που χρησιμοποιείται για την κατασκευή και δοκιμή λογισμικών έργων που φιλοξενούνται σε διάφορες διαφορετικές πλατφόρμες git.
Για να εκτελέσετε μια επίθεση πρέπει πρώτα να γνωρίζετε πώς να ενεργοποιήσετε μια κατασκευή. Από προεπιλογή, το TravisCI θα ενεργοποιήσει μια κατασκευή σε πιέσεις και αιτήσεις ενσωμάτωσης:
Αν έχετε πρόσβαση στην web εφαρμογή μπορείτε να ορίσετε cron jobs για την εκτέλεση της κατασκευής, αυτό θα μπορούσε να είναι χρήσιμο για τη διατήρηση ή την ενεργοποίηση μιας κατασκευής:
Φαίνεται ότι δεν είναι δυνατό να ορίσετε cron jobs μέσα στο .travis.yml
σύμφωνα με αυτό.
Το TravisCI απενεργοποιεί από προεπιλογή τον κοινοποίηση μεταβλητών περιβάλλοντος με PR που προέρχονται από τρίτα μέρη, αλλά κάποιος ενδέχεται να το ενεργοποιήσει και τότε θα μπορούσατε να δημιουργήσετε PR στο αποθετήριο και να εξαγάγετε τα μυστικά:
Όπως εξηγείται στη σελίδα βασικών πληροφοριών, υπάρχουν 2 τύποι μυστικών. Τα μυστικά μεταβλητές περιβάλλοντος (τα οποία εμφανίζονται στην ιστοσελίδα) και τα προσαρμοσμένα κρυπτογραφημένα μυστικά, τα οποία αποθηκεύονται μέσα στο αρχείο .travis.yml
ως base64 (σημειώστε ότι και τα δύο ως κρυπτογραφημένα θα τελειώσουν ως μεταβλητές περιβάλλοντος στις τελικές μηχανές).
Για να απαριθμήσετε τα μυστικά που έχουν ρυθμιστεί ως Μεταβλητές Περιβάλλοντος πηγαίνετε στις ρυθμίσεις του έργου και ελέγξτε τη λίστα. Ωστόσο, σημειώστε ότι όλες οι μεταβλητές περιβάλλοντος του έργου που έχουν οριστεί εδώ θα εμφανιστούν κατά την ενεργοποίηση μιας κατασκευής.
Για να απαριθμήσετε τα προσαρμοσμένα κρυπτογραφημένα μυστικά το καλύτερο που μπορείτε να κάνετε είναι να ελέγξετε το αρχείο .travis.yml
.
Για να απαριθμήσετε τα κρυπτογραφημένα αρχεία μπορείτε να ελέγξετε τα .enc
αρχεία στο αποθετήριο, για γραμμές παρόμοιες με openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
στο αρχείο ρυθμίσεων, ή για κρυπτογραφημένα iv και κλειδιά στις Μεταβλητές Περιβάλλοντος όπως:
Παράδειγμα κατασκευής με αντίστροφη κέλυφος που τρέχει σε Windows/Mac/Linux
Παράδειγμα κατασκευής που διαρρέει το περιβάλλον κωδικοποιημένο σε base64 στα logs
Αν ένας επιτιθέμενος βρεθεί σε ένα περιβάλλον που χρησιμοποιεί TravisCI enterprise (περισσότερες πληροφορίες σχετικά με το τι είναι αυτό στις βασικές πληροφορίες), θα μπορεί να ενεργοποιήσει κατασκευές στον Εργάτη. Αυτό σημαίνει ότι ένας επιτιθέμενος θα μπορεί να μετακινηθεί πλευρικά σε αυτό τον διακομιστή από τον οποίο θα μπορούσε να:
δραπετεύσει στον κεντρικό υπολογιστή;
κινδυνεύσει το kubernetes;
κινδυνεύσει άλλες μηχανές που τρέχουν στο ίδιο δίκτυο;
κινδυνεύσει νέα διαπιστευτήρια cloud;