Basic TravisCI Information

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Access

Το TravisCI ενσωματώνεται απευθείας με διάφορες πλατφόρμες git όπως το Github, το Bitbucket, το Assembla και το Gitlab. Θα ζητήσει από τον χρήστη να δώσει στο TravisCI άδειες για να έχει πρόσβαση στα αποθετήρια που θέλει να ενσωματώσει με το TravisCI.

Για παράδειγμα, στο Github θα ζητήσει τις εξής άδειες:

  • user:email (μόνο για ανάγνωση)
  • read:org (μόνο για ανάγνωση)
  • repo: Παρέχει πρόσβαση για ανάγνωση και εγγραφή στον κώδικα, τις καταστάσεις commit, τους συνεργάτες και τις καταστάσεις ανάπτυξης για δημόσια και ιδιωτικά αποθετήρια και οργανισμούς.

Encrypted Secrets

Environment Variables

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

Είναι δυνατόν να υποδείξετε τις κλάδους στους οποίους θα είναι διαθέσιμα τα μυστικά (κατά προεπιλογή όλα) και επίσης αν το TravisCI θα πρέπει να κρύψει την τιμή του αν εμφανιστεί στα logs (κατά προεπιλογή θα το κάνει).

Custom Encrypted Secrets

Για κάθε αποθετήριο το TravisCI δημιουργεί ένα RSA keypair, κρατά το ιδιωτικό και καθιστά διαθέσιμο το δημόσιο κλειδί του αποθετηρίου σε εκείνους που έχουν πρόσβαση στο αποθετήριο.

Μπορείτε να αποκτήσετε πρόσβαση στο δημόσιο κλειδί ενός αποθετηρίου με:

travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test

Τότε, μπορείτε να χρησιμοποιήσετε αυτή τη ρύθμιση για να κρυπτογραφήσετε μυστικά και να τα προσθέσετε στο .travis.yaml. Τα μυστικά θα αποκρυπτογραφηθούν όταν εκτελείται η κατασκευή και θα είναι προσβάσιμα στις μεταβλητές περιβάλλοντος.

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

Προσαρμοσμένα Κρυπτογραφημένα Αρχεία

Με τον ίδιο τρόπο όπως πριν, το TravisCI επιτρέπει επίσης να κρυπτογραφήσετε αρχεία και στη συνέχεια να τα αποκρυπτογραφήσετε κατά τη διάρκεια της κατασκευής:

travis encrypt-file super_secret.txt -r carlospolop/t-ci-test

encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption

Please add the following to your build script (before_install stage in your .travis.yml, for instance):

openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d

Pro Tip: You can add it automatically by running with --add.

Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.

Σημειώστε ότι κατά την κρυπτογράφηση ενός αρχείου, 2 Env Variables θα ρυθμιστούν μέσα στο repo όπως:

TravisCI Enterprise

Το Travis CI Enterprise είναι μια on-prem έκδοση του Travis CI, την οποία μπορείτε να αναπτύξετε στην υποδομή σας. Σκεφτείτε την ‘server’ έκδοση του Travis CI. Η χρήση του Travis CI σας επιτρέπει να ενεργοποιήσετε ένα εύχρηστο σύστημα Continuous Integration/Continuous Deployment (CI/CD) σε ένα περιβάλλον, το οποίο μπορείτε να ρυθμίσετε και να ασφαλίσετε όπως θέλετε.

Το Travis CI Enterprise αποτελείται από δύο κύρια μέρη:

  1. TCI υπηρεσίες (ή TCI Core Services), υπεύθυνες για την ενσωμάτωση με συστήματα ελέγχου εκδόσεων, την εξουσιοδότηση κατασκευών, τον προγραμματισμό εργασιών κατασκευής, κ.λπ.
  2. TCI Worker και εικόνες περιβάλλοντος κατασκευής (επίσης ονομάζονται OS images).

Οι υπηρεσίες TCI Core απαιτούν τα εξής:

  1. Μια PostgreSQL11 (ή νεότερη) βάση δεδομένων.
  2. Μια υποδομή για την ανάπτυξη ενός Kubernetes cluster; μπορεί να αναπτυχθεί σε ένα server cluster ή σε μια μόνο μηχανή αν απαιτείται.
  3. Ανάλογα με τη ρύθμισή σας, μπορεί να θέλετε να αναπτύξετε και να ρυθμίσετε ορισμένα από τα συστατικά μόνοι σας, π.χ., RabbitMQ - δείτε το Setting up Travis CI Enterprise για περισσότερες λεπτομέρειες.

Ο TCI Worker απαιτεί τα εξής:

  1. Μια υποδομή όπου μια εικόνα docker που περιέχει τον Worker και μια συνδεδεμένη εικόνα κατασκευής μπορεί να αναπτυχθεί.
  2. Συνδεσιμότητα με ορισμένα συστατικά των υπηρεσιών Travis CI Core - δείτε το Setting Up Worker για περισσότερες λεπτομέρειες.

Η ποσότητα των αναπτυγμένων TCI Worker και εικόνων περιβάλλοντος κατασκευής OS θα καθορίσει τη συνολική ταυτόχρονη ικανότητα ανάπτυξης του Travis CI Enterprise στην υποδομή σας.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks