Vulnerability discovery in Android System through fuzzing
Creators: name: Οικονόμου, Αθανάσιος Δημητρίου
Publisher: name: Aristotle University of Thessaloniki
Year: 2023
Subjects: Ευπάθειες
Κινητά
Vulnerabilities
Mobile devices

description: Finding vulnerabilities in Android system and applications is a challenging task. The success of fuzzing on Windows/Linux/Mac OS programs makes one wonder how effective it would be to apply these tools to Android. After all, Android is just a modified Linux kernel with additional utilities to support special hardware components like touchscreens and GSM antennas. The effectiveness of fuzzing depends on the level of identifying Android’s attack surface and proper data mutation. The majority of Android applications are closed source so finding a way to access inner available inputs can be very tricky. Also, fuzzing as a procedure is computationally very intensive so new ways and techniques must be found. In this thesis, we will look at how fuzzing tools are working, various aspects that can affect the performance of such a tool, how the Android system is built and what of its components are crucial for attacking it. Next, we will present our developed tool that overcomes many of the known limitations of fuzzing Android applications. This tool is based in Frida reverse engineering framework, giving as the advantage of dynamic instrumentation overcoming in that way possible authentication mechanisms that may be implemented into the application, the advantage of easily modifying parts of fuzzer adapting in this way at possible application’s singularities. Having in mind the limitation of device’s hardware performance the tool designed in such way that can be run in virtual Android devices with increased memory and CPU capabilities and capable of running in parallel with different data mutation approaches in each device reducing the time of finding vulnerabilities.
description: Η εύρεση ευπαθειών στα συστήματα Android και εφαρμογές αυτών είναι μια δύσκολη εργασία. Η επιτυχία του fuzzing στα προγράμματα των Windows/Linux/Mac λειτουργικών συστημάτων κάνει κάποιον να αναρωτηθεί πόσο αποτελεσματικά θα ήταν εάν αυτά τα εργαλεία εφαρμοζόταν στο Android. Έτσι και αλλιώς το Android είναι παρά μόνο ένας πυρήνας Linux με επιπρόσθετες εφαρμογές έτσι ώστε να μπορεί να υποστηρίζει την χρήση ειδικού εξοπλισμού όπως τις οθόνες αφής και τις κεραίες GSM. Η αποτελεσματικότητα του fuzzing εξαρτάται από το επίπεδο αναγνώρισης της επιφανείας επιθέσεων του εσωτερικού του Android και την κατάλληλη μετάλλαξη των δεδομένων. Η πλειοψηφία των εφαρμογών του Android είναι κλειστού κώδικα, κάνοντας έτσι την αναγνώριση των εσωτερικών διαθέσιμων εισόδων να είναι πολύ δύσκολη. Επίσης, το fuzzing σαν διαδικασία υπολογιστικά είναι πολύ απαιτητική. Νέες μέθοδοι πρέπει να βρεθούν. Σε αυτήν την εργασία, θα δούμε πως δουλεύουν τα εργαλεία fuzzing, διάφορα στοιχεία που μπορούν να επηρεάσουν την απόδοση ενός τέτοιου εργαλείου, ποια είναι τα στοιχεία ενός συστήματος Android και πια από αυτά είναι σημαντικά για την επίθεση του συστήματος. Μετά θα παρουσιάσουμε το εργαλείο που αναπτύξαμε το οποίο προσπερνάει αρκετούς από τους γνωστούς περιορισμούς κατά την διαδικασία του fuzzing σε μια εφαρμογή του Android. Το εργαλείο μας βασίζεται στο εργαλείο αντίστροφης μηχανικής Frida δίνοντας μας την δυνατότητα δυναμικής ενορχήστρωσης ώστε να προσπερνάμε πιθανούς μηχανισμούς αυθεντικοποίησης οι οποίοι μπορεί να έχουν εφαρμοστεί μέσα στην εφαρμογή και το πλεονέκτημα της εύκολης επεξεργασίας του fuzzer ώστε να προσαρμόζεται σε ιδιαιτερότητες της εφαρμογής. Έχοντας υπόψη μας τους περιορισμούς από την επίδοση του υλικού μιας συσκευής το εργαλείο μας σχεδιάστηκε με τέτοιον τρόπο ώστε να μπορεί να τρέχει σε εικονικές συσκευές Android με αυξημένη μνήμη και δυνατότητες επεξεργασίας και δυνατό ώστε να τρέχει παράλληλα ακολουθώντας διαφορετικές προσεγγίσεις μετάλλαξης των δεδομένων σε κάθε συσκευή μειώνοντας σημαντικά τον χρόνο ανακάλυψης ευπαθειών.