78 research outputs found
Towards Principled Dynamic Analysis on Android
The vast amount of information and services accessible through mobile handsets running the Android operating system has led to the tight integration of such devices into our daily routines. However, their capability to capture and operate upon user data provides an unprecedented insight into our private lives that needs to be properly protected, which demands for comprehensive analysis and thorough testing. While dynamic analysis has been applied to these problems in the past, the corresponding literature consists of scattered work that often specializes on sub-problems and keeps on re-inventing the wheel, thus lacking a structured approach. To overcome this unsatisfactory situation, this dissertation introduces two major systems that advance the state-of-the-art of dynamically analyzing the Android platform. First, we introduce a novel, fine-grained and non-intrusive compiler-based instrumentation framework that allows for precise and high-performance modification of Android apps and system components. Second, we present a unifying dynamic analysis platform with a special focus on Android’s middleware in order to overcome the common challenges we identified from related work. Together, these two systems allow for a more principled approach for dynamic analysis on Android that enables comparability and composability of both existing and future work.Die enorme Menge an Informationen und Diensten, die durch mobile Endgeräte mit dem Android Betriebssystem zugänglich gemacht werden, hat zu einer verstärkten Einbindung dieser Geräte in unseren Alltag geführt. Gleichzeitig erlauben die dabei verarbeiteten Benutzerdaten einen beispiellosen Einblick in unser Privatleben. Diese Informationen müssen adäquat geschützt werden, was umfassender Analysen und gründlicher Prüfung bedarf. Dynamische Analysetechniken, die in der Vergangenheit hier bereits angewandt wurden, fokussieren sich oftmals auf Teilprobleme und reimplementieren regelmäßig bereits existierende Komponenten statt einen strukturierten Ansatz zu verfolgen. Zur Überwindung dieser unbefriedigenden Situation stellt diese Dissertation zwei Systeme vor, die den Stand der Technik dynamischer Analyse der Android Plattform erweitern. Zunächst präsentieren wir ein compilerbasiertes, feingranulares und nur geringfügig eingreifendes Instrumentierungsframework für präzises und performantes Modifizieren von Android Apps und Systemkomponenten. Anschließend führen wir eine auf die Android Middleware spezialisierte Plattform zur Vereinheitlichung von dynamischer Analyse ein, um die aus existierenden Arbeiten extrahierten, gemeinsamen Herausforderungen in diesem Gebiet zu überwinden. Zusammen erlauben diese beiden Systeme einen prinzipienorientierten Ansatz zur dynamischen Analyse, welcher den Vergleich und die Zusammenführung existierender und zukünftiger Arbeiten ermöglicht
Automated Test Input Generation for Android: Are We There Yet?
Mobile applications, often simply called "apps", are increasingly widespread,
and we use them daily to perform a number of activities. Like all software,
apps must be adequately tested to gain confidence that they behave correctly.
Therefore, in recent years, researchers and practitioners alike have begun to
investigate ways to automate apps testing. In particular, because of Android's
open source nature and its large share of the market, a great deal of research
has been performed on input generation techniques for apps that run on the
Android operating systems. At this point in time, there are in fact a number of
such techniques in the literature, which differ in the way they generate
inputs, the strategy they use to explore the behavior of the app under test,
and the specific heuristics they use. To better understand the strengths and
weaknesses of these existing approaches, and get general insight on ways they
could be made more effective, in this paper we perform a thorough comparison of
the main existing test input generation tools for Android. In our comparison,
we evaluate the effectiveness of these tools, and their corresponding
techniques, according to four metrics: code coverage, ability to detect faults,
ability to work on multiple platforms, and ease of use. Our results provide a
clear picture of the state of the art in input generation for Android apps and
identify future research directions that, if suitably investigated, could lead
to more effective and efficient testing tools for Android
Recommended from our members
RUN-TIME ANALYSIS AND SECURITY OF MULTI-LANGUAGE SYSTEMS
The contemporary software development landscape has witnessed a widespread integration of diverse programming languages, leveraging the specific advantages of each, such as the efficiency of C and the programmability of Python. This trend finds notable applications in prominent domains, including the Android operating system and advanced machine learning frameworks like PyTorch. However, adopting this multi-language approach has ushered in aseries of great challenges for developers, necessitating the identification of robust solutions to tackle potential security vulnerabilities.Traditional techniques such as program analysis and fuzzing, initially designed for single-language software, face limitations in effectively uncovering vulnerabilities in multi-language systems. Program analysis grapples with challenges in comprehending the intricate control and data flows across diverse languages, often resulting in incomplete vulnerability detection. Conversely, greybox fuzzing encounters difficulties adapting to the nuances of various languages, leading to incomplete code coverage and complications in reproducing identified vulnerabilities. The intricacies within runtime systems supporting multilingual software exacerbate the security clearance predicament, as these systems are often constructed using multiple languages. This complexity adds an additional layer of difficulty for conventional security techniques, emphasizing the need for more adaptive and comprehensive approachestailored to the unique challenges posed by the multifaceted nature of multi-language systems.Within the scope of my dissertation, I endeavored to tackle the intricate challenges posed by vulnerabilities in multi-language software through a comprehensive and multifaceted approach. This approach entailed conducting extensive empirical investigations into vulnerability susceptibility, facilitating the development of dynamic cross-language information flow analysis. Recognizing the pivotal significance of comprehensive test input coverage, I devisedan integrated greybox fuzzing methodology. This innovative approach integrates sensitivity analysis and comprehensive whole-system coverage measurements, significantly enhancing the efficiency of the fuzzing process and vulnerability identification. Furthermore, I focused on fortifying runtime security by proposing a novel two-level collaborative fuzzing framework tailored explicitly for Python language runtime. This contribution was pivotal in reinforcing the software system’s foundational safeguards, ensuring a robust defense mechanism against potential security threats
Automated Testing of Android Apps: A Systematic Literature Review
Automated testing of Android apps is essential for app users, app developers and market maintainer communities alike. Given the widespread adoption of Android and the specificities of its development model, the literature has proposed various testing approaches for ensuring that not only functional requirements but also non-functional requirements are satisfied. In this paper, we aim at providing a clear overview of the state-of-the-art works around the topic of Android app testing, in an attempt to highlight the main trends, pinpoint the main methodologies applied and enumerate the challenges faced by the Android testing approaches as well as the directions where the community effort is still needed. To this end, we conduct a Systematic Literature Review (SLR) during which we eventually identified 103 relevant research papers published in leading conferences and journals until 2016. Our thorough examination of the relevant literature has led to several findings and highlighted the challenges that Android testing researchers should strive to address in the future. After that, we further propose a few concrete research directions where testing approaches are needed to solve recurrent issues in app updates, continuous increases of app sizes, as well as the Android ecosystem fragmentation
Cyber Security and Critical Infrastructures
This book contains the manuscripts that were accepted for publication in the MDPI Special Topic "Cyber Security and Critical Infrastructure" after a rigorous peer-review process. Authors from academia, government and industry contributed their innovative solutions, consistent with the interdisciplinary nature of cybersecurity. The book contains 16 articles: an editorial explaining current challenges, innovative solutions, real-world experiences including critical infrastructure, 15 original papers that present state-of-the-art innovative solutions to attacks on critical systems, and a review of cloud, edge computing, and fog's security and privacy issues
Understanding and Securing Voice Assistant Applications
Internet of Things (IoT) has evolved from a traditional sensor network to an increasingly cloud dependent ecosystem. This transition empowers IoT devices with abundant outsourced computational power. However, securing IoT devices is still a challenging task. The reason is that many IoT devices nowadays perform complicated tasks (e.g., voice assistants or VA) and are connected to different third parties. This research targets popular VA services such as Amazon Alexa and Google Assistant, which are rapidly appifying their platforms to allow a more flexible and diverse voice-controlled service experience.
Unfortunately, third-party skills have been reportedly posing threats to user privacy and security. The goal of this research is to conduct a systematic security analysis for different stages of a VA system, i.e., acoustic channel, speech processing, intent extraction, and application processing. Moreover, based on the analysis, corresponding defense strategies are proposed and evaluated. First, I investigate speech re-use problems in the acoustic channel. I then propose a security overlay named AEOLUS to tackle the speech re-use threat. Second, I study the speech processing stage by evaluating adversarial attacks targeting VA’s speaker recognition systems. I present a novel attention-based audio perturbation scheme to help improve the efficiency and imperceptibility of generating audio adversarial examples. Third, I assess the intent extraction of VA to understand the root cause of semantic misinterpretation. A linguistic-guided fuzzing scheme is then proposed to evaluate the problem systematically in a large scale. Fourth, for VA application (or skill) processing stage, I conduct a user study with Alexa users to learn about how users perceive existing warning messages for voice assistant applications
Dependability Assessment of Android OS
In this brave new world of smartphone-dependent society, dependability is a strong requirement and needs to be addressed properly. Assessing the dependability of these mobile system is still an open issue, and companies should have the tools to improve their devices and beat the competition against other vendors.
The main objective of this dissertation is to provide the methods to assess the dependability of mobile OS, fundamental for further improvements.
Mobile OS are threatened mainly by traditional residual faults (when errors spread across components as failures), aging-related faults (when errors accumulate over time), and misuses by users and applications. This thesis faces these three aspects. First, it presents a qualitative method to define the fault model of a mobile OS, and an exhaustive fault model for Android. I designed and developed AndroFIT, a novel fault injection tool for Android smartphone, and performed an extensive fault injection campaign on three Android devices from different vendors to analyze the impact of component failure on the mobile OS. Second, it presents an experimental methodology to analyze the software aging phenomenon in mobile OS. I performed a software aging analysis campaign on Android devices to identify the impacting factors on performance degradation and resource consumption. Third, it presents the design and implementation of a novel fuzzing tool, namely Chizpurfle, able to automatically test Android vendor customizations by leveraging code coverage information at run-time
Testing of Android testing tools: development of a benchmark for the evaluation
With
the
ever
growing
trend
of
smart
phones
and
tablets,
Android
is
becoming
more
and
more
popular
everyday.
With
more
than
one
billion
active
users
i
to
date,
Android
is
the
leading
technology
in
smart
phone
arena.
In
addition
to
that,
Android
also
runs
on
Android
TV,
Android
smart
watches
and
cars.
Therefore,
in
recent
years,
Android
applications
have
become
one
of
the
major
development
sectors
in
software
industry.
As
of
mid
2013,
the
number
of
published
applications
on
Google
Play
had
exceeded
one
million
and
the
cumulative
number
of
downloads
was
more
than
50
billionii.
A
2013
survey
also
revealed
that
71%
of
the
mobile
application
developers
work
on
developing
Android
applicationsiii.
Considering
this
size
of
Android
applications,
it
is
quite
evident
that
people
rely
on
these
applications
on
a
daily
basis
for
the
completion
of
simple
tasks
like
keeping
track
of
weather
to
rather
complex
tasks
like
managing
one’s
bank
accounts.
Hence,
like
every
other
kind
of
code,
Android
code
also
needs
to
be
verified
in
order
to
work
properly
and
achieve
a
certain
confidence
level.
Because
of
the
gigantic
size
of
the
number
of
applications,
it
becomes
really
hard
to
manually
test
Android
applications
specially
when
it
has
to
be
verified
for
various
versions
of
the
OS
and
also,
various
device
configurations
such
as
different
screen
sizes
and
different
hardware
availability.
Hence,
recently
there
has
been
a
lot
of
work
on
developing
different
testing
methods
for
Android
applications
in
Computer
Science
fraternity.
The
model
of
Android
attracts
researchers
because
of
its
open
source
nature.
It
makes
the
whole
research
model
more
streamlined
when
the
code
for
both,
application
and
the
platform
are
readily
available
to
analyze.
And
hence,
there
has
been
a
great
deal
of
research
in
testing
and
static
analysis
of
Android
applications.
A
great
deal
of
this
research
has
been
focused
on
the
input
test
generation
for
Android
applications.
Hence,
there
are
a
several
testing
tools
available
now,
which
focus
on
automatic
generation
of
test
cases
for
Android
applications.
These
tools
differ
with
one
another
on
the
basis
of
their
strategies
and
heuristics
used
for
this
generation
of
test
cases.
But
there
is
still
very
little
work
done
on
the
comparison
of
these
testing
tools
and
the
strategies
they
use.
Recently,
some
research
work
has
been
carried
outiv
in
this
regard
that
compared
the
performance
of
various
available
tools
with
respect
to
their
respective
code
coverage,
fault
detection,
ability
to
work
on
multiple
platforms
and
their
ease
of
use.
It
was
done,
by
running
these
tools
on
a
total
of
60
real
world
Android
applications.
The
results
of
this
research
showed
that
although
effective,
these
strategies
being
used
by
the
tools,
also
face
limitations
and
hence,
have
room
for
improvement.
The
purpose
of
this
thesis
is
to
extend
this
research
into
a
more
specific
and
attribute-‐
oriented
way.
Attributes
refer
to
the
tasks
that
can
be
completed
using
the
Android
platform.
It
can
be
anything
ranging
from
a
basic
system
call
for
receiving
an
SMS
to
more
complex
tasks
like
sending
the
user
to
another
application
from
the
current
one.
The
idea
is
to
develop
a
benchmark
for
Android
testing
tools,
which
is
based
on
the
performance
related
to
these
attributes.
This
will
allow
the
comparison
of
these
tools
with
respect
to
these
attributes.
For
example,
if
there
is
an
application
that
plays
some
audio
file,
will
the
testing
tool
be
able
to
generate
a
test
input
that
will
warrant
the
execution
of
this
audio
file?
Using
multiple
applications
using
different
attributes,
it
can
be
visualized
that
which
testing
tool
is
more
useful
for
which
kinds
of
attributes.
In
this
thesis,
it
was
decided
that
9
attributes
covering
the
basic
nature
of
tasks,
will
be
targeted
for
the
assessment
of
three
testing
tools.
Later
this
can
be
done
for
much
more
attributes
to
compare
even
more
testing
tools.
The
aim
of
this
work
is
to
show
that
this
approach
is
effective
and
can
be
used
on
a
much
larger
scale.
One
of
the
flagship
features
of
this
work,
which
also
differentiates
it
with
the
previous
work,
is
that
the
applications
used,
are
all
specially
made
for
this
research.
The
reason
for
doing
that
is
to
analyze
just
that
specific
attribute
in
isolation,
which
the
application
is
focused
on,
and
not
allow
the
tool
to
get
bottlenecked
by
something
trivial,
which
is
not
the
main
attribute
under
testing.
This
means
9
applications,
each
focused
on
one
specific
attribute.
The
main
contributions
of
this
thesis
are:
A
summary
of
the
three
existing
testing
tools
and
their
respective
techniques
for
automatic
test
input
generation
of
Android
Applications.
•
A
detailed
study
of
the
usage
of
these
testing
tools
using
the
9
applications
specially
designed
and
developed
for
this
study.
• The
analysis
of
the
obtained
results
of
the
study
carried
out.
And
a
comparison
of
the
performance
of
the
selected
tools
Mining structural and behavioral patterns in smart malware
Mención Internacional en el título de doctorFuncas. Premio Enrique Fuentes Quintana 2016.Smart devices equipped with powerful sensing, computing and networking capabilities
have proliferated lately, ranging from popular smartphones and tablets
to Internet appliances, smart TVs, and others that will soon appear (e.g., watches,
glasses, and clothes). One key feature of such devices is their ability to incorporate
third-party apps from a variety of markets. This poses strong security and privacy issues
to users and infrastructure operators, particularly through software of malicious
(or dubious) nature that can easily get access to the services provided by the device
and collect sensory data and personal information.
Malware in current smart devices—mostly smartphones and tablets—has rocketed
in the last few years, supported by sophisticated techniques (e.g., advanced
obfuscation and targeted infection and activation engines) purposely designed to
overcome security architectures currently in use by such devices. This phenomenon
is known as the proliferation of smart malware. Even though important advances
have been made on malware analysis and detection in traditional personal computers
during the last decades, adopting and adapting those techniques to smart devices
is a challenging problem. For example, power consumption is one major constraint
that makes unaffordable to run traditional detection engines on the device, while
externalized (i.e., cloud-based) techniques raise many privacy concerns.
This Thesis examines the problem of smart malware in such devices, aiming at designing and developing new approaches to assist security analysts and end users in
the analysis of the security nature of apps. We first present a comprehensive analysis
on how malware has evolved over the last years, as well as recent progress made to
analyze and detect malware. Additionally, we compile a suit of the most cutting-edge
open source tools, and we design a versatile and multipurpose research laboratory for
smart malware analysis and detection.
Second, we propose a number of methods and techniques aiming at better analyzing
smart malware in scenarios with a constant and large stream of apps that
require security inspection. More precisely, we introduce Dendroid, an effective system
based on text mining and information retrieval techniques. Dendroid uses static
analysis to measures the similarity between malware samples, which is then used to
automatically classify them into families with remarkably accuracy. Then, we present
Alterdroid, a novel dynamic analysis technique for automatically detecting hidden or
obfuscated malware functionality. Alterdroid introduces the notion of differential fault
analysis for effectively mining obfuscated malware components distributed as parts
of an app package.
Next, we present an evaluation of the power-consumption trade-offs among different
strategies for off-loading, or not, certain security tasks to the cloud. We develop
a system for testing several functional tasks and metering their power consumption
called Meterdroid. Based on the results obtained in this analysis, we then propose a
cloud-based system, called Targetdroid, that addresses the problem of detecting targeted
malware by relying on stochastic models of usage and context events derived
from real user traces. Based on these models, we build an efficient automatic testing
system capable of triggering targeted malware. Finally, based on the conclusions extracted from this Thesis, we propose a number
of open research problems and future directions where there is room for researchLos dispositivos inteligentes se han posicionado en pocos años como aparatos
altamente populares con grandes capacidades de cómputo, comunicación y
sensorización. Entre ellos se encuentran dispositivos como los teléfonos móviles inteligentes
(o smartphones), las televisiones inteligentes, o más recientemente, los
relojes, las gafas y la ropa inteligente. Una característica clave de este tipo de dispositivos
es su capacidad para incorporar aplicaciones de terceros desde una gran
variedad de mercados. Esto plantea fuertes problemas de seguridad y privacidad para
sus usuarios y para los operadores de infraestructuras, sobre todo a través de software
de naturaleza maliciosa (o malware), el cual es capaz de acceder fácilmente a los
servicios proporcionados por el dispositivo y recoger datos sensibles de los sensores
e información personal.
En los últimos años se ha observado un incremento radical del malware atacando
a estos dispositivos inteligentes—principalmente a smartphones—y apoyado por sofisticadas
técnicas diseñadas para vencer los sistemas de seguridad implantados por
los dispositivos. Este fenómeno ha dado pie a la proliferación de malware inteligente.
Algunos ejemplos de estas técnicas inteligentes son el uso de métodos de ofuscación,
de estrategias de infección dirigidas y de motores de activación basados en el contexto.
A pesar de que en las últimos décadas se han realizado avances importantes
en el análisis y la detección de malware en los ordenadores personales, adaptar y
portar estas técnicas a los dispositivos inteligentes es un problema difícil de resolver. En concreto, el consumo de energía es una de las principales limitaciones a las que
están expuestos estos dispositivos. Dicha limitación hace inasequible el uso de motores
tradicionales de detección. Por el contrario, el uso de estrategias de detección
externalizadas (es decir, basadas en la nube) suponen una gran amenaza para la
privacidad de sus usuarios.
Esta tesis analiza el problema del malware inteligente que adolece a estos dispositivos,
con el objetivo de diseñar y desarrollar nuevos enfoques que permitan ayudar a
los analistas de seguridad y los usuarios finales en la tarea de analizar aplicaciones. En
primer lugar, se presenta un análisis exhaustivo sobre la evolución que el malware ha
seguido en los últimos años, así como los avances más recientes enfocados a analizar
apps y detectar malware. Además, integramos y extendemos las herramientas de código
abierto más avanzadas utilizadas por la comunidad, y diseñamos un laboratorio
que permite analizar malware inteligente de forma versátil y polivalente.
En segundo lugar, se proponen una serie de técnicas dirigida a mejorar el análisis
de malware inteligente en escenarios dónde se requiere analizar importantes cantidad
de muestras. En concreto, se propone Dendroid, un sistema basado en minería de
textos que permite analizar conjuntos de apps de forma eficaz. Dendroid hace uso
de análisis estático de código para extraer una medida de la similitud entre distintas
las muestras de malware. Dicha distancia permitirá posteriormente clasificar cada
muestra en su correspondiente familia de malware de forma automática y con gran
precisión. Por otro lado, se propone una técnica de análisis dinámico de código,
llamada Alterdroid, que permite detectar automáticamente funcionalidad oculta y/o
ofuscada. Alterdroid introduce la un nuevo método de análisis basado en la inyección
de fallos y el análisis diferencial del comportamiento asociado. Por último, presentamos una evaluación del consumo energético asociado a diferentes
estrategias de externalización usadas para trasladar a la nube determinadas
tareas de seguridad. Para ello, desarrollamos un sistema llamado Meterdroid que permite
probar distintas funcionalidades y medir su consumo. Basados en los resultados
de este análisis, proponemos un sistema llamado Targetdroid que hace uso de la nube
para abordar el problema de la detección de malware dirigido o especializado. Dicho
sistema hace uso de modelos estocásticos para modelar el comportamiento del usuario
así como el contexto que les rodea. De esta forma, Targetdroid permite, además,
detectar de forma automática malware dirigido por medio de estos modelos.
Para finalizar, a partir de las conclusiones extraídas en esta Tesis, identificamos
una serie de líneas de investigación abiertas y trabajos futuros basados.Programa Oficial de Doctorado en Ciencia y Tecnología InformáticaPresidente: Francisco Javier López Muñoz.- Secretario: Jesús García Herrero.- Vocal: Nadarajah Asoka
- …