TY - GEN
T1 - Formal Certification of Non-interferent Android Bytecode (DEX Bytecode)
AU - Gunadi, Hendra
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2016/1/15
Y1 - 2016/1/15
N2 - The Android operating system is now used in the majority of mobile devices. Each application in Android runs in an instance of the Dalvik virtual machine, which is a register-based virtual machine (VM). Most applications for Android are developed using Java, compiled to Java bytecode and then translated to DEX bytecode using the dx tool in the Android Software Development Kit. In this work, I aim to develop a type-based method for certifying non-interference properties of DEX bytecode, following a methodology that has been developed for Java bytecode certification by Barthe et al. To this end, I develop a formal operational semantics of the Dalvik VM, a type system for DEX bytecode, and prove the soundness of the type system with respect to a notion of non-interference. I then study the translation process from Java bytecode to DEX bytecode, as implemented in the dx tool in the Android SDK. I show that an abstracted version of the translation from Java bytecode to DEX bytecode preserves the non-interference property. More precisely, I show that if the Java bytecode is typable in Barthe et al's type system (which guarantees non-interference) then its translation is typable in our type system. This result opens up the possibility to leverage existing bytecode verifiers for Java to certify non-interference properties of Android bytecode.
AB - The Android operating system is now used in the majority of mobile devices. Each application in Android runs in an instance of the Dalvik virtual machine, which is a register-based virtual machine (VM). Most applications for Android are developed using Java, compiled to Java bytecode and then translated to DEX bytecode using the dx tool in the Android Software Development Kit. In this work, I aim to develop a type-based method for certifying non-interference properties of DEX bytecode, following a methodology that has been developed for Java bytecode certification by Barthe et al. To this end, I develop a formal operational semantics of the Dalvik VM, a type system for DEX bytecode, and prove the soundness of the type system with respect to a notion of non-interference. I then study the translation process from Java bytecode to DEX bytecode, as implemented in the dx tool in the Android SDK. I show that an abstracted version of the translation from Java bytecode to DEX bytecode preserves the non-interference property. More precisely, I show that if the Java bytecode is typable in Barthe et al's type system (which guarantees non-interference) then its translation is typable in our type system. This result opens up the possibility to leverage existing bytecode verifiers for Java to certify non-interference properties of Android bytecode.
KW - Android
KW - Security
KW - Static Analysis
KW - Type System
UR - http://www.scopus.com/inward/record.url?scp=84964902589&partnerID=8YFLogxK
U2 - 10.1109/ICECCS.2015.36
DO - 10.1109/ICECCS.2015.36
M3 - Conference contribution
T3 - Proceedings of the IEEE International Conference on Engineering of Complex Computer Systems, ICECCS
SP - 202
EP - 205
BT - Proceedings - 2015 20th International Conference on Engineering of Complex Computer Systems, ICECCS 2015
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 20th International Conference on Engineering of Complex Computer Systems, ICECCS 2015
Y2 - 9 December 2015 through 11 December 2015
ER -