1
FlowDroid
Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware T aint Analysis for Android Apps
From Dalvik Bytecode Analysis to Leak Detection in Android - - PowerPoint PPT Presentation
FlowDroid Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware T aint Analysis for Android Apps From Dalvik Bytecode Analysis to Leak Detection in Android Applications Alexandre Bartel, Eric Bodden, Steven Artz, Siegfried
1
Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware T aint Analysis for Android Apps
2
3
4
5
6
7
8
9
10
11
12
13
l
l Total of 135,289,314 methods
14
l Unresolved reference l Jump to code in array l Multiple types for a single variable
Bartel, A., Klein, J., Le Traon, Y., & Monperrus, M. (2012, June). Dexpler: converting android dalvik bytecode to jimple for static analysis with
15
16
l Dynamic Approaches: l TaintDroid [OSDI’10], l Aurasium [USENIX’12], l “Dr. Android and Mr. Hide“[SPSM’12], l etc. l Static Approaches: l ScanDroid [TR 09], l DeD [SEC’11], l CHEX [CCS’12], l LeakMiner [WCSE’12], l ScanDal [Most’12], l AndroidLeaks [TRUST’12], l SAAF [SAC’13], l FlowDroid [PLDI’14], l etc.
17
18
19
20
21
22
Rasthofer, Siegfried, Steven Arzt, and Eric Bodden. "A machine-learning approach for classifying and categorizing android sources and sinks." 2014 Network and Distributed System Security Symposium (NDSS). 2014.
23
24
25
publ i c cl ass M ai n { publ i c stati c voi d m ai n(Stri ng[] args) { … } }
26
27
i = 0; l 1: i f ( i = = 0) got
9; / / Ski p t he act i vi t y Act i vi t y1 act 1 = new com . ext . Act i vi t y1( ) ; act 1.
eat e( … ) ; act 1.
ar t ; l 2: act .
) ; … act 1.
… ) ; l 1: i f ( i = = 1) got
2; act 1.
) ; act 1.
r
) ; i f ( i = = 2) got
1; / / Run act i vi t y agai n
28
29
30
31
32
33
34
35
And what about aliasing?
36
(in: Fundamental Approaches to Software Engineering)
37
voi d main() { voi d foo(z) {
return;
38
voi d main() {
return;
39
40
41
Precision Recall 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 AppScan Source Fortify FlowDroid
42
43
Arzt, S., Rasthofer, S., Fritz, C., Bodden, E., Bartel, A., Klein, J., ... & McDaniel, P. (2014, June). Flowdroid: Precise context, flow, field, object- sensitive and lifecycle-aware taint analysis for android apps. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (p. 29). ACM.
44
45