Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Πανεπιστήμιο Πειραιώς – Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής AndroPatchApp: : Αντιμετώπιση των κακόβουλων διαφημίσεων Ονοματεπώνυμο Φοιτητή Τσιάκος Βασίλειος Πατρώνυμο Σωτήριος Αριθμός Μητρώου ΜΠΠΛ/ 13115 Επιβλέπων Κ. Πατσάκης , Επίκουρος Καθηγητής Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Ημερομηνία Παράδοσης Ιούλιος 2016 AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων ii Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων iii Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Τριμελής Εξεταστική Επιτροπή (υπογραφή) (υπογραφή) (υπογραφή) Κ.Πατσάκης Γ. Τσιχριντζής E. Αλέπης Επίκουρος Καθηγητής Καθηγητής Επίκουρος Καθηγητής AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων iv Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Πίνακας περιεχομένων 1 Η πλατφόρμα Android ............................................................................ 5 1.1 Πυρήνας Linux .................................................................................. 6 1.2 Native Userspace ............................................................................. 6 1.3 Χρόνος λειτουργίας (Android runtime) .......................................... 7 1.4 Πλαίσιο εργασίας (framework) Android ......................................... 7 1.5 Εφαρμογές ........................................................................................ 7 2 Μοντέλο ασφάλειας του Android .......................................................... 7 2.1 Εφαρμογή sandboxing .................................................................... 8 2.2 Δικαιώματα ....................................................................................... 9 2.3 Επικοινωνία εσωτερικών διεργασιών (IPC).................................. 9 2.4 Binders ............................................................................................ 10 2.4.1 Υλοποίηση Binder ........................................................ 10 2.4.2 Ασφάλεια Binder .......................................................... 11 2.4.3 Ταυτότητα Binder ......................................................... 12 2.4.4 Capability-Based Security ............................................ 12 2.4.5 Android Token .............................................................. 12 2.4.6 Πρόσβαση σε αντικείμενα Binder ................................. 13 2.5 Υπογραφή κώδικα και κλειδιά πλατφόρμας ............................... 14 2.6 Υποστήριξη πολλαπλών χρηστών .............................................. 14 2.7 SELinux ........................................................................................... 15 2.8 Ενημέρωση Συστήματος ............................................................... 15 2.9 Επαλήθευση εκκίνησης ................................................................. 16 3 Ζητήματα ασφαλείας στο Android ...................................................... 17 3.1 Διαρροή πληροφοριών (Information leakage) ............................ 17 3.2 Κλιμάκωση προνομίων (Privilege escalation) ............................ 17 3.3 Επανασυσκευασία Εφαρμογής (Repackaging App) .................. 18 3.4 Επίθεση άρνηση υπηρεσίας (Denial of Service attack) ............ 18 3.5 Συμπαιγνία (Colluding) .................................................................. 18 4 Φορείς επιθέσεων ................................................................................. 19 4.1 Δούρειοι ίπποι ................................................................................ 19 4.1.1 Πώς λειτουργούν .......................................................... 19 4.1.2 Διαφορετικές επιπτώσεις .............................................. 21 AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων v Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος 4.1.3 Επιθέσεις δούρειων ίππων και μοντέλο απειλής .......... 23 4.2 Απειλές διαφημίσεων .................................................................... 24 4.2.1 Παραβίαση δικαιωμάτων .............................................. 24 4.2.2 Ανάκτηση και φόρτωση δυναμικού κώδικα ................... 25 4.2.3 Κακόβουλες βιβλιοθήκες διαφημίσεων ......................... 26 4.2.4 Διαφήμιση και μοντέλο απειλής .................................... 26 4.3 Επιθέσεις με χρήση WebView ....................................................... 27 4.3.1 Αλληλεπίδραση Java και Javascript στο Android ......... 28 4.3.2 Επιθέσεις από ιστοσελίδες ........................................... 30 4.3.3 Επιθέσεις από την εφαρμογή ....................................... 30 4.3.4 Επίθεση WebView και μοντέλο απειλής ....................... 32 5 Μελλοντικές λύσεις. .............................................................................. 34 5.1 Λύσεις Hardware ............................................................................. 34 5.1.1 Προσθήκη Hardware .................................................... 35 5.1.2 Νέος μηχανισμός στο υφιστάμενο Hardware ................ 37 5.2 Λύσεις Διαφημίσεων ...................................................................... 41 5.2.1 Διαχωρισμός των δικαιωμάτων μέσα στην εφαρμογή ... 42 5.2.2 Διαχωρισμός Εφαρμογής ............................................. 44 5.2.3 AdDroid ........................................................................ 46 5.3 Λύσεις WebView ............................................................................. 49 5.3.1 Λύση στο σύστημα Android .......................................... 49 5.3.2 Εναλλακτικά μέτρα ασφάλειας ...................................... 50 5.3.3 Λύσεις WebView και μοντέλο απειλής .......................... 52 6 AndroPatchApp ..................................................................................... 53 6.1 Τοποθέτηση του προβλήματος .................................................... 53 6.2 Προτεινόμενη λύση ........................................................................ 56 7 Συμπεράσματα ...................................................................................... 62 AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων vi Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Πίνακας εικόνων Εικόνα 1: Aρχιτεκτονική δομή λειτουργικού συστήματος Android ................................................. 6 Εικόνα 2: Αντιστοίχιση UID σε εφαρμογή, αρχείο /data/packages.list ........................................ 8 Εικόνα 3: Binder IPC .................................................................................................................. 11 Εικόνα 4: Χρήση service list ........................................................................................................ 14 Εικόνα 5 :Αποδοχή όρων και προυποθέσεων ............................................................................ 20 Εικόνα 6: Μοντέλο απειλής επιθέσεων Trojan ............................................................................ 24 Εικόνα 7: Το μοντέλο απειλών διαφημίσεων. .............................................................................. 27 Εικόνα 8: Χρήση αντικειμένων Java ............................................................................................ 29 Εικόνα 9: Κώδικας Javascript που θα εκτελεστεί μέσα στο WebView ........................................ 29 Εικόνα 10: Επίθεση από διακομιστή με χρήση webview. ........................................................... 30 Εικόνα 11: Επίθεση μέσω της Android Εφαρμογής .................................................................... 31 Εικόνα 12: Javascript Injection .................................................................................................... 31 Εικόνα 13: Μοντέλο απειλής WebView ....................................................................................... 33 Εικόνα 14: Μοντέλο απειλής WebView ....................................................................................... 36 Εικόνα 15: Ένα άγνωστο εισερχόμενο αρχείο παρακολουθείται και ελέγχεται ........................... 36 Εικόνα 16: Μοντέλο απειλής Cupp .............................................................................................. 38 Εικόνα 17: Αρχιτεκτονική TrustZone της ARM ............................................................................ 39 Εικόνα 18: Μοντέλο απειλής και η επίδραση του TrustZone. ..................................................... 41 Εικόνα 19: Σχέση μεταξύ εφαρμογής και δικαιωμάτων ............................................................... 43 Εικόνα 20: Μοντέλο απειλής για το διαχωρισμό των δικαιωμάτων μέσα στην εφαρμογή .......... 44 Εικόνα 21: Ξεχωριστές διαφημιστικές εφαρμογές βιβλιοθηκών συνδεδεμένες σε διαφορετικές κανονικές εφαρμογές. .................................................................................................................. 45 Εικόνα 22: Μοντέλο απειλής της λύσης για το διαχωρισμό εφαρμογών ..................................... 46 Εικόνα 23: Σχέση μεταξύ Διαφημιστών, Διαφημιστικών δικτύων, Διαφημιστικών βιβλιοθηκών και εφαρμογής μέσα στο AdDroid ..................................................................................................... 47 Εικόνα 24: Σύνδεση μεταξύ API διαφημίσεων και υπηρεσίας συστήματος ............................... 48 Εικόνα 25: Μοντέλο απειλής για τη λύση AdDroid ...................................................................... 49 Εικόνα 26: Kώδικας για την επιθεώρηση ενός νέου URL που φορτώνεται μέσα από το WebView. .................................................................................................................................... 51 Εικόνα 27: Μοντέλο απειλής του WebView ................................................................................. 52 Εικόνα 28: Στατιστικά στοιχεία των Adroid Ads ........................................................................... 53 Εικόνα 29: Σενάρια επίθεσης στο δίκτυο διαφημίσεων ............................................................... 55 Εικόνα 30: Μέθοδοι εγκατάστασης Android εφαρμογής ............................................................. 57 Εικόνα 31: AndroPatchApp ......................................................................................................... 58 AndroPatchApp Σελίδα | 1 Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Εικόνα 32: Javascript , Μηδενισμός συντεταγμένων .................................................................. 58 Εικόνα 33: Javascript , απενεργοποίηση λειτουργίας μικροφώνου και κάμερας ........................ 59 Εικόνα 34: Javascript , απενεργοποίηση HTML περιεχομένου .................................................. 59 Εικόνα 35: Ροή AndroPatchApp .................................................................................................. 60 Εικόνα 36: Overriding Location Injection ..................................................................................... 61 AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων 2 Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Abstract The proliferation of smart phones has created a new market in the field of portable devices, such as advertisements. By extension, the revenues arising therefrom are an important incentive for any form of attack. Despite the protection afforded by the Android operating system, many malicious exploit operating system vulnerabilities to gain access to personal user data. To address these problems have been proposed several solutions based on either software or hardware with the corresponding advantages and disadvantages. The AdnroPatchApp is an effective solution in malicious webView methods used by adnetworks for sensitive information such as user coordinates, camera etc. The conclusions of the thesis presented at the conference International Conference on Mobile, Secure and Programmable Networking (MPSN '2016) in Paris. The code of the application is under ΜΙΤ license and can be downloaded from : https://github.com/excecutor/AndroPatchApp. Περίληψη Η διάδοση των έξυπνων τηλεφώνων δημιούργησε μια νέα αγορά στο χώρο των φορητών συσκευών , αυτή των διαφημίσεων. Κατ’ επέκταση, τα έσοδα που απορρέουν από αυτές αποτελούν ένα σημαντικό κίνητρο για κάθε μορφή επίθεσης. Παρά την προστασία που παρέχει το λειτουργικό σύστημα Android, πολλοί κακόβουλοι εκμεταλλεύονται ευπάθειες του λειτουργικού συστήματος, ώστε να αποκτήσουν πρόσβαση σε προσωπικά δεδομένα του χρήστη. Για την αντιμετώπιση αυτών των προβλημάτων προτάθηκαν αρκετές λύσεις που βασίζονται είτε στο λογισμικό ή στο υλικό με τα αντίστοιχα πλεονεκτήματα και μειονεκτήματά τους. Το AdnroPatchApp αποτελεί μια αποτελεσματική λύση στην κακόβουλη χρήση μεθόδων webView από τα δίκτυα διαφημίσεων με στόχο τις ευαίσθητες πληροφορίες του χρήστης όπως συντεταγμένες, κάμερα κ.α. Τα συμπεράσματα της διπλωματικής εργασίας παρουσιάστηκαν στο συνέδριο International Conference on Mobile, Secure and Programmable Networking (MPSN’ 2016) που διεξήχθη στο Παρίσι. Ο κώδικας της εφαρμογής υπόκειται στη άδεια του ΜΙΤ και είναι διαθέσιμος : https://github.com/excecutor/AndroPatchApp. AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων 3 Μεταπτυχιακή Διατριβή Τσιάκος Βασίλειος Εισαγωγή Η διάθεση εφαρμογών για κινητές συσκευές αποτελεί σημαντική επιτυχία στο χώρο των smartphones, εφόσον επιτρέπει την ανάπτυξη και πώλησή τους σε χρήστες. Το Αpp Store της εταιρείας Apple και το Google Play της Google αποτελούν τις 2 βασικές πλατφόρμες όπου οι developers είτε πωλούν είτε διανέμουν δωρεάν τις εφαρμογές τους. Οι δυο εταιρείες έχουν επιτύχει μια όσο το δυνατό “δίκαιη” κατανομή των εσόδων από τις εφαρμογές για κινητές συσκευές. Συγκεκριμένα το 73% των εφαρμογών στο Google Play διατίθεται δωρεάν, γεγονός το οποίο αυξάνει τον αριθμό χρηστών που τις χρησιμοποιούν. Το μοντέλο εσόδων που υιοθετήθηκε από τις δωρεάν εφαρμογές περιλαμβάνει ωστόσο, και διαφημίσεις που είναι ενσωματωμένες στην εφαρμογή και εμφανίζονται κατά τη διάρκεια της χρήσης τους. Συνεπώς , η δωρεάν διάθεση εξυπηρετεί όχι μόνο τον χρήστη αλλά και τους φορείς του διαφημιστικού περιβάλλοντος ( brands,ad networks, ad agencies , publisher ). Ωστόσο , το περιβάλλον των διαφημίσεων εγείρει προβληματισμό σχετικά με την ασφάλεια των χρηστών, καθώς οι developers προσπαθούν να αυξήσουν τα έσοδα τους, ενώ παράλληλα οι διαφημιστικές εταιρείες πραγματοποιούν στοχευμένες καμπάνιες σε κάθε χρήστη ξεχωριστά. Κατά συνέπεια, εκθέτουν σε τρίτους προσωπικά στοιχεία, όπως η γεωγραφική τοποθεσία ή οι επαφές του χρήστη. Παρά την πολιτική ασφαλείας που παρέχει σε διάφορα επίπεδα το λειτουργικό σύστημα Android, έχει διαπιστωθεί, ότι ο τρόπος με τον οποίο υλοποιούνται οι διαφημίσεις και το δίκτυο διανομής τους στις εφαρμογές καθιστούν τον χρήστη ευάλωτο σε επιθέσεις από τρίτους ενώ παράλληλα διευκολύνουν τη διαρροή προσωπικών δεδομένων. Το περιβάλλον των διαφημίσεων περιλαμβάνει πολλούς εμπλεκόμενους : οι εταιρείες (brands) θέλουν να προσελκύσουν πελάτες, οι διαφημιστικοί πράκτορες (ad agencies) που σχεδιάζουν διαφημιστικές καμπάνιες για τις εταιρείες, τα δίκτυα διαφημίσεων (ad networks) που διανέμουν το περιεχόμενο των διαφημίσεων, οι εκδότες (publishers) που δημιουργούν τις εφαρμογές για τις κινητές συσκευές και οι χρήστες στους οποίους προβάλλονται οι διαφημίσεις. Ένας επιπλέον παράγοντας είναι οι υπηρεσίες Mediation, οι οποίες υποστηρίζουν πολλά δίκτυα διαφημίσεων , επιτρέποντας στους εκδότες να συνδυάζουν διαφορετικά δίκτυα. Το βασικό πλεονέκτημα αυτής της δυνατότητας είναι ότι μπορεί να αυξήσει τα έσοδα του εκδότη καθώς εάν αποτύχει κάποιο ad network να επιστρέψει μια διαφήμιση τότε φορτώνεται από άλλο δίκτυο. Το μοντέλο διαφημίσεων βασίζεται σε βιβλιοθήκες JAVA, οι οποίες παρέχονται από τους διαφημιστικούς πράκτορες και ενσωματώνονται στον κώδικα της εφαρμογής. Έτσι, υπάρχουν 3 κύριες διεπαφές για τις ad libraries: με την υπόλοιπη εφαρμογή, με τους πόρους του internet (επικοινωνία με το δίκτυο διαφημίσεων) και με το λειτουργικό σύστημα Android. Το λειτουργικό σύστημα Android περιορίζει τα δικαιώματα της εφαρμογής μέσω του συστήματος αδειοδότησης (permission system). Τα δικαιώματα που απαιτεί μια εφαρμογή δηλώνονται στο αρχείο manifest το οποίο έχει ενσωματωθεί στην εφαρμογή. Επειδή τα δικαιώματα που απαιτούνται είναι σε επίπεδο εφαρμογής, οι διαφημιστικές βιβλιοθήκες που χρησιμοποιούνται μοιράζονται τα ίδια δικαιώματα με την εφαρμογή που τη φιλοξενεί. Αυτό έχει ως αποτέλεσμα ο χρήστης να μη γνωρίζει εάν τα δικαιώματα για τα οποία συμφωνεί να κάνει χρήση η εφαρμογή τα χρησιμοποιούν και οι ad libraries. Μετά τον έλεγχο 114,000 δωρεάν [56] εφαρμογών από το Google Store διαπίστώθηκε ότι οι διαφημιστικές βιβλιοθήκες προσπαθούν να εκμεταλλευτούν τα δικαιώματα που έχει ζητήσει η host εφαρμογή. Ιδιαίτερα ανησυχητική είναι η αύξηση των διάφορων επικίνδυνων αδειών (dangerous permission) που θέτουν σε κίνδυνο τα ιδιωτικά δεδομένα. AndroPatchApp: Αντιμετώπιση των κακόβουλων διαφημίσεων 4
Description: