Μετά από μια πρόσφατη ευπάθεια στο SSH, το Systemd μειώνει τις εξαρτήσεις
Πρόσφατο backdoor σε sshd/xz (CVE-2024-3094) αποκαλύπτει κινδύνους στη βιβλιοθήκη libsystemd του systemd, προκαλώντας συζήτηση για μείωση των εξαρτήσεων.
Μετά τα πρόσφατα γεγονότα, έχει προκύψει μια σημαντική συζήτηση σχετικά με τις ευπάθειες στις οποίες το systemd εμπλέκεται έμμεσα, ιδιαίτερα κατά τη διάρκεια του περιστατικού backdoor sshd/xz (CVE-2024-3094), που ανέδειξε τους πιθανούς κινδύνους ασφάλειας που συνδέονται με τις εξαρτήσεις της libsystemd, μιας βιβλιοθήκης ζωτικής σημασίας για τη σύνδεση υπηρεσιών με το systemd.
Το ζήτημα έγκειται στην παρατήρηση ότι η libsystemd, καθώς συνδέεται με όλες τις υπηρεσίες systemd και οποιεσδήποτε τρίτες υπηρεσίες που επιθυμούν να επικοινωνήσουν με το systemd, εισάγει επιπλέον εξαρτήσεις που μπορεί να αποτελέσουν πηγές ευπαθειών.
Η προτεινόμενη λύση για αυτό το ζήτημα ευπάθειας είναι η ουσιαστική μείωση των εξαρτήσεων του libsystemd ώστε να περιλαμβάνει μόνο τη libc, τη standard βιβλιοθήκη C, μειώνοντας έτσι την επιφάνεια επίθεσης για πιθανές απειλές ασφαλείας. Οι τρέχουσες υλοποιήσεις περιλαμβάνουν αρκετές άλλες βιβλιοθήκες, οι οποίες μπορεί να μην είναι απαραίτητες για τη λειτουργία των βασικών λειτουργιών του libsystemd.
Ως απάντηση σε αυτές τις ανησυχίες, έχει υποβληθεί αίτημα για προσθήκη λειτουργίας στο systemd με στόχο τη μείωση των εξαρτήσεων του libsystemd μόνο στη βιβλιοθήκη libc. Ο λόγος πίσω από αυτό το αίτημα είναι να περιοριστεί το libsystemd στις βασικές του λειτουργίες, μειώνοντας έτσι τον κίνδυνο τρωτών σημείων που θα μπορούσαν να θέσουν σε κίνδυνο την ασφάλεια του συστήματος.
Ωστόσο, αυτή η προσέγγιση μπορεί να περιλαμβάνει την αναδιοργάνωση του libsystemd σε πολλαπλές βιβλιοθήκες, καθεμία από τις οποίες καλύπτει συγκεκριμένα API, και τη διασφάλιση ότι μόνο οι αναγκαίες εξαρτήσεις περιλαμβάνονται εκεί που χρειάζονται πραγματικά.
Ο Lennart Poettering, ένας βασικός παράγοντας πίσω από το systemd, αντιμετώπισε τις ανησυχίες αναδεικνύοντας πρόσφατες αλλαγές που μειώνουν μερικά από αυτά τα ζητήματα ασφαλείας. Σύμφωνα με τον ίδιο, το libsystemd δεν απαιτεί πλέον βιβλιοθήκες συμπίεσης ως αυστηρές εξαρτήσεις στην τελευταία κύρια έκδοση του git.
Επιπλέον, γίνονται σχέδια για την κατάργηση της libgcrypt ως αναγκαστικής εξάρτησης, διευκολύνοντας περαιτέρω το libsystemd και ενισχύοντας την ασφάλεια του συστήματος. Επιπρόσθετα, σημειώθηκε ότι το sshd έχει υλοποιήσει τη συνάρτηση sd_notify() ανεξάρτητα, μια κίνηση που ο Poettering συνιστά για έργα τέτοιας φύσης.
Τέλος, η συζήτηση άγγιξε επίσης την πιθανότητα να εκτεθεί πληροφορία για τη δυναμική φόρτωση (dlopen) με τρόπο που να μπορεί να διαβαστεί από τα μεταδεδομένα ELF, προσφέροντας έναν πιο διαφανή τρόπο για την κατανόηση και διαχείριση των εξαρτήσεων.
Η πρόταση αυτή προτείνει μια συνεργατική προσέγγιση, ενθαρρύνοντας την εισφορά και την υποστήριξη από διάφορους φορείς στο οικοσύστημα του Linux, συμπεριλαμβανομένων των συντηρητών πακέτων και των κατασκευαστών συστημάτων.
Οι λεπτομέρειες ολόκληρης της συζήτησης και της πρότασης είναι διαθέσιμες για παρακολούθηση στο αποθετήριο GitHub του έργου.
