Η εννοια του "Το Livepatch δεν είναι κάτι καινούργιο και δεν έχει καν εφαρμοστεί σε Linux εδώ και μερικά χρόνια, αφού οι Red Hat, Oracle, Canonical και SUSE είναι μερικές από αυτές που έχουν εφαρμόσει αυτήν την τεχνολογία για τις διανομές τους.
Και παρόλο που έχουν καθιερωθεί ως μια εξαιρετική λύση, αυτό Συνήθως εξαρτάται από κλειστές διαδικασίες στη δημιουργία των μπαλωμάτων, περιορισμός της διαφάνειας και της προσαρμοστικότητας. Προηγούμενα έργα ανοιχτού κώδικα, όπως το elivepatch του Gentoo και το linux-livepatching του Debian, έχουν χαρακτηριστεί από μεγάλες περιόδους αδράνειας ή στασιμότητας στις πρωτότυπες φάσεις τους.
Αντιμέτωποι με αυτή τη σειρά προβλημάτων που εξακολουθούν να αντιμετωπίζουν τη διαδικασία δημιουργίας, μεταγλώττισης, ανάπτυξης και εγκατάστασης ενεργών ενημερώσεων κώδικα του πυρήνα Linux, Το TuxTape παρουσιάζεται ως λύση ανεξάρτητο, σχεδιασμένο για να είναι προσαρμόσιμο σε οποιαδήποτε έκδοση του πυρήνα Linux, χωρίς να περιορίζεται σε πακέτα ειδικά για κάθε διανομή.
TuxTape, μια λύση για ζωντανή ενημέρωση κώδικα στο Linux
Το TuxTape, είναι μια νέα λύση ότι επιτρέπει στους διαχειριστές συστημάτων εφαρμόστε τη δική σας υποδομή για να δημιουργήσετε, να συναρμολογήσετε και να αναπτύξετε ζωντανές ενημερώσεις κώδικα στον πυρήνα του Linux.
Ο κύριος στόχος από το TuxTape είναι να προσφέρει ένα ολοκληρωμένο σύστημα που αυτοματοποιεί τη δημιουργία και την παράδοση ζωντανών ενημερώσεων κώδικα. Η αρχιτεκτονική του επιτρέπει τη δημιουργία ενημερώσεων κώδικα συμβατών με υπάρχοντα εργαλεία, όπως το kpatch της Red Hat, το kGraft της SUSE, το Ksplice της Oracle και άλλες καθολικές λύσεις.
Τα μπαλώματα Υλοποιούνται ως λειτουργικές μονάδες πυρήνα που αντικαθιστούν τις υπάρχουσες συναρτήσεις χρησιμοποιώντας το υποσύστημα ftrace, το οποίο ανακατευθύνει την εκτέλεση στις νέες λειτουργίες που περιλαμβάνονται στη μονάδα. Επιπλέον, το TuxTape έχει τη δυνατότητα να παρακολουθεί ενημερώσεις ευπάθειας που δημοσιεύονται στη λίστα αλληλογραφίας linux-cve-announce και στα αποθετήρια Git.

Χρησιμοποιώντας αυτές τις πληροφορίες, το σύστημα ταξινομεί τα τρωτά σημεία με βάση τη σοβαρότητα, αξιολογεί τη δυνατότητα εφαρμογής κάθε ενημέρωσης κώδικα μέσω μιας λεπτομερούς ανάλυσης του προφίλ κατασκευής του πυρήνα και απορρίπτει εκείνες τις διορθώσεις που δεν επηρεάζουν το περιβάλλον στόχο. Αυτή η επιλεκτική προσέγγιση διασφαλίζει ότι εφαρμόζονται μόνο σχετικές αλλαγές, ελαχιστοποιώντας τον κίνδυνο και βελτιστοποιώντας την απόδοση.
Στοιχεία και αρχιτεκτονική του έργου
Το κιτ TuxTape Αποτελείται από πολλαπλά ενσωματωμένα εργαλεία που κυμαίνονται από την ανίχνευση έως τη ζωντανή ενημέρωση κώδικα:
- Σύστημα παρακολούθησης ευπάθειας: Αυτό είναι υπεύθυνο για τον εντοπισμό και την καταγραφή νέων απειλών σε πραγματικό χρόνο.
- Δημιουργός βάσης δεδομένων: Είναι υπεύθυνο για την παροχή πληροφοριών σχετικά με ενημερώσεις κώδικα και ευπάθειες σε μια δομημένη βάση δεδομένων.
- Διακομιστής μεταδεδομένων με gRPC: Διαχειρίζεται την επικοινωνία και τον συντονισμό των υπηρεσιών που σχετίζονται με τη δημιουργία ενημερώσεων κώδικα.
- Σύστημα αποστολής και κατασκευή πυρήνα: Διευκολύνει τη μεταγλώττιση του πυρήνα σε συγκεκριμένες διαμορφώσεις δημιουργώντας ένα λεπτομερές προφίλ μεταγλώττισης.
- Γεννήτρια και αρχείο ενημέρωσης κώδικα: Μετατρέπει τις κανονικές ενημερώσεις κώδικα σε μονάδες πυρήνα με δυνατότητα δυναμικής φόρτωσης.
- Πελάτης για τελικούς κεντρικούς υπολογιστές: Επιτρέπει τη λήψη και την εφαρμογή patches σε συστήματα παραγωγής.
- Διαδραστική διεπαφή (ταμπλό): Παρέχει μια κονσόλα διαχείρισης για τον χρήστη όπου μπορεί να ελέγχει, να διαχειρίζεται και να δημιουργεί ζωντανές ενημερώσεις κώδικα με βάση τις ληφθείσες πηγές.
Αξίζει να αναφέρουμε ότι το έργο και η ανάπτυξη του TuxTape βρίσκεται αυτή τη στιγμή σε πειραματική φάση πρωτοτύπου, επομένως προς το παρόν προτείνεται μόνο για αρχική δοκιμή με τα διάφορα εξαρτήματά του.
Για όσους ενδιαφέρονται να δοκιμάσουν το έργο, η δοκιμή συνιστάται επί του παρόντος μόνο σε συγκεκριμένα εργαλεία όπως:
- tuxtape-cve-parser: Αναλύει πληροφορίες ευπάθειας και δημιουργεί μια βάση δεδομένων ενημέρωσης κώδικα.
- tuxtape-server: Υλοποιεί μια διεπαφή gRPC για δημιουργία και διανομή ενημερωμένων εκδόσεων κώδικα.
- Tuxtape-kernel-builder: Είναι υπεύθυνος για την κατασκευή του πυρήνα με μια δεδομένη διαμόρφωση και τη δημιουργία του αντίστοιχου προφίλ μεταγλώττισης.
- tuxtape-ταμπλό: Παρέχει μια διεπαφή κονσόλας για την ανασκόπηση και τη δημιουργία ζωντανών ενημερώσεων κώδικα με βάση τις ληφθείσες ενημερώσεις κώδικα προέλευσης.
Τέλος, είναι σημαντικό να αναφέρουμε ότι το έργο αναπτύσσεται στο Rust και διανέμεται με την άδεια Apache 2.0. Μπορείτε να συμβουλευτείτε περισσότερες πληροφορίες ή τον πηγαίο κώδικα αυτού, από τον ακόλουθο σύνδεσμο.