journal article·2018-05-12Open access

VMGuards: A Novel Virtual Machine Based Code Protection System with VM Security as the First Class Design Concern

Zhanyong Tang, Meng Li, Guixin Ye, Shuai Cao, Meiling Chen, Xiaoqing Gong, Dingyi Fang, Zheng Wang

Applied Sciences· Volume 8· Issue 5

Abstract

Process-level virtual machine (PVM) based code obfuscation is a viable means for protecting software against runtime code tampering and unauthorized code reverse engineering. PVM-based approaches rely on a VM to determine how instructions of the protected code region are scheduled and executed. Therefore, it is crucial to protect the VM against runtime code tampering that alters the instructions and behavior of the VM. This paper presents VMGuards, a novel PVM-based code protection system that puts the security of VM as the first class design concern. Our approach advances prior work by promoting security of the VM as the first class design constraint. We achieve this by introducing two new instruction sets to protect the internal implementations of critical code segments and the host runtime environment where the VM runs in. Our new instruction sets not only have an identical code structure as standard virtual instructions, but also provide additional information to allow the VM to check whether the critical internal implementation or the runtime environment is affected. We evaluate our approach by using a set of real-life applications. Experimental results show that our approach provides stronger and more fine-grained protection when compared to the state-of-the-art with little extra overhead.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Advanced Malware Detection Techniques · Security and Verification in Computing · Physical Unclonable Functions (PUFs) and Hardware Security

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

School of Information Science and Technology, Northwest University, Xi’an 710127, China

School of Computer Science & Technology, Xi’an University of Posts & Telecommunications, Xi’an 710121, China

School of Computing and Communications, Lancaster University, Lancaster LA1 4YX, UK

References (36)

Show source-provided references
1. (2017, October 15). BSA GLOBAL SOFTWARE SURVEY. Available online: http://globalstudy.bsa.org/2016.
2. Averbuch, A., Kiperberg, M., and Zaidenberg, N.J. (2011, January 6–8). An Efficient vm-based Software Protection. Proceedings of the IEEE 5th International Conference on Network and System Security (NSS), Milan, Italy.10.1109/ICNSS.2011.6059968 ↗
3. Fang, H., Wu, Y., Wang, S., and Huang, Y. (2011). Multi-stage binary code obfuscation using improved virtual machine. Information Security, Springer.10.1007/978-3-642-24861-0_12 ↗
4. Wang, H., Fang, D., Li, G., Yin, X., Zhang, B., and Gu, Y. (2013, January 14–15). NISLVMP: Improved Virtual Machine-Based Software Protection. Proceedings of the IEEE 9th International Conference on Computational Intelligence and Security (CIS), Emei Mountain, Sichuan, China.10.1109/CIS.2013.107 ↗
5. Schrittwieser, S., and Katzenbeisser, S. (2011). Code Obfuscation against Static and Dynamic Reverse Engineering. International Conference on Information Hiding, Springer.10.1007/978-3-642-24178-9_19 ↗
6. Parameterized Decomposition Tree-Based Obfuscation Method with Double Flattening Control Flow
7. A control flow obfuscation scheme based on garbage code
8. Ledoux, C., Sharkey, M., Primeaux, B., and Miles, C. (2012, January 4–6). Instruction Embedding for Improved Obfuscation. Proceedings of the Southeast Regional Conference, St. Louis, MO, USA.10.1145/2184512.2184543 ↗
9. Kim, M.J., Lee, J.Y., Chang, H.Y., Cho, S.J., Park, Y., Park, M., and Wilsey, P.A. (2010, January 5–6). Design and Performance Evaluation of Binary Code Packing for Protecting Embedded Software against Reverse Engineering. Proceedings of the 13th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing (ISORC), Seville, Spain.10.1109/ISORC.2010.23 ↗
10. Banescu, S., Lucaci, C., and Pretschner, A. (2016, January 28). VOT4CS: A Virtualization Obfuscation Tool for C#. Proceedings of the ACM Workshop on Software PROtection, Vienna, Austria.10.1145/2995306.2995312 ↗
11. Aucsmith, D. (1996). Tamper resistant software: An implementation. Information Hiding, Springer.10.1007/3-540-61996-8_49 ↗
12. Shimizu, K., Nusser, S., Plouffe, W., Zbarsky, V., Sakamoto, M., and Murase, M. (2006, January 23–27). Cell Broadband Engine? Processor Security Architecture and Digital Content Protection. Proceedings of the 4th ACM International Workshop on Contents Protection and Security, Santa Barbara, CA, USA.10.1145/1178766.1178771 ↗
13. An overview ofNGSCB10.1049/PBPC006E_ch4 ↗
14. Architectural support for copy and tamper resistant software10.1145/356989.357005 ↗
15. Suh, G.E., Clarke, D., Gassend, B., Van Dijk, M., and Devadas, S. (2003, January 23–26). AEGIS: Architecture for Tamper-Evident and Tamper-Resistant Processing. Proceedings of the 17th Annual International Conference on Supercomputing, San Francisco, CA, USA.
16. Chang, H., and Atallah, M.J. (2001). Protecting software code by guards. Security and Privacy in Digital Rights Management, Springer.10.1007/3-540-47870-1_10 ↗
17. Hiser, J.D., Williams, D., Hu, W., Davidson, J.W., Mars, J., and Childers, B.R. (2007, January 11–14). Evaluating Indirect Branch Handling Mechanisms in Software Dynamic Translation Systems. Proceedings of the IEEE Computer Society International Symposium on Code Generation and Optimization, San Jose, CA, USA.10.1109/CGO.2007.10 ↗
18. Collberg, C., Thomborson, C., and Low, D. (1998, January 19–21). Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs. Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, CA, USA.10.1145/268946.268962 ↗
19. Collberg, C., Thomborson, C., Low, D., and Low, D. (1997). A Taxonomy of Obfuscating Transformations, Department of Computer Sciences, The University of Auckland. Technical Report, Technical Report 148.
20. Linn, C., and Debray, S. (2003, January 27–30). Obfuscation of Executable Code to Improve Resistance to Static Disassembly. Proceedings of the 10th ACM Conference on Computer and Communications Security, Washington, DC, USA.10.1145/948109.948149 ↗
21. SAFE-OPS: An approach to embedded software security10.1145/1053271.1053279 ↗
22. Silver Needle in the Skype
23. Vmprotect Software (2017, December 12). Vmprotect. Available online: http://vmpsoft.com.
24. (2017, December 20). Code Virtualizer. Available online: http://www.oreans.com/codevirtualizer.php.
25. (2017, December 25). Themida. Available online: http://www.oreans.com/themida.php.
26. Anckaert, B., Jakubowski, M., and Venkatesan, R. (November, January 30). Proteus: Virtualization for Diversified Tamper-Resistance. Proceedings of the ACM Workshop on Digital Rights Management, Alexandria, VA, USA.
27. Ghosh, S., Hiser, J., and Davidson, J.W. (2013, January 26). Software protection for dynamically-generated code. Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop, Rome, Italy.10.1145/2430553.2430554 ↗
28. Blietz, B., and Tyagi, A. (2006). Software tamper resistance through dynamic program monitoring. Digital Rights Management. Technologies, Issues, Challenges and Systems, Springer.10.1007/11787952_12 ↗
29. Pioneer: verifying code integrity and enforcing untampered code execution on legacy systems10.1145/1095809.1095812 ↗
30. Zhang, M., and Sekar, R. (2013). Control Flow Integrity for COTS Binaries. Usenix Security, Stony Brook University.
31. Averbuch, A., Kiperberg, M., and Zaidenberg, N.J. (2011, January 6–8). An Efficient VM-based Software Protection. Proceedings of the International Conference on Network and System Security, Milan, Italy.10.1109/ICNSS.2011.6059968 ↗
32. Wang, H., Fang, D., Li, G., An, N., Chen, X., and Gu, Y. (2014, January 25). TDVMP: Improved Virtual Machine-Based Software Protection with Time Diversity. Proceedings of the ACM Sigplan on Program Protection and Reverse Engineering Workshop, San Diego, CA, USA.10.1145/2556464.2556468 ↗
33. Kuang, K., Tang, Z., Gong, X., Fang, D., Chen, X., Xing, T., Ye, G., Zhang, J., and Wang, Z. (2016, January 23–26). Exploiting Dynamic Scheduling for VM-Based Code Obfuscation. Proceedings of the Trustcom/BigDataSE/ISSPA, Tianjin, China.10.1109/TrustCom.2016.0101 ↗
34. Horne, B., Matheson, L., Sheehan, C., and Tarjan, R.E. (2001). Dynamic self-checking techniques for improved tamper resistance. Security and Privacy in Digital Rights Management, Springer.10.1007/3-540-47870-1_9 ↗
35. Chen, Y., Venkatesan, R., Cary, M., Pang, R., Sinha, S., and Jakubowski, M.H. (2002). Oblivious hashing: A stealthy software integrity verification primitive. Information Hiding, Springer.10.1007/3-540-36415-3_26 ↗
36. Zhang, D. (2005). Checking Primitives with Guards. [Ph.D. Thesis, University of Auckland].