scispace - formally typeset
Search or ask a question

Showing papers by "Jacques Klein published in 2012"


Proceedings ArticleDOI
TL;DR: Dexpler as discussed by the authors is a software package which converts Dalvik bytecode to Jimple, which is built on top of Dedexer and Soot, and can be used for point-to or flow analysis.
Abstract: This paper introduces Dexpler, a software package which converts Dalvik bytecode to Jimple. Dexpler is built on top of Dedexer and Soot. As Jimple is Soot's main internal rep- resentation of code, the Dalvik bytecode can be manipu- lated with any Jimple based tool, for instance for performing point-to or flow analysis.

198 citations


Proceedings ArticleDOI
14 Jun 2012
TL;DR: Dexpler, a software package which converts Dalvik bytecode to Jimple, which is built on top of Dedexer and Soot.
Abstract: This paper introduces Dexpler, a software package which converts Dalvik bytecode to Jimple. Dexpler is built on top of Dedexer and Soot. As Jimple is Soot's main internal representation of code, the Dalvik bytecode can be manipulated with any Jimple based tool, for instance for performing point-to or flow analysis.

188 citations


Proceedings ArticleDOI
03 Sep 2012
TL;DR: Using this tool on a dataset of Android applications, it is found that a non negligible part of applications suffers from permission gaps, i.e. does not use all the permissions they declare.
Abstract: In the permission-based security model (used e.g. in Android and Blackberry), applications can be granted more permissions than they actually need, what we call a “permission gap”. Malware can leverage the unused permissions for achieving their malicious goals, for instance using code injection. In this paper, we present an approach to detecting permission gaps using static analysis. Using our tool on a dataset of Android applications, we found out that a non negligible part of applications suffers from permission gaps, i.e. does not use all the permissions they declare.

146 citations


Journal ArticleDOI
TL;DR: This paper reports the experience on applying t-wise techniques for SPL with two independent toolsets developed by the authors, and derives useful insights for pairwise and t- Wise testing of product lines.
Abstract: Software Product Lines (SPL) are difficult to validate due to combinatorics induced by variability, which in turn leads to combinatorial explosion of the number of derivable products. Exhaustive testing in such a large products space is hardly feasible. Hence, one possible option is to test SPLs by generating test configurations that cover all possible t feature interactions (t-wise). It dramatically reduces the number of test products while ensuring reasonable SPL coverage. In this paper, we report our experience on applying t-wise techniques for SPL with two independent toolsets developed by the authors. One focuses on generality and splits the generation problem according to strategies. The other emphasizes providing efficient generation. To evaluate the respective merits of the approaches, measures such as the number of generated test configurations and the similarity between them are provided. By applying these measures, we were able to derive useful insights for pairwise and t-wise testing of product lines.

121 citations


Posted Content
TL;DR: In this article, the authors present an approach to detect permission gaps using static analysis and demonstrate that the static analysis must take into account a significant amount of platform-specific knowledge, and that a non negligible part of applications suffers from permission gaps.
Abstract: A common security architecture, called the permission-based security model (used e.g. in Android and Blackberry), entails intrinsic risks. For instance, applications can be granted more permissions than they actually need, what we call a "permission gap". Malware can leverage the unused permissions for achieving their malicious goals, for instance using code injection. In this paper, we present an approach to detecting permission gaps using static analysis. Our prototype implementation in the context of Android shows that the static analysis must take into account a significant amount of platform-specific knowledge. Using our tool on two datasets of Android applications, we found out that a non negligible part of applications suffers from permission gaps, i.e. does not use all the permissions they declare.

60 citations


Posted Content
TL;DR: A search-based approach capable of generating products for large SPLs, forming a scalable and flexible alternative to current techniques and a prioritization algorithms for any set of products is offered.
Abstract: Software Product Lines (SPLs) are families of products whose commonalities and variability can be captured by Feature Models (FMs). T-wise testing aims at finding errors triggered by all interactions amongst t features, thus reducing drastically the number of products to test. T-wise testing approaches for SPLs are limited to small values of t -- which miss faulty interactions -- or limited by the size of the FM. Furthermore, they neither prioritize the products to test nor provide means to finely control the generation process. This paper offers (a) a search-based approach capable of generating products for large SPLs, forming a scalable and flexible alternative to current techniques and (b) prioritization algorithms for any set of products. Experiments conducted on 124 FMs (including large FMs such as the Linux kernel) demonstrate the feasibility and the practicality of our approach.

34 citations


Posted Content
05 Jun 2012
TL;DR: This paper presents a tool chain to do runtime monitoring by instrumenting the application byte- code and in-vivo, i.e. directly on the smartphone, and implements two use-cases leveraging the tool chain: FineGPolicy, a fine-grained user centric permission policy system and AdRemover an adver- tisement remover, which improve the privacy of Android systems thanks to in- vivo bytecode instrumentation.
Abstract: In this paper we claim that a widely applicable and efficient means to fight against malicious mobile Android applications is: 1) to per- form runtime monitoring 2) by instrumenting the application byte- code and 3) in-vivo, i.e. directly on the smartphone. We present a tool chain to do this and present experimental results showing that this tool chain can run on smartphones in a reasonable amount of time and with a realistic effort. Our findings also identify chal- lenges to be addressed before running powerful runtime monitoring and instrumentations directly on smartphones. We implemented two use-cases leveraging the tool chain: FineGPolicy, a fine-grained user centric permission policy system and AdRemover an adver- tisement remover. Both prototypes improve the privacy of Android systems thanks to in-vivo bytecode instrumentation.

33 citations


Proceedings ArticleDOI
02 Jun 2012
TL;DR: This paper argues to evolve all parts of the loop itself as an adaptive system, leveraging recent advances in model-driven techniques to offer an approach that supports the evolution of both systems and their adaptation capabilities.
Abstract: Modern software systems need to be continuously available under varying conditions. Their ability to dynamically adapt to their execution context is thus increasingly seen as a key to their success. Recently, many approaches were proposed to design and support the execution of Dynamically Adaptive Systems (DAS). However, the ability of a DAS to evolve is limited to the addition, update or removal of adaptation rules or reconfiguration scripts. These artifacts are very specific to the control loop managing such a DAS and runtime evolution of the DAS requirements may affect other parts of the DAS. In this paper, we argue to evolve all parts of the loop. We suggest leveraging recent advances in model-driven techniques to offer an approach that supports the evolution of both systems and their adaptation capabilities. The basic idea is to consider the control loop itself as an adaptive system.

24 citations


Proceedings ArticleDOI
27 Mar 2012
TL;DR: It is argued that building specifications contain cross-cutting concerns and that domain experts should be given the ability to formulate building specifications using a domain-specific aspect language so that the corresponding details can automatically be integrated into the model.
Abstract: In the construction industry an increasing number of buildings are designed using semantically rich three-dimensional models. In parallel, additional information is specified in a natural-language document called a building specification1. As not all details are present in the model these specifications have to be interpreted whenever costs are estimated or other analyses are performed. In this paper, we argue that building specifications contain cross-cutting concerns. We also argue that domain experts should be given the ability to formulate building specifications using a domain-specific aspect language so that the corresponding details can automatically be integrated into the model.The language needs to support a multitude of domain-specific abstractions that are absent in the building metamodel. Therefore we propose to allow the domain experts to extend the language iteratively by defining interpretation patterns [1]. Such a model enriching specification will improve tasks requiring detailed information and will allow for earlier or even concurrent development of the building specification along with the model.

8 citations


01 Jan 2012
TL;DR: This technical report presents the formalisation of the composition operator of GeKo, aGeneric Aspect Models Weaver, a Generic Aspect models Weaver with GeKo as its parameter.
Abstract: This technical report presents the formalisation of the composition operator of GeKo, a Generic Aspect Models Weaver.

7 citations


Posted Content
TL;DR: This paper presents a tool chain to perform runtime monitoring by instrumenting the application bytecode and in-vivo, i.e. directly on the smartphone, and presents experimental results showing that this tool chain can run on smartphones in a reasonable amount of time and with a realistic effort.
Abstract: In this paper we claim that an efficient and readily applicable means to improve privacy of Android applications is: 1) to perform runtime monitoring by instrumenting the application bytecode and 2) in-vivo, i.e. directly on the smartphone. We present a tool chain to do this and present experimental results showing that this tool chain can run on smartphones in a reasonable amount of time and with a realistic effort. Our findings also identify challenges to be addressed before running powerful runtime monitoring and instrumentations directly on smartphones. We implemented two use-cases leveraging the tool chain: BetterPermissions, a fine-grained user centric permission policy system and AdRemover an advertisement remover. Both prototypes improve the privacy of Android systems thanks to in-vivo bytecode instrumentation.


Posted Content
TL;DR: In this article, the authors propose a fault model for adaptation logics that classifies faults into environmental completeness and adaptation correctness, and define the operational semantics of mutation operators at this level.
Abstract: Dynamically Adaptive Systems modify their behav- ior and structure in response to changes in their surrounding environment and according to an adaptation logic. Critical sys- tems increasingly incorporate dynamic adaptation capabilities; examples include disaster relief and space exploration systems. In this paper, we focus on mutation testing of the adaptation logic. We propose a fault model for adaptation logics that classifies faults into environmental completeness and adaptation correct- ness. Since there are several adaptation logic languages relying on the same underlying concepts, the fault model is expressed independently from specific adaptation languages. Taking benefit from model-driven engineering technology, we express these common concepts in a metamodel and define the operational semantics of mutation operators at this level. Mutation is applied on model elements and model transformations are used to propagate these changes to a given adaptation policy in the chosen formalism. Preliminary results on an adaptive web server highlight the difficulty of killing mutants for adaptive systems, and thus the difficulty of generating efficient tests.