Anda di halaman 1dari 14

This article has been accepted for publication in a future issue of this journal, but has not been

fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 1

A LTERDROID: Differential Fault Analysis of


Obfuscated Smartphone Malware
Guillermo Suarez-Tangil, Juan E. Tapiador, Flavio Lombardi, Roberto Di Pietro

Abstract—Malware for smartphones has rocketed over the last years. Market operators face the challenge of keeping their stores
free from malicious apps, a task that has become increasingly complex as malware developers are progressively using advanced
techniques to defeat malware detection tools. One such technique commonly observed in recent malware samples consists of hiding
and obfuscating modules containing malicious functionality in places that static analysis tools overlook (e.g., within data objects). In
this paper, we describe A LTERDROID, a dynamic analysis approach for detecting such hidden or obfuscated malware components
distributed as parts of an app package. The key idea in A LTERDROID consists of analyzing the behavioral differences between the
original app and a number of automatically generated versions of it, where a number of modifications (faults) have been carefully
injected. Observable differences in terms of activities that appear or vanish in the modified app are recorded, and the resulting
differential signature is analyzed through a pattern-matching process driven by rules that relate different types of hidden functionalities
with patterns found in the signature. A thorough justification and a description of the proposed model are provided. The extensive
experimental results obtained by testing A LTERDROID over relevant apps and malware samples support the quality and viability of our
proposal.

Index Terms—Computer security, Malware, Mobile computing

1 I NTRODUCTION mitted apps that involves some form of security testing.


Official details about such revisions remain unknown,
Smartphones present a number of security and privacy
but the constant presence of malware in many markets
concerns that are, in many respects, even more alarming
and recent research studies [5] suggest that operators
than those existing in traditional computing environ-
cannot afford to perform an exhaustive analysis over
ments [1]. Most smartphone platforms are equipped with
each app submitted for release to the general public.
multiple sensors that can determine user location, ges-
This is further complicated by the fact that determining
tures, moves and other physical activities, to name a few.
which applications are malicious and which are not is
Smartphones also feature high-quality audio and video
still a formidable challenge, particularly for the so-called
recording capabilities. Sensitive pieces of information
grayware—namely, apps that are not fully malicious but
that can be captured by these devices could be easily
that constitute a threat to the user security and privacy.
leaked by malware residing on the smartphone. Even
apparently harmless capabilities have swiftly turned
into a potential menace. For example, access to the 1.1 Obfuscated Smartphone Malware
accelerometer or the gyroscope can be used to infer the
The rapid growth of smartphone sales has come hand
location of screen taps and, therefore, to guess what the
in hand with a similar increase in the number and
user is typing (e.g., passwords or message contents) [2].
sophistication of malicious software targeting these plat-
Similarly, the Radio Data System (RDS) embedded in
forms. For example, according to the mobile threat report
most AM/FM channels can be exploited to inject attacks
published by Juniper Networks in 2012, the number
on Software Defined Radio (SDR) systems [3].
of unique malware variants for Android increased by
A major source of security problems is precisely the
3325.5% during 2011 and by 614% between 2012 and
ability to incorporate third-party applications from avail-
2013 [6]. Smartphone malware has become a rather
able online markets. Thus, security measures at the mar-
profitable business due to the existence of a large number
ket level constitute a primary line of defense [4]. Many
of potential targets and the availability of reuse-oriented
market operators carry out a revision process over sub-
malware development methodologies that make exceed-
ingly easy to produce new samples.
• G. Suarez-Tangil and J.E.Tapiador are with the Dept. of Computer Science,
Universidad Carlos III de Madrid, 28911 Leganes, Madrid, Spain.
Malware analysis is a thriving research area with a
E-mail: guillermo.suarez.tangil@uc3m.es (G. Suarez-Tangil), substantial amount of still unsolved problems [7], [6],
jestevez@inf.uc3m.es (J.E. Tapiador). [8]. In the case of smartphones, the impressive growth
F. Lombardi is with IAC-CNR, via dei Taurini 19, 00185, Rome, Italy.
E-mail: flavio.lombardi@cnr.it (F. Lombardi).
both in malware and benign apps is making increasingly
Roberto Di Pietro is with Bell Labs, Cyber Security Research, 91620 unaffordable any human-driven analysis of potentially
Nozay, Paris, France. He is also with Maths Dept. Univ. of Padua, Italy. dangerous apps. This has consolidated the need for
E-mail: roberto.di pietro@alcatel-lucent.com (R. Di Pietro)
intelligent analysis techniques to aid malware analysts in

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 2

their daily functions. Furthermore, smartphone malware predefined model for each possible type of resource (i.e.,
is becoming increasingly stealthy [9] and recent specimes code, pictures and video, text files, databases, etc.). Faults
are relying on advanced code obfuscation techniques to are then injected into candidate components, which are
evade detection by security analysts [10]. For instance, subsequently repackaged, together with the unaltered
DroidKungFu has been one of the major Android mal- ones, into a new app. This process admits simultaneous
ware outbreaks. It started on June 2011 and has already injection of different faults into different components
at least six known different variants. It has been mostly and it is driven by a search algorithm that attempts to
distributed through official or alternative markets by identify where the obfuscated functionality is hidden.
piggybacking the malicious payload into a variety of Both the original and the fault-injected apps are then exe-
legitimate applications. Such a payload is encrypted into cuted under identical conditions (i.e., context and user
the app’s assets folder and decrypted at runtime using inputs), and their behavior is monitored and recorded in
a key stored in a local variable and located at one class. the form of two behavioral signatures. Such signatures
Another remarkable example is GingerMaster, the first are merely sequential traces of the activities executed
malware using root exploits for privilege escalation on by the app, such as for example opening a network
Android 2.3. The main payload was stored as PNG and connection, sending or receiving data, loading a dynamic
JPEG pictures in the assets file, which were interpreted component, sending an SMS, interacting with the file
as code once loaded by a small hook within the app. system, etc. Both behavioral signatures are then treated
More sophisticated obfuscation techniques, particu- as in a string-to-string correction problem, in such a way
larly in code, are starting to materialize (e.g., stego- that computing the Levenshtein (edit) distance between
malware [11]). These techniques and trends create an them returns the list of observable differences in terms of
additional obstacle to malware analysts, who see their insertions, deletions, and substitutions. Such a list, called
task further complicated and have to ultimately rely the differential signature, is finally matched against a
on carefully controlled dynamic analysis techniques to rule-set where each rule encodes a relationship between
detect the presence of potentially dangerous pieces of the type of presumably hidden functionality and certain
code. patterns in the differential signature.
Our prototype implementation of A LTERDROID builds
on a number of Android open source tools that facilitate
1.2 Overview and Contributions tasks such as extracting components [12], repackaging
In this paper we describe A LTERDROID, a tool for de- them back into an app [13], and analyzing dynamic
tecting, through reverse engineering, obfuscated func- behavior [14]. The present A LTERDROID base platform
tionality in components distributed as parts of an app does not have a fully comprehensive set of fault injection
package. Such components are often part of a malicious operators and differential rules. In fact, A LTERDROID
app and are hidden outside its main code components is designed and built to allow ease of tailoring and
(e.g. within data objects), as code components may be flexibility in functionality addition. Required extensions
subject to static analysis by market operators. The key depend on the kind of usage the proposed system is built
idea in A LTERDROID consists of analyzing the behavioral for. In order to build a production system, of course,
differences between the original app and an altered ver- the entire set of possible operators has to be created.
sion where a number of modifications (faults) have been However, this is out of the scope of present paper, aimed
carefully introduced. Such modifications are designed to at showing and discussing benefits and limitations of the
have no observable effect on the app execution, provided proposed approach rather than proving its completeness
that the altered component is actually what it should be of suitability for production usage in its present shape.
(i.e., it does not hide any unwanted functionality). For The main contributions of this paper can be summa-
example, replacing the value of some pixels in a picture rized in what follows:
or a few characters in a string encoding an error message • We introduce the notion of differential fault analysis
should not affect the execution. However, if after doing for detecting obfuscated malware functionality in
so it is observed that a dynamic class loading action smartphone apps.
crashes or a network connection does not take place, it • We provide simple yet powerful enough models for
may well be that the picture was actually a piece of code fault injection operators, behavioral signatures and
or the string a network address or a URL. rule-based analysis of differential behavior.
At high level, A LTERDROID has two differentiated • We describe the functional components of A LTER -
major components: fault injection and differential ana- DROID , a prototype implementation of our diffe-
lysis. The first one takes a candidate app—the entire rential fault analysis model for Android apps. The
package—as input and generates a fault-injected one. system includes instantiations for key tasks such
This is done by first extracting all components in the as identifying components to be fault-injected and
app and then identifying those suspicious of containing a search-based approach to track down obfuscated
obfuscated functionality. Such an identification is done components in an app. Moreover, A LTERDROID’s
on an anomaly-detection basis by comparing specific functional architecture supports distributed deploy-
statistical features of the component’s contents with a ment of different modules, which allows running

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 3

various analysis tasks in parallel and also poten- Fault conditions can be injected into an app by altering
tially offloading them to the cloud. one or more of its components. If C is the set of all
• We illustrate our approach by providing a step- possible app components, a Fault Injection Operator
by-step analysis of three relevant Android mal- (FIO) is a transformation
ware samples that incorporate hidden functionality
in repackaged apps: DroidKungFu, AnserverBot, Ψci : 2C → 2C
ci (2)
and GingerMaster. Ψ (P) = P \ {ci } ∪ {Ψ(ci )}.
• We evaluate the performance of our approach over
That is, Ψci (P) returns a modified version of P where
a number of malware samples found in the wild.
component ci has been replaced by Ψ(ci ). Depending
Specifically, we use A LTERDROID to analyze around
on the functionality of c and on the nature of the
10000 apps from a malware repository (VirusShare),
modifications introduced by Ψ, replacing c by Ψ(c) may
an unofficial Android Market (Aptoide), and Google
(or may not) translate into observable differences in the
Play (GP).
execution of P.
• Finally, we provide an open-source version of A L -
In this paper, we restrict ourselves to FIOs that make
TERDROID 1 to foster further research in automated
alterations to data components only, not to instructions.
tools for advanced smartphone malware analysis.
Data components include the value of variables found in
The rest of this paper is organized as follows. In the code and also asset files such as databases, pictures,
Section 2 we introduce the formal models for fault and audio and video files. We will abuse notation and
injection and differential analysis. Section 3 describes write τ (Ψci ) for τ (ci ); i.e., we consider that the type of
A LTERDROID’s architecture and its key functional com- a FIO is the type of all components it can be applied to.
ponents, and provides an overview of our proof-of- FIOs can be arbitrarily complex and, in some cases,
concept implementation. Subsequently in Section 4 we their operation may depend on the type and/or current
discuss the analysis of three Android malware samples value of the component to be altered. However, some
with A LTERDROID and present a performance evalua- simple FIOs treat components as bit strings, such as for
tion. Section 5 provides an overview of related work in example:
this area and compares A LTERDROID to other proposals
targeting the problem of Android malware detection. • rrepc (·): replaces the value of component c for a
Finally, in Section 6 we conclude the paper by summa- randomly chosen bit string.
rizing our main contributions and discussing limitations • zeroc (·): replaces the value of component c for a
and directions for future research. string of zeros of the same length.
• rmutcj (·): flips the j-th bit of of component c.
The above FIOs are rather generic. In some cases,
2 A D IFFERENTIAL FAULT A NALYSIS M ODEL we might want to define datatype-specific operators.
This section introduces the theoretical background used These will allow modifying specific data objects (e.g.,
in A LTERDROID to: multimedia files) in a syntax-preserving way, when the
• inject faults into apps; focus is on changing the content without rendering the
• represent behavioral differences between apps; object unusable.
• deduce properties from such behavioral differences
considering injected faults and observed differences.
2.2 Modeling Differential Behavior
The overall dynamics of the differential fault analysis
process (i.e., the mechanism governing which faults are A key task in our system is the analysis of the behavioral
injected and where) is external to this model and will be differences between an original app and a slightly modi-
discussed in Section 3. fied version of it after applying a FIO. We next introduce
a model to represent traces of activities and differences
between such traces.
2.1 Fault Injection Model
An app P can be seen as a collection of components
2.2.1 Behavioral Signatures
P = {c1 , c2 , . . . , ck }. (1) An app interacts with the platform where it is executed
by requesting services through a number of system
A component can be composed of a number of classes
calls. These define an interface for apps that need to
(i.e., code), but also other resources that are dynamically
read/write files, send/receive data through the network,
accessed, such as for example asset files. Components
place a phone call, etc. Rather than focusing on low-
have a type, such as for example code, picture, video,
level system calls, in this paper we will describe an app’s
database, etc. A type function τ (c) can be defined that
behavior through the activities it executes (see also [15]).
returns the type of component c.
In some cases, there will be a one-to-one correspondence
1. Code and documentation can be downloaded from http://www. between a behavioral activity and a system call, while in
seg.inf.uc3m.es/∼guillermo-suarez-tangil/Alterdroid/ others a behavioral activity will encompass a sequence of

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 4

system calls executed in a given order. In what follows, where oi ◦oj denotes de composition of STOs oi and oj . In
we assume that other words, the differential signature ∆(σ1 , σ2 ) provides
a sequence of insertions, deletions, and substitutions that
A = {a1 , a2 , . . . , an } (3) transforms σ1 into σ2 . Notice that, in general, ∆(σ1 , σ2 ) 6=
is a set of all relevant and observable activities an app ∆(σ2 , σ1 ).
can execute. For the purposes of this work, we are interested in
The execution flow of an app P may follow different minimal differential signatures, i.e., sequences of mini-
paths depending on its inputs. We group such inputs mum length. The most straightforward way to compute
into two main classes: the minimal differential signature is by computing the
Levenshtein distance [16] (also known as edit distance)
• A sequence u of user-provided inputs, such as for
between σ1 and σ2 , assuming that all operators have
example those acquired through the touchscreen.
equal cost [17]. This computation returns not only the
• A sequence t of contexts, defining the state of the
distance, but also the optimal differential signature.
environment when the execution takes place. Each
context (state) is represented by a set of variables
that provide the app with information such as cur- 2.3 Analyzing Differential Signatures
rent location, time, energy level, temperature, etc. Let
c
We will denote by P(u|t) the execution of P with user P 0 = Ψ(P) = Ψcrr ◦ Ψr−1
r−1
◦ · · · ◦ Ψc11 (P) (8)
inputs u in context t.
be the app resulting after the sequential application of
The observable behavior resulting from the execu-
FIOs Ψ1 , . . . , Ψr to components c1 , . . . , cr of app P. Let
tion of P(u|t) is summarized in a behavioral signature
σ[P] and σ[Ψ(P)] be the behavioral signatures obtained
σ[P(u|t)], this being a time series given by
after executing P and Ψ(P) under the same conditions2 ,
σ[P(u|t)] = hs1 , s2 , . . . , sn i, si ∈ A. (4) and let ∆(σ[P], σ[Ψ(P)]) be their differential signature.
The analysis model used in this paper is based on
Notice that the adopted signature model does not take deducing properties of P from the presence or absence
into account the duration of each behavioral activity or of certain patterns in ∆(σ[P], σ[Ψ(P)]) and the properties
the time elapsed between (each two of) them, but only of the FIO Ψ. We next describe these two elements in
their relative ordering. We will abuse notation and omit detail.
the associated app and its inputs when it is irrelevant or
clear from context. 2.3.1 FIO Classes
Finally, we will denote by len(σ) the length of signa- We identify two broad classes of FIOs:
ture σ, defined as the number of activities in the series. c
• A FIO Ψ i is said to be indistinguishable if
∆(σ[P], σ[Ψci (P)]) = ∅ for all apps P containing
2.2.2 Differential Signatures
component ci . In other words, a FIO is indistin-
We are interested in analyzing the differences between guishable if it does not affect the execution flow
two observed behaviors given by their respective be- of any app and, therefore, the behavioral signatures
havioral signatures. We approach this problem as one before and after applying it coincide.
of string-to-string correction, where differences are re- • A FIO Ψ i
c
is said to be distinguishable if
spresented as the minimum number of edit operations ∆(σ[P], σ[Ψci (P)]) 6= ∅ for all apps P containing
needed to transform one signature into the other. Given component ci . Thus, distinguishable FIOs always
a behavioral signature σ = hs1 , s2 , . . . , sn i, we define the manifest as nonempty differential signatures.
next three families of signature transformation operators In what follows, the predicate ind(Ψci ) models this
(STO) for all a ∈ A and i ∈ [1, n]: property:
a
• Insi (σ) = hs1 , . . . , si , a, si+1 , . . . , sn i
if Ψci is indistinguishable

a true
• Deli (σ) = hs1 , . . . , si−1 , si+1 , . . . , sn i ind(Ψci ) = (9)
a
• Subi (σ) = hs1 , . . . , si−1 , a, si+1 , . . . , sn i false otherwise
Let [ 2.3.2 Properties of Differential Signatures
Insai ∪ Delai ∪ Subai

O= (5)
i,a
Patterns in differential signatures are modeled as first-
order logical predicates upon which Boolean formulae
be the set of all possible STOs. Given two behavioral can be defined. Thus, analyzing a differential signature
signatures σ1 and σ2 , we define the differential signature reduces to evaluating a number of Boolean formulae
∆(σ1 , σ2 ) as an ordered sequence of STOs linked to properties of the app and the FIO, i.e.,

∆(σ1 , σ2 ) = ho1 , o2 , . . . , ok i oi ∈ O (6) P has property x ⇐⇒ Φx Ψ, ∆(σ[P], σ[Ψ(P)]) = true.
(10)
such that
ok ◦ ok−1 ◦ · · · ◦ o1 (σ1 ) = σ2 , (7) 2. That is, the same sequence of user inputs and contexts.

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 5

Differential
We consider two basic predicates: App Execution
Behavioral
Signature
Analysis

• equal(∆1 , ∆2 ) = true iff ∆1 = ∆2 , where ∆1 and ∆2 Fault Injection


Generate Differential Pattern
are differential signatures. Notice that the empty set Extract Repackage Inputs Signature Matching App
Components Components
Corruption
is a valid differential signature. Report
Identify Inject Behavioral
• contains(∆, o) = true iff ∆ = ho1 , o2 , . . . , ok i and CoI
Select
Components Faults
Execution
Signature Rules
∃oj ∈ ∆ such that oj = o.
Standard symbols will be used for Boolean formulae, Fig. 1. A LTERDROID architecture.
including quantifiers (∃, ∀), negation (¬), conjunction (∧),
and disjunction (∨).
information from a number of sensors (e.g., accelerom-
2.3.3 Examples eter, GPS, etc.) if, after modifying it, the differential
We next illustrate the concepts introduced above through signature lacks an access to such a sensor and a network
a number of examples. connection:
c
Example 1. Assume that cicon is an icon image used  SDL : c ∈ P leaks sensor data ⇐⇒ ind(Ψ ) ∧
R
by an app P in the GUI. Modifying some pixels of
∃ i1 : contains ∆(σ[P], σ[Ψc (P)]), Delacc

i1 ∨
such an icon, or even replacing it by another valid
gps 
icon should not affect at all the execution flow of P. If ∃ i2 : contains ∆(σ[P], σ[Ψc (P)]), Deli2 ∨
nonetheless the icon is replaced and the modified app ..
behaves differently from the original app under exactly .
the same conditions, it can be deduced that the original ∧ ∃ j : contains ∆(σ[P], σ[Ψc (P)]), Delnet

j .
icon contained some functionality, for instance a piece of
compiled code masqueraded as an icon. This intuition
can be generalized through the following rule (hidden 3 A LTERDROID : D IFFERENTIAL FAULT A NA -
functionality in component, or HFC): LYSIS OF O BFUSCATED A PPS
RHFC : c ∈ P contains hidden functionality ⇐⇒ We next describe A LTERDROID, our approach to study-

ind(Ψc ) ∧ ¬equal ∆(σ[P], σ[Ψc (P)]), ∅ , ing obfuscated malware code based on the differential
fault analysis model discussed above. The high level
where Ψc (P ) is the FIO that replaces icon c in P by architecture of A LTERDROID is shown in Fig. 1 (see [18]).
another valid icon. There are two differentiated major blocks:
Example 2. A more specific case of the situation dis- 1) The first one generates a number of fault-injected
cussed in the previous example occurs when modifying apps. This process is carried out by first extrac-
a component c results in the absence of a dynamic ting all app components and identifying those of
loading action, which is used to load code pieces into interest (CoIS3 ), i.e., those components suspicious
memory. In such a case, it may be possible that c contains of containing hidden functionality. An iterative
hidden code that is dynamically loaded. The following process then selects candidate CoIs and injects
rule captures this: faults into them. Both modified and unmodified
RCDC : c ∈ P contains dynamic code ⇐⇒ components are then repackaged together into a
ind(Ψc ) ∧ ∃ i : contains ∆(σ[P], σ[Ψc (P)]), Deldex load

. new app4 .
i
2) The second block generates stimuli (user inputs
Example 3. Let v be a variable such that its content and context) for both apps and executes them,
should have no influence on the program flow. For generating a pair of behavioral signatures. The di-
example, v could be a string containing an error message fferential signature is then computed and matched
that may be displayed at some point. Such strings have against a database of patterns to identify the pres-
been broadly used in existing malware to hide URLs ence of hidden functionality.
that point to services from where the malware can We next provide a detailed description of the key
download further code, receive instructions, send data, modules of A LTERDROID and the current prototype im-
etc. To avoid detection, the string is often obfuscated plementation.
and the URL is only revealed at execution time after
applying some transformation. Thus, any modification
of the string such that the URL is damaged will likely 3.1 Identifying Components of Interest
result on the impossibility of establishing a connection. The first step in the analysis of an app is identifying com-
The following rule captures this intuition: ponents of interest (CoIs), i.e., parts of an app suspicious
of containing hidden functionality. Such components will
RURL : v ∈ P contains an URL ⇐⇒
net

ind(Ψv ) ∧ ∃ i : contains ∆(σ[P], σ[Ψv (P)]), Deli . 3. We denote as CoIS (with capital S) the set of Components of
Interest CoIs
Example 4. Similarly to the cases discussed above, it 4. Note this does not require the source code of the app to be
may be possible to find out whether a component c leaks available

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 6

Input:
App: P = {c1 , c2 , . . . , ck } 3.2 Generating Fault-injected Apps
Set of type normality models: {M1 , M2 , · · · , Mn }
Set of FIOs: {Ψ1 , Ψ2 , · · · , Ψm } Components of interests identified in the previous stage
Mode: normal / exhaustive are injected with faults and reassembled, together with
Procedure:
1. CoIS ← ∅
the remaining app components, to generate a faulty app
2. For each c ∈ P do P 0 . This process can generate several fault-injected apps,
3. if [test(c, Mτ (c) ) = false] or as there are multiple ways of applying different FIOs to
[(mode = exhaustive) and (∃ Ψi : τ (Ψi ) = τ (c))] then
4. CoIS ← CoIS ∪ {c} different components in the set of CoIs. In A LTERDROID,
5. return CoIS fault-injected apps are generated one at a time and
sent for differential analysis. If no evidence of malicious
Fig. 2. Algorithm for obtaining CoIS from an app. behavior is found in the differential analysis, the fault
injection process is invoked again to generate a different
faulty app, and so on.
be later fault injected according to some strategy in order Assume that CoIS = {c1 , . . . , cn } and that for each
to analyze the resulting behavior. ci ∈ CoIS there is a set of FIOs Fi = {Ψci1i , . . . , Ψcim
i
}
i
We say that a component c of type τ (c) in an app P that can be applied to ci . (Recall that FIOs can be quite
is of interest if it does not fit a model Mτ (c) defined specific and, therefore, not all FIOs are applicable to
for all components of type τ (c). In our current version all components.) All possible fault-injected apps can be
of A LTERDROID, models measure statistical features only, generated by a naı̈ve strategy that applies each FIO to
such as for example the expected entropy, the byte distri- each component one at a time, producing the sequence
bution, or the average size. Such features are computed of apps
from a dataset of components of the same type, such
as text files, pictures, code, etc. For each model M, we Ψci11 (P), . . . , Ψcim
1
(P), . . . , Ψci1n (P), . . . , Ψcim
n
n
(P). (13)
1

assume a Boolean function test(c, M) that returns true if Pn


c complies with M, and false otherwise. For example, Thus, there are j=1 mj possible fault-injected apps, one
if M is a byte distribution, then test(c, M) could be a for each possible component-FIO pair.
goodness-of-fit test (e.g., χ2 ) between M and c’s byte Although A LTERDROID implements several distingui-
distribution. More formally shable FIOs, all FIOs tested in our experiments are
indistinguishable. This allows for a more efficient fault
injection process based on the fact that the composition
c ∈ CoIS(P) ⇐⇒ test(c, Mτ (c) ) = false. (11)
of indistinguishable FIOs is an indistinguishable FIO.
Consequently, if the same FIO is applied to multiple
In our experience, such simple models suffice to components and there is hidden functionality in just one
spot the most common—and rather simple—obfuscation of them, the resulting app will behave exactly as if just
methods observed in smartphone malware, including the malicious component would have been fault injected.
code camouflaged as supplementary multimedia files, The resulting fault injection process is as follows:
connection data hidden in text variables, etc. 1) For each FIO Ψj , generate Pj0 by applying it to all
A LTERDROID also supports an exhaustive analysis ci ∈ CoIS
mode in which some additional components may be con-
sidered CoIs even if they comply with their type model. Pj0 = Ψj (P) = Ψcij1 ◦ Ψcij2 ◦ · · · ◦ Ψcijn (P), (14)
In this mode, a component is considered CoI if it is CoI
as defined above, or if there exists an indistinguishable where Ψcji is the identity operator if Ψj is not appli-
operator for it. Formally cable to ci . The resulting Pj0 is sent for differential
analysis with respect to the original P.
2) If there is one Pj0 such that the differential analysis

c ∈ CoIS(P) ⇐⇒ test(c, Mτ (c) ) =false or
∃ Ψc : ind(Ψc ) . spots malicious behavior, the component responsi-
(12) ble for it can be identified by searching over all
The rationale for including this mode is to also check ci ∈ CoIS with just the corresponding FIO Ψj .
components for which we know in advance that alte- This process can be done in logarithmic time by
rations do not translate into noticeable differences. This ordering all components and recursively applying
is very useful for detecting more sophisticated obfus- Ψj to half of them, rather than in linear time by
cation methods that try to evade detection by carefully just applying Ψj to each ci ∈ CoIS in turn.
modifying the code so that it fits the statistical model of The overall process, which is entwined with the di-
the component. As a side effect, however, the exhaustive fferential analysis stage discussed later, is summarized
analysis mode may end up with a large set of CoIs in the algorithm shown in Fig. 3. Notice that in this
(CoIS). description the process stops when just one malicious
The algorithm shown in Fig. 2 describes the process component is identified. Extending the algorithm so that
discussed above to identify the CoIS in A LTERDROID. it searches for all of them is straightforward.

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 7

Input: Input:
App: P Apps: P and P 0
CoIS = {c1 , c2 , . . . , cn } FIO Ψ
Set of FIOs: F = {Ψ1 , Ψ2 , · · · , Ψm } Set of rules: R = {R1 , R2 , . . . , Rp }
Procedure:
1. maliciousComp ← null Procedure:
2. For each FIO Ψj do 1. (u, t) ← GenUsagePatterns(P)
3. Pj0 ← P 2. σ ← GenBehavioralSig(P, u, t)
4. For each ci ∈ CoIS do 3. σ 0 ← GenBehavioralSig(P 0 , u, t)
5. if Ψj is applicable to ci then 4. ∆(σ, σ 0 ) ← ComputeDiffSig(σ, σ 0 )
c
6. Pj0 = Ψj i (P) 5. matchingRules ← ∅
7. if DiffAnalysis(P, P 0 , Ψj ) 6= ∅ then 6. For each Ri ∈ R do
8. maliciousComp ← SearchComponent(Ψj , P, CoIS, 1, n) 7. if match(Ri , Ψ, ∆(σ, σ 0 )) then
9. return maliciousComp 8. matchingRules ← matchingRules ∪ {Ri }
Function SearchComponent(Ψj , P, CoIS, min, max) 9. end-if
1. Pj0 ← P 10. end-for
2. For i = min to max do 11. return matchingRules
3. if Ψj is applicable to ci then
c
4. Pj0 = Ψj i (P)
5. if DiffAnalysis(P, P 0 , Ψj ) 6= ∅ then Fig. 4. Algorithm DiffAnalysis for generating differential
6. if min = max then signatures and identifying matching rules.
7. return cmin
8. else
9. SearchComponent(Ψj , P, CoIS, min, (max − min)/2)
10. SearchComponent(Ψj , P, CoIS, (max − min)/2), max) ApkTool [13]. Monkey [21] is used to generate a com-
mon sequence of events to interact with both the original
Fig. 3. Algorithm for injecting faults and searching for app and the fault-injected app. These events should
malicious components after differential analysis. be generated specifically for each test to intelligently
drive the GUI exploration [19], [20], i.e., to test code
implementing different functionalities of the app. In its
3.3 Applying Differential Analysis current version, A LTERDROID uses Monkey to generate
Differential analysis between a candidate fault-injected 5 classes of input events: activity launch, service launch,
app and the original app is carried out following the action buttons, screen touch, and text input.
model described in Sections 2.2 and 2.3. The process Each app is then executed in a controlled environment
comprises the following steps: using the stream of events generated above. For this
1) Generate an appropriate usage pattern u and con- purpose, we use Droidbox [22], a sandbox that allows
text t [19], [20] to feed both apps and extract their monitoring various features related to the execution
behavioral signatures, σ[P(u|t)] and σ[P 0 (u|t)]. during a fixed, user-given amount of time. In order to
Both the original and the fault-injected app are generate behavioral signatures, A LTERDROID monitors
tested under the same conditions and using the the execution of 11 different activities:
same inputs. Note that this assumes that the exe- • crypto: generated when calls to the cryptographic
cution of an app is completely deterministic. API are invoked;
2) Generate the differential signature • net-open, net-read, net-write: associated with network
∆(σ[P(u|t)], σ[P 0 (u|t)]) from the behavioral I/O actitivites (opening a connection, receiving, and
signatures obtained above. sending data);
3) Apply sequentially all rules Ri over • file-open, file-read, file-write: associated with file sys-
∆(σ[P(u|t)], σ[P 0 (u|t)]) and return those for tem I/O activities (opening, reading, and writing);
which a match is obtained. • sms, call: generated whenever a text message or a

The process is summarized in the algorithm in Fig. 4. phone call is sent or received;
• leak: generated whenever the app leaks private in-
formation, as determined by Taintdroid [23]; and
3.4 Implementation • dexload: generated when an app loads native code.

We next describe our prototype implementation of A L - Finally, our prototype allows performing analysis
TERDROID , including the currently available operators tasks in parallel. We presently limit our implementation
for extracting the components of interest, generating to a small number of CoI models, FIO operators, and
fault injected apps, and a rule-set used for differential differential matching operators. Nonetheless, our archi-
signature matching. tecture allows security experts to further extend this and
configure their own operators based on their experience.
3.4.1 Prototype Implementation
A LTERDROID is implemented using Java and Python 3.4.2 CoI Models
components and relies on a number of Android open A LTERDROID currently supports the following models
source tools for specific tasks. App components are for identifying CoIs:
extracted using Androguard [12]. After fault injection, • EXEFileMatch. This model analyzes components of
components are repackaged into a modified app using type Dalvik Executable Format (DEXFileMatch), Ap-

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 8

FIO Type Targeted CoIs ind. Name Contains Rule


σ[Ψc (P )]), Delnet−open

ImgExtensionMismatch X Network ∃ i 1 : contains ∆(σ[P], i1
GenericFMutation Any file EncryptedOrCompressed – RNBC Behavior c
∨ ∃ i2 : contains ∆(σ[P], σ[Ψ (P )]), Deli1 net−read 
APKFExtensionMismatch X Component
∨ ∃ i3 : contains ∆(σ[P], σ[Ψc (P )]), Delnet−write

ImgFileChange Any image ImgFileMatch X i2
∃ i1 : cont ∆(σ[P], σ[Ψc (P )]), Delfi1ile−open

Non- File
ScriptFileChange compiled TextScriptMatch × RFBC Behavior c
∨ ∃ i2 : contains ∆(σ[P], σ[Ψ (P )]), Deli1 f ile−read 
program Component
∨ ∃ i3 : contains ∆(σ[P], σ[Ψc (P )]), Delfi2ile−write

APKFileChange Android app APKFileMatch ×
∃ i : contains ∆(σ[P], σ[Ψc (P )]), Delleak

Dalvik RDLC Data Leak i
DEXFileChange DEXFileMatch ×
executable ∃ i : contains ∆(σ[P], σ[Ψc (P )]), Delsms

RSBC SMS Behav. i
Executable RPBC Payload c
∃ i : contains ∆(σ[P], σ[Ψ (P )]), Deli dexload

ELFFileChange ELFFileMatch ×
and linkable c net−read 
Update ∃ i1 : contains ∆(σ[P], σ[Ψ (P )]), Deli1
TABLE 1 RUPC ∧ ∃ i : contains ∆(σ[P], σ[Ψc (P )]), Deldexload

Payload i
crypto
FIOs implemented in A LTERDROID’s current version and ∃ i : contains ∆(σ[P], σ[Ψc (P )]), Deli

RCBC Crypto
their corresponding CoIs (ind. = indistinguishable). ∃ i1 : contains ∆(σ[P], σ[Ψc (P )]), Delcrypto

Crypto i1
RCPC c
∧ ∃ i : contains ∆(σ[P], σ[Ψ (P )]), Deli dexload

Payload
c

RHFC Hidden Func. ¬ equal ∆(σ[P], σ[Ψ (P )]), ∅

TABLE 2
plication Package file format (APKFileMatch), and Basic indistinguishable differential rules implemented.
Executable and Linkable Format (ELFFileMatch),
i.e., τ (c) = hDEX, AP K, ELF i. The model defined
for these components is based on the magic number
defined in the file header. • ImgFileChange. This FIO changes a number of pi-
• ImgFileMatch. This model analyzes components of xels of image file components. The FIO type matches
type picture, such as PNG, JPG, or GIF images, i.e., components of type ImgFileMatch. This is an indis-
τ (c) = hP N G, · · · , JP Gi. This model is based on the tinguishable FIO due to the nature of the changes
magic number defined in the file header, similarly and the type of component. Thus, although the
to the model above. image resulting from the injection will be different,
• EncryptedOrCompressedMatch. This model matches this change should not alter the app execution flow.
any file whose entropy, measured at the byte level, • EXEFileChange. This FIO replaces the file with a
exceeds a given threshold. In such a case, the file well-formed APK, DEX or ELF file that effectively
is considered to contain random or encrypted infor- does nothing, equivalent to a NOP (no-operation)
mation and, therefore, is selected for fault analysis. injection. This change should cause a different be-
We set the current threshold to 3.9. Such value was havior in the resulting differential signature as the
chosen after measuring the entropy of several files former EXE file has been replaced. Thus, this FIO is
before and after being encrypted with DES. distinguishable.
• ExtensionMismatch. This model identifies files such • ScriptFileChange. This FIO replaces the file with
that their magic numbers do not match the file a valid NOP script. It only matches components of
extension. For instance, we found several APK type ScriptFileChange. This FIO is also distingui-
files with DB extension and several encrypted shable.
files with JPG extension. We currently support • GenericFileMutation. It randomly changes seve-
two submodels: ImgFileExtensionMismatch and ral bytes of a file. This FIO is applied when
APKFileExtensionMismatch. there is no information about the file type and its
• TextScriptMatch. This model analyzes components structure, e.g., when injecting faults to encrypted
that match any ASCII text executable file, i.e., τ (c) = files (EncryptedOrCompressedMatch) or when the
Script. This model is also based on the magic num- file extension does not match its magic number
ber defined in the file header. ExtensionMismatch. This FIO might be distingui-
All CoIs described above are implemented in Python. shable or indistinguishable, depending on the file.
The set can be easily extended to incorporate additional As in the case of CoI models, FIOs are implemented
models by simply adding the corresponding module. in Python and provided with A LTERDROID’s current
version. Again, the set can be easily extended with
3.4.3 Fault Injection Operators additional FIOs by adding the corresponding module.
FIOs in A LTERDROID are strongly typed. This pevents
syntactic errors during the execution of the modified 3.4.4 Differential Rules
app. For instance, if a generic FIO randomly modifies The basic set of differential rules incorporated in A L -
chosen bits of a JPEG without considering the file struc- TERDROID comprises the 9 rules shown in Table 2. They
ture, it may end up with a malformed picture that could all apply to indistinguishable FIOs and cover the most
cause the app to crash during execution. We currently common examples of obfuscated functionality: network
support the following FIOs (see also Table 1): activity, file activity, data leakage, SMS activity, hidden

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 9

VS AP GP
payloads, update attacks, cryptographic activity, crypto- No. Apps 2 913 2 994 4 000

Sum.
graphic payloads, and generic hidden functionality. Avg. No. CoIS 145.6 284.4 409.9
To reduce the complexity of the search space, all basic Avg. No. FIOs 138.3 273.5 397.3
rules apply to indistinguishable FIOs. However, for the ImageFileMatch 397 248 813 754 1 586 379
EncOrCompressed 16 687 35 293 45 781
sake of completeness our implementation incorporates

CoIS
ImgExtensionMismatch 5 771 5 246 3 130
several distinguishable FIOs, and new rules can be fur- DEXFileMatch 2 827 2 995 4 007
ther added to match them. For instance, given an app APKFileMatch 1 087 58 220
APKExtensionMismatch 517 39 183
that incorporates a DEX program used to enhance photos

FIOs
ImageFile 397 248 813 754 1 586 379
taken from the camera, we can use a rule to check GenericMutationFile 5 714 5 237 2 698
whether this CoI actually does just that or not. No. RFBC 2 802 2 962 3 961

Rules
Thus, if after applying a FIO over this component No. RNBC 2 773 2 929 3950
the differential signature shows, for instance, changes in No. RHFC 1 971 669 95
No. RSBC 220 0 0
network activity, we may suspect that the CoI contained – Average Overhead 584.51 s 666.67 s 567.99 s
other functionality piggybacked on the DEX.
Formally, given DEXFileMach ∈ CoIS and its corre- TABLE 3
sponding distinguishable FIO (i.e., DEXFileChange), the Analysis of the VS (VirusShare), AP (Aptoide), and GP
following rule captures this intuition: (Google Play) datasets. The number of CoIs and FIOs is
summarized (Sum.) on average per app and also given
RDEX : dex ∈ P contains NET activity ⇐⇒ on absolute value. The number of rules matching (NAC
¬ind(Ψdex ) ∧ ∃ i : contains ∆(σ[P], σ[Ψv (P)]), Delnet

i . and DLC) is also given in absolute value, and the
overhead is given in seconds on average per app.
4 E VALUATION
We next report a number of experimental results ob-
tained with our prototype implementation of A LTER -
DROID . These results illustrate how our system can respectively, as shown in Table 3. Note that the number
be used by market operators and security analysts to of CoIs from AP is twice the number of CoIs from
facilitate the analysis of complex obfuscated mobile mal- VS. Similarly, the number of CoIs in GP is significantly
ware. We first present the results of testing A LTERDROID higher than in VS and AP. In any case, the amount
against two datasets of smartphone malware samples of potentially malicious components is significant and
found in the wild, including a performance analysis of the time required to manually analyze each of them is
the entire differential fault analysis process. We finally affordable.
discuss in more detail three representative case studies. Finally, our results report the number of apps match-
ing against the rules implemented in our prototype. For
instance, we could identify 220 apps reporting compo-
4.1 Analytical Results
nents containing SMS functionality (RSCC ) from all 2.9K
We tested A LTERDROID against a dataset composed of samples in VS. Conversely, we could not find any RSBC
around 10000 apps retrieved from the following reposito- rule in Aptoide nor in GP (see Table 3). One alarming
ries: Aptoide (AP) alternative market5 , VirusShare (VS)6 result is that we found a significant number of apps (669)
and Google Play (GP)7 . Every app was executed over a reporting components containing data leakage function-
time span of 120 seconds—current malware is generally ality (RDLC ) in AP. However, our results show that GP
quite eager to run their payloads promptly [18], so this contains a much lower number of apps reporting data
time suffices to activate most malicious payloads. leakage functionality.
Table 3 provides a summary of the obtained experi- One interesting aspect of A LTERDROID is that it can in-
mental results, including the average time required for ject all selected FIOs at once. Furthermore, A LTERDROID
analyzing one app (this includes the time for extracting allows performing several analyses concurrently. In fact,
CoIS and injecting faults into each component). Further, our current experimental setup allows the execution
repackaging time, testing time as well as differential of 15 Android instances in parallel. Thus, this simple
signature creation and analysis are included as well. optimization strategy reduces the average execution time
When analyzing the distribution of CoIs through- per app at 32.62, 44.44 and 37.87 seconds for VS, AP, and
out the apps in our datasets, we observed that some GP respectively.
apps have a fairly large amount of CoIs. For instance, One challenge we faced when analyzing apps from AP
some apps contain over 5K pictures (ImgFileMatch). is identifying whether some behaviors were malicious
Conversely, we found many others with less than 10 or not. Many legitimate apps are not fully malicious
CoIs. On average, our experiments show that there are but carry out activities that may constitute a privacy
about 146, 284, 410 CoIs per app in VS, AP, and GP risk for some users. During our analysis, most such
5. http://aptoide.com/
suspicious behaviors were related with accessing local
6. http://virusshare.com/ data and exfiltrating it over the network. We did not
7. http://play.google.com/apps/ analyze in detail whether this was an intrinsic behavior

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 10

#Apps #Matches TP FP TPR FPR 4


x 10
9
DKF 34 11.71 33 n.a. 97.06% n.a. texec=120 s, 10 FIOs
ASB 187 3.90 186 n.a. 99.47% n.a. 8
t =120 s, 50 FIOs
exec
GM 4 6.00 3 n.a. 75% n.a. texec=60 s, 10 FIOs
GM+ 4 3.00 4 n.a. 100% n.a. 7
t =60 s, 50 FIOs
exec

Gray 16 4.19 16 n.a. 100% n.a.

Search time (s)


Good 81 0.00 n.a. 0 n.a. 0% 6

TABLE 4 5

Accuracy evaluation against existing malware, grayware,


4
and goodware apps. The number of matches refers to
apps reporting behaviors associated to a given malware; 3

it is shown on average per app. True/False Positives and


2
their ratios are defined as expected.
1

0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

of the app caused by the fault-injection process, for Number of CoIs per app
example because the app contained an integrity check.
Nonetheless, this indicates that the app was behaving Fig. 5. Average execution time of the SearchComponent
suspiciously and therefore it is worth analyzing. algorithm for different number of FIOs and dynamic ana-
lysis time.
4.2 Accuracy
From all apps tested above, we selected 300 known ob-
fuscated malicious samples, grayware [6], and goodware As for the first term, if |CoIS| = n and there are m FIOs,
and evaluated the performance of A LTERDROID. More the fault injection algorithm shown in Fig. 3 generates
precisely, we tested about 200 variants of DKF, ASB, and O(m + log n) different fault-injected apps to be analyzed.
GM and about 100 legitimate apps from GP. Every app Each one of those apps has been injected with at most
was executed over a time span of 120 seconds except n faults, one per component. The time tFIO required to
for the GM+ ones, which required 1200 seconds. Table 4 inject one fault depends on the specific FIO, although
summarizes the experimental results obtained, including most of them run in constant time or are linear in the size
the detection rates. A usual measure of accuracy is of the component to be fault-injected. Finally, differential
the True Positive Rate (TPR); that is, the percentage of analysis requires:
functionality-hiding apps (malware, grayware) correctly
identified as such. Another relevant measure is the False • Executing the two apps. In A LTERDROID this is done
Positive Rate (TPR), which accounts for the percentage by a component which admits as input the time
of goodware apps incorrectly identified as containing texec during which the app will be executed. In our
hidden functionality. experiments, we determined that around 2 minutes
Our experiments show that A LTERDROID performs suffice for most malware samples in our dataset.
very well, especially when dealing with obfuscated mal- • Obtaining the differential signature, which reduces
ware (DKF, ASB and GM). In particular, the results show to computing an edit distance between the two be-
a significant number of rules per app matching several havioral signatures. If these signatures have lengths
of the aforementioned differential signatures containing s1 and s2 , then this process takes O(s1 · s2 ) steps.
suspicious behaviors, such as network (RN BF ) or data • Pattern-matching the differential signature with the
leakage (RDLC ) activity (see Table 2). Additionally, no rule-set, which takes O(|R|).
false positive was produced in the above tests on good-
Apart from texec , the two most critical parameters
ware. The only case where the accuracy drops below 97%
affecting the total analysis time are n and m, as defined
(GM) was related to the short time given to dynamic
above (i.e., the number of CoIs and FIOs, respectively).
analysis. This was corrected by just increasing it. Specif-
Fig. 5 shows the average execution time of the Search-
ically, when the increased time window was adopted,
Component identification algorithm at the core of A L -
the accuracy achieved 100% (GM+ in Table 4).
TERDROID for different values of n, m, and texec . For
example, the analysis of an app containing 100 CoIs for
4.3 Performance which 10 FIOs are applicable, and executing each fault-
The time taken by the entire differential analysis process injected app 120 s, will require around 5 minutes. This
depends on the number of different fault-injected apps to time increases to 2.5 hours and 4.5 hours if the app
be explored, the time required to generate each of them, contains 1K or 10K CoIS, respectively. If we decrease
and the time taken by the differential analysis over each the dynamic execution time of each app to 60 s, these
one: figures reduce to 2.7 minutes, 1.3 hours, and 2.9 hours,
t = nfaultApps · tgenFaultApp · tdiffAnalysis (15) respectively.

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 11

injection is indicated by the green (legitimate app) and


black (DKF) squares. A LTERDROID revealed that a text
file pertaining to the assets was randomly modified. We
later identified this file as the component containing the
RAC exploit and found that disabling the malware’s
access to such functionality prevented it from establish-
ing a network connection (net-open, net-write), leaking
information through it (leak), and later performing some
I/O operations (file read). This analysis agrees with
previously reported results about DKF.
In the case of DKF, applying standalone static detec-
Fig. 6. Activities of DKF, GM and ASB during a time span tion techniques was not sufficient by itself to identify
of 120 seconds. malicious payloads without human-driven inspection.
This is due to the way the malware obfuscates its core
components. Specifically, each variant uses a different
4.4 Case Studies encryption key hidden throughout the code. Even when
we attempted to apply standalone dynamic analysis,
We finally provide a more detailed discussion on the
this technique only gave a rough notion of the app’s
analysis of three relevant malicious apps found in An-
holistic behavior. In fact, the behavior introduced by
droid markets. These three samples constitute represen-
DKF is strongly entwined with the original code of the
tative cases as they incorporate obfuscation techniques
repackaged app such that some of its key activities, like
of various degrees of sophistication [10], as well as some
network connections, might be easily seen as normal.
malicious features common in malware for smart devices
[6] such as aggressive privilege escalation exploits, C&C-
4.4.2 AnserverBot (ASB)
like functions [24] and information leakage.
The ASB specimen we analyzed is similar to the first ver-
For these three cases, we analyze their CoIS, we inject
sions of DKF in terms of sophistication and distribution
various faults into such components, and perform the
strategy. However, ASB introduces an update component
resulting differential analysis. The findings discussed be-
that enables it to retrieve at runtime secondary payloads
low about these three malware families are in accordance
and the latest C&C URLs from public blogs. It also
with previous reports, including those undertaken by
incorporates advanced anti-analysis methods to avoid
Jiang and Zhou in [10].
detection: on the one hand, ASB introduces an integrity
Finally, we discuss several cases of recent apps that
component to check if the app has been modified, while
use different obfuscation techniques.
on the other, it piggybacks the main payload in native
runnable code. Furthermore, ASB obfuscates its internal
4.4.1 DroidKungFu (DKF) classes and methods, and partitions the main payload
DKF’s main goal is to collect details about the infected into two different parts: while one is installed, the other
Android device, including the IMEI (International Mo- is dynamically loaded without actually being installed.
bile Station Equipment Identity) number, phone model, Specifically, ASB hides one of these components into
and OS version. It is mostly distributed through open or the assets folder under the names anservera.db or
alternative markets via repackaging—that is, by piggy- anserverb.db. In addition, it inserts a new compo-
backing the malicious payload into various legitimate nent named com.sec.android.provider.drm that
applications. Apps infected with DKF are distributed executes a root exploit known as Asroot.
together with a root exploit hidden within the app’s As in the case of DKF, we observed that all ASB
assets, namely, Rage Against the Cage (RAC) [25]. To variants contain a non-negligible amount of candidate
hinder static analysis, this encrypted payload is only CoIs. The specimen we examined had about 78 resource
decrypted at runtime. files, including 54 image files, 1 database file, 1 DEX file,
We fed one DKF variant to A LTERDROID, which first and a ZIP file. After a few iterations of the fault injection
extracted the variant’s CoIS, injected various faults into process, A LTERDROID positively identified the actual
these components, and then applied differential analysis payload within the database file, as well as the behavior
by executing the resulting app and comparing it to the related to this component. More precisely, it triggered
original. The sample contained about 170 resource files, this CoI after observing a mismatch between the magic
including 153 PNG files, 6 MP3 files, 2 XML files, 1 DEX number of the file (APK) and the actual extension of
file, and an RSA key file. All these assets were, in prin- the database. In fact, when a fault is injected into the
ciple, suspected of containing obfuscated functionality. database file, ASB’s integrity check naturally aborts its
Figure 6 (top left) shows the differential behavior execution and produces a result similar to that expected
reported by A LTERDROID over a two-minute period. from the original app.
Activities launched by the original piggybacked app Figure 6 (bottom) shows the exhibited differential be-
correspond to the full plot, while the behavior after fault havior over two minutes. ASB first establishes a network

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 12

connection (net-open, net-write) after loading the main obfuscates the main payload using XOR operations
payload (file-read, dex-load). After that, it continues while hiding it into the app resources—specifically,
reading data that it finally leaks out. Interestingly, the a file called logos.png.
legitimate app uses the network as well, although it does • SmsSpy: this malware is similar to Emmental in
not leak any personal information. terms of sophistication and distribution strategy
[30]. It also uses Blowfish to encrypt its payload and
4.4.3 GingerMaster (GM) hinder analysis. The payload is generally stored in
GM is the first known malware to use root exploits for a file called data.xml and the decryption key is hard-
privilege escalation on Android 2.3. Its main goal is to coded in the app code.
exfiltrate private information such as the device ID (IMEI
number, MSI number, and so on) or the contact list stored 4.5 Discussion
in the phone. GM is generally repackaged with a root
exploit known as GingerBreak [26], [27], which is stored Although current malware is relatively naı̈ve, more
as a PNG and a JPEG asset file. Right after infecting the sophisticated obfuscation techniques—particularly in
device, GM connects to the C&C server and fetches new code—are starting to materialize. Cryptography is
payloads. one recurrent technique used by malware developers.
We analyzed a GM sample with around 60 asset Nonetheless, we believe that malware could be already
resources, 30 of which were photos in different formats. using other advanced techniques for hiding their com-
Of those images, A LTERDROID identified four as strongly ponents such as, for instance, steganography [11]. This
suspicious. A detailed analysis later revealed that they technique would allow them to conceal their malicious
were malformed PNGs that also contained several ASCII components within other objects of the code. This is
scripts. A LTERDROID was also able to determine that specially critical when these components are hidden
such malformed image files play a key role in trigger- within distinguishable components.
ing the payloads piggybacked into the legitimate app, In practice, any detection mechanism can be evaded,
including the ASCII scripts. especially if its internals are well known. In the case
Figure 6 (top right) shows the differential behavior of A LTERDROID, an attacker can run it on his own
exhibited over a two-minute period when Alterdroid in- malware and then progressively adapt the sample so as
jected such images with faults. GM started execution of a to minimize the chances of the obfuscated payload being
service that performs some I/O operations (file-read, file- detected. For instance, the attacker can try to modify the
write) before finally leaking private information through payload in such a way that the component where it is
the network (net-write, leak). Again, even when the included is not identified as a CoI. In addition, it is well
malicious components were hidden, Alterdroid was able known that dormant or targeted functionality/malware
to differentiate them and help identify the underlying is the Achille’s heel for any approach involving dynamic
malicious behavior. analysis. In this regard, we believe that the approach
introduced in A LTERDROID is relevant in the context
of the never-ending battle between malware developers
4.4.4 Other Recent Specimens
and detection mechanisms. However, addressing some
We have analyzed some of the most recent specimens limitations of current dynamic analysis techniques is left
hitting both official and unofficial markets. Although for future work.
obfuscation techniques and algorithms might vary, re-
sults confirm that malware keeps hiding payloads within
app resources such as images or XML files. The most 5 R ELATED W ORK
significant analyzed specimens were: A substantial amount of recent work has addressed the
• Emmental: this malware sample targets users of problem of analyzing malware in smartphones using a
several banks worldwide, collecting one-time pass- variety of techniques [6]. Static analysis techniques are
words used to authorize transactions. Apps infected well known in traditional malware detection and have
with Emmental are distributed together with an ini- recently gained popularity as efficient mechanisms for
tial configuration containing a phone number where market protection [15], [31], [32]. However, these tech-
certain SMSs are sent and several Command and niques fail to identify malicious components when they
Control (C&C) URLs. To hinder static analysis, this are obfuscated or embedded separately from the code
configuration is only decrypted at runtime using (e.g., hidden into an image) [33], [34], [35]. Approaches
Blowfish. According to a report from Trend Micro based on dynamic code analysis [36] are promising,
[28], Emmental was still active as of 2014. but current works [37], [20], [38], [39] only provide
• Gamex: this specimen introduces an update com- an holistic understanding of the behavior of an app.
ponent that enables it to retrieve new payloads, at This feature challenges the identification of grayware
runtime, from a C&C server. Its main goal is to and the attribution of malicious behavior to compo-
exfiltrate private information such as the device ID nents of the app. Thus, these approaches tend to miss
(IMEI number, MSI number, and so on). Gamex [29] their identification and further human (costly) efforts are

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 13

required to dissect each malware sample, understand fault analysis. Additionally, we have presented an open-
its rationale, and identify their payloads as shown by source prototype implementation of A LTERDROID with a
Zhou and Jiang in [10], [40]. For instance, XManDroid versatile design that can be the basis for further research
[41] extends Android’s security architecture to prevent in this area.
privilege escalation attacks at runtime based on security Differential fault analysis in the way implemented by
policies. Malware detection depends on such previously A LTERDROID is a powerful and novel dynamic analysis
defined policies. Thus, inadequate policy rules can result technique that can identify potentially malicious com-
in both overlooking grayware and affecting functionality ponents hidden within an app package. Additionally,
of legitimate applications. Furthermore, the definition empowering dynamic analysis with a fault injection
of these policies does not allow identifying hidden or approach can be used to differentiate “gray” from le-
obfuscated functionality as we do in this paper. gitimate behavior when analyzing grayware. This is a
Recent work aims at detecting obfuscated malware by good complement to static analysis tools, more focused
mining identifiable static features such as cryptographic on inspecting code components but possibly missing
functions [42]. However, Schrittwieser et al. [43] demon- pieces of code hidden in data objects or just obfuscated.
strate the incompleteness of these and other semantic- Finally, we believe that differential fault analysis is an
aware detectors [44] by means of “covert computation.” effective technique to detect stegomalware—malware us-
As for the various ways to obfuscate or locate obfuscated ing advanced hiding methods such as steganography. As
code in binary data, [45] describes the most relevant future work, we are currently extending A LTERDROID to
steganographic and steganalytic techniques, including support differential fault analysis over distinguishable
active [46], [47] and passive wardens. These wardens components such as those involving Dex bytecode.
are used in this paper to deploy semantic-aware FIOs
to sanitize CoIs, eliminating hidden information and ACKNOWLEDGMENT
detecting where it is hidden.
Fuzz Testing or Fuzzing is a technique commonly used The authors would like to thank the anonymous review-
for providing inputs when testing software for security ers for their useful comments.
purposes [48]. Fuzzing has been recently gaining pop- This work was partially supported by the MINECO
ularity for automating the dynamic analysis of apps in grant TIN2013-46469-R (SPINY: Security and Privacy in
smartphones [19], [20], [49], [38]. Basically, Fuzzing aims the Internet of You) and the CAM Grant S2013/ICE-3095
at providing different streams of events to the app for (CIBERDINE: Cybersecurity, Big Data, and Risks).
further monitoring the behavior of the device. Fuzzing
was originally proposed to find software crashes or R EFERENCES
unexpected behaviors by deliberately introducing faulty [1] Y. Wang, K. Streff, and S. Raman, “Smartphone security chal-
inputs. Our approach is similar to Fuzzing, but focuses lenges,” IEEE Computer, vol. 45, no. 12, pp. 52–58, 2012.
on the manipulation of a program’s components rather [2] L. Cai and H. Chen, “Touchlogger: inferring keystrokes on touch
screen from smartphone motion,” in Proc. USENIX, ser. HotSec’11,
than its inputs. Berkeley, CA, USA, 2011, pp. 9–9.
Fault injection analysis has been widely used for soft- [3] E. Fernandes, B. Crispo, and M. Conti, “Fm 99.9, radio virus:
ware assurance against fault tolerance [50], [51]. This Exploiting fm radio broadcasts for malware deployment,” IEEE
TIFS, 2013.
paper extends an early version of this work [18], where [4] T. Vidas and N. Christin, “Sweetening android lemon markets:
differential fault injection analysis is introduced and Measuring and combating malware in application marketplaces,”
discussed. Together with our previous work, differential in Proc. ACM, ser. CODASPY ’13. ACM, 2013, pp. 197–208.
[5] J. Oberheide and C. Miller, “Dissecting the android bouncer,”
fault analysis is a novel approach compared to existing SummerCon2012, New York, 2012.
works aiming at analyzing malware in smartphones. [6] G. Suarez-Tangil, J. E. Tapiador, P. Peris, and A. Ribagorda,
Finally, our differential fault analysis approach can “Evolution, detection and analysis of malware for smart devices,”
IEEE Comms. Surveys & Tut., vol. 16, no. 2, pp. 961–987, May 2014.
be integrated on top of any system aiming at recon- [7] M. Rangwala, P. Zhang, X. Zou, and F. Li, “A taxonomy of
structing apps’ behavior, such as CopperDroid [39] or privilege escalation attacks in android applications,” Int. J. Secur.
Targetdroid [52]. As these approaches were not avail- Netw., vol. 9, no. 1, pp. 40–55, Feb. 2014.
[8] S. Chakradeo, B. Reaves, P. Traynor, and W. Enck, “Mast: Triage
able during the initial phase of our development, we for market-scale mobile malware analysis,” in Proc. ACM, ser.
instead implemented several state-of-the-art techniques WiSec ’13. New York, NY, USA: ACM, 2013, pp. 13–24.
to automatically extract the behavior of monitored apps. [9] M. Grace, Y. Zhou, Q. Zhang, S. Zou, and X. Jiang, “Riskranker:
scalable and accurate zero-day Android malware detection,” in
Nonetheless, other monitoring systems can be further Proc., ser. MobiSys ’12. ACM, 2012, pp. 281–294.
plugged into A LTERDROID to extend the number of [10] Y. Zhou and X. Jiang, “Dissecting Android malware: Character-
monitored features or to better detect reactive malware ization and evolution,” in Proc. IEEE, ser. SP ’12. Washington,
DC, USA: IEEE Computer Society, 2012, pp. 95–109.
[52]. [11] G. Suarez-Tangil, J. E. Tapiador, and P. Peris-Lopez, “Stegoma-
lware: Playing hide and seek with malicious components in
6 C ONCLUSIONS smartphone apps,” in INSCRYPT 2014, December 2014.
[12] A. Desnos and et al., “Androguard: Reverse engineering, malware
In this paper we have presented A LTERDROID, a frame- and goodware analysis of android applications,” https://code.
work for malware analysis based on the notion of di- google.com/p/androguard/, Visited Feb.2015.
fferential fault analysis. We have described its archi-
tecture and provided a formal model of differential

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/TMC.2015.2444847, IEEE Transactions on Mobile Computing
SUBMITTED TO IEEE TRANSACTIONS ON MOBILE COMPUTING 14

[13] Panxiaobo, “Apktool: A tool for reverse eng. android files,” https: tomated dynamic malware-analysis techniques and tools,” ACM
//code.google.com/p/android-apktool/, Visited Feb. 2015. Comput. Surv., vol. 44, no. 2, pp. 6:1–6:42, Mar. 2012.
[14] L. K. Yan and H. Yin, “Droidscope: seamlessly reconstructing [38] A. Shabtai, L. Tenenboim-Chekina, D. Mimran, L. Rokach,
the os and Dalvik semantic views for dynamic Android malware B. Shapira, and Y. Elovici, “Mobile malware detection through
analysis,” in Proc. USENIX, ser. Security’12. Berkeley, CA, USA: analysis of deviations in application network behavior,” Comput-
USENIX Association, 2012, pp. 29–29. ers & Security, 2014.
[15] G. Suarez-Tangil, J. E. Tapiador, P. Peris-Lopez, and J. Blasco, [39] K. Tam, S. J. Khan, A. Fattori, and L. Cavallaro, “Copperdroid: Au-
“Dendroid: A text mining approach to analyzing and classifying tomatic reconstruction of android malware behaviors,” in NDSS
code structures in android malware families,” Expert Systems with Symp. Internet Society, February 2015.
Applications, vol. 41, no. 1, pp. 1104–1117, 2014. [40] D. Kirat, G. Vigna, and C. Kruegel, “Barecloud: bare-metal
[16] V. I. Levenshtein, “Binary Codes Capable of Correcting Deletions, analysis-based evasive malware detection,” in Proc. USENIX
Insertions and Reversals,” S. Physics Doklady, vol. 10, p. 707, 1966. SEC’14., 2014, pp. 287–301.
[17] T. Kumazawa and T. Tamai, “Counter example-based error lo- [41] S. Bugiel, L. Davi, A. Dmitrienko, T. Fischer, and A. Sadeghi,
calization of behavior models,” in Proc., ser. NFM’11. Berlin, “Xmandroid: A new android evolution to mitigate privilege
Heidelberg: Springer-Verlag, 2011, pp. 222–236. escalation attacks,” Tech. Universitat Darmstadt, Tech. Rep., 2011.
[18] G. Suarez-Tangil, F. Lombardi, J. E. Tapiador, and R. Di Pietro, [42] J. Calvet, J. M. Fernandez, and J.-Y. Marion, “Aligot: cryptographic
“Thwarting obfuscated malware via differential fault analysis,” function identification in obfuscated binary programs,” in Proc.
IEEE Computer, vol. 47, no. 6, pp. 24–31, June 2014. ACM, ser. CCS ’12. ACM, 2012, pp. 169–182.
[19] C. Zheng, S. Zhu, S. Dai, G. Gu, X. Gong, X. Han, and W. Zou, [43] S. Schrittwieser, S. Katzenbeisser, P. Kieseberg, M. Huber, M. Lei-
“Smartdroid: an automatic system for revealing UI-based trigger thner, M. Mulazzani, and E. Weippl, “Covert computation: hiding
conditions in Android applications,” in Proc. ACM, ser. SPSM ’12. code in code for obfuscation purposes,” in Proc. 8th ACM SIGSAC,
New York, NY, USA: ACM, 2012, pp. 93–104. ser. ASIA CCS ’13. New York, NY, USA: ACM, 2013, pp. 529–534.
[20] V. Rastogi, Y. Chen, and W. Enck, “Appsplayground: automatic [44] M. Christodorescu, S. Jha, S. Seshia, D. Song, and R. Bryant,
security analysis of smartphone applications,” in Proc. ACM, ser. “Semantics-aware malware detection,” in Security and Privacy,
CODASPY ’13. New York, NY, USA: ACM, 2013, pp. 209–220. 2005 IEEE Symposium on, May 2005, pp. 32–46.
[21] Android, “Android developers,” Visited Feb. 2015, http:// [45] J. Blasco Alı́s, “Information leakage and steganography: detecting
developer.android.com/. and blocking covert channels,” Ph.D. dissertation, Universidad
[22] Google, “Droidbox: Android application sandbox,” https://code. Carlos III de Madrid, 2012.
google.com/p/droidbox, 2012. [46] G. Fisk, M. Fisk, C. Papadopoulos, and J. Neil, “Eliminating
[23] W. Enck, P. Gilbert, B.-G. Chun, and al., “Taintdroid: an steganography in internet traffic with active wardens,” in 5th Intl.
information-flow tracking system for realtime privacy monitoring Worksh. on Information Hiding, ser. IH ’02. London, UK, UK:
on smartphones,” in Proc. USENIX, ser. OSDI’10. Berkeley, CA, Springer-Verlag, 2003, pp. 18–35.
USA: USENIX Association, 2010, pp. 1–6. [47] E. Li and S. Craver, “A square-root law for active wardens,” in
[24] R. Hasan, N. Saxena, T. Haleviz, S. Zawoad, and D. Rinehart, Proceedings of the thirteenth ACM multimedia workshop on Multimedia
“Sensing-enabled channels for hard-to-detect command and con- and security. New York, NY, USA: ACM, 2011, pp. 87–92.
trol of mobile devices,” in Proc. ACM SIGSAC, ser. ASIA CCS ’13. [48] A. Takanen, J. D. Demott, and C. Miller, Fuzzing for software
New York, NY, USA: ACM, 2013, pp. 469–480. security testing and quality assurance. Artech House, 2008.
[25] C-skill, “Rage against the cage,” https://github.com/bibanon/ [49] A. Gianazza, F. Maggi, A. Fattori, L. Cavallaro, and S. Zanero,
android-development-codex/wiki/rageagainstthecage, 2011. “Puppetdroid: A user-centric ui exerciser for automatic dy-
[26] C. Skill, “Gingerbreak,” http://c-skills.blogspot.hk/2011/04/ namic analysis of similar android applications,” arXiv preprint
yummy-yummy-gingerbreak.html, 2011. arXiv:1402.4826, 2014.
[27] M. Zheng, M. Sun, and J. C. Lui, “Droidray: A security evaluation [50] J. Gray, “Why do computers stop and what can be done about
system for customized android firmwares,” in Proc. ACM, ser. it?” in Symposium on reliability in distributed software and database
ASIA CCS ’14. New York, NY, USA: ACM, 2014, pp. 471–482. systems. Los Angeles, CA, USA, 1986, pp. 3–12.
[28] D. Sancho, F. Hacquebord, and R. Link, “Finding holes: Operation [51] R. Natella, D. Cotroneo, J. Duraes, and H. Madeira, “On fault rep-
emmental,” Trend Micro, Tech. Rep., 2014, http://www. resentativeness of software fault injection,” Software Engineering,
trendmicro.com/cloud-content/us/pdfs/security-intelligence/ IEEE Transactions on, vol. 39, no. 1, pp. 80–96, Jan 2013.
white-papers/wp-finding-holes-operation-emmental.pdf. [52] G. Suarez-Tangil, M. Conti, J. E. Tapiador, and P. Peris-Lopez, “De-
[29] Symantec, “Android.gamex,” http://www.symantec.com/ tecting targeted smartphone malware with behavior-triggering
securityresponse/writeup.jsp?docid=2012-051015-1808-99. stochastic models,” in ESORICS 2014, ser. LNCS, vol. 8712.
[30] F-secure, “Smsspy,” https://www.f-secure.com/weblog/ Springer International Publishing, 2014, pp. 183–201.
archives/00002202.html.
[31] M. Lindorfer, S. Volanis, A. Sisto, and al., “Andradar: Fast discov- Guillermo Suarez-Tangil is Teaching Assistant in the Computer Se-
ery of android applications in alternative markets,” in Detection curity (COSEC) Lab at Universidad Carlos III de Madrid. His research
of Intrusions and Malware, and Vulnerability Assessment, ser. LNCS, focuses on security in smart devices, intrusion detection, event correla-
S. Dietrich, Ed., 2014, vol. 8550, pp. 51–71. tion, and cyber security.
[32] D. Arp, M. Spreitzenbarth, M. Hübner, H. Gascon, and K. Rieck,
“Drebin: Effective and explainable detection of android malware Juan E. Tapiador is Associate Professor of Computer Science in the
in your pocket,” in Proc. NDSS, February 2014. Computer Security (COSEC) Lab at Universidad Carlos III de Madrid,
[33] C. Linn and S. Debray, “Obfuscation of executable code to im- Spain. His main research interests are in computer/network security and
prove resistance to static disassembly,” in Proc. 10th ACM CCS. applied cryptography.
ACM, 2003, pp. 290–299.
[34] V. Rastogi, Y. Chen, and X. Jiang, “Droidchameleon: evaluating Flavio Lombardi is a Researcher at IAC-CNR and Adjunct Professor
android anti-malware against transformation attacks,” in Proc. of Computer Science at Dept. of Mathematics and Physics, Roma Tre
ACM SIGSAC, ser. ASIACCS, 2013, pp. 329–334. University. His main research interests focus on: cloud security; GPGPU
[35] H. Huang, S. Zhu, P. Liu, and D. Wu, “A framework for evalu- computing; virtualization; S&P for mobile and distributed systems.
ating mobile app repackaging detection algorithms,” in Trust and
Roberto Di Pietro is with Bell Labs, Cyber Security Research. He is
Trustworthy Computing. Springer, 2013, pp. 169–186.
also with Maths Dept. at University of Padua, Italy. His main research
[36] J. Gao, X. Bai, W.-T. Tsai, and T. Uehara, “Mobile application
interests include: security and privacy for wireless systems; cloud and
testing: A tutorial,” Computer, vol. 47, no. 2, pp. 46–55, Feb 2014.
virtualization security; security and privacy for distributed systems;
[37] M. Egele, T. Scholte, E. Kirda, and C. Kruegel, “A survey on au-
applied cryptography; computer forensics, and role mining for access
control systems (RBAC).

1536-1233 (c) 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.

Anda mungkin juga menyukai