With the growing popularity of smartphones and apps, cyber criminals have begun infecting mobile devices with malware. The prevalence and complexity of such malicious programs are constantly on the rise. In response, researchers proposed various approaches for analysis and detection of malicious applications. In this work we focus on the fundamental problem of malware analysis, which can be traditionally divided in two categories: static and dynamic analysis. Static approaches have the main advantage of high code coverage and scalability, but they are ineffective against code obfuscation or dynamic payloads. Conversely, dynamic approaches are resilient to code obfuscation but they reach lower code coverage than static ones. In particular, current solutions are unable to fully reproduce the typical usage of human users, so to only partially cover the malicious code during dynamic analysis. Consequently, a malware sample may not exhibit its malicious behavior, leading to an erroneous or incomplete analysis. In this work we propose a new approach to exercise the user interface (UI) of an Android application in order to effectively exercise potentially malicious behaviors. To this end, our key intuition is to record and reproduce the typical UI-interaction of a potential victim of the malware, so to stimulate the relevant behaviors during dynamic analysis. Moreover, to make our approach scale, we record a trace of the UI events while a human is using an app, and then automatically re-execute this trace on apps that are "similar" to the given one. We developed our approach in PuppetDroid, an Android remote execution environment and UI exerciser for dynamic malware analysis. We experimentally demonstrated that our stimulation approach allows to reach higher code coverage than automatic UI exercisers, so to succeed in stimulating interesting malicious behaviors that are not exposed when using other approaches. Finally, PuppetDroid relies on crowdsourcing to collect new stimulation traces: we believe that our system can attract the interest not only of security analysts but also of normal users that want to safely test potentially malicious applications.

Con la crescente popolarità di smartphone e apps, i criminali hanno iniziato a sviluppare malware per dispositivi mobili. La diffusione e la complessità dei malware è in continua crescita. In risposta a questo fenomeno, sono stati proposti diversi approcci per analizzare ed individuare nuove minacce. Questo lavoro si focalizza sull'analisi di malware, che viene tradizionalmente divisa in analisi statica e dinamica. Le tecniche di analisi statica permettono di raggiungere un'elevata copertura di codice e scalabilità, ma risultano inefficaci in presenza di tecniche di offuscamento. Le tecniche di analisi dinamica non risentono invece di questa limitazione però non permettono di raggiungere l'elevata copertura di codice dell'analisi statica. In particolare, le soluzioni esistenti non sono in grado di riprodurre il tipico comportamento di un utente umano, riuscendo quindi a coprire solo parzialmente il codice malevolo e portando ad avere un'analisi scorretta o incompleta. In questo lavoro proponiamo un approccio innovativo per condurre test di analisi dinamica. L'approccio che proponiamo ruota intorno a due concetti chiave. Il primo è quello di sfruttare la stimolazione fornita da un tester umano per riprodurre la tipica interazione generata da una vittima del malware. Il secondo è quello di registrare una traccia dell'interazione dell'utente con l'applicazione e sfruttarla per stimolare applicazioni simili a quella originariamente testata. Abbiamo implementato il nostro approccio in PuppetDroid, un ambiente di esecuzione remota per l'analisi dinamica di malware Android. Abbiamo dimostrato sperimentalmente che sia i test manuali che i test automatici, eseguiti riutilizzando tracce di stimolazione precedentemente registrate, permettono di ottenere una copertura maggiore rispetto a quella ottenuta con i classici strumenti di stimolazione automatica. Infine, il nostro sistema può fare affidamento sul crowdsourcing per la raccolta di nuove tracce di stimolazione: riteniamo infatti che PuppetDroid possa attirare l'attenzione non solo di esperti di sicurezza, ma anche di utenti comuni che vogliono provare in maniera sicura applicazioni potenzialmente pericolose.

PuppetDroid : a remote execution environment and UI exerciser for Android malware analysis

GIANAZZA, ANDREA
2012/2013

Abstract

With the growing popularity of smartphones and apps, cyber criminals have begun infecting mobile devices with malware. The prevalence and complexity of such malicious programs are constantly on the rise. In response, researchers proposed various approaches for analysis and detection of malicious applications. In this work we focus on the fundamental problem of malware analysis, which can be traditionally divided in two categories: static and dynamic analysis. Static approaches have the main advantage of high code coverage and scalability, but they are ineffective against code obfuscation or dynamic payloads. Conversely, dynamic approaches are resilient to code obfuscation but they reach lower code coverage than static ones. In particular, current solutions are unable to fully reproduce the typical usage of human users, so to only partially cover the malicious code during dynamic analysis. Consequently, a malware sample may not exhibit its malicious behavior, leading to an erroneous or incomplete analysis. In this work we propose a new approach to exercise the user interface (UI) of an Android application in order to effectively exercise potentially malicious behaviors. To this end, our key intuition is to record and reproduce the typical UI-interaction of a potential victim of the malware, so to stimulate the relevant behaviors during dynamic analysis. Moreover, to make our approach scale, we record a trace of the UI events while a human is using an app, and then automatically re-execute this trace on apps that are "similar" to the given one. We developed our approach in PuppetDroid, an Android remote execution environment and UI exerciser for dynamic malware analysis. We experimentally demonstrated that our stimulation approach allows to reach higher code coverage than automatic UI exercisers, so to succeed in stimulating interesting malicious behaviors that are not exposed when using other approaches. Finally, PuppetDroid relies on crowdsourcing to collect new stimulation traces: we believe that our system can attract the interest not only of security analysts but also of normal users that want to safely test potentially malicious applications.
MAGGI, FEDERICO
ING - Scuola di Ingegneria Industriale e dell'Informazione
3-ott-2013
2012/2013
Con la crescente popolarità di smartphone e apps, i criminali hanno iniziato a sviluppare malware per dispositivi mobili. La diffusione e la complessità dei malware è in continua crescita. In risposta a questo fenomeno, sono stati proposti diversi approcci per analizzare ed individuare nuove minacce. Questo lavoro si focalizza sull'analisi di malware, che viene tradizionalmente divisa in analisi statica e dinamica. Le tecniche di analisi statica permettono di raggiungere un'elevata copertura di codice e scalabilità, ma risultano inefficaci in presenza di tecniche di offuscamento. Le tecniche di analisi dinamica non risentono invece di questa limitazione però non permettono di raggiungere l'elevata copertura di codice dell'analisi statica. In particolare, le soluzioni esistenti non sono in grado di riprodurre il tipico comportamento di un utente umano, riuscendo quindi a coprire solo parzialmente il codice malevolo e portando ad avere un'analisi scorretta o incompleta. In questo lavoro proponiamo un approccio innovativo per condurre test di analisi dinamica. L'approccio che proponiamo ruota intorno a due concetti chiave. Il primo è quello di sfruttare la stimolazione fornita da un tester umano per riprodurre la tipica interazione generata da una vittima del malware. Il secondo è quello di registrare una traccia dell'interazione dell'utente con l'applicazione e sfruttarla per stimolare applicazioni simili a quella originariamente testata. Abbiamo implementato il nostro approccio in PuppetDroid, un ambiente di esecuzione remota per l'analisi dinamica di malware Android. Abbiamo dimostrato sperimentalmente che sia i test manuali che i test automatici, eseguiti riutilizzando tracce di stimolazione precedentemente registrate, permettono di ottenere una copertura maggiore rispetto a quella ottenuta con i classici strumenti di stimolazione automatica. Infine, il nostro sistema può fare affidamento sul crowdsourcing per la raccolta di nuove tracce di stimolazione: riteniamo infatti che PuppetDroid possa attirare l'attenzione non solo di esperti di sicurezza, ma anche di utenti comuni che vogliono provare in maniera sicura applicazioni potenzialmente pericolose.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2013_10_Gianazza.pdf

Open Access dal 14/09/2014

Descrizione: Testo della tesi
Dimensione 4.04 MB
Formato Adobe PDF
4.04 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/84662