25 ευπάθειες στο RTOS Zephyr, συμπεριλαμβανομένων εκείνων που εκμεταλλεύονται μέσω ενός πακέτου ICMP

Ερευνητές από την ομάδα NCC δημοσιεύθηκε δωρεάν αποτελέσματα ελέγχου έργου Ζέφυρος, ανάπτυξη ένα λειτουργικό σύστημα σε πραγματικό χρόνο (RTOS), που στοχεύει στον εξοπλισμό συσκευών που συμμορφώνονται με την έννοια του Διαδικτύου των Πραγμάτων (IoT, Internet of Things). Κατά τον έλεγχο αποκαλύφθηκε 25 τρωτά σημεία στο Zephyr και 1 ευπάθεια στο MCUboot. Το Zephyr αναπτύσσεται με τη συμμετοχή εταιρειών Intel.

Συνολικά, εντοπίστηκαν 6 ευπάθειες στη στοίβα δικτύου, 4 στον πυρήνα, 2 στο κέλυφος εντολών, 5 στους χειριστές κλήσεων συστήματος, 5 στο υποσύστημα USB και 3 στον μηχανισμό ενημέρωσης υλικολογισμικού. Δύο ζητήματα βαθμολογούνται ως κρίσιμα, δύο είναι υψηλά, 9 είναι μέτρια, 9 είναι χαμηλά και 4 είναι προς εξέταση. Τα κρίσιμα προβλήματα επηρεάζουν τη στοίβα IPv4 και τον αναλυτή MQTT, τα επικίνδυνα επηρεάζουν τη μαζική αποθήκευση USB και τα προγράμματα οδήγησης USB DFU. Κατά τη στιγμή της αποκάλυψης των πληροφοριών, είχαν προετοιμαστεί επιδιορθώσεις μόνο για 15 από τις πιο επικίνδυνες ευπάθειες· προβλήματα που οδηγούν σε άρνηση υπηρεσίας ή σχετίζονται με ελαττώματα σε πρόσθετους μηχανισμούς προστασίας πυρήνα παραμένουν αδιόρθωτα.

Έχει εντοπιστεί μια απομακρυσμένη ευπάθεια στη στοίβα IPv4 της πλατφόρμας, η οποία οδηγεί σε καταστροφή της μνήμης κατά την επεξεργασία πακέτων ICMP που έχουν τροποποιηθεί με συγκεκριμένο τρόπο. Ένα άλλο σοβαρό πρόβλημα εντοπίστηκε στον αναλυτή πρωτοκόλλου MQTT, το οποίο προκαλείται από την έλλειψη σωστού ελέγχου μήκους πεδίου κεφαλίδας και μπορεί να οδηγήσει σε απομακρυσμένη εκτέλεση κώδικα. Λιγότερο σοβαρά ζητήματα άρνησης υπηρεσίας εντοπίζονται στη στοίβα IPv6 και στην υλοποίηση του πρωτοκόλλου CoAP.

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

Πολλά προβλήματα επηρεάζουν τη στοίβα USB και τα μεμονωμένα προγράμματα οδήγησης. Για παράδειγμα, προβλήματα στη μαζική αποθήκευση USB μπορεί να προκαλέσουν υπερχείλιση buffer και να εκτελέσουν κώδικα σε επίπεδο πυρήνα όταν η συσκευή είναι συνδεδεμένη σε έναν κεντρικό υπολογιστή USB που ελέγχεται από τον εισβολέα. Μια ευπάθεια στο USB DFU, ένα πρόγραμμα οδήγησης για τη φόρτωση νέου υλικολογισμικού μέσω USB, σας επιτρέπει να φορτώσετε μια τροποποιημένη εικόνα υλικολογισμικού στο εσωτερικό Flash του μικροελεγκτή χωρίς να χρησιμοποιήσετε κρυπτογράφηση και να παρακάμψετε την ασφαλή λειτουργία εκκίνησης με επαλήθευση στοιχείων χρησιμοποιώντας ψηφιακή υπογραφή. Επιπλέον, μελετήθηκε ο ανοιχτός κώδικας του bootloader MCUboot, στην οποία βρέθηκε μία καλοήθης ευπάθεια,
που μπορεί να οδηγήσει σε υπερχείλιση buffer κατά τη χρήση του πρωτοκόλλου SMP (Simple Management Protocol) μέσω του UART.

Υπενθυμίζεται ότι στο Zephyr, παρέχεται μόνο ένας παγκόσμιος κοινόχρηστος χώρος εικονικών διευθύνσεων (SASOS, Single Address Space Operating System) για όλες τις διαδικασίες. Ο κώδικας για συγκεκριμένη εφαρμογή συνδυάζεται με έναν πυρήνα για συγκεκριμένη εφαρμογή για να σχηματίσει ένα μονολιθικό εκτελέσιμο αρχείο που μπορεί να φορτωθεί και να εκτελεστεί σε συγκεκριμένο υλικό. Όλοι οι πόροι του συστήματος προσδιορίζονται κατά το χρόνο μεταγλώττισης, μειώνοντας το μέγεθος του κώδικα και αυξάνοντας την απόδοση. Η εικόνα συστήματος μπορεί να περιλαμβάνει μόνο εκείνες τις δυνατότητες του πυρήνα που απαιτούνται για την εκτέλεση της εφαρμογής.

Είναι αξιοσημείωτο ότι μεταξύ των βασικών πλεονεκτημάτων του Zephyr που αναφέρθηκαν ανάπτυξη με γνώμονα την ασφάλεια. Εγκρίθηκεότι όλα τα στάδια ανάπτυξης υποβάλλονται σε υποχρεωτικά στάδια επιβεβαίωσης της ασφάλειας του κώδικα: δοκιμή fuzzing, στατική ανάλυση, δοκιμή διείσδυσης, αναθεώρηση κώδικα, ανάλυση υλοποίησης backdoor και μοντελοποίηση απειλών.

Πηγή: opennet.ru

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