Security and privacy enhancing mechanisms for the android operating system
Authors: Λύβας Χρήστος-Γιάσερ 
Published: January 2022

Η πλατφόρμα Android αποτελεί το κυρίαρχο λειτουργικό σύστημα για κινητές και IoT συσκευές. Η ευρεία διάδοση του οφείλεται στην ελευθερία χρήσης που δίνετε στους κατασκευαστές κινητών συσκευών (Original Equipment Manufacturers - OEMs) να το χρησιμοποιούν ως το κύριο λειτουργικό σύστημα για τις συσκευές τους. Αφενός μεν, το μοντέλο ασφαλείας του Android προστατεύει τους χρήστες από τις απειλές των συμβατικών λειτουργικών συστημάτων όπως macOS, Windows, Linux, κλπ. Αφετέρου δε, στο Android εμφανίζονται αδυναμίες εξαιτίας των ιδιαιτεροτήτων της αρχιτεκτονικής του. Η παρούσα διδακτορική διατριβή επικεντρώνεται στο λειτουργικό σύστημα Android, τους μηχανισμούς ασφάλειας του, τις απειλές του, τα τρωτά σημεία του, και την αποτροπή σειράς επιθέσεων σε αυτό. Αρχικά διερευνάται το μοντέλο ελέγχου αδειών (permission model) του λειτουργικού συστήματος για τον περιορισμό της πρόσβασης σε ευαίσθητους πόρους από εφαρμογές και τη "σχέση" του με τις μεθόδους API (Application Programming Interface) του Android framework για την κατασκευή των συσχετίσεων αδειών (permissions) και των μεθόδων του framework. Η συσχέτιση μεταξύ μιας μεθόδου API του Android framework και ενός permission μπορεί να βρεθεί μέσω του documentation των μεθόδων του συστήματος Android. Ωστόσο, όχι μόνο το documentation μπορεί τυχαία να στερείται πληροφοριών αλλά και το Android διαθέτει undocumented και private μεθόδους API. Το αποτέλεσμα της ανάλυσης ήταν το Dypermin, ένα εργαλείο ικανό να συσχετίσει μεθόδους API και permissions χωρίς να απαιτείται τροποποίηση του υποκείμενου λειτουργικού συστήματος. Για να επιτευχθεί αυτό, το Dypermin αξιοποιεί τις εξαιρέσεις ασφαλείας (runtime Java security exceprtions) κατά τη διάρκεια εκτέλεσης μεθόδων του Android Framework και τη τεχνική reflection της γλώσσας προγραμματισμού Java για την προσπέλαση οποιασδήποτε προστατευμένης (private) μεθόδου API του Android Framework. Επιπλέον, το Dypermin, σε αντίθεση με άλλες σχετικές μεθόδους, βασίζεται σε πληροφορίες κατά τους χρόνους εκτέλεσης των μεθόδων API του Android framework, πράγμα που σημαίνει ότι δεν δημιουργεί ψευδώς θετικές (false positives) συσχετίσεις. Το Dypermin αξιολογήθηκε σε διαφορετικές εκδόσεις Android και τα αποτελέσματα του συγκρίθηκαν με αντίστοιχα αποτελέσματα άλλων προτεινόμενων μεθόδων για την ανάδειξη της αποτελεσματικότητα του για οποιαδήποτε έκδοση του συστήματος. Παράλληλα εξετάζονται οι επιθέσεις activity, και task hijacking στο λειτουργικό σύστημα Android που μπορούν να έχουν μεγάλο αντίκτυπο για τους χρήστες, καθώς κακόβουλες εφαρμογές που εκμεταλλεύονται τέτοιες αδυναμίες μπορούν να τους εξαπατήσουν και να αποκτήσουν πρόσβαση σε ευαίσθητα δεδομένα τους και λογαριασμούς τους. Αναμφίβολα, αυτές οι απειλές έχουν μεγάλη σημασία και για τη διεξοδική μελέτη τους, δημιουργήθηκε το εργαλείο Anactijax, ικανό να εντοπίσει συγκεκριμένες διαμορφώσεις στις οποίες μπορεί να είναι ευάλωτη μια εφαρμογή. Επιπλέον, προτάθηκε ένας μηχανισμός αποτροπής σε επίπεδο λειτουργικού συστήματος με όνομα TaskAuth που ελέγχει και περιορίζει την πρόσβαση των εφαρμογών σε activities. Το TaskAuth λειτουργεί με διαφάνεια τόσο για τους χρήστες όσο και για τους προγραμματιστές καθώς αξιοποιεί τις ενσωματωμένες υπογραφές που φέρουν οι εφαρμογές Android. Η αποτελεσματικότητα του TaskAuth αξιολογήθηκε σε σχέση με διάφορες ευάλωτες διαμορφώσεις που ανέδειξε το Anactijax και τα αποτελέσματα έδειξαν ότι η εφαρμογή της προτεινόμενης λύσης δεν επηρεάζει τη διαχείριση των tasks του Android ούτε επιβαρύνει τους χρόνους εκτέλεσης των εφαρμογών. Τέλος, εξετάζονται οι απειλές intent redirection and intent hijacking στο σύστημα Android. Αυτές οι απειλές μπορούν να επηρεάσουν την εμπιστευτικότητα και την ακεραιότητα των δεδομένων των χρηστών, καθώς κακόβουλες εφαρμογές που εκμεταλλεύονται τέτοιες ευπάθειες σε άλλες εφαρμογές μπορούν να εξαπατήσουν τους χρήστες και να αποκτήσουν πρόσβαση ή να παραποιήσουν τα δεδομένα τους. Έτσι, μελετήθηκαν διεξοδικά οι απειλές intent redirection and intent hijacking και για την αποτροπή τους προτάθηκε ένας μηχανισμός προστασίας των χρηστών σε επίπεδο λειτουργικού συστήματος με όνομα IntentAuth που δίνει τη δυνατότητα στους χρήστες να καθορίζουν δυναμικές πολιτικές στα σύνολα των εφαρμογών που επιτρέπουν να αλληλοεπιδρούν μεταξύ τους. Επιπλέον, βάσει του μοντέλου εμπιστοσύνης που ο κάθε χρήστης καθορίζει για τις εγκατεστημένες εφαρμογές του, ο μηχανισμός IntentAuth μπορεί να κρυπτογραφήσει τα μεταδιδόμενα δεδομένα της διαδιεργασιακής επικοινωνίας του συστήματος μεταξύ εφαρμογών με implicit intents χωρίς επιβάρυνση του χρόνου εκτέλεσης.