Δημοσιεύτηκε το Shufflecake, μια εργαλειοθήκη για τη δημιουργία κρυφών κρυπτογραφημένων κατατμήσεων δίσκων

Η εταιρεία ελέγχου ασφαλείας Kudelski Security δημοσίευσε ένα εργαλείο που ονομάζεται Shufflecake που σας επιτρέπει να δημιουργείτε κρυφά συστήματα αρχείων διάσπαρτα στον διαθέσιμο ελεύθερο χώρο σε υπάρχοντα διαμερίσματα και να μην διακρίνονται από τα τυχαία υπολειπόμενα δεδομένα. Οι κατατμήσεις δημιουργούνται με τέτοιο τρόπο που χωρίς να γνωρίζουμε το κλειδί πρόσβασης, είναι δύσκολο να αποδειχθεί η ύπαρξή τους ακόμη και κατά τη διεξαγωγή εγκληματολογικής ανάλυσης. Ο κώδικας των βοηθητικών προγραμμάτων (shufflecake-userland) και της μονάδας πυρήνα Linux (dm-sflc) είναι γραμμένος σε C και διανέμεται με την άδεια GPLv3, γεγονός που καθιστά αδύνατη τη συμπερίληψη της δημοσιευμένης μονάδας πυρήνα στον κύριο πυρήνα Linux λόγω ασυμβατότητας με την άδεια GPLv2 με την οποία παρέχεται ο πυρήνας .

Το έργο τοποθετείται ως μια πιο προηγμένη λύση από το Truecrypt και το Veracrypt για την απόκρυψη δεδομένων που απαιτούν προστασία, η οποία έχει εγγενή υποστήριξη για την πλατφόρμα Linux και σας επιτρέπει να τοποθετήσετε έως και 15 κρυφά διαμερίσματα στη συσκευή, φωλιασμένα το ένα μέσα στο άλλο για να μπερδέψετε την ανάλυση της ύπαρξής τους. Εάν η χρήση του ίδιου του Shufflecake δεν είναι μυστικό, όπως μπορεί να κριθεί, για παράδειγμα, από την παρουσία των αντίστοιχων βοηθητικών προγραμμάτων στο σύστημα, τότε δεν μπορεί να προσδιοριστεί ο συνολικός αριθμός των κρυφών κατατμήσεων που δημιουργήθηκαν. Τα δημιουργημένα κρυφά διαμερίσματα μπορούν να μορφοποιηθούν κατά την κρίση του χρήστη για να χωρέσουν οποιοδήποτε σύστημα αρχείων, για παράδειγμα, ext4, xfs ή btrfs. Κάθε διαμέρισμα αντιμετωπίζεται ως ξεχωριστή εικονική συσκευή μπλοκ με το δικό της κλειδί ξεκλειδώματος.

Για τη σύγχυση των ιχνών, προτείνεται η χρήση του μοντέλου συμπεριφοράς της «εύλογης άρνησης», η ουσία του οποίου είναι ότι πολύτιμα δεδομένα κρύβονται ως πρόσθετα στρώματα σε κρυπτογραφημένες ενότητες με λιγότερο πολύτιμα δεδομένα, σχηματίζοντας ένα είδος κρυφής ιεραρχίας τμημάτων. Σε περίπτωση πίεσης, ο ιδιοκτήτης της συσκευής μπορεί να αποκαλύψει το κλειδί του κρυπτογραφημένου διαμερίσματος, αλλά άλλα διαμερίσματα (έως 15 ένθετα επίπεδα) ενδέχεται να κρύβονται σε αυτό το διαμέρισμα και ο προσδιορισμός της παρουσίας τους και η απόδειξη της ύπαρξής τους είναι προβληματική.

Η απόκρυψη επιτυγχάνεται κατασκευάζοντας κάθε διαμέρισμα ως ένα σύνολο κρυπτογραφημένων τμημάτων που τοποθετούνται σε τυχαίες θέσεις στη συσκευή αποθήκευσης. Κάθε slice δημιουργείται δυναμικά όταν απαιτείται επιπλέον χώρος αποθήκευσης στο διαμέρισμα. Για να γίνει πιο δύσκολη η ανάλυση, εναλλάσσονται φέτες διαφορετικών τμημάτων, δηλ. Τα τμήματα shufflecake δεν συνδέονται με συνεχόμενες περιοχές και οι φέτες από όλα τα τμήματα αναμειγνύονται. Οι πληροφορίες σχετικά με τα χρησιμοποιημένα και τα ελεύθερα κομμάτια αποθηκεύονται σε έναν χάρτη τοποθεσίας που σχετίζεται με κάθε διαμέρισμα, ο οποίος αναφέρεται από μια κρυπτογραφημένη κεφαλίδα. Οι κάρτες και η κεφαλίδα είναι κρυπτογραφημένα και, χωρίς να γνωρίζετε το κλειδί πρόσβασης, δεν διακρίνονται από τα τυχαία δεδομένα.

Η κεφαλίδα χωρίζεται σε υποδοχές, καθεμία από τις οποίες ορίζει το δικό της τμήμα και τις σχετικές φέτες. Οι υποδοχές στην κεφαλίδα στοιβάζονται και συνδέονται αναδρομικά - η τρέχουσα υποδοχή περιέχει το κλειδί για την αποκρυπτογράφηση των παραμέτρων της προηγούμενης ενότητας στην ιεραρχία (η λιγότερο κρυφή), επιτρέποντας τη χρήση ενός κωδικού πρόσβασης για την αποκρυπτογράφηση όλων των λιγότερο κρυφών ενοτήτων που σχετίζονται με την επιλεγμένη ενότητα. Κάθε λιγότερο κρυφό διαμέρισμα αντιμετωπίζει τις φέτες των ένθετων κατατμήσεων ως ελεύθερες.

Από προεπιλογή, όλες οι υποενότητες Shufflecake έχουν το ίδιο ορατό μέγεθος με την ενότητα ανώτατου επιπέδου. Για παράδειγμα, εάν υπάρχουν τρία διαμερίσματα σε μια συσκευή 1 GB, καθένα από αυτά θα είναι ορατό στο σύστημα ως διαμέρισμα 1 GB και ο συνολικός διαθέσιμος χώρος στο δίσκο θα μοιραστεί μεταξύ όλων των κατατμήσεων - εάν το συνολικό μέγεθος των αποθηκευμένων δεδομένων υπερβαίνει το πραγματικό μέγεθος της συσκευής, θα ξεκινήσει ένα σφάλμα I/O ρίχνεται.

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

Στην πραγματικότητα, δημιουργούνται πάντα 15 κατατμήσεις Shufflecake - ο κωδικός πρόσβασης χρήστη επισυνάπτεται στα χρησιμοποιημένα διαμερίσματα και τα αχρησιμοποίητα διαμερίσματα παρέχονται με έναν τυχαία δημιουργημένο κωδικό πρόσβασης (είναι αδύνατο να κατανοήσουμε πόσα διαμερίσματα χρησιμοποιούνται πραγματικά). Όταν αρχικοποιούνται κατατμήσεις Shufflecake, ο δίσκος, το διαμέρισμα ή η συσκευή εικονικού μπλοκ που έχει εκχωρηθεί για την τοποθέτησή τους γεμίζει με τυχαία δεδομένα, γεγονός που καθιστά αδύνατη την αναγνώριση μεταδεδομένων και δεδομένων Shufflecake στο γενικό υπόβαθρο.

Η υλοποίηση Shufflecake έχει αρκετά υψηλή απόδοση, αλλά λόγω της παρουσίας γενικών επιβαρύνσεων, είναι περίπου δύο φορές πιο αργή σε απόδοση σε σύγκριση με την κρυπτογράφηση δίσκου που βασίζεται στο υποσύστημα LUKS. Η χρήση του Shufflecake έχει επίσης ως αποτέλεσμα πρόσθετο κόστος για τη μνήμη RAM και το χώρο στο δίσκο για την αποθήκευση δεδομένων υπηρεσίας. Η κατανάλωση μνήμης υπολογίζεται σε 60 MB ανά διαμέρισμα και ο χώρος στο δίσκο στο 1% του συνολικού μεγέθους. Για σύγκριση, η τεχνική WORAM, παρόμοιας χρήσης, οδηγεί σε επιβράδυνση από 5 έως 200 φορές με απώλεια 75% του χρησιμοποιήσιμου χώρου στο δίσκο.

Η εργαλειοθήκη και η λειτουργική μονάδα πυρήνα έχουν δοκιμαστεί μόνο σε Debian και Ubuntu με πυρήνες 5.13 και 5.15 (υποστηρίζεται στο Ubuntu 22.04). Σημειώνεται ότι το έργο θα πρέπει να εξακολουθεί να θεωρείται ως πρωτότυπο λειτουργίας, το οποίο δεν θα πρέπει να χρησιμοποιείται για την αποθήκευση σημαντικών δεδομένων. Στο μέλλον, σχεδιάζουμε να κάνουμε πρόσθετες βελτιστοποιήσεις για απόδοση, αξιοπιστία και ασφάλεια, καθώς και να παρέχουμε τη δυνατότητα εκκίνησης από κατατμήσεις Shufflecake.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο