Android App Watcher: A look into Android Antivirus - Redbrick

advertisement
Android App Watcher: A look into Android
Antivirus Security
Jonathan Lally; ID 12211753
School of Computing
Dublin City University
Dublin, Ireland
Email: jonathan.lally6@mail.dcu.ie
Abstract—This paper presents two experiments. The first
begins by outlining how a behavioral based malware detection
system for Android could be implemented, however it concludes
that without a special class of privileges specifically for antivirus
programs in Android, a behavioral malware detection system
could not be built. The second experiment places nine of the
most frequently downloaded Android antivirus applications in an
environment with twenty malicious programs and compares them
on malware detection rate, speed of scan, depth of scan, size of the
application on the hard disk, and features which each program
provides. Full results of this experiment are available online, but
this paper includes a summary of the more important results.
It was found that although ESET and Dr. Web provided the
highest rates of detection, both lacked most of the extra features
the majority of the other antivirus programs supplied. ESET
also held the largest amount of hard drive space, however Dr.
Web held the least. Avast was found to have the widest range of
features at no extra cost, but only held a 95% malware detection
rate. Both experiments point to the need for Android to introduce
more security for the detection of malware.
Index Terms—Smartphone, Android, Operating System, Security, Malware, Antivirus, Trojan
A blog about the construction paper is available from [79].
I. I NTRODUCTION
Computers continue to grow, evolve and adapt to users
everyday needs. This is not only limited to the internal memory
capacity and power, but extends also to the external size of
each unit. From the mainframe to the desktop, to the laptop
to the netbook, the evolutionary chain is quite evident and
the next link in the progression is the mobile phone. From
the European Commission Statistics Department, Eurostat, it
has been revealed that in 2009 in Europe, for every 100
people there were 125 mobile communication devices [47].
This demonstrates the popularity of mobile devices. Further
statistics show that by the end of 2013, 1.4 billion smartphones
will be in use, of which Google’s Android mobile platform
will account for 57 percent of the market share, followed by
Apple’s iOS with 21 percent [81]. Reasons for this include that
mobile devices allow users all the benefits of a home computer
in their pocket [51], as well as transparently extending online
services such as email to the users hand [46]. As over half
of all smartphones on the market use Android, this paper will
investigate the Android platform.
In the world of computing once there is financial and or
sensitive data flowing on a network there will be attempts to
intercept these transactions, and with online financial services
from banking to shopping to social media sites, there is a
constant cyber-threat looming which hopes to profit from
unsuspecting users [108]. In 2013 the largest distributed denial
of service (DDOS) attack ever recorded was executed against
Spamhaus [112], who were receiving over 300 billion bits of
traffic per second [103, 110]. This was the result of an attacker
creating a bot-net of zombie slave devices, which had become
infected unknown to their users [91]. These zombies were then
used to make large data requests from servers but specified that
the responding data should be sent to the victim, Spamhaus
[91]. This demonstrates the ability of a single attacker to
generate the largest amount of traffic ever recorded for their
own malicious intents.
Following this, the security organisation RSA was successfully attacked losing some internal data [107]. In the blog post,
the author believes the perpetrator was part of a particular
format of an attack which has become know as an Advanced
Persistent Threat (APT)[107]. An APT attack is defined in
Mandiant [87].
The author of this paper contends that the severity of these
described attacks demonstrates the lengths to which cybercriminals are willing to go to achieve their ends, and when
security giants such as RSA, who created and maintain the
most globally used public key encryption system currently
used [106], are unable to mitigate these attacks unscathed,
the intelligent and advanced nature of these intrusions can
truly be appreciated. However, these attacks are not just
limited to organisations and governments, or even standard
servers and computers for that matter. They extend to mobile
devices, particularly Android [77, 89]. This paper delves into
the concept of Android malware and explores a means of
identifying a Trojan’s presence on a mobile device. This
study then proceeds to investigate popular antivirus programs
currently on the market for Android, by placing each in a
sand boxed environment with a number of known malicious
programs and comparing the findings of each.
II. L ITERATURE R EVIEW
A. Smartphone Security
Smartphones are mini, pocket sized computers which have
been adopted into general use by the public due to their
powerful nature, such as their ability to act as a highly effective
personal digital assistant [102]. They provide not only the
basic features of mobile phones such as calling and SMS
(Short Messaging Service) services, but also include features
such as an email client, web browser, global positioning
system (GPS), online and home computer synchronisation
abilities, and games, as well as organiser orientated tools such
as a calendar, contacts, note taker and voice recorder [34].
With the addition of its Internet capabilities and tools such as
voice recognition, for example with Google Now and Apple’s
Siri, a person can vocally ask their mobile phone questions
and receive search engine results [24, 58]. All of these services
combine to create a very powerful and portable device. There
are many smartphone Operating Systems (OSs) available on
the market today including Google’s Android [54], Nokia’s
Symbian [121], RIM’s Blackberry [104], Microsoft’s Windows
Mobile [90] and Apple’s iOS [25].
1) Private Information on the Device: Enck, Ongtang, and
McDaniel [46] argue that many of these powerful features
require personal data to function, which, if the device was to
be compromised would reveal intimate details of the user’s
personal life. For instance, if the phone itself was stolen and
was signed into a social networking site at the time of its theft,
such as Facebook or LinkedIn, intimate details of the user’s
life could be in jeopardy. In the paper by Jeon et al. [69]
they suggest the sensitive information which could be leaked
in the event of the mobile device becoming insecure would
be data which is both stored on the device and transmitted
out of it. This includes, but is not limited to the address book
contents which would include contact’s phone numbers, home
and / or work addresses and email addresses among other
details; calling history; GPS location information such as the
user’s home address and most visited places; e-mail client data
revealing all emails and attachments to and from the user,
contact’s email addresses and the user’s calendar schedule;
web browser information such as data in the web log, browsing
history, Internet Cache, stored browser passwords; SMS (Short
Message Service) messages to and or from the user; MMS
(Multimedia Message Service) messages to and from the user;
and media files such as personal voice and video recordings as
well as images [69]. Further to this, user installed applications
could retain further information about the user. e.g. Personal
financial data could be stored on Banking or online shopping
applications [2, 30].
2) Lines of Attack: One of the tantalizing features of
smartphones are their variety of communication modalities
[69]. Most smartphones are able to connect to other devices
in a variety of ways such as: a Wireless 802.11 connection
(Wifi) which connects via a wireless network access point
(AP); a GPS satellite connection; a mobile network (MN),
e.g. 3G, which connects via a mobile base station (BS) which
also provides the calling, SMS and MMS services; a bluetooth
connection which allows direct communication to other computer devices; personal computer (PC) synchronisation which
allows a connection to a PC using a direct wire such as a USB
connection [69]. Nevertheless, the author of this paper takes
the view that a strength can double as a weakness, and in this
case that weakness manifests itself as multiple points of entry
for malicious users and applications.
To purely inhibit a victim from a wireless Internet connection, DOS and DDOS attacks, as described earlier, can be
performed against the BP and AP which the victim’s device
relies on for wireless Internet communication [92]. Further
to this, the GPS is vulnerable to both jamming and spoofing
attacks [97]. The paper by Nighswander et al. [97] goes on
to describe a number of attacks to which GPS could also
be at risk. However, a usually more favored methodology by
attackers is to use these channels as entry points for attacks
such as Trojans and malware [132]. In the paper by Jeon et al.
[69] they list the following vulnerabilities which can render a
mobile device useless or be abused by attackers:
• Source code implementation errors can cause a system
crash, or be abused by attackers. Particularly if they go
unnoticed they can lead to zero day attacks [82]
• User unawareness of environment threats: the user can
install applications from untrusted sources; the user can
connect to untrustworthy APs and/or websites; the user
can connect to an unsafe device via bluetooth; the user
can have unsafe configuration settings, for instance, bluetooth always enabled and accepting all connections [131];
the user can fall prey to social engineering attacks; the
physical mobile device can be lost by the user or stolen
by a malicious party
• Traffic to and from the AP can be corrupted, blocked or
modified by sniffing, spoofing or eavesdropping [69]
• If any of the external objects which the mobile device
is connected to are insecure, such as the AP, the device
itself is at risk [69]
3) Smartphone Malware: From the above, the many pathways which can be abused by attackers has been demonstrated,
but how often are they actually abused? According to the
McAfee Labs [89], they had captured only 792 unique mobile
device malware families in 2011, but since then this has risen
exponentially to 50,926 samples. This growth is predominantly
in Android with new malware presenting itself everyday [89].
Kaspersky Labs [77] found that 99.9% of new mobile threats
target Android. It is for both this reason and the widespread
use of Android as stated earlier that this paper will concentrate
on Android.
B. Android Architecture
Android is a software stack for mobile devices, built with
the Linux 2.6 kernel at its bottom layer. It is maintained by
Google and the Open Handset Alliance (OHA) [101]. The
OHA is a consortium of 84 companies including Google,
HTC, Intel, LG, Motorola, Nvidia, Samsung and T-Mobile
with the goal of implementing open standards for mobile
devices [22, 101]. Android’s success could be attributed to its
open source nature, allowing it to be more widely understood
and bugs spotted and fixed quickly. New functionalities can
be added faster by experts in the area and it is easily ported to
new hardware devices, even extending to devices other than
smartphones such as tablets [51].
Fig. 1.
Android Architecture [51]
Android OS is in fact a software stack composed of three
primary layers which are composed of the Linux kernel at the
bottom, the middleware, and the Applications Layer at the top
[22].
From Fig 1 it is evident that each layer is kept encapsulated and therefore completely independent of the layers
surrounding it. To gain accesses to the features of the next
layer, function calls which are specified in interfaces are used
[32]. The bottom layer is the Linux kernel. This is the actual
OS and provides all the low level functionalities required by
the device such as memory management, process management,
network stack management and security as well as providing
the abstraction layer between the software and the actual
hardware [33, 51].
Applications for Android are primarily written in the Java
language, with a little XML for format and abstraction [32,
51]. Applications and widgets are at the top level of the stack.
These applications range from the core applications which
come as standard upon Android’s installation such as SMS,
email client, calendar and browser, to applications developed
by third parties and distributed via Android market places such
as the official market place: Google Play [32, 51, 57]. The next
part of the Application layer is the Application Framework [32,
51]. This is the schema which implements the structure of all
applications. It is composed of many components, but one of
the most important is the Activity Manager which manages
the life cycles of all active programs. Other components
which it provides include a Resource Manager, a GPS device
Location Manager, a Notification Manager for background
alerts such as the arrival of a new SMS message or email,
as well as managing content provider objects [32, 51]. A
content provider object is a group of data which needs to be
shared between applications, such as contacts [32, 51]. The
Application Framework allows for easy reuse of components.
Android developers can write and add their own components
to this layer [32, 33].
The next layer contains the native Android libraries. These
libraries are for use by all applications, core and third party
alike [32, 101]. They are written in C and C++ but are hardware specific so they are compiled by the hardware developer.
This is why each hardware company has its own version
of Android on it’s devices [32, 101]. However, the libraries
provide a standard Java interface which allows all Android
applications to function independently of the hardware and
grants the platform its portability [32, 101]. Examples of
some of the libraries include: the Surface Manager which
controls the screen display; an array of media codecs for
playing and recording video and audio; 2D and 3D graphics
engines for creating and rendering the graphical user interface
(GUI), a SQL database for relational data storage; and finally
the WebKit library for powering a browser. Using the Native
Development Toolkit, developers can create and add their own
libraries [32, 101].
On the same level as the libraries is the Runtime Environment [32, 95]. This consists of core libraries for Android
to function, and the Dalvik Virtual Machine (VM), which
is similar to a Java runtime environment [32, 95]. When an
Android application is written, it’s Java ’jar’ and ’class’, and
XML files are compiled into an ’apk’ file, which is an installer
package. When this apk file is installed the executable code
is compiled into the ’dex’ format, which can be read by the
Dalvik VM. Dalvik was purpose built for Android, written
by Google and is optimised for both running on Linux and
low memory usage making it the perfect process runtime
environment [32, 95]. It makes use of Linux’s security module
for both process security and isolation, made easier by the
fact that each process receives its own VM. This provides
Android’s sandboxing feature ensuring the systems safety from
each application [32, 95].
C. Android Security
One of the big differences between Android security and
common commercial OS security is that Android operates on
a mutually distrusting software basis, in which no program, or
user can trust any other program or user [71]. The architecture
of Android reflects this principle. It ensures each layer is
secure from the next with only interfaces and prepared component functions providing inter-layer communication [32, 51].
Each component within these layers are again kept separate,
unaware of each others presence. In the application layer,
given the Dalvik VM and the fact that every application is
placed in its own process, this guarantees the isolation of
each application, as the default Linux process confinement
measures are in place. Within each layer exists similar safety
walls [32, 95]. The importance of this segregation is to
confine any unwanted outbreaks, be they malware or internal
errors, sandboxing them from the rest of the system. For
example, the exploit outlined by ISE [68] which attacked the
Android Browser application could only affect the browser,
and files which the browser has access to. The other Android
components were left unmodified and intact ISE [68].
However, sometimes components within processes need
to communicate with components within other processes or
retrieve access to resources available on the device, and this
could present a gap in security as it involves leaving the
sandboxed area [46]. So when components do partake in inter
process communication (IPC) there are a number of security
measures in place which form Android’s Security Model.
Android employs a Mandatory Access Control (MAC) model
[46]. In this way applications, or for that matter any component attempting to access any system resource, including
hardware, files, Content Providers or other components must
have the expressed permission of that resource to complete
the transaction [46]. This is accomplished by treating every
application as a separate user. As such it allocates each newly
installed program with a user identity (UID) [71, 127], as
well as providing it with certain permissions which express
every resource that the application has access to. The user
must expressively grant these permissions by agreeing to them
at the time of installation [71, 127]. For instance, to receive
access to the device’s saved contacts, the permission can be
entered in the application’s manifest file as follows:
<uses-permission android:name=
"android.permissions.READ_CONTACTS" />
This is referred to as a permission label. There are many
permission labels and developers can even add and create
their own [10, 63, 71]. Most permission labels are not unique
and are used by multiple programs, as multiple programs
would need access to device resources such as contacts [10,
63, 71]. To implement this MAC system, when a component
attempts to access a resource the reference monitor, located
in the Application Framework layer, checks its permission
labels to ensure it has the required permission before allowing
the transaction [10, 63, 71]. If the required permissions are
not present, the communication is denied, even if the wanted
resource is in the same process [46]. In the Android [17]
documentation they request that developers keep their required
permissions to execute to the absolute minimum, to promote
process isolation.
If the developers of an application desires complete secrecy
from other applications, it can specify itself as a private
component by setting the ’export’ attribute in its manifest
file to false [46]. This prevents it from being used by other
processes. If it has to allow access to itself by others, but
it wishes to strengthen its own security, it can take matters
into its own hands by using the ’checkPermission’ function
which Android provides [46]. By using checkPermission, the
component being called can check for specific permission
labels which the caller retains, and can reject the request if
the caller is not up to the callee’s standards [12, 46].
Often developers will release programs which they hope
to work in conjunction with each other [17, 46]. To allow
for easier communication between components of the same
developer, a ’signature’ permission label was added to the
Android MAC model [17, 46]. The idea is that once an
application allows access to one of its components, it cannot
be sure that access to it will be restricted to the intended
set of applications only. To prevent applications which hope
to misuse its services and steal its sensitive information the
’signature’ permissions was introduced [17, 46]. It only grants
access to the callee application if the caller has the same
developer as the callee. For instance, system features such as
the telephony API, which were created by Google and should
only be accessed by Google applications, have the ’signature’
permission in their manifest file ensuring that only a Google
application could use this feature [17, 46].
As earlier stated, each application is treated as a user, and as
such, upon creation it is allocated its own storage directory on
internal storage, comparable to a users home directory [71].
It uses this area for storing its code and data. By keeping
its sensitive data in here the hardware prevents access by any
other processes. The Android documentation recommends this
for the safe keeping of private data [17, 32, 71]. In addition
to this, only the UID of the application which wrote a file
can access it [32]. However, external data is not so safe
[17]. Any data saved to an external drive, such as an SD
card, is world readable and writable [17]. This is why most
programs avoid writing any data to external memory. In the
author of this paper’s opinion, although many programs could
store non-sensitive data on the external storage device, many
developers feel the need for taking extra security measures by
only utilizing internal storage.
Given this strong inbuilt security, the Open-Source Programs Manager for Google suggests that antivirus is not
needed for Android and other similar mobile OSs due to their
architecture and MAC style security structure [42]. This blog
post asserts that due to the sandboxed nature of the OS, viruses
cannot spread like conventional computer viruses. In the author
of this paper’s view, this post does not address the issue of
an infected program or its detection, and from sections 2 and
3 from the A. Smartphone Security section above, as well as
section E. Trojans below, the existence of Android malware is
evident.
D. Android Logs
Android has a System Log, and a log for each program
[45]. As programs execute they update both logs with informative information as to their actions [14]. The System
Log gets updated with debug information ranging from minor
background information to system traces of internal errors
as an application executes [14]. The application log consists
of helpful messages that the application developer included
in their program’s output, usually for both control flow and
debugging information [14]. The logs can be examined using
the Android Logcat utility [9]. There is also an Event Log
which documents all system events [5]. These range from
Activity Manager state changes to system watchdog updates.
This again is examinable via the Android Logcat utility [9,
45].
The Logcat utility can be used via the Android Debug
Bridge (ADB), which requires a connection from the device to
a computer [9, 14]. As the device is connected to a computer,
the computer is given special privileges which grant it root
access. Alternatively, the Logcat utility can be run directly
on the device and parameters can be passed by the querying
program to limit the output to a subset of wanted data [9, 14].
E. Trojans
This paper has discussed the large amount of malware targeting Android, and the physical means by which the malware
reach the victim devices. However the origin of most malware
has not been exposed. As with all Trojan malware, they are
predominantly attached to popular, easily obtainable programs
which users download from Android Market places [132].
Although many of these markets employ Trojan detection for
all applications on them, such as Google Play [111], there
are many accounts of malware slipping by these detection
methods such as the well known Trojan DroidDream [85]. To
evade detection, simple workarounds can be deployed, such
as the method employed by the Trojan ’Extension.A’, which
simply DES encrypts the malicious part of it’s code thereby
escaping detection [124]. Once installed, it decrypts and runs
the malicious code. This Trojan can execute a range of commands on the victim via a command server, or SMS command
[124]. For the purpose of this article spyware goals refers
to the opening an Internet connection and sending the IMEI,
IMSI identification numbers, phone number, Android version
and SDK version, phone model, call logs, contacts, wifi and
GPS location and SMS logs to a server controlled by the
attackers. Extension.A achieves the spyware goals, but can also
make, receive, and intercept phone calls and SMS messages
[124]. The Trojan ’Plankton’ employs a different detectionevading technique, which also allows it the use of dynamic
payloads [70]. Upon download the Trojan can wait for long
periods of time before any malicious activity takes place.
Once activated, it sends device information, such as Android
version, and the privileges of its host program on the device,
to its command server [70]. A specially tailored payload can
then be sent to the device for background execution. This
means that it can be attached to a wide range of applications
[70]. The payload is written in Dalvik bytecode allowing
it to be dynamically loaded into memory and therefore it
evades most static signature detection schemes. However, the
payloads do not attempt to gain root, they are only spyware
orientated, collecting information such as browser bookmarks,
phone log entries and device accounts. It can also remove on
screen shortcuts to assist hiding Jiang2011Security. BadNews
is another Trojan which poses as an advertising network, but
constantly prompts the user to download and install malicious
applications, sometimes suggesting that they are updates for
programs the user may have [105]. BadNews avoids malware
detection in a similar way to Plankton, as all malicious code
is downloaded separately. However, most malware originates
from third party Android markets [114].
Once on the victim device, most malware share similar
goals. There are a number of passive attacking Trojans which
try to achieve the spyware goals only, such as ’Android.Tetus’
[118], ’Android.Exprespam’ [115], ’Android.Uranico’ [119],
’Chuli.A’ [74], and ’Android.Sumzand’ [116]. Each tries to
go undetected by quietly executing in the background. Android.Sumzand in particular targets non-technical users by
attaching to a program which claims to turn the user’s phone
screen into a solar pad for charging the phone [120]. Android.SMSSend [94] achieves the spyware goals, but transfers
the results via SMS. Only the contacts are sent to a server.
The passive malware TRacer [78] achieves the spyware goals
as well as adding call recording, browser history and emails
to the captured data list. A difference here is that it can
issue commands via the server or via SMS messages which it
then hides. It also has the ability to remain hidden from the
Installed Apps and Task Manager Android menus allowing
it to be invisible on the phone [78]. Android.Uracto [62]
and SpamSoldier [61] accomplishes the spyware goals, but
also uses the victim to spread. The victim device sends SMS
messages to all of their contacts advertising what are usually
costly programs, but for free. However, these programs contain
the Trojan itself [61]. Versions of Android.Uracto attempt to
indulge the victim to sign up to fraudulent services [62].
The Trojan SMSSilence.C is an active attacking Trojan,
targeting SMS messages specifically by setting the phone to
silent every time a message is received, thus obfuscating its
arrival and therefore avoids the user’s immediate attention,
and forwarding the message onto its command server [26].
The silent sending and receiving of SMS messages can be
very profitable as large costs can apply to premium numbers,
and if all the premium number responses are hidden, the
user many not notice the occurrence. Android.FakeMart.A
implements this scheme [49]. An active attacking SMS orientated banking Trojan is Spy.AndroidOS.Citmo (Carberpin-the-Mobile) [73]. Citmo targets online banking in Russia
by attempting to intercept mobile Transaction Authentication
Numbers (mTANs). It works in conjunction with its PC
counterpart Spy.Win32.Carberp.ugu which implements a man
in the middle attack by posing as the user’s bank, and then
instructing the user to download the malicious Citmo application [73]. Using both malwares, fund transfers can be made
using Carberp and authenticated using Citmo [73]. This will be
directly very costly to the victim. SMS.AndroidOS.FakeInst.a
can not only send and hide SMS messages, it can also generate
shortcuts to malicious sites on the Home screen, and prompt
notifications to install malicious software [125]. To make
matters worse, FakeInst uses the Google GCM to act as
the command server, meaning it uses Google servers for its
attack [125]. Android.Stels achieves the spyware goals, but
also can send and hide SMS messages, make phone calls,
and it can download and install other applications [113]. This
makes it an incredibly versatile Trojan, capable of a range
of malicious acts, including the installation of other malware.
Obad.a can also perform all these actions, but in addition
can also execute any Linux commands, and can also activate
the host’s bluetooth and transmit itself to neighboring devices
through it [126].
But there are also Trojans reminiscent of regular Desktops malware. FakeJobOffer.A is downloaded as a Bollywood
video, but once the device is rebooted it prompts the user
that they have been offered a job, but they must deposit
money into the company account before they can receive the
job (citeAsrar2013Android. Android.Tascudap simply adds the
host device to a DDOS zombie network [117].
However, most Trojan’s require the host application to be
launched to execute. DroidDream Light (DDL), a descendant
of DroidDream, is very capable in its ability to activate [83].
Once the phone state is changed, such as when a call comes
in, an intent is fired. This intent wakes DDL allowing the
spyware goals to be achieved. As well as this: information
about installed packages is returned to the command server;
it has the ability to change to a different command server; it
can download and prompt the installation of applications; and
it can update itself [83, 86].
On that note, there are also Trojans which only use the
Android device as a stepping stone to their true target. Once installed and activated, Android/Ssucl Spy achieves the spyware
goals, and then downloads an autorun.exe onto the device’s
SD card, which contains the exploit Backdoor.MSIL.Ssucl.a
for Windows [35]. In this way, if the SD card is inserted
into a windows PC, the PC will be exploited. There was also
a Trojan discovered, named LuckyCat.A after its inventors
who are part of an APT team named LuckCat [122]. This
team is as described in the Introduction of this paper, and are
believed to have intended this application to target employees
of specific organisations who bring their mobile phones into
their corporate environment, providing a weak point in the
company network, thus revealing the ongoing operations of
that organisation [122]. The Trojan has full access to the
device’s storage and can open and transmit to its master
server over an Internet connection. A remote shell was being
implemented at the time of the Trojan’s discovery [122].
F. Signature Attack
A highly dangerous attack discovered by Bluebox Security
[48] unearths a way of adding code to already existing
installation files without modifying that file’s cryptographic
signature. Upon download, every installation file’s signature
is examined to ensure that the code has not been modified
and therefore the application can be trusted [48]. However
the new exploit, which affects all Android versions since
version 1.6, allows attackers to attach malicious code to
trustworthy applications undetected and therefore piggyback
their way onto an unsuspecting victim device [48]. If applied
to an application with superior privileges, such as the device
manufacturer’s firmware update, the Trojan would have all
privileges on the device, and therefore unrestricted access to
all data, including passwords, and remote control abilities on
the device [48]. Google has since released a patch to fix the
problem [53], but it demonstrates how the most scrupulous
users can fall victim to malware attacks.
G. Antivirus
Antivirus software attempts to apprehend, isolate and delete
malware in the same environment as itself [100]. To investigate
programs as to their true intent, there are a few different
techniques.
Signature scanning is the most commonly used technique
for detecting malware [72]. The signature of a malware is
the bytecode which its code forms [60]. This bytecode is
compared to the bytecode of all other executables on the
system, and if any matches occur, that program is malicious
[36, 60, 72, 100]. All signatures are stored on a server which
antivirus vendors maintain and update as new signatures are
discovered. This is very useful for static malware, but allows
a gap between the malwares release and its discovery [36, 60,
72, 100].
Heuristic scanning understands the regular actions of a type
of program, and if a program of that type takes any actions
outside its expected scope, it is flagged as malicious [36, 60,
72], e.g. if a calendar program attempted to open and write to
another executable.
Integrity checking is a technique where every program on
the system is hashed upon it’s installation [36, 60, 72]. All the
programs are routinely re-hashed to ensure no changes have
been made. If a change has occurred the program is suspected
of having malware attached to it [36, 60, 72]. This is useful
for executables but unusable on consistently growing data files
[36, 60, 72].
Behavioral based or activity monitoring techniques watch
all programs in execution and if they make any suspicious
actions, such as modifying the boot sector, they are flagged
as malicious [36, 60, 72]. They have a database of actions
commonly performed by malware [36, 60, 72]. Experiment
One below attempts to build a behavioral based system for
Android.
Many antivirus programs would use signature scanning as
well as other detection techniques such as Cisco [37].
III. T HE E XPERIMENTS
From section B. Android Architecture of the Literature
Review above, it can be seen that once one initiates the
installation of an Android application, they are served with
the permissions which it requires during execution and if
they are not granted, the program will cease installation.
Although, again from the same section above, it is explained
that Google encourages Android developers to keep their
required permissions to a minimum., in the author’s experience
this is not always adhered to. A popular Android application is
the third party Flashlight application [65]. Its only function is
to turn on the camera’s flashlight enabling it to act as a torch.
This application boasts that it has over ten million installations.
However, among its permissions are the following: User’s
approximate network location and precise GPS location, full
network access, Phone Calls which allow it to monitor the
phone status, call history and phone identity, and System Tools
including modifying system settings [66]. In the author of this
paper’s view, as Google Play automatically checks if updates
have been released for applications on the device [56], the
request for Wifi access seems unnecessary, the user location
permissions again seems needless and knowing the identity
of the phone seems inexplicable for a flashlight. Finally, as
it already has permissions for taking pictures, videos and
controlling the device flash [66], its ability to modify system
settings seems avoidable. Given the existence of applications
such as this which seem to have access beyond their basic
needs, the Android MAC model may be subject to abuse, and
there is room for Trojans to thrive on uninformed users by
attaching themselves to programs such as this.
This paper consists of two experiments. The first will
attempt to establish if it is possible to create a non-root,
lightweight application inspector which, when given an installed application on the device, would watch the targeted
program and construct a time line of the application’s actions.
From this the user can see if it is carrying out any suspicious
behavior. From sections B. Android Architecture and C. Android Security above, it is apparent that due to the sandboxing
nature of Android, the inspection of another program could
prove to be outside of the ability of a non-root application
and there-in lies the experiment. Behavioral antivirus programs
have been suggested before such as Burguera, Zurutuza, and
Nadjm-Tehrani [31], however they have required root privileges. This application is named the ’App Watcher’ by the
author. There are two goals of the App Watcher. The first is to
create the time line of the target which could indicate possible
Trojan-like behavior. The second goal is to accomplish the
first with the constraint that it does not have any super user
privileges. It will not require an external desktop computer
(PC), and it will not require the Android device to be rooted.
It can be easily installed on an Android device as acquired
straight from its manufacturer. This hopes to introduce a more
forensic style approach which could be utilized by antivirus
programs.
The second experiment will pick twenty of the most recent
Android Trojans and place them in an Android environment.
From here a variety of well known commercial antivirus
products will be placed in the environment and compared
and contrasted on several key aspects including the amount
of malware detected.
IV. M ETHODOLOGY: E XPERIMENT O NE , A PP WATCHER
Although Android is capable of operating on different hardware devices such as tablets and netbooks [27], Experiments
One will be conducted using an Android 4.2 mobile phone
environment, emulated on a virtual machine.
To create a minimal permission, non-root program to produce the time line of actions performed by a specified application (target), the following approaches will be utilized:
• It is hoped to examine The System Log, target’s Application Log and Event Log to attempt to extract relevant
information regarding the target
• It is hoped to monitor the Internet connection to gather
information on the data being transferred in and out of
the target
• The Activity Manager [3] will be used to retrieve basic
information about the target such as its UID
• It is intended to use utilities such as ’getApplicationInfo’
from the Package Manager [12] to retrieve helpful information about the target
• The files containing sensitive data which are opened by
the target will be observed using the FileObserver [6]
•
•
utility
It is planned to investigate the use of built in Android
Debugging utilities on the target
It is planned to exploit Intents broadcasting nature
A. Exploring the Logs
From D. Android Logs above, we know that by watching
the System Log, Event Log and the target’s Application Log
the majority of the time line can be created as most of the
target’s activities will be documented in these. These three
logs can be monitored by using the Logcat utility described
in the same section of the Literature Review above. By using
the Runtime [16] library the following code can be used to
read the Application log [9, 14, 50]:
Process p =
Runtime.getRuntime().exec(‘‘logcat -’’);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
StringBuilder log = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
log.append(line);
}
By searching the output of these logs and restricting the search
to the target’s UID, the relevant data can be extracted.
B. Monitoring the Internet Connection
Watching the traffic to and from the target would provide
valuable intelligence as to it’s intent. However, given the
Android sandboxing schema, this is suspected to be a very
hard obstacle to study. Further to this, a secure channel could
be used to transfer the communications of the target such as
HTTP over SSL/TLS rendering the traffic unreadable in any
circumstance. In a less powerful style, the inbuilt Android
TrafficStats [19] class can be used to gather statistics as to
the amount of traffic to and from the device, and the target.
The target can be specified using the ’getUidRxBytes’ function
[19].
C. File Observer
The FileObserver watches a specified file, and if that file
is opened, the FileObserver alerts its application of this fact
[6]. Adding to this, if the file observer is pointed at a folder,
it notifies the application if any of the folder’s contents
are accessed [6]. The FileObserver will be pointed at files
containing sensitive data and can add files which the target
accesses to its final time line.
D. Intents
Whenever an application begins IPC (from section C. Android Security of the Literature Review above), it will make a
request for a component capable of carrying out the necessary
action [7, 8, 32]. This request is called an intent. When a
component is capable of an activity, e.g. browsing the web, it
is registered with the OS of being capable of this ability [7, 8,
32]. Whenever another process needs that ability, the intent is
given to the component that is capable of executing the task.
However, the caller many not know the wanted component for
executing the query, so it sends the intent to a broadcasting
unit for the desired ability, and all components able for the
job are alerted, and the ones capable of executing the query
specified in the intent respond [7, 8, 32]. By registering for all
broadcasting abilities, the App Watcher can be notified some
of the time when the target steps outside of its own process,
thus adding data to the time line.
C. Activity Manager
Although the Activity Manager utility could be used to
provide useful information such as the UID of an application
once it’s name had been provided, and it’s subclass RunningTaskInfo [15] provided some vague information such as the
starting time of the target and its services, no functions which
would provide further information into the actual target’s
activities could be provided as evidenced in the Android
Documentation [3].
D. Debugger Tools
V. R ESULTS : E XPERIMENT O NE
Unfortunately, using the methods as described above within
the time constraints allowed, some of these methods could
not be accomplished without the allowance of root privileges.
It would appear that the remaining methods provided an
insufficient amount of data to decide upon an application’s
malicious intent, and due to the problems outlined below, the
study was ceased. Seemingly, if the App Watcher were to
ignore its second goal and allow root privileges, it could have
succeeded.
A. Logs
Since Android 4.1 was introduced, developers have been unable to access any of the logs, other than their own Application
Log [55]. This was due to third party developers revealing
sensitive data in the logs. However, if root privileges were
enabled for the application, then it would have the required
access, but this would clash with the original specifications of
the App Watcher [55]. Further to this, in an Android group
conversation [20] one of the developers apologised because
this change regarding log access was not documented. This
removed the primary information bank which was hoped to
be exploited to examine the target.
B. Monitoring the Internet Traffic
It was found that the Android model would not allow a third
party application to monitor the Internet traffic to and from the
device. This is due to a restriction on third party applications
accessing the Access Point settings since Android version 4.0
[13, 59]. But this could be achieved if the App Watcher had
root privileges. Also, a proxy through which all Internet traffic
could be observed was blocked to third party applications [18],
although mitmproxy project [93] claims applications can step
around such a proxy in any case. However, setting up a proxy
has been accomplished via the use of root privileges by some
commercial applications [21, 23] and many online sources
describe a method of using a computer proxy by connecting
the device to a PC and rooting the device [44, 64, 96, 98].
The TrafficStats [19] class acted as expected, however as
it could only provide quantities of data sent to and from the
target, and there was no way of knowing exactly what data
was being transferred. This suggested little about the user’s
privacy being violated, and therefore was not particularly
useful without further information.
As foreseen, these tools were not plausible to use on other
programs [4].
VI. C ONCLUSION : E XPERIMENT O NE
After the flaws in the primary methods of investigation of
the target were exposed (see Experiment One Results) this
author decided to cease the study as App Watcher could
not gather enough information about the target. Although
all Android packages [11] were investigated, no alternative
methods within the goal parameters of this study were found.
However, it would appear in each case that root privileges
and / or the use of a PC could be viable avenues to explore.
Although this could be viewed as a limitation, it could also
prompt the introduction of a new suite of permissions available
only to an antivirus user group, allowing them to operate with
their required privileges. It should be noted that this could
impose a security risk, as it is in essence creating a back-door
for antivirus programs to use. However, if exploited it could
provide a malicious program with the tools and permissions for
the theft and modification of all data. As such, strict measures
would have to be implemented to ensure only trusted programs
could gain access to this group.
If the App Watcher approach were performed enough times
in a substantial amount of different environments, malicious
patterns could be established and therefore a fully automated
system could be implemented. This could supply a secondary
behavioral based mechanism to supplement the already established inspection of execution code for known signatures, and
help thwart zero day malware attacks for which no signature
exists.
The prospect of providing further sandboxing abilities to
users to deal with the excessive privileges problem has drawn
some public attention. There is evidence to suggest that
Android 4.3 has implemented the groundwork for blocking
specific privileges which an application requests, but the
Android developers have not made this privilege blocking
ability available to users yet [1]. CyanogenMod, an alternative
Android aftermarket firmware distributor [40], had a similar
capability in a previous release, however this resulted in the
applications crashing when they tried to use the newly blocked
privilege, and sometimes the entire device crashed [67]. An
interesting project suggested by CyanogenMod to provide the
wanted privacy to users is to create impostors for privileged
entities [67], e.g. a fake Contacts file, which would include
limited false contacts. This would be given to an untrusted
application instead of the real file, thus prevent the application
from crashing as it would think it had been granted access
[67]. This would allow users to install their wanted application,
but still retain their own private information if they somewhat
distrust the application [67].
VII. M ETHODOLOGY: E XPERIMENT T WO
Experiment Two was conducted on a Samsung Galaxy Ace
S5830 (SGA) [109]. However, as Samsung decided to cease
the release of versions of Android past Android Gingerbread
[128], a CyanogenMod version of Android 4.2 [41] was
installed on the device. This allowed the experiment to be
performed on the latest version of Android at the time this experiment was conducted. Use of this device proved to be faster
and more reliable than an Android VM. In Experiment Two
twenty malware programs were placed on the Android device.
Ten antivirus programs (AVPs) were sequentially installed and
executed on the device. Their results were compared across a
number of dimensions.
A. The Environment
To ensure the exact same environmental circumstances were
in place for each AVP, two base system images were created.
The first image was of a fresh new installation of Android
4.2. This is referred to as the Blank Image. The second was
taken after all twenty malware programs were installed on the
Blank Image, and no AVP was present. This shall be referred
to as the Malware Image. To allow the taking and loading
of system images ClockworkMod [38] was installed on the
device. A side effect of the use of system images was that
it requires the device to be rooted [129], however this could
only benefit malware, and not the AVPs as they do not require
root.
B. Kiy Issues (KI)
The AVPs were compared on the following key issues (KI):
• Amount of Malware detected
• Items scanned, e.g. Applications, Settings, Files saved in
real time, SMS messages and SD card
• Time taken by an Application scan, and a Full System
and SD card scan, performed with a stopwatch
• Size of AVP on disk, retrievable from the Android
’Application Info’ menu
• Anti-Theft Features, Backup Features, Safe Browsing
Features and Call and SMS blocking features
• Any extra or intuitive features were noted
C. Methodology Steps
First the environment was set up by unlocking the bootloader. This was accomplished by flashing the device with a
SGA stock firmware image of Android Gingerbread (2.3). To
achieve this, Odin version 4.38 was used. Then, a ClockworkMod [129] installer was placed on the SD card and ClockworkMod was installed by using the bootloader’s Recovery
Mode. Next, the CyanogenMod Android 4.2 for SGA OS was
placed on the SD card along with Google Core packages [52].
Again, both were installed through the bootloader’s Recovery
Mode option ’Install update from SD card’. This resulted in the
SGA running CyanogenMod’s Android 4.2 (Jelly Bean). The
factory reset option was then applied, again from Recovery
Mode. A Google Account was created for the device to allow
applications from Google Play to be downloaded to it later, and
all software which need updating on the device was updated.
In view of the dangerous nature of the malware which was
about to be put on the device, at this point the Wifi AP which
the device was connected to, was told to block the device, and
the Wifi on the device was switched off and all its connection
details to the AP were deleted. No SIM card was placed in
the phone or bluetooth devices placed within range of it. This
resulted in a completely sandboxed environment. A system
image of the device, called Blank Image, was taken using
ClockworkMod purely for backup purposes.
The twenty malicious softwares, described in E. Trojans above, installed on the phone are as follows: Android.Stels, DroidDream Light, Spy.AndroidOS.Citmo.A, Android.FakeMart.A, Extension.A, TRacer, Plankton, SpamSoldier, Android.Tascudap, Android.Uranico, FakeJobOffer.A, SMS.AndroidOS.FakeInst.a, Android.Tetus, SMSSilence.C, Android.Exprespam, Android.SMSSend, BadNews,
Android.Sumzand, Android/Ssucl Spy and Android.Uracto.
These were downloaded from Contagio Mobile Malware
Mini Dump [39]. The SGA was connected to a computer, and
each malware was installed on the phone using the ADB. This
is when the Malware Image was created, providing an identical
environment for each AVP to operate from.
The AVPs from Google Play were desired, however that
would require an Internet connection on the device and pose
a security risk. A further complication was that Google Play
will not allow the download of installation files to any device
other than the phone which it is intended to be installed
on. However, when provided with account details, Real APK
Leecher [130] emulates an Android device across an Internet
connection to Google Play, using the provided details. It allows
the installer file to be downloaded to a PC. In this way each
AVP installer was downloaded. Each was then installed onto
the Blank Image using an ADB connection, where it could be
granted an Internet connection to ensure it was the most up to
date version.
The Malware Image was loaded onto the device and the
first AVP was installed and executed. An Application scan
was performed. The results and time were recorded. Next the
full scan of all storage was performed. At this point the full
KI were examined and a backup system image of the AVP
with the malware was created. The Malware Image was again
loaded onto the device, and the next AVP was installed. This
was repeated for each AVP.
The AVPs which this experiment investigated were: AVG
Antivirus Security Free [29]; Lookout Security and Antivirus
[84]; Avast Mobile Security and Antivirus [28]; TrustGo
Antivirus & Mobile Security [123]; Norton Security Antivirus
[99]; McAfee Antivirus & Security [88]; Dr.Web Anti-virus
[43]; Kaspersky Mobile Security Lite [76]; Kaspersky Mobile
Security [75].
VIII. R ESULTS : E XPERIMENT T WO1
AVG
Lookout
Avast
TrustGo
Norton
McAfee
ESET
Dr. Web
Kaspersky L
Kaspersky F
App
Scan
Time
01:18
00:39
00:46
N/a
01:43
00:24
00:21*
00:45
N/a
02:34
Full
Scan
Time
01:35
10:56
01:22
01:21
04:30
15:49
00:55*
4:19
N/a
18:01
Size on
Disk
(MB)
21.50
8.89
9.39e
5.78
13.54e
15.21
43.38
3.02*
3.66
7.73
Num.
Malware
Detected
18/20
19/20
19/20
20/20*
17/20
18/20
20/20*
20/20*
17/20
19/20
TABLE I
AVP OVERVIEW
Extension.A Plankton
AVG
Lookout
Avast
TrustGo
Norton
McAfee
ESET
Dr. Web
Kaspersky L
Kaspersky F
x
TRacer
SMS
Silence.C
BadNews
x
x
x
x
x
x
x
x
x
x
Lock
Wipe
v
F
v
v
Fs
v
v
F
F
F
v
F
v
v
Fs
v
v
F
F
F
Sound
Alarm
v
v
v
v
Fs
SIM
Lock
v
Fs
v
F
F
F
TABLE III
A NIT-T HEFT F EATURES
App
AVG
Lookout
Avast
TrustGo
Norton
McAfee
ESET
Dr. Web
Kaspersky L
Kaspersky F
Contacts
SMS
Call
History
Media
c
Fc
c
Fc
Fc
Fc
Fc
c
c
Fc
sd
Fc
c
c
c
Fc
c
F
x
TABLE IV
DATA BACKUP F EATURES
x
TABLE II
U NDETECTED M ALWARE
It should be noted that both McAfee and Kaspersky F
request full system administrator privileges, while all the
others only request a selection of privileges.
From Table I, Kaspersky Mobile Security Lite (Kaspersky
L) only uses a Cloud Scan, which means that as the user
installs an application, its signature is uploaded to a Kaspersky
server and scanned. No conventional memory scan is available.
Due to this, it was decided to also examine Kaspersky Mobile
Security Full (Kaspersky F). Further to this, Kaspersky F
prompts the user every time it detects malware asking if it
1 Legend for all Tables:
e = Expands as extra features are installed
∗ = Most optimum result for this column
x = Undetected
v = Supported
F = Only the fully paid version supports the feature
s = Remote control via SMS is also supported
sd = Backed up onto the device SD card
c = Backed up onto an online cloud server
AVG
Lookout
Avast
TrustGo
Norton
McAfee
ESET
Dr. Web
Kaspersky L
Kaspersky F
GPS
Locate
v
v
v
v
Fs
v
v
F
F
F
should be removed and pauses all scanning until it is granted
a response, so this should be taken into account when reading
its times above. It should be noted that Kaspersky F yielded
a higher detection rate than Kaspersky L.
The highest detection rates were netted by TrustGo, ESET
and Dr. Web who each detected 100% of the malware.
However, TrustGo also detected a false positive, Google Play
Services. Dr. Web consumed the least amount of memory
as well as its 100% detection rate, but has a relatively high
full system scan time. ESET holded the record as fastest for
both scanning times, but also consumed the largest amount of
memory, being more than twice that of AVG, the next largest
AVP.
It is also worth noting that excluding Kaspersky L, each
AVP can scan applications, SMS messages, files saved in real
time and all system storage including an SD card. However,
Lookout requires the full version in order to scan files saved
in real time. A nice feature of AVG is that it scans for insecure
settings, such as the device being rooted.
In all cases, a total of five malware evaded detection by
some AVPs. Table II is a table specifying which AVPs did
not detect the specified malware. From Table II it is clear that
TRacer evaded detection most often, which may be due to the
Firewall
AVG
Lookout
Avast
TrustGo
Norton
McAfee
ESET
Dr. Web
Kaspersky L
Kaspersky F
v
F
v
v
F
v
F
F
Parental
Schedule
Number
Controls
Scan
Blocking
v
F
v
v
v
v
F
F
v
F
F
v
F
F
v
Filter
Outgoing
Calls
v
F
TABLE V
M ISCELLANEOUS F EATURES
fact that it is the most recent malware in this experiment. To
see a more detailed results table of all malware, see Lally [80].
Each of the anti-theft features in Table III are performed
via a computer remotely. Avast and the paid version of Norton
require an external package to be installed to support all antitheft features, using more memory.
From Table IV, Avast allows the widest range of data to be
backed up, McAfee the next.
In the Table V, Number Blocking is the blocking of incoming calls and SMS messages from specific numbers.
A. Other Features
AVG employs a power settings menu to examine the most
power consuming processes, and options to restrict their power
consumption.
The paid version of Lookout allows the user to view the
personal data each application has access to.
Avast allows the user to set a maximum MN download
limit per month, shows the amount of data each application
downloaded on the MN and Wifi for each month, and allows a
MN maximum download limit per month for each application
to be set. It has a Task Manager to kill processes, and allows
the user to view Android privileges and what applications have
access to each.
TrustGo also allows an upper bounds on MN data per month
to be set, and also gives a breakdown of application MN data
usage. It gives an application battery usage breakdown and
again, a view of privileges and each application which has
that privilege.
McAfee allows the creation of profiles, where each profile
only has access to a subset of applications on the device. ESET
shows a list of device privileges and the applications which
have access to that privilege.
IX. E XPERIMENT T WO C ONCLUSION
There are many AVPs available with an array of tools at
their disposal. There is no one specific optimum AVP, however
each has their own appeal depending on the user’s intent. A
subset do appear better than others. For the highest malware
detection rate, TrustGo, ESET and Dr. Web provided the best
results, while if one were looking for the AVP with the widest
array of features with budget constraints, Avast yielded the
most optimum results. For a lightweight malware scanner with
little other functionality, Dr. Web would stand out. If high
detection rates and fast scans are desired when there are no
memory constraints, ESET would be advisable. In this authors
opinion, Kaspersky L provided too poor a malware detection
rate to use, and its inability to scan already installed programs
seems dangerous, but Kaspersky F’s prompting every time
malware was encountered was distracting as it prevented other
activities from being performed in the foreground. It should
be noted that McAfee did a more in depth SD card scan, as
it managed to locate each malware twice, the ones installed
on the device, and the ones installed on the backup Malware
Image stored on the SD card. Optimal antivirus programs
for Android will therefore be dependent on the needs and
preferences of the user. It should be noted that whenever an
AVP did not detect a Trojan, it is likely that that Trojan was
not present in it’s signature database, and could potentially
have be detected by a secondary behavioral based malware
detector, such as Experiment One’s the App Watcher.
ACKNOWLEDGEMENTS
I would like to thank: my supervisor Renaat Verbruggen,
who gave constant useful feedback on this project; my parents
and my sister for both funding and constantly encouraging me
in my life’s education; and my two cats for their companionship over many late nights composing this paper.
R EFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
Amadeo, R. Apps Ops: Android 4.3’s Hidden App Permissions
Manager, Control Permissions For Individual Apps! 2013. URL: http:
//www.androidpolice.com/2013/07/25/app-ops-android-4-3s-hiddenapp- permission- manager- control- permissions- for- individual- apps/
(visited on 08/19/2013).
Amazon. Amazon App for Android. 2013. URL: https://www.amazon.
com/gp/anywhere/sms/android (visited on 07/18/2013).
Android. Android Documentation: ActivityManager. 2013. URL: http:
//developer.android.com/reference/android/app/ActivityManager.html
(visited on 07/30/2013).
Android. Android Documentation: Debugging. 2013. URL: http : / /
developer.android.com/tools/debugging/index.html#tips (visited on
07/31/2013).
Android. Android Documentation: EventLog. 2013. URL: http : / /
developer.android.com/reference/android/util/EventLog.html (visited
on 07/29/2013).
Android. Android Documentation: FileObserver. 2013. URL: http :
/ / developer. android . com / reference / android / os / FileObserver. html
(visited on 07/31/2013).
Android. Android Documentation: Intent. 2013. URL: http://developer.
android . com / reference / android / content / Intent . html (visited on
07/31/2013).
Android. Android Documentation: Intents and Intent Filters. 2013.
URL : http://developer.android.com/guide/components/intents- filters.
html (visited on 07/31/2013).
Android. Android Documentation: logcat. 2013. URL: http : / /
developer.android.com/tools/help/logcat.html (visited on 07/29/2013).
Android. Android Documentation: Manifest.permission. 2013. URL:
http://developer.android.com/reference/android/Manifest.permission.
html (visited on 07/26/2013).
Android. Android Documentation: Package Index. 2013. URL: http:
/ / developer . android . com / reference / packages . html (visited on
07/31/2013).
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
[37]
[38]
Android. Android Documentation: PackageManager. 2013. URL:
http : / / developer . android . com / reference / android / content / pm /
PackageManager.html (visited on 07/27/2013).
Android. Android Documentation: Permissions, Write APN Settings.
2013. URL: http://developer.android.com/reference/android/Manifest.
permission.html#WRITE APN SETTINGS (visited on 07/31/2013).
Android. Android Documentation: Reading and Writting Logs. 2013.
URL: http : / / developer . android . com / tools / debugging / debugging log.html (visited on 07/29/2013).
Android. Android Documentation: RunningTaskInfo. 2013. URL: http:
/ / developer. android . com / reference / android / app / ActivityManager.
RunningTaskInfo.html (visited on 07/31/2013).
Android. Android Documentation: Runtime. 2013. URL: http : / /
developer. android . com / reference / java / lang / Runtime . html (visited
on 08/01/2013).
Android. Android Documentation: Security Tips. 2013. URL:
developer. android . com / training / articles / security - tips . html (visited
on 07/27/2013).
Android. Android Documentation: Settings.Global. 2013. URL: http:
//developer.android.com/reference/android/provider/Settings.Global.
html#HTTP PROXY (visited on 08/27/2013).
Android. Android Documentation: TrafficStats. 2013. URL: http : / /
developer . android . com / reference / android / net / TrafficStats . html
(visited on 07/30/2013).
Android. READ LOGS permission is not granted to 3rd party applications in Jelly Bean (api 16). 2012. URL: https://groups.google.
com/forum/?fromgroups=#!topic/android- developers/6U4A5irWang
(visited on 07/31/2013).
Android-Arts. Packet Sniffer. 2013. URL: https://sites.google.com/
site/androidarts/packet-sniffer (visited on 07/31/2013).
Android Developers. “What is android?” In: ht tp://developer. android. com/guide/basics/what-is-android. html 2 (2011).
Android Open Source Project. Debugging with TcpDump and other
Tools. 2013. URL: http : / / www . kandroid . org / online - pdk / guide /
tcpdump.html (visited on 07/31/2013).
Apple. Siri. 2013. URL: http://www.apple.com/ios/siri/ (visited on
07/18/2013).
Apple. What is iOS: iOS Home Page. 2013. URL: http://www.apple.
com/uk/ios/what-is/ (visited on 07/18/2013).
Asrar, I. Fake Vertu App Infects Korean and Japanese Android Users.
2013. URL: https : / / blogs . mcafee . com / consumer / fake - vertu - app infects-korean-and-japanese-android-users (visited on 08/17/2013).
ASUS. Eee Pad Transformer TF101. 2013. URL: http://www.asus.
com/Tablets Mobile/Eee Pad Transformer TF101/.
Avast. Google Play: Avast Mobile Security and Antivirus. 2013. URL:
https://play.google.com/store/apps/details?id=com.avast.android.
mobilesecurity&hl=en (visited on 08/19/2013).
AVG. Google Play: AVG AntiVirus Security - FREE. 2013. URL: https:
//play.google.com/store/apps/details?id=com.antivirus&hl=en (visited
on 08/19/2013).
BOI. Bank of Ireland Mobile Banking. 2013. URL: https://play.google.
com/store/apps/details?id=com.bankofireland.mobilebanking&hl=en
(visited on 07/18/2013).
Iker Burguera, Urko Zurutuza, and Simin Nadjm-Tehrani. “Crowdroid: behavior-based malware detection system for android”. In:
Proceedings of the 1st ACM workshop on Security and privacy in
smartphones and mobile devices. ACM. 2011, pp. 15–26.
Ed Burnette. Hello, Android: introducing Google’s mobile development platform. Pragmatic Bookshelf, 2009.
Burnette E. How Android Works: The Big Picture. 2008. URL: http:
/ / www . zdnet . com / blog / burnette / how - android - works - the - big picture/515 (visited on 07/20/2013).
Andrew Charlesworth. “The ascent of smartphone”. In: Engineering
& technology 4.3 (2009), pp. 32–33.
Chebyshev, V. Mobile Attacks! 2013. URL: http : / / www. securelist .
com/en/blog/805/Mobile attacks (visited on 08/17/2013).
Sha Sha Chu et al. How Anti-Virus Software Works. 2013. URL: http:
//www-cs-faculty.stanford.edu/∼eroberts/cs181/projects/viruses/antivirus.html (visited on 08/22/2013).
Cisco. Cisco IronPort Sophos Anti-Virus Technology. 2013. URL: http:
//www.cisco.com/en/US/prod/vpndevc/ps10128/ps10154/anti virus
index.html (visited on 08/22/2013).
ClockworkMod. ClockworkMod Homepage. 2013. URL: http://www.
clockworkmod.com/ (visited on 08/10/2013).
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]
[52]
[53]
[54]
[55]
[56]
[57]
[58]
[59]
[60]
[61]
[62]
[63]
[64]
[65]
Contagio. Contagio Mobile Malware Mini Dump Home. 2013. URL:
http://contagiominidump.blogspot.ie/ (visited on 08/19/2013).
CyanogenMod. About CyanogenMod. 2013. URL: http : / / www .
cyanogenmod.org/about (visited on 08/19/2013).
CyanogenMod. CyanogenMod Homepage. 2013. URL: http://www.
cyanogenmod.org/ (visited on 08/10/2013).
DiBona, C. Blog Entry about Open Source Security. 2011. URL:
https : / / plus . google . com / +cdibona / posts / ZqPvFwdDLPv (visited
on 07/26/2013).
Dr. Web. Google Play: Dr.Web Anti-virus. 2013. URL: https://play.
google . com / store / apps / details ? id = com . drweb . pro (visited on
08/19/2013).
Dusty. Introduction to Pen-testing Android Applications Part 1. 2012.
URL : http://penturalabs.wordpress.com/2012/06/07/introduction- topen-testing-android-applications-part-1/ (visited on 07/31/2013).
eLinux. Android Logging System. 2012. URL: http : / / elinux . org /
Android Logging System (visited on 07/29/2013).
William Enck, Machigar Ongtang, and Patrick McDaniel. “Understanding android security”. In: Security & Privacy, IEEE 7.1 (2009),
pp. 50–57.
EuroStat. Telecommunication Statistics. 2012. URL: http : / / epp .
eurostat . ec . europa . eu / statistics explained / index . php /
Telecommunication statistics (visited on 07/11/2013).
Forristal, J. Uncovering Android Master Key that makes 99Vulnerable.
2013. URL: http://bluebox.com/corporate- blog/bluebox- uncoversandroid-master-key/ (visited on 08/19/2013).
FortiGuard Center. Virus: Android/Fakemart.A!tr. 2012. URL: http :
//www.fortiguard.com/encyclopedia/virus/#id=4117117 (visited on
08/17/2013).
Gabor. Reading Log Programatically. 2011. URL: http : / / www .
helloandroid.com/tutorials/reading- logs- programatically (visited on
07/30/2013).
Nisarg Gandhewar and Rahila Sheikh. “Google Android: An emerging software platform for mobile devices”. In: International Journal
on Computer Science and Engineering 1.1 (2010), pp. 12–17.
GApps. Download Latest Google Apps (GApps) for Your Android
Device. 2013. URL: http : / / androidlegend . com / gapps/ (visited on
08/19/2013).
Goodin, D. Google Patches Critical Android Threat as Working
Exploit is Unleashed. 2013. URL: http : / / arstechnica . com / security /
2013/07/google-patches-critical-android-threat-as-working-exploitis-unleashed/ (visited on 08/19/2013).
Google. Android Home Page. 2013. URL: www.android.com (visited
on 07/18/2013).
Google. Google I/O Conference. 2012. URL: http : / / www. youtube .
com/watch?feature=player embedded&v=WDDgoxvQsrQ#t=1369s
(visited on 07/30/2013).
Google. Google Play Help: Update Apps on your Device. 2013. URL:
https://support.google.com/googleplay/answer/113412?hl=en (visited
on 07/29/2013).
Google. Google Play Home Page. 2013. URL: https://play.google.
com/store?hl=en (visited on 07/20/2013).
Google. Google Search for Android. 2013. URL: http://www.google.
com/mobile/search/ (visited on 07/18/2013).
Google. WRITE APN SETTINGS not available on Ice Cream Sandwich. 2012. URL: http://code.google.com/p/android/issues/detail?id=
24227 (visited on 07/31/2013).
Michael Gregg. Build Your Own Security Lab: A Field Guide for
Network Testing. Wiley. com, 2008.
Halliday, D. Security Alert: SpamSoldier. 2013. URL: https://blog.
lookout.com/blog/2012/12/17/security-alert-spamsoldier/ (visited on
08/17/2013).
Hamada, J. Android.Uracto Used to Trick Mothers, Anime Fans,
Gamers, and More. 2013. URL: http://www.symantec.com/connect/
blogs/androiduracto- used- trick- mothers- anime- fans- gamers- andmore (visited on 08/17/2013).
Huang, J. Android IPC Mechanism. 2012. URL: http : / / www .
slideshare.net/jserv/android-ipc-mechanism (visited on 07/26/2013).
InfoNation. Intercepting Android HTTPS Connection. 2012. URL:
2013-07-31 (visited on 07/31/2013).
Intellectual Flame Co., Ltd. Fliashlight Description. 2013. URL: https:
/ / play. google . com / store / apps / details ? id = com . intellectualflame .
ledflashlight.washer&hl=en (visited on 07/29/2013).
[66]
[67]
[68]
[69]
[70]
[71]
[72]
[73]
[74]
[75]
[76]
[77]
[78]
[79]
[80]
[81]
[82]
[83]
[84]
[85]
[86]
[87]
[88]
[89]
[90]
[91]
Intellectual Flame Co., Ltd. Flightlight App Information: Installation
Information. Tech. rep. 2013.
Ion, F. How CyanogenMod’s Founder is giving Android users their
Privacy Back. 2013. URL: http://arstechnica.com/gadgets/2013/06/
how- cyanogenmods- founder- is- giving- android- users- their- privacyback/ (visited on 07/31/2013).
ISE. Exploiting Android. 2008. URL: http://securityevaluators.com/
content/case-studies/android/ (visited on 07/26/2013).
Woongryul Jeon et al. “A practical analysis of smartphone security”.
In: Human Interface and the Management of Information. Interacting
with Information. Springer, 2011, pp. 311–320.
Jiang, X. Security Alert: New Stealthy Android Spyware – Plankton –
Found in Official Android Market. 2011. URL: http://www.csc.ncsu.
edu/faculty/jiang/Plankton/ (visited on 08/16/2013).
Johnson, R. Android Security Model. 2011. URL: http : / / www. cs .
sunysb.edu/∼rob/teaching/cse409-fa11/notes/09-19-alin-tomescu.pdf
(visited on 07/26/2013).
Sunita Kanaujiya, SP Tripathi, and NC Sharma. “Improving Speed
of the Signature Scanner using BMH Algorithm”. In: International
Journal of Computer Applications 11.4 (2010).
Kaspersky. Carberp-in-the-Mobile. 2013. URL: http://www.securelist.
com/en/blog/208194045/ (visited on 08/17/2013).
Kaspersky. Chuli.A. 2013. URL: https : / / www. securelist . com / en /
blog/208194186/Android Trojan Found in Targeted Attack (visited
on 08/16/2013).
Kaspersky. Google Play: Kaspersky Mobile Security. 2013. URL:
https : / / play. google . com / store / apps / details ? id = com . kms & hl = en
(visited on 08/19/2013).
Kaspersky. Google Play: Kaspersky Mobile Security Lite. 2013. URL:
https://play.google.com/store/apps/details?id=com.kms.free (visited
on 08/19/2013).
Kaspersky Labs. IT Threat Evolution: Q1 2013. 2013. URL: http :
//www.securelist.com/en/analysis/204792292/IT Threat Evolution
Q1 2013#12 (visited on 07/10/2013).
Killer Mobile. TRacer v.7.0 Manual. 2011. URL: http://killermobile.
com/manuals/TRa.pdf (visited on 08/17/2013).
Jonathan Lally. App Watcher. 2013. URL: http : / / appwatcherdcu .
blogspot.ie/ (visited on 08/29/2013).
Jonathan Lally. Project Results. 2013. URL: http://www.redbrick.dcu.
ie/∼banjo/AVPresults.ods (visited on 08/23/2013).
H. Leonard. There Will Soon Be One Smartphone For Every Five
People In The World. 2013. URL: http://www.businessinsider.com/15billion-smartphones-in-the-world-22013-2 (visited on 08/01/2013).
Elias Levy. “Approaching zero [attack trends]”. In: Security & Privacy, IEEE 2.4 (2004), pp. 65–66.
Lookout. DroidDreamLight, New Malware from the Developers of
DroidDream. 2011. URL: https://blog.lookout.com/blog/2011/05/30/
security- alert- droiddreamlight- new- malware- from- the- developersof-droiddream/ (visited on 08/16/2013).
Lookout. Google Play: Lookout Security Antivirus. 2013. URL: https:
//play.google.com/store/apps/details?id=com.lookout&hl=en (visited
on 08/19/2013).
Lookout. Security Alert: DroidDream Malware Found in Official
Android Market. 2011. URL: https://blog.lookout.com/blog/2011/
03 / 01 / security - alert - malware - found - in - official - android - market droiddream/ (visited on 08/06/2013).
Lookout. Security ALert: New DroidDream Light Variant Published
to Android Market. 2011. URL: https://blog.lookout.com/blog/2011/
07 / 08 / security - alert - new - droiddream - light - variant - published - to android-market/ (visited on 08/16/2013).
Mandiant. Mandiant APT1 Report. 2012. URL: http : / / intelreport .
mandiant.com/ (visited on 07/10/2013).
McAfee. Google Play: McAfee Antivirus Security. 2013. URL: https:
//play.google.com/store/apps/details?id=com.wsandroid.suite&hl=en
(visited on 08/19/2013).
McAfee Labs. McAfee Threats Report: First Quarter 2013. 2013.
URL: http : / / www. mcafee . com / us / resources / reports / rp - quarterly threat-q1-2013.pdf (visited on 07/10/2013).
Microsoft. The Smartphone Reinvented Around You: Windows Mobile
Home Page. 2013. URL: http : / / www . windowsphone . com / en - us
(visited on 07/18/2013).
Jelena Mirkovic and Peter Reiher. “A taxonomy of DDoS attack
and DDoS defense mechanisms”. In: ACM SIGCOMM Computer
Communication Review 34.2 (2004), pp. 39–53.
[92]
[93]
[94]
[95]
[96]
[97]
[98]
[99]
[100]
[101]
[102]
[103]
[104]
[105]
[106]
[107]
[108]
[109]
[110]
[111]
[112]
[113]
[114]
[115]
[116]
[117]
Jelena Mirkovic et al. Internet Denial of Service: Attack and Defense
Mechanisms (Radia Perlman Computer Networking and Security).
Prentice Hall PTR, 2004.
mitmproxy project. Android. 2013. URL: http://mitmproxy.org/doc/
certinstall/android.html (visited on 07/31/2013).
mobiVIGIL. AndroidS M SSend. 2013. URL: https : / / mobivigil .
techmahindra.com/ShowAdvisoryFile.php?File=Android SMSSend.
pdf (visited on 08/17/2013).
Muppala, J. Android Overview. 2012. URL: http : / / tinyurl . com /
muppalaandroidoverview2 (visited on 07/19/2013).
MyHowTo. Intercepting and Decrypting SSL Communications between Android Phone and 3rd Party Server. 2011. URL: http : / /
www . myhowto . org / java / 81 - intercepting - and - decrypting - ssl communications - between - android - phone - and - 3rd - party - server/
(visited on 07/31/2013).
Tyler Nighswander et al. “GPS software attacks”. In: Proceedings of
the 2012 ACM conference on Computer and communications security.
ACM. 2012, pp. 450–461.
Nilesh K. Interception Android Native Application. 2012. URL: 2012.
(visited on 07/31/2013).
Norton. Google Play: Norton Security Antivirus. 2013. URL: https://
play.google.com/store/apps/details?id=com.symantec.mobilesecurity
(visited on 08/19/2013).
Jon Oberheide, Evan Cooke, and Farnam Jahanian. “CloudAV: NVersion Antivirus in the Network Cloud.” In: USENIX Security
Symposium. 2008, pp. 91–106.
Open Handset Alliance. Android overview. 2011. URL: http://www.
openhandsetalliance.com (visited on 07/11/2013).
Yangil Park and Jengchung V Chen. “Acceptance and adoption of the
innovative use of smartphone”. In: Industrial Management & Data
Systems 107.9 (2007), pp. 1349–1365.
Prince M. The DDoS That Knocked Spamhaus Offline (And How We
Mitigated It). 2013. URL: http://blog.cloudflare.com/the- ddos- thatknocked-spamhaus-offline-and-ho (visited on 07/11/2013).
RIM. Blackberry from Research In Motion Limited Home Page. 2013.
URL : http://www.rim.com/index na.shtml (visited on 07/18/2013).
Rogers, M. The Bearer of BadNews. 2013. URL: https://blog.lookout.
com/blog/2013/04/19/the-bearer-of-badnews-malware-google-play/
(visited on 08/17/2013).
Margaret Rouse. RSA Algorithm (Rivest-Shamir-Adleman). 2005.
URL : http : / / searchsecurity. techtarget . com / definition / RSA (visited
on 08/29/2013).
RSA Labs. Anatomy of an Attack. 2013. URL: https://blogs.rsa.com/
anatomy-of-an-attack/ (visited on 07/11/2013).
D. Russell and GT Gangemi. Computer security basics. O’Reilly,
1991.
Samsung. Galaxy Ace, Samsung. 2011. URL: http://www.samsung.
com/galaxyace/ace overview.html (visited on 08/10/2013).
Satter R. Spamhaus Hit With ’Largest Publicly Announced DDoS
Attack’ Ever, Affecting Internet Users Worldwide. 2013. URL: http:
//www.huffingtonpost.com/2013/03/27/spamhaus- cyber- attack n
2963632.html (visited on 07/11/2013).
Security Ledger. Google Adds Detection For Obad Malware. 2013.
URL : https://securityledger.com/2013/06/google-adds-detection-forobad-malware/ (visited on 08/06/2013).
Spamhaus. Spamhaus Home Page. 2013. URL: http://epp.eurostat.
ec . europa . eu / statistics explained / index . php / Telecommunication
statistics (visited on 08/01/2013).
Stone-Gross, B. Stels Android Trojan Malware Analysis. 2013. URL:
http://www.secureworks.com/cyber- threat- intelligence/threats/stelsandroid-trojan-malware-analysis/ (visited on 08/17/2013).
Svajcer, V. Plankton Malware Drifts into Android Market. 2011. URL:
http : / / nakedsecurity. sophos . com / 2011 / 06 / 14 / plankton - malware drifts-into-android-market/ (visited on 08/16/2013).
Symantec. Android.Exprespam. 2013. URL: http : / / www. symantec .
com/security response/writeup.jsp?docid=2013- 010705- 2324- 99&
tabid=2 (visited on 08/16/2013).
Symantec. Android.Sumzand. 2012. URL: http://www.symantec.com/
security response/writeup.jsp?docid=2012-080308-2851-99 (visited
on 08/16/2013).
Symantec. Android.Tascudap. 2013. URL: http://www.symantec.com/
security response/writeup.jsp?docid=2012-121312-4547-99 (visited
on 08/17/2013).
[118]
[119]
[120]
[121]
[122]
[123]
[124]
[125]
[126]
[127]
[128]
[129]
[130]
[131]
[132]
Symantec. Android.Tetus. 2013. URL: http : / / www. symantec . com /
security response/writeup.jsp?docid=2013-012409-4705-99 (visited
on 08/16/2013).
Symantec. Android.Uranico. 2012. URL: http://www.symantec.com/
security response/writeup.jsp?docid=2012-052803-3835-99&tabid=
2 (visited on 08/16/2013).
Symantec. Sun Charger, the Latest Android.Sumzand Variant, Continues the Massive Spam Campaign. 2012. URL: http://www.symantec.
com / connect / blogs / sun - charger - latest - androidsumzand - variant continues-massive-spam-campaign (visited on 08/16/2013).
Symbian. Symbian Foundation Home Page. 2013. URL: www .
symbian.org (visited on 07/18/2013).
Trend Micro. Adding Android and Mac OS X Malware to the APT
Toolbox. 2012. URL: http://www.trendmicro.com/cloud- content/us/
pdfs / security - intelligence / white - papers / wp adding - android - and mac-osx-malware-to-the-apt-toolbox.pdf (visited on 08/06/2013).
TrustGo. Google Play: TrustGo Antivirus Mobile Security. 2013.
URL: https : / / play. google . com / store / apps / details ? id = com . trustgo .
mobile.security (visited on 08/19/2013).
TrustGo. Trojan!Extension.A - Complex Malware Escapes AV Detection. 2013. URL: http://blog.trustgo.com/trojanextension-a-complexmalware-escapes-av-detection/ (visited on 08/16/2013).
Unuchek, R. GCM in Malicious Attachments. 2013. URL: http://www.
securelist.com/en/blog?print mode=1&weblogid=8113 (visited on
08/17/2013).
Unuchek, R. The most Sophisticated Android Trojan. 2013. URL:
http://www.securelist.com/en/blog/8106/The most sophisticated
Android Trojan (visited on 08/17/2013).
Vasa, R. Data Storage and Retrieval. 2013. URL: http://apcmag.com/
data-storage-and-retrieval.htm (visited on 07/26/2013).
Westaway L. Samsung Galaxy Ace won’t be update to Ice Cream
Sandwich. 2012. URL: http : / / crave . cnet . co . uk / mobiles / samsung galaxy - ace - wont - be - updated - to - ice - cream - sandwich - 50006538/
(visited on 08/10/2013).
XDA Developers. ClockworkMod. 2013. URL: http : / / forum .
xda - developers . com / wiki / ClockworkMod Recovery (visited on
08/10/2013).
XDA Developers. Real APK Leecher - Download apk from your PC.
2012. URL: http : / / forum . xda - developers . com / showthread . php ? t =
1539375 (visited on 08/20/2013).
Stefano Zanero, Claudio Merloni, and Luca Carettoni. “Studying
bluetooth malware propagation: The bluebag project”. In: IEEE
Security & Privacy 5.2 (2007), pp. 0017–25.
Yajin Zhou et al. “Hey, you, get off of my market: Detecting malicious
apps in official and alternative android markets”. In: Proceedings of
the 19th Annual Network and Distributed System Security Symposium.
2012.
Download