Android Task Hijacking

Support HackTricks

Task, Back Stack and Foreground Activities

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

Ακολουθεί μια γρήγορη ανάλυση των μεταβάσεων δραστηριοτήτων:

  • Δραστηριότητα 1 ξεκινά ως η μοναδική δραστηριότητα στο προσκήνιο.

  • Η εκκίνηση της Δραστηριότητας 2 σπρώχνει τη Δραστηριότητα 1 στη στοίβα επιστροφής, φέρνοντας τη Δραστηριότητα 2 στο προσκήνιο.

  • Η εκκίνηση της Δραστηριότητας 3 μετακινεί τη Δραστηριότητα 1 και τη Δραστηριότητα 2 πιο πίσω στη στοίβα, με τη Δραστηριότητα 3 τώρα μπροστά.

  • Το κλείσιμο της Δραστηριότητας 3 φέρνει τη Δραστηριότητα 2 πίσω στο προσκήνιο, επιδεικνύοντας τον απλοποιημένο μηχανισμό πλοήγησης εργασιών του Android.

Task affinity attack

Overview of Task Affinity and Launch Modes

Στις εφαρμογές Android, η συγγένεια εργασίας καθορίζει την προτιμώμενη εργασία μιας δραστηριότητας, ευθυγραμμισμένη συνήθως με το όνομα πακέτου της εφαρμογής. Αυτή η ρύθμιση είναι καθοριστική για τη δημιουργία μιας εφαρμογής απόδειξης έννοιας (PoC) για την επίδειξη της επίθεσης.

Launch Modes

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

Detailed Attack Steps

  1. Εγκατάσταση Κακόβουλης Εφαρμογής: Το θύμα εγκαθιστά την εφαρμογή του επιτιθέμενου στη συσκευή του.

  2. Αρχική Ενεργοποίηση: Το θύμα ανοίγει πρώτα την κακόβουλη εφαρμογή, προετοιμάζοντας τη συσκευή για την επίθεση.

  3. Απόπειρα Εκκίνησης Στοχευμένης Εφαρμογής: Το θύμα προσπαθεί να ανοίξει την στοχευμένη εφαρμογή.

  4. Εκτέλεση Υφαρπαγής: Λόγω της αντιστοιχίας συγγένειας εργασίας, η κακόβουλη εφαρμογή εκκινείται στη θέση της στοχευμένης εφαρμογής.

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

Για μια πρακτική εφαρμογή αυτής της επίθεσης, ανατρέξτε στο αποθετήριο Task Hijacking Strandhogg στο GitHub: Task Hijacking Strandhogg.

Prevention Measures

Για να αποτραπούν τέτοιες επιθέσεις, οι προγραμματιστές μπορούν να ορίσουν τη taskAffinity σε κενή συμβολοσειρά και να επιλέξουν τη λειτουργία εκκίνησης singleInstance, διασφαλίζοντας την απομόνωση της εφαρμογής τους από άλλες. Η προσαρμογή της λειτουργίας onBackPressed() προσφέρει επιπλέον προστασία κατά της υφαρπαγής εργασιών.

References

Support HackTricks

Last updated