Dynamic analysis security testing techniques on RISC-V bootloaders
Τεχνικές δυναμικής ανάλυσης για τον έλεγχο ασφαλείας σε RISC-V bootloaders

Master Thesis
Συγγραφέας
Oikonomou, Dimitrios
Οικονόμου, Δημήτριος
Ημερομηνία
2026-05Επιβλέπων
Glynos, DimitriosΓλυνός, Δημήτριος
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
RISC-V ; U-Boot ; Fuzzing ; Bootloader ; Security ; LibAFL ; Rust ; Python ; Dynamic analysis ; Security testingΠερίληψη
Οι bootloaders αποτελούν κρίσιμα συστατικά στοιχεία των embedded systems, υπεύθυνοι
για την αρχική αρχικοποίηση του υλικού, τη ρύθμιση της μνήμης και την ασφαλή φόρτωση
εικόνων firmware και λειτουργικού συστήματος. Λόγω του προνομιακού επιπέδου εκτέλεσής
τους, της περιορισμένης υποστήριξης runtime και της ενσωματωμενης διαχείρισης δεδομε-
νων, οι bootloaders αποτελούν επιφάνεια επίθεσης υψηλής επίδρασης. Ευπάθειες στη μνήμη
RAM σε αυτό το στάδιο μπορούν να υπονομεύσουν ολόκληρη την αλυσίδα εμπιστοσύνης και
να οδηγήσουν σε ολοκληρωτικό συμβιβασμό του συστήματος. Οι κίνδυνοι αυτοί ενισχύονται
σε ανοιχτές, σύγχρονες αρχιτεκτονικές, όπως η RISC-V, όπου η αυξανόμενη υιοθέτησή της
σε διαφορετικές πλατφόρμες εισάγει ποικίλες υλοποιήσεις ασφαλείας.
Η παρούσα διπλωματική εργασία ερευνά τεχνικές ελέγχου ασφαλείας βασισμένες σε δυ-
ναμική ανάλυση για RISC-V bootloaders, με τον U-Boot να αποτελεί το κύριο αντικείμενο
μελέτης. Εστιάζουμε στο coverage-guided fuzzing ως μια πρακτική μέθοδο, με τα edges
ως την κύρια πληροφορία ανατροφοδότησης. Για να ξεπεράσουμε τις προκλήσεις του ελέγ-
χου bootloaders σε πραγματικό hardware, υιοθετούμε μια προσέγγιση re-hosting, εκτελώ-
ντας RISC-V, U-Boot binaries μέσα σε έναν τροποποιημένο emulator QEMU. Αυτό το
περιβάλλον επιτρέπει την ντετερμινιστική και ταχεία εκτέλεση καθώς και το λεπτομερές
instrumentation, διατηρώντας παράλληλα την αρχιτεκτονική πιστότητα.
Για τη βελτίωση της ανίχνευσης ευπαθειών, σχεδιάζουμε και ενσωματώνουμε έναν Kernel
Address Sanitizer (KASan), προσαρμοσμένο σε bare-metal αρχιτεκτονική RISC-V. Ο
sanitizer αξιοποιεί τη shadow memory για την ανίχνευση κρυφών, μη έγκυρων προσβάσεων
μνήμης σε παρατηρήσιμες αποτυχίες. Η ενορχήστρωση του ελέγχου, η συλλογή ανατρο-
φοδότησης (feedback) και οι στρατηγικές μετάλλαξης (mutation) υλοποιούνται μέσω του
LibAFL, ενός σύγχρονου fuzzing framework ανεπτυγμένου σε Rust, που παρέχει εργαλεία
fuzzing μέσω ενός modular API. Δημοφιλείς τεχνικές, όπως το edge coverage, η κατα-
γραφή εντολών σύγκρισης (cmp), η μετάλλαξη input-2-state και το backend re-hosting,
παρέχονται από το API.
Η αξιολόγησή μας στοχεύει σε κρίσιμες για την ασφάλεια διεπαφές του U-Boot, συμπερι-
λαμβανομένου του UART και του FIT parser, οι οποίες περιέχουν επεξεργασία δομημένης
εισόδου και λογική επικύρωσης. Το στάδιο αξιολόγησης καταδεικνύει πώς η λεπτομερής προ-
σέγγιση του πλαισίου σε συνδυασμό με τον προσαρμοσμένο KASan αποτελούν σημαντική
βάση ελέγχου για την εστίαση σε τεχνικές πιο εξειδικευμένες για bootloaders RISC-V. Η
εργασία αυτή αποδεικνύει τη σκοπιμότητα και αποτελεσματικότητα της συστηματικής δυ-
ναμικής ανάλυσης για δοκιμές ασφαλείας σε firmware RISC-V και παρέχει τη βάση για
την επέκταση αυτών των τεχνικών σε επιπλέον αρχιτεκτονικές, bootloaders και embedded
systems.


