Κατά τη μεταφορά του cryptsetup-suspend to NixOS, ανακαλύφθηκε ένα σφάλμα στο υποσύστημα κρυπτογράφησης δίσκου LUKS (Linux Ενοποιημένη Ρύθμιση Κλειδιού), λόγω της οποίας, ξεκινώντας από τον πυρήνα Linux Η έκδοση 6.9 (η προβληματική υποβολή), που κυκλοφόρησε τον Μάιο του 2024, σταμάτησε την εκκαθάριση των κλειδιών κρυπτογράφησης από τη μνήμη RAM όταν το σύστημα τέθηκε σε κατάσταση αναμονής.
Το εργαλείο cryptsetup-suspend χρησιμοποιείται σε Debian για αυτόματο κλείδωμα των διαμερισμάτων LUKS πριν από την είσοδο σε κατάσταση αναστολής λειτουργίας. Υποτίθεται ότι εάν κλαπεί ένας φορητός υπολογιστής ενώ βρίσκεται σε κατάσταση αναστολής λειτουργίας, ένας εισβολέας δεν θα μπορεί να έχει πρόσβαση στα δεδομένα, καθώς η αφύπνιση από την κατάσταση αναστολής λειτουργίας θα απαιτήσει την εισαγωγή κωδικού πρόσβασης για την επαναφορά της πρόσβασης στα κρυπτογραφημένα δεδομένα. Λόγω σφάλματος πυρήνα Linux Μετά το κλείδωμα του διαμερίσματος LUKS με την εντολή "cryptsetup luksSuspend", τα κλειδιά δεν διαγράφηκαν από τη μνήμη RAM και παρέμειναν ορατά μέσω του /proc/keys, γεγονός που επέτρεψε σε έναν εισβολέα να τα εξαγάγει, για παράδειγμα, χρησιμοποιώντας τη μέθοδο "cold boot", και να τα χρησιμοποιήσει για πρόσβαση σε δεδομένα.
Η εκκαθάριση κλειδιού που έλειπε ανακαλύφθηκε κατά την ανίχνευση σφαλμάτων σε μια συνθήκη κούρσας που προκαλούσε προβλήματα ύπνου. Το σφάλμα προέκυψε μετά από μια αναδιαμόρφωση στον πυρήνα 6.9, η οποία προκάλεσε τη σύνδεση κλειδιών με το νήμα κλήσης και θα έπρεπε να είχε διαγραφεί κατά τον τερματισμό του, αλλά αντίθετα παρέμεινε στη μνήμη. Για συμπερίληψη στον πυρήνα, Linux Έχει προταθεί μια ενημέρωση κώδικα μίας γραμμής για τη διόρθωση του σφάλματος.
Αυτή η ενημέρωση κώδικα δεν έχει γίνει δεκτή στον πυρήνα επειδή περιέχει ένα ελάττωμα: λειτουργεί μόνο για φυσικούς δίσκους, όχι για συσκευές εικονικού βρόχου. Αντί να διορθώσουν το πρόβλημα του πυρήνα, οι προγραμματιστές του εργαλείου cryptsetup πρότειναν μια λύση για την εκκαθάριση κλειδιών. Αυτή η αλλαγή έχει ήδη γίνει δεκτή και θα συμπεριληφθεί στην έκδοση cryptsetup 2.8.7.
Επιπλέον, το NixOS διαθέτει μια προσαρμοσμένη υλοποίηση σεναρίων για το κλείδωμα κρυπτογραφημένων δίσκων πριν από τη μετάβαση σε κατάσταση αναστολής λειτουργίας, η οποία χρησιμοποιεί μια παλιά ενημέρωση κώδικα πυρήνα, η οποία δεν υιοθετήθηκε το 2015, η οποία διαγράφει υποχρεωτικά κλειδιά από τη μνήμη πριν από τη μετάβαση σε κατάσταση αναστολής λειτουργίας.
Πηγή: opennet.ru
