Η εφαρμογή των sudo και su στο Rust στοχεύει στη βελτίωση της ασφάλειας σε αυτά τα βοηθητικά προγράμματα
Πριν από τρεις μήνες, μοιραστήκαμε εδώ στο ιστολόγιο την είδηση της δημιουργίας του έργου "Sudo-rs" από την ISRG, η οποία είναι ο ιδρυτής του έργου Let's Encrypt και προωθεί την ανάπτυξη τεχνολογιών για την αύξηση της ασφάλειας στο Διαδίκτυο.
Σε αυτήν την δημοσίευση, μοιραστήκαμε ορισμένες από τις λεπτομέρειες και τα χαρακτηριστικά του έργου, το οποίο ουσιαστικά στοχεύει στη δημιουργία υλοποιήσεων των βοηθητικών προγραμμάτων SUDO και SU στο Rust (μπορείτε να συμβουλευτείτε την δημοσίευση στον ακόλουθο σύνδεσμο ).
Πρώτη σταθερή έκδοση του sudo-rs
Ο λόγος για την αναφορά αυτού είναι ότι η πρώτη σταθερή έκδοση του έργου Sudo-rs κυκλοφόρησε πρόσφατα , στην ανάπτυξη του οποίου συμμετείχαν μηχανικοί από τις Ferrous Systems και Tweede Golf με χρηματοδότηση από την Google, την Cisco και την Amazon Web Services.
Για όσους δεν είναι εξοικειωμένοι με το έργο "Sudo-rs", μπορώ να σας πω ότι σκοπός του είναι η ανάπτυξη εκδόσεων Rust των βοηθητικών προγραμμάτων SUDO και SU, σχεδιασμένων να εκτελούν εντολές εκ μέρους άλλων χρηστών, καθώς το SUDO είναι ένα βοηθητικό πρόγραμμα κονσόλας σε λειτουργικά συστήματα τύπου Unix για την εκτέλεση εντολών με τα προνόμια ενός άλλου χρήστη, από προεπιλογή του υπερχρήστη root.
Οι συναρτήσεις `sudo` και `su`, σε `sudo-rs`, γράφτηκαν από την αρχή στη Rust, μια γλώσσα προγραμματισμού που χρησιμοποιείται και συνιστάται όλο και περισσότερο στον κλάδο, καθώς έχει γίνει μια από τις κύριες γλώσσες προγραμματισμού για το Android και μάλιστα την υποστηρίζει ως δευτερεύουσα γλώσσα προγραμματισμού στον πυρήνα του Linux. Η Microsoft, από την πλευρά της, έχει επίσης αναφέρει επανειλημμένα την πρόθεσή της να ξαναγράψει τον πυρήνα και ορισμένες από τις βιβλιοθήκες των Windows που περιέχει.
Αναφέρεται ότι τα βοηθητικά προγράμματα είναι συμβατά με τα κλασικά βοηθητικά προγράμματα SUDO και SU όποτε είναι δυνατόν, επιτρέποντας τη χρήση του sudo-rs ως διαφανούς αντικατάστασης του SUDO σε τυπικά σενάρια που ταιριάζουν με την προεπιλεγμένη διαμόρφωση /etc/sudoers στο Ubuntu και το Debian. Το Sudo-rs έχει ήδη υλοποιηθεί στη θέση του παραδοσιακού πακέτου SUDO στην διανομή Wolfi Linux, με στόχο την παροχή του υψηλότερου επιπέδου ασφάλειας.
Η χρήση της γλώσσας Rust για την ανάπτυξη των SU και SUDO υποτίθεται ότι μειώνει τον κίνδυνο ευπαθειών που προκαλούνται από τον μη ασφαλή χειρισμό μνήμης και εξαλείφει την εμφάνιση σφαλμάτων, όπως η πρόσβαση σε μια περιοχή μνήμης μετά την απελευθέρωσή της και η εξάντληση της μνήμης στα όρια του buffer.
Επιπλέον, για να διασφαλιστεί το κατάλληλο επίπεδο ασφάλειας, το έργο έχει αναπτύξει μια εκτεταμένη σουίτα δοκιμών , η οποία επιτρέπει επίσης την παρακολούθηση της διατήρησης του απαιτούμενου επιπέδου συμβατότητας με το αρχικό βοηθητικό πρόγραμμα sudo. Για να μειωθεί η επιφάνεια επίθεσης και ο αριθμός των πιθανών τρωτών σημείων στα sudo-rs, αποφασίστηκε να εγκαταλειφθεί η εφαρμογή της σπάνια χρησιμοποιούμενης λειτουργικότητας sudo.
Μεταξύ των διαφορών με το SUDO , αναφέρεται ότι περιλαμβάνεται η προεπιλεγμένη λειτουργία use_pty, μεταξύ των ουσιαστικά μη υλοποιημένων λειτουργιών είναι το mail_badpass, καθώς και η συμβατότητα με το sendmail, ενώ οι λειτουργίες που δεν έχουν ακόμη υλοποιηθεί, αλλά θα προστεθούν στο μέλλον: το βοηθητικό πρόγραμμα sudoedit, οι λειτουργίες NOEXEC και NOINTERCEPT, η υποστήριξη για τη σύνδεση "προεπιλεγμένων" μπλοκ διαμόρφωσης σε μεμονωμένους χρήστες και εντολές, η δυνατότητα ελέγχου ταυτότητας χωρίς τη χρήση PAM.
Αξίζει να αναφέρουμε ότι αυτόν τον μήνα Σεπτέμβριο αναμένεται να μπορέσει να επιβεβαιωθεί η ποιότητα της υλοποίησης και ότι προγραμματίζεται και ανεξάρτητος έλεγχος της βάσης κώδικα sudo-rs.
Επιπλέον, αναφέρεται ότι η δεύτερη έκδοση έχει προγραμματιστεί να προσθέσει εργαλεία για εργασία σε περιβάλλοντα πολλαπλών χρηστών , όπως η λειτουργία NOEXEC, τα αρχεία καταγραφής ελέγχου, η δυνατότητα των sudoers να αντιστοιχίζουν κεντρικούς υπολογιστές και η υποστήριξη έως και 16 ομάδων χρηστών. Η τρίτη έκδοση έχει προγραμματιστεί να είναι συμβατή με τη διαμόρφωση sudoers που χρησιμοποιείται στο Fedora και θα προσθέσει επίσης το βοηθητικό πρόγραμμα sudoedit και θα αξιοποιήσει τους μηχανισμούς SELinux και AppArmor για την ενίσχυση της ασφάλειας.
Τέλος , αν ενδιαφέρεστε να μάθετε περισσότερα σχετικά με αυτό , μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.