Hacking σε μία Android συσκευή χρησιμοποιώντας ένα exploit του Browser

Hacking an Android Device

Οι Android συσκευές μας περιέχουν μεγάλο μέρος της προσωπικής μας ζωής -από φωτογραφίες και βίντεο, μέχρι τις επαφές, τις κλήσεις, τα μηνύματά μας, τους τραπεζικούς μας λογαριασμούς κτλ-, συνεπώς και η ασφάλειά τους θα έπρεπε να είναι στις προτεραιότητές μας.

Καλή η θεωρία, καλύτερη όμως η πράξη: Πάμε να δείξουμε πώς κάποιος κακόβουλος θα μπορούσε να εκμεταλλευτεί κάποιο γνωστό κενό ασφαλείας στο Android και να αποκτήσει πρόσβαση στην συσκευή μας.

Είμαι της άποψης ότι για να προφυλαχθείς καλύτερα πρέπει να γνωρίζεις το πώς κάποιος θα μπορούσε να σε βλάψει. Για τους περισσότερους δεν σημαίνει απολύτως τίποτα που διαβάζουν ότι "το τάδε bug θα μπορούσε να οδηγήσει σε Remote Code Execution" (ή απομακρυσμένη εκτέλεση κώδικα για όσους έχουν φετίχ να μεταφράζουν τα πάντα). Να δείξουμε λοιπόν ότι αυτή η "απομακρυσμένη εκτέλεση κώδικα" στην ουσία σημαίνει πρόσβαση στην συσκευή μας, αν χρησιμοποιηθεί από κάποιον κακόβουλο.

Επίσης θεωρώ λογικό να δείξω πόσο εύκολο έχει γίνει -εξ' αιτάς εργαλείων όπως το Metasploit- για κάποιον να χρησιμοποιήσει κάποιο γνωστό exploit εις βάρος χρηστών. Πάμε όμως να δείξουμε την διαδικασία. Μετά το βίντεο θα σχολιάσουμε τα μέτρα που πήρε η Google ώστε να προστατέψει καλύτερα τους χρήστες από το συγκεκριμένο -αλλά και αντίστοιχα "μελλοντικά" exploits.- Τέλος θα δούμε γενικότερα κάποια tips για όσους επιδιώκουν το "καλύτερο" όσον αφορά την ασφάλεια των Android συσκευών τους.

Κανένα Android κινητό (πέραν μιας δικής μου συσκευής-πειραματόζωου) δεν κακοποιήθηκε κατά την διάρκεια των γυρισμάτων.

Η Google στο Android 4.2 (και έπειτα) έκανε, αρχικά, το προφανές: patch-αρε το συγκεκριμένο Bug στο WebView. Αλλά έκανε και άλλα πράγματα για να αποτρέψει και αντίστοιχα bugs από το να είναι εύκολα exploitable στο μέλλον: Έκανε τον Chrome τον Default Browser (αφαίρεσε τον AOSP Browser), ο οποίος παράλληλα δύναται να αναβαθμίζεται από το Google Play σε όλες τις συσκευές, διορθώνοντας άμεσα οποιοδήποτε σχετικό πρόβλημα ασφάλειας. Παράλληλα τον διέθεσε και για παλιότερες (4.0 και 4.1) συσκευές, οπότε ακόμα και σε αυτές το συγκεκριμένο exploit ΔΕΝ θα λειτουργήσει αν ο χρήστης χρησιμοποιεί τον Chrome (ή άλλο Browser*), ο οποίος χρησιμοποιεί τον δικό του μηχανισμό.

Περιεχόμενο από το Internet δεν εμφανίζουν μόνο οι Browsers. Πολλές εφαρμογές χρησιμοποιούν το WebView. Από το Android 5.0 και μετά το WebView αποτελεί και αυτό ανεξάρτητα αναβαθμιζόμενη "εφαρμογή" από το Google Play. Έτσι οι τελευταίες ενημερώσεις ασφαλείας όσον αφορά το "Browsing" μπορούν άμεσα να εγκατασταθούν σε όλες αυτές τις συσκευές χωρίς να περιμένεις κάποια Major αναβάθμιση σε "νέα έκδοση του Android" από τον κατασκευαστή της συσκευής σου.

Φεύγουμε όμως ελάχιστα από το θέμα των Browsers: Σιγά σιγά ΌΛΑ τα (προεγκατεστημένα/απαραίτητα) Google apps (Chrome, Gmail, Search, το Ημερολόγιο, Ρολόι, Drive, Keep, Πληκτρολόγιο, Text-to-Speech, Newsstand, Music, Movies & TV, Play Games, Docs/Sheets/Slides, Talkback, G+, Messenger, YouTube, Hangouts, Maps, Cloud Print, Google Camera, Fit, Photos, Play Books, News & Weather, Play Services μέχρι και το ίδιο το Google Play προστέθηκαν (και αναβαθμίζονται) σε όλες τις Android συσκευές χωρίς να περιμένουμε τον εκάστοτε κατασκευαστή να φιλοτιμηθεί να δώσει αναβάθμιση, το οποίο συμβάλλει το να διορθώνονται άμεσα ένα πολύ μεγάλο μέρος ευπαθειών που τυχόν βρίσκονται/θα βρεθούν στο Android.

Hacking an Android DeviceHacking an Android Device

Ένα άλλο -ενδιαφέρον- παράδειγμα αποτελεί το Stagefright bug, για το οποίο σίγουρα θα διαβάσατε πρόσφατα. Η Google άμεσα αναβάθμισε το Hangouts να μην κάνει αυτόματα process multimedia περιεχόμενο που "έρχεται" στις συσκευές μας και απέτρεψε το να είναι (εύκολα τουλάχιστον) exploitable. Μετά φυσικά το συγκεκριμένο bug διορθώθηκε στον κώδικα του AOSP, δώθηκε Update στα Nexus, και (σε δεύτερη φάση) άρχισαν και ορισμένοι κατασκευαστές να δίνουν σχετικά OTAs.

Τόση ώρα γράφω το πόσο "ωραίο" είναι οι αναβαθμίσεις μέσω του Google Play σε βασικά components και εφαρμογές. Δεν θα ήταν ωραίο -όμως- ο μέσος χρήστης να μην έχει εγκατεστημένες τις τελευταίες εκδόσεις τους, επειδή "δεν ασχολείται ενεργά με τα updates". Για αυτό η Google έχει εδώ και καιρό κάνει Default ρύθμιση στο Google Play το auto update των εφαρμογών μας. Το οποίο εκτός από τα προεγκετεστημένα Google Apps αφορά και λοιπές εγκατεστημένες εφαρμογές που και αυτές θα μπορούσαν -εν δυνάμει- να εισάγουν κάποια ευπάθεια. (Well, ο Adobe Reader σίγουρα το έκανε, -σχετικό Module υπάρχει πάλι στο Metasploit- αλλά μάλλον σε άλλο άρθρο θα αναφερθώ στα FileFormat exploits.)

Αντί επιλόγου:

Πολλές πολλές ακόμα αλλαγές έχουν γίνει για βελτίωση της ασφάλειας των Android συσκευών μας -και συνεχίζουν να γίνονται-. Όποιος θέλει το καλύτερο δυνατό στην ασφάλεια στον κόσμο του Android παίρνει ένα Nexus. Το βασικό όμως πρόβλημα ασφάλειας (κατ' εμένα) παραμένει το πώς εκλαμβάνεται ο χρήστης κάτι ως "ασφαλές" -και το κατά πόσον είναι ενημερωμένος να χρησιμοποιεί σωστά την συσκευή του-. Μην ξεχνάμε ότι πλήρη πρόσβαση στην συσκευή μας μπορεί κάποιος να αποκτήσει επειδή εγκαταστήσαμε κάποιο apk από τρίτες πηγές, το οποίο ζητούσε "πολλά" από Permissions, τα οποία δεν απορρίψαμε. Επίσης κάποιοι μπορούν να θεωρούν ωραίο που βρέθηκε κάποιο bug που θα τους επιτρέψει να κάνουν "εύκολα Root" την Android συσκευή τους (ή jailbreak το iPhone τους, ισχύουν τα ίδια). Το θέμα όμως είναι ότι αυτό το bug θα μπορούσε να επιτρέπει και σε κάποιον κακόβουλο να εκμεταλλευτεί κάποιο κενό ασφαλείας. Αν ήθελες Root -και είσαι πλήρως ενημερωμένος του τι συνεπάγεται- να αγόραζες εξ αρχής κάποια συσκευή με ξεκλειδώσιμο bootloader. Τέλος, να ψάξω τους λόγους που καταφέρνω να τελειώνω κάθε άρθρο λέγοντας "για όλα η λύση είναι ένα Nexus".

Hacking an Android Device

aByte