Σύντομη παρουσίαση του μοντέλου ασφάλειας του Android, ενδεικτικών αδυναμιών του και λύσεων στο πλαίσιο εργασίας του μαθήματος "Προστασία και ασφάλεια πληροφοριών και συστημάτων" του μεταπτυχιακού προγράμματος στην Πληροφορική και Τηλεματική του Χαροκόπειου Πανεπιστημίου.
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
1. Σπφροσ Ελευκεριάδθσ – itp12401@hua.gr
Χαροκόπειο Ρανεπιςτιμιο
Τμιμα Ρλθροφορικισ και Τθλεματικισ
Μεταπτυχιακό Ρρόγραμμα ςτθν Ρλθροφορικι και Τθλεματικι
Ρροςταςία και αςφάλεια πλθροφοριϊν και ςυςτθμάτων
Τρίτθ 22 Ιανουαρίου 2013
2. Τι είναι το Android;
Γιατί μασ ενδιαφζρει θ αςφάλεια του Android;
Ροιο είναι το μοντζλο αςφάλειασ που
χρθςιμοποιεί;
Ενδεικτικζσ αδυναμίεσ του μοντζλου.
Ρροτεινόμενεσ λφςεισ.
3. Το Android είναι λειτουργικό ςφςτθμα για φορθτζσ ςυςκευζσ
(smartphones & tablets) το οποίο τρζχει τον πυρινα του λειτουργικοφ
Linux. Αρχικά αναπτφχκθκε από τθν Google και αργότερα από τθν Open
Handset Alliance.
Επιτρζπει ςτουσ developers να αναπτφςςουν κϊδικα με τθν χριςθ τθσ
Java, ελζγχοντασ τθν ςυςκευι μζςω βιβλιοκθκϊν λογιςμικοφ
ανεπτυγμζνων από τθν Google.
Η πρϊτθ παρουςίαςθ τθσ πλατφόρμασ Android ζγινε ςτισ 5 Νοεμβρίου
2007, παράλλθλα με τθν ανακοίνωςθ τθσ ίδρυςθσ του οργανιςμοφ Open
Handset Alliance, μιασ κοινοπραξίασ 48 τθλεπικοινωνιακϊν
εταιριϊν, εταιριϊν λογιςμικοφ κακϊσ και καταςκευισ hardware, οι οποίεσ
είναι αφιερωμζνεσ ςτθν ανάπτυξθ και εξζλιξθ ανοιχτϊν προτφπων ςτισ
ςυςκευζσ κινθτισ τθλεφωνίασ. Η Google δθμοςίευςε το μεγαλφτερο
μζροσ του κϊδικα του Android υπό τουσ όρουσ τθσ Apache License, μιασ
ελεφκερθσ άδειασ λογιςμικοφ.
4. 500 εκατομμφρια ενεργοποιθμζνεσ ςυςκευζσ
ςε όλο τον κόςμο (9/2012)
1,3 εκατομμφρια ςυςκευζσ ενεργοποιοφνται
κάκε μζρα (9/2012)
Τα νοφμερα είναι αρκετά μεγάλα για να
ασχοληθοφμε με την ασφάλεια του Android
5. Ωσ developers
• Ανάπτυξθ εφαρμογϊν που εξαςφαλίηουν τα προςωπικά δεδομζνα των χρθςτϊν
και δεν δθμιουργοφν κενά αςφάλειασ ςτο λειτουργικό ςφςτθμα
Ωσ χρήςτεσ
• Τα smartphones πλζον φιλοξενοφν μεγάλο πλικοσ προςωπικϊν δεδομζνων
(Mail, Contacts, Calendar, Facebook, Twitter κτλ.)
• Ρροςταςία των δεδομζνων μασ και τθσ ιδιωτικότθτασ μασ (privacy)
• Ρροςταςία από κακόβουλεσ χρεϊςεισ
• Στακερι λειτουργία τθσ ςυςκευισ μασ
ΘΕΛΟΥΜΕ ΕΜΕΙΣ να ελζγχουμε το τθλζφωνο μασ και όχι αυτό εμάσ.
7. O kernel του Linux παρζχει ςτο Android πολλά βαςικά χαρακτθριςτικά αςφάλειασ:
Μοντζλο δικαιωμάτων βάςθ χριςτθ (User-Based permission model)
Απομόνωςθ διεργαςιϊν
Εκτενι μθχανιςμό για αςφαλι επικοινωνία μεταξφ των διεργαςιϊν Inter-process
communication
Ικανότθτα αφαίρεςθσ άχρθςτου και πικανόν επικίνδυνου κϊδικα από τον kernel
Ωσ λειτουργικό ςφςτθμα πολλϊν χρθςτϊν, o κεμελιϊδθσ ςτόχοσ τθσ αςφάλειασ του
kernel του Linux είναι να απομονϊςει τουσ πόρουσ του κάκε χριςτθ:
Αποτρζπει τον χριςτθ A από τθν ανάγνωςθ αρχείων του χριςτθ Β
Εξαςφαλίηει ότι ο χριςτθσ Α δεν εξαντλεί τθ μνιμθ χριςτθ του Β
Εξαςφαλίηει ότι ο χριςτθσ Α δεν εξαντλεί τουσ πόρουσ τθσ CPU του χριςτθ Β
Εξαςφαλίηει ότι ο χριςτθσ Α δεν εξαντλεί ςυςκευζσ του χριςτθ Β (π.χ.
τθλεφωνία, GPS, Bluetooth, Camera κτλ.)
8. The Application Sandbox
Μοναδικό UID και GID για κάκε app κατά τθν εγκατάςταςθ
Η επικοινωνία μεταξφ διεργαςιϊν γίνεται βάςθ αςφαλϊν μθχανιςμϊν
(Binders, Services, Intends, ContentProviders).
9. Η Dalvik VM δεν παρζχει επιπλζον αςφάλεια
• Δεν περιλαμβάνει security manager
• Τα δικαιϊματα επιβάλλονται ςτο λειτουργικό (μζςω
των Core Libraries και Libraries) και όχι ςτθν VM
10. Κάκε εφαρμογι που εγκακιςτοφμε ςτθ ςυςκευι "ηθτάει" από τον
χριςτθ άδεια (permission) να τθν αφιςει το Android να
χρθςιμοποιιςει κάποια ςτοιχεία του λειτουργικοφ και κατά
επζκταςθ τθσ ςυςκευισ.
Αν δεν γίνουν αποδεκτά από τον χριςτθ κατά τθν διαδικαςία τθσ
εγκατάςταςθσ θ εφαρμογι δεν μπορεί να εγκαταςτακεί.
Τα Permissions ορίηονται κατά τθ διαδικαςία ανάπτυξθσ των
εφαρμογϊν ςτο αρχείο AndroidManifest.xml
12. Δυςτυχϊσ οι περιςςότεροι δεν δίνουν ςθμαςία ςτισ άδειεσ που ηθτάει
κάποια εφαρμογι, με αποτζλεςμα να επιτρζπουν οι ίδιοι τθν εγκατάςταςθ
κακόβουλου λογιςμικοφ (malware).
Τον Οκτϊβριο του 2011, το Computer Science Department του University of
California, Berkeley μελζτθςε εργαςτθριακά 25 χριςτεσ Android. Τα
αποτελζςματα τθσ ζρευνασ είναι απογοθτευτικά
Προςοχή ςτα Permissions Αριθμόσ χρηςτών 95% CI
Κοίταξαν τα permissions 4 (17% ) 5% to 37%
Κοίταξαν αλλά αδιαφόρθςαν 10 (42% ) 22% to 63%
Δεν ξζρουν καν ότι υπάρχουν
και τα προςπερνοφν
10 (42% ) 22% to 63%
Felt, A.P., Ha, E., Egelman, S., Haney, A., Chin, E., Wagner, D., Android permissions: User attention, comprehension, and behavior, 2012
13. Κατανόθςθ των permissions
Ρροςεκτικι ανάγνωςθ
Ανάγνωςθ των reviews
Ερευνά για τθν αξιοπιςτία
του developer
14. Ξεκινϊντασ από το Android 2.2 (API 8) τα αρχεία των εφαρμογϊν (APKs)
μποροφν να αποκθκεφονται ςε κάρτεσ μνιμθσ (microSD κτλ.).
Το ςφςτθμα αρχείων του Linux προςτατεφει τθν εςωτερικι μνιμθ των
ςυςκευϊν Android όχι όμωσ και τισ κάρτεσ μνήμεσ (εφόςον το ςφςτθμα
αρχείων που χρθςιμοποιοφν είναι VFAT).
Ξεκινϊντασ από το Android 3.0 ζχουμε τθν δυνατότθτα ιςχυρισ
κρυπτογράφθςθσ των δεδομζνων ςτθν εςωτερικι και εξωτερικι
μνιμθ, χωρίσ όμωσ να είναι υποχρεωτική η χρήςη τησ ή ενεργοποιημζνη
by default.
15. Αναβακμίηουμε πάντα το Android ςτην
πιο πρόςφατη ζκδοςη που μασ
παρζχει ο καταςκευαςτισ.
Ενεργοποιοφμε τθν κρυπτογράφθςθ
των αρχείων όπου μποροφμε.
Δεν αποθηκεφουμε ευαίςθητα
δεδομζνα ςε εξωτερικζσ μνιμεσ
16. Armando, A., Merlo, A., Migliardi, M., Verderame, L.,
Would you mind forking this process? A denial of service attack on android (and
some countermeasures), 2012
Η διεργαςία Zygote ςτο Android είναι θ μοναδικι διεργαςία που μπορεί να
κάνει fork νζεσ διεργαςίεσ. Πποτε απαιτείται αυτό θ εντολι δίνεται ςτθν
Zygote μζςω του αντίςτοιχου socket.
Οι Armando, A., Merlo, A., Migliardi, M., Verderame, L., ανακάλυψαν ότι με τθ
χριςθ τθσ ςτατικισ κλάςθσ ςυςτιματοσ
com.android.internal.util.WithFramework είναι δυνατόν να αναγκαςτεί θ
Zygote να κάνει fork μια dummy διεργαςία θ οποία παραμζνει ςτο Linux layer
και δεν ςυνδζεται με καμία εφαρμογι, παρακάμπτοντασ ζτςι τθν προεπιλογι
του android να τθν κάνει kill.
Αυτό επαναλαμβανόμενο πολλζσ φορζσ κακιςτά τθν ςυςκευι μθ λειτουργικι.
Η αδυναμία αυτι βαςίηεται ςτον λάκοσ ςυνδυαςμό των δικαιωμάτων ςτθν
διεργαςία και ςτο socket τθσ.
19. http://source.android.com/tech/security/
Felt, A.P., Ha, E., Egelman, S., Haney, A., Chin, E., Wagner, D.,
Android permissions: User attention, comprehension, and
behavior, 2012
Armando, A., Merlo, A., Migliardi, M., Verderame, L., Would
you mind forking this process? A denial of service attack on
android (and some countermeasures), 2012