Cyborg
Cyborg #12 - 6/2018

#12 - 06/2018

το δεύτερο λειτουργικό σύστημα που υπάρχει σε κάθε συσκευή κινητής τηλεφωνίας

Cyborg 12

Έχοντας μιλήσει για το ζήτημα κλειστός/ανοιχτός κώδικας και χωρίς αυταπάτες για τις τεχνικές λύσεις στα τεχνολογικά ζητήματα που θέτει η εποχή της πληροφορίας, δημοσιεύουμε μια μετάφραση ενός σχετικά παλιού (2013) και σχετικά τεχνικού κειμένου, που παρουσιάζει κάτι που όλοι έχουμε ως δεδομένο αλλά και ως τέτοιο μας διαφεύγει. Ότι όλες αυτές οι έξυπνες συσκευές (εν προκειμένω όσες έχουν λειτουργία κινητής τηλεφωνίας, δηλαδή κάρτα sim, κεραία κλπ) δίνουν πρόσβαση – το σε τί και σε ποιόν είναι το παράλληλο ερώτημα. Η παρουσίαση όμως της δυνατότητας για πρόσβαση σε κάτι που το κουβαλάμε καθημερινά στην τσέπη μας, ίσως αποτελεί και μια πρώτη ανάδειξη της υλικότητας αυτού που ονομάζουμε επιτήρηση και καταστολή.

Το γνώριζα από πάντα και είμαι σίγουρος πως και οι περισσότεροι από εσάς, όμως ποτέ δεν μιλάμε πραγματικά για αυτό. Κάθε smartphone ή άλλη συσκευή με δυνατότητα κινητής επικοινωνίας (πχ 3G ή LTE) στην πραγματικότητα τρέχει όχι ένα, αλλά δύο λειτουργικά συστήματα. Πέρα από το λειτουργικό σύστημα που βλέπουμε εμείς ως τελικοί χρήστες (πχ Android, iOS, PalmOS), τρέχει επίσης και ένα μικρό λειτουργικό σύστημα που διαχειρίζεται οτιδήποτε έχει σχέση με αυτή την κινητή επικοινωνία. Και επειδή αυτή η λειτουργία είναι στενά εξαρτώμενη από τον χρόνο, απαιτείται ένα λειτουργικό σύστημα πραγματικού χρόνου (real-time operating system - RTOS).

Αυτό το λειτουργικό συστημα είναι αποθηκευμένο ως firmware (στμ: πρόγραμμα μόνιμα αποθηκευμένο σε ειδική μνήμη) και εκτελείται από έναν ξεχωριστό επεξεργαστή (baseband processor). Απ’ όσα γνωρίζω, αυτό το λειτουργικό σύστημα είναι εντελώς ιδιόκτητο (κλειστού κώδικα). Για παράδειγμα, το RTOS μέσα στους επεξεργαστές Qualcomm MSM6280 ονομάζεται AMSS, είναι χτισμένο πάνω στον κλειστού κώδικα πυρήνα REX και διαχειρίζεται τα πάντα από το USB μέχρι το GPS.

Το πρόβλημα εδώ είναι ξεκάθαρο – αυτοί οι επεξεργαστές και το ιδιόκτητο λογισμικό που εκτελούν είναι ελάχιστα κατανοητά, καθώς δεν υπάρχει κάποια κατάλληλη αξιολόγηση (στμ: από ανεξάρτητους ερευνητές και γενικά την “κοινότητα” εννοεί). Αυτό είναι κάπως περίεργο αν αναλογιστούμε το πόσο σημαντικά είναι αυτά τα μικρά bits λογισμικού που είναι υπεύθυνα για την λειτουργία των σύγχρονων συσκευών επικοινωνίας. Ίσως να σκέφτεστε ότι αυτά τα RTOS είναι σώα και ασφαλή, όμως αυτό δεν ισχύει. [1]  Μπορεί να έχετε το πιο ασφαλές λειτουργικό σύστημα κινητής τηλεφωνίας στον κόσμο, αλλά εξακολουθείτε να τρέχετε ένα δεύτερο λειτουργικό σύστημα που δεν έχει κατανοηθεί καλά, δεν είναι επαρκώς τεκμηριωμένο και το μόνο που μπορείτε να κάνετε είναι να εμπιστευτείτε την Qualcomm, την Infineon και τους υπόλοιπους κατασκευαστές RTOS και επεξεργαστών baseband.

SIM Card

Μια sim κάρτα. Είτε το πιστεύετε είτε όχι, εδώ μέσα υπάρχει ένας μικρός επεξεργαστής που τρέχει ένα μικρό λειτουργικό σύστημα.

Η ανασφάλεια του λογισμικού baseband δεν προκύπτει από λάθος – είναι μέρος του σχεδιασμού. Τα πρότυπα που διέπουν τον τρόπο με τον οποίο λειτουργούν αυτοί οι βασικοί επεξεργαστές και ραδιο-σταθμοί σχεδιάστηκαν τη δεκαετία του ‘80, καταλήγοντας σε έναν πολύπλοκο κώδικα που γράφτηκε τη δεκαετία του ‘90 – με τη νοοτροπία της εν λόγω δεκαετίας όσον αφορά την ασφάλεια. Για παράδειγμα δεν υπάρχει κάποια πρόληψη στο να μετριαστεί η εκμετάλλευση των κενών ασφάλειας, με αποτέλεσμα την ανεμπόδιστη χρήση exploits (στμ: προγράμματα που εκμεταλλεύονται τα κενά ασφάλειας). Αυτό που το κάνει ακόμα χειρότερο, ειναι ότι κάθε επεξεργαστής baseband εμπιστεύεται εγγενώς οποιαδήποτε δεδομένα λαμβάνει από έναν σταθμό βάσης (πχ κεραία κινητής τηλεφωνίας). Τίποτα δεν ελέγχεται, όλα είναι αυτομάτως αξιόπιστα. Τέλος, ο επεξεργαστής baseband είναι συνήθως ο κύριος επεξεργαστής, ενώ ο επεξεργαστής εφαρμογών (πχ αυτός που τρέχει το Android) είναι ο δευτερεύων.

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

Έχοντας αυτό κατα νού, ο ερευνητής ασφάλειας Ralf-Philipp Weinmann του πανεπιστημίου του Λουξεμβούργου θέλησε να εξετάσει το λογισμικό των επεξεργαστών baseband της Qualcomm και της Infineon και εύκολα εντόπισε πολλά σφάλματα διασκορπισμένα παντού στον κώδικα, όπου το καθένα θα μπορούσε να οδηγήσει σε χρήση exploit – αχρήστευση της συσκευής ή ακόμα και εκτέλεση κώδικα εξ αποστάσεως. Θυμηθείτε: όλα αυτά μέσω του αέρα. Ένα από τα exploits που βρήκε δεν απαιτούσε τίποτα περισσότερο από ένα μήνυμα των 73 byte για να αποκτήσει απομακρυσμένη πρόσβαση. Μέσω του αέρα.

Μπορείτε να κάνετε τρελά πράγματα με αυτά τα exploits. Για παράδειγμα να ενεργοποιήσετε την αυτόματη απάντηση, χρησιμοποιώντας το σετ εντολών Hayes. Αυτή είναι μια γλώσσα εντολών για μόντεμ που σχεδιάστηκε το 1981 και εξακολουθεί να λειτουργεί σε σύγχρονους επεξεργαστές baseband που βρίσκονται στα σύγχρονα smartphones σήμερα(!). Η αυτόματη απάντηση μπορεί επίσης να γίνει αθόρυβα και αόρατα.

Παρόλο που μπορούμε να υποθέσουμε ότι οι σταθμοί βάσης στους πύργους κινητής τηλεφωνίας που διαχειρίζονται από μεγάλους παρόχους/εταιρείες είναι ασφαλείς, το γεγονός είναι ότι αυτοί οι σταθμοί βάσης γίνονται όλο και φθηνότεροι και πωλούνται στο eBay – υπάρχουν ακόμα και ανοιχτού κώδικα λογισμικά για σταθμούς βάσεων. Τέτοιοι σταθμοί μπορούν να χρησιμοποιηθούν για να στοχεύσουν κινητά. Τοποθετήστε έναν τέτοιο σταθμό σε μια πολυσύχναστη περιοχή – μια εμπορική ή άλλη ευαίσθητη περιοχή – και μπορείτε απομακρυσμένα να ενεργοποιήσετε μικρόφωνα, κάμερες, να τοποθετήσετε rootkits (στμ: προγράμματα που αφήνουν στο σύστημα μια τρύπα ώστε να υπάρχει πρόσβαση οποιαδήποτε στιγμή), να πραγματοποιήσετε κλήσεις ή να στείλετε SMS σε ακριβούς αριθμούς κλπ. Μπορείτε επίσης και να καταστρέψετε ολοκληρωτικά τις συσκευές.

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

Αυτή η πολυπλοκότητα είναι ακριβώς ένας από τους λόγους για τους οποίους δεν είναι εύκολο να γράψετε μια δική σας εκδοχή εφαρμογών baseband. Ο κατάλογος των προτύπων που περιγράφουν μόνο το GSM είναι αδιανόητα μακρύς – και αυτό είναι μόνο το GSM. Τώρα προσθέστε το UMTS, HSDPA κλπ κλπ. Και φυσικά, τα πάντα καλύπτονται από ένα γελοία περίπλοκο σύνολο διπλωμάτων ευρεσιτεχνίας. Και πάνω σε όλα αυτά, οι Αρχές επικοινωνιών απαιτούν πιστοποίηση του λογισμικού baseband.

Προσθέστε όλα αυτά και είναι εύκολο να δείτε γιατί κάθε κατασκευαστής κινητών τηλεφώνων επιλέγει κάποιον από τους ήδη έτοιμους επεξεργαστές baseband με το ανάλογο λογισμικό του. Αυτό σημαίνει ότι κάθε smartphone έχει ένα κομμάτι λογισμικού που τρέχει πάντα (όταν η συσκευή είναι ενεργοποιημένη [στμ: κάποιοι ισχυρίζονται ότι τρέχει ακόμα και όταν είναι απενεργοποιημενη]), το οποίο είναι ουσιαστικά ένα μαύρο κουτί. Κάθε φορά που κάποιος ανακατεύεται με το λογισμικό baseband, ανακαλύπτονται πολλά θέματα και κενά ασφάλειας, κάτι που θέτει το ερώτημα πόσο καιρό μπορεί να συνεχιστεί αυτή η μάλλον αμφιλεγόμενη κατάσταση. Είναι μια συγκλονιστική σκέψη ότι οι κινητές επικοινωνίες, ο ακρογωνιαίος λίθος του σύγχρονου κόσμου στις αναπτυγμένες και αναπτυσσόμενες περιοχές, περιστρέφονται γύρω από ένα λογισμικό που είναι αμφίβολης ποιότητας, ελάχιστα κατανοητή, πλήρως ιδιόκτητη και εντελώς ανασφαλής από τον σχεδιασμό.

Wintermute

Σημείωση

1. https://readwrite.com/2011/01/17/baseband_hacking_a_new_frontier_for_smartphone_break_ins/
[ επιστροφή ]

κορυφή