SymDroid: Symbolic Execution for Dalvik Bytecode

作者: Kristopher K. Micinski , Jinseong Jeon , Jeffrey S. Foster

DOI:

关键词:

摘要: Apps on Google’s Android mobile device platform are written in Java, but compiled to a special bytecode language called Dalvik. In this paper, we introduce SymDroid, symbolic executor that operates directly Dalvik bytecode. SymDroid begins by first translating into μ-Dalvik, simpler has only 16 instructions, contrast Dalvik’s more than 200 instructions. We present formalism for SymDroid’s executor, which can be described with small number of operational semantics rules; may independent interest. addition modeling also contains models some key portions the platform, including libraries and platform’s lifecycle control code. evaluated two ways. First, ran it Compatibility Test Suite, found passed all tests except ones used library or system routines have not yet implemented. On test suite, runs about twice as slow VM, fast Java VM. Second, discover (path) conditions under contacts accessed an app, was able do so successfully. These results suggest while still prototype, is promising step enabling direct, precise analysis apps.

参考文章(26)
Damien Octeau, William Enck, Patrick McDaniel, Swarat Chaudhuri, A study of android application security usenix security symposium. pp. 21- 21 ,(2011)
Kin-Keung Ma, Khoo Yit Phang, Jeffrey S. Foster, Michael Hicks, Directed symbolic execution static analysis symposium. pp. 95- 111 ,(2011) , 10.1007/978-3-642-23702-7_11
David A. Molnar, Michael Y. Levin, Patrice Godefroid, Automated Whitebox Fuzz Testing. network and distributed system security symposium. ,(2008)
Leonardo de Moura, Nikolaj Bjørner, Z3: an efficient SMT solver tools and algorithms for construction and analysis of systems. pp. 337- 340 ,(2008) , 10.1007/978-3-540-78800-3_24
Christopher M. Hayden, Stephen Magill, Michael Hicks, Nate Foster, Jeffrey S. Foster, Specifying and verifying the correctness of dynamic software updates verified software theories tools experiments. pp. 278- 293 ,(2012) , 10.1007/978-3-642-27705-4_22
Shashi Shekhar, Michael Dietz, Anhei Shu, Dan S. Wallach, Yuliy Pisetsky, Quire: lightweight provenance for smart phone operating systems usenix security symposium. pp. 23- 23 ,(2011)
Cristian Cadar, Daniel Dunbar, Dawson Engler, KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs operating systems design and implementation. pp. 209- 224 ,(2008) , 10.5555/1855741.1855756
Alexander Moshchuk, Adrienne Porter Felt, Helen J. Wang, Erika Chin, Steven Hanna, Permission re-delegation: attacks and defenses usenix security symposium. pp. 22- 22 ,(2011)
Elnatan Reisner, Jonathan Turpie, Michael Hicks, Jeffrey S. Foster, MultiOtter: Multiprocess Symbolic Execution ,(2011)
William Enck, Patrick McDaniel, Jaeyeon Jung, Byung-Gon Chun, Peter Gilbert, Anmol N. Sheth, Landon P. Cox, TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones operating systems design and implementation. pp. 393- 407 ,(2010) , 10.5555/1924943.1924971