Certificate Enhanced Data-Flow Analysis

08/03/2018
by   Mohamed Nassim Seghir, et al.
0

Proof-carrying-code was proposed as a solution to ensure a trust relationship between two parties: a (heavyweight) analyzer and a (lightweight) checker. The analyzer verifies the conformance of a given application to a specified property and generates a certificate attesting the validity of the analysis result. It suffices then for the checker just to test the consistency of the proof instead of constructing it. We set out to study the applicability of this technique in the context of data- flow analysis. In particular, we want to know if there is a significant performance difference between the analyzer and the checker. Therefore, we developed a tool, called DCert, implementing an inter-procedural context and flow-sensitive data-flow analyzer and checker for Android. Applying our tool to real-world large applications, we found out that checking can be up to 8 times faster than verification. This important gain in time suggests a potential for equipping applications on app stores with certificates that can be checked on mobile devices which are limited in computation and storage resources. We describe our implementation and report on experimental results.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/03/2018

DCert: Find the Leak in Your Pocket

Static data-flow analysis has proven its effectiveness in assessing secu...
research
08/03/2018

Data-Flow Guided Slicing

We propose a flow-insensitive analysis that prunes out portions of code ...
research
05/30/2017

A Sound Flow-Sensitive Heap Abstraction for the Static Analysis of Android Applications

The present paper proposes the first static analysis for Android applica...
research
05/23/2020

When Program Analysis Meets Bytecode Search: Targeted and Efficient Inter-procedural Analysis of Modern Android Apps in BackDroid

Widely-used Android static program analysis tools, e.g., Amandroid and F...
research
08/11/2022

Correlating Effectiveness of Pointer Analysis Techniques with Patterns in Embedded System Code

A pointer analysis maps the pointers in a program to the memory location...
research
03/10/2017

PACO: A System-Level Abstraction for On-Loading Contextual Data to Mobile Devices

Spatiotemporal context is crucial in modern mobile applications that uti...
research
08/26/2017

Fast and Precise Type Checking for JavaScript

In this paper we present the design and implementation of Flow, a fast a...

Please sign up or login with your details

Forgot password? Click here to reset