skip to main content
research-article

Handling Anti-Virtual Machine Techniques in Malicious Software

Published:06 December 2017Publication History
Skip Abstract Section

Abstract

Malware analysis relies heavily on the use of virtual machines (VMs) for functionality and safety. There are subtle differences in operation between virtual and physical machines. Contemporary malware checks for these differences and changes its behavior when it detects a VM presence. These anti-VM techniques hinder malware analysis. Existing research approaches to uncover differences between VMs and physical machines use randomized testing, and thus cannot guarantee completeness.

In this article, we propose a detect-and-hide approach, which systematically addresses anti-VM techniques in malware. First, we propose cardinal pill testing—a modification of red pill testing that aims to enumerate the differences between a given VM and a physical machine through carefully designed tests. Cardinal pill testing finds five times more pills by running 15 times fewer tests than red pill testing. We examine the causes of pills and find that, while the majority of them stem from the failure of VMs to follow CPU specifications, a small number stem from under-specification of certain instructions by the Intel manual. This leads to divergent implementations in different CPU and VM architectures. Cardinal pill testing successfully enumerates the differences that stem from the first cause. Finally, we propose VM Cloak—a WinDbg plug-in which hides the presence of VMs from malware. VM Cloak monitors each execute malware command, detects potential pills, and at runtime modifies the command’s outcomes to match those that a physical machine would generate. We implemented VM Cloak and verified that it successfully hides VM presence from malware.

References

  1. 0xEBFE. 2013. Fooled by Andromeda. Retrieved from http://0xebfe.net/blog/2013/03/30/fooled-by-andromeda/.Google ScholarGoogle Scholar
  2. R. Bajcsy, T. Benzel, M. Bishop, R. Braden, C. E. Brodley, S. Fahmy, S. Floyd, W. Hardaker, A. D. Joseph, G. Kesidis, K. N. Levitt, R. Lindell, P. Liu, D. Miller, R. Mundy, C. Neuman, R. Ostrenga, V. Paxson, P. A. Porras, C. Rosenberg, D. J. Tygar, S. Sastry, D. F. Sterne, and S. F. Wu. 2004. Cyber defense technology networking and evaluation. Commun. ACM 47, 3 (2004), 58--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Davide Balzarotti, Marco Cova, Cristoph Karlberger, Christopher Kruegel, Engin Kirda, and Giovanni Vigna. 2010. Efficient detection of split personalities in malware. In Networking and Distributed Systems Symposium (NDSS). ACM, 20--26.Google ScholarGoogle Scholar
  4. Paul Barford and Mike Blodgett. 2007. Toward botnet mesocosms. In HotBots. USENIX, Berkeley, CA,1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ulrich Bayer, Christopher Kruegel, and Engin Kirda. 2006. TTAnalyze: A tool for analyzing malware. In 14th Annual EICAR Conference.Google ScholarGoogle Scholar
  6. Fabrice Bellard. 2005. QEMU, A fast and portable dynamic translator. In USENIX Annual Technical Conference (ATC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Rodrigo Rubira Branco, Gabriel Negreira Barbosa, and Pedro Drimel Neto. 2012. Scientific but not academical overview of malware anti-debugging, anti-disassembly and anti-vm technologies. In Black Hat.Google ScholarGoogle Scholar
  8. Xu Chen, Jon Andersen, Z.Morley Mao, Michael Bailey, and Jose Nazario. 2008. Towards an understanding of anti-virtualization and anti-debugging behavior in modern malware. In DSN.Google ScholarGoogle Scholar
  9. Artem Dinaburg, Paul Royal, Monirul Sharif, and Wenke Lee. 2008. Ether: Malware analysis via hardware virtualization extensions. In Computer and Communications Security. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Peter Ferrie. 2006. Attacks on virtual machine emulators. Symantec Security Response (2006). Retrieved from https://www.symantec.com/avcenter/reference/Virtual_Machine_Threats.pdf.Google ScholarGoogle Scholar
  11. Peter Ferrie. 2008. Anti-Unpacker Tricks. Retrieved from http://vpn23.homelinux.org/Anti-Unpackers.pdf.Google ScholarGoogle Scholar
  12. ISC Tech Georgia. 2017. Open Malware. Retrieved from http://oc.gtisc.gatech.edu/.Google ScholarGoogle Scholar
  13. Hex-Rays. 2016. IDA: multi-processor Disassembler and Debugger. Retrieved from https://www.hex-rays.com/products/ida/.Google ScholarGoogle Scholar
  14. Intel. 2016. Intel 64 and IA-32 Architectures Software Developers Manuals. Retrieved from http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html.Google ScholarGoogle Scholar
  15. John P. John, Alexander Moshchuk, Steven D. Gribble, and Arvind Krishnamurthy. 2009. Studying spamming botnets using botlab. In Networked Systems Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Min Gyung Kang, Heng Yin, Steve Hanna, Stephen McCamant, and Dawn Song. 2009. Emulating emulation-resistant malware. In VMSec. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Dhilung Kirat, Giovanni Vigna, and Christopher Kruegel. 2011. BareBox: Efficient malware analysis on bare-metal. In Annual Computer Security Applications Conference. 403--412. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Dhilung Kirat, Giovanni Vigna, and Christopher Kruegel. 2014. BareCloud: Bare-metal analysis-based evasive malware detection. In USENIX Security. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Christian Kreibich, Nicholas Weaver, Chris Kanich, Weldong Cui, and Vern Paxson. 2011. GQ: Practical containment for measuring modern malware systems. In Internet Measurement Conference (IMC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Kevin P. Lawton. 1996. Bochs: A portable PC emulator for unix/X. Linux Journal 29es (1996), 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Martina Lindorfer, Clemens Kolbitsch, and Paolo Milani Comparetti. 2011. Detecting environment-sensitive malware. In Research in Attacks, Intrusions and Defenses.Google ScholarGoogle Scholar
  22. Lorenzo Martignoni, Stephen McCamant, Pongsin Poosankam, Dawn Song, and Petros Maniatis. 2012. Path-exploration lifting: Hi-fi tests for lo-fi emulators. In ASPLOS. 337--348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Lorenzo Martignoni, Roberto Paleari, Giampaolo Fresi Roglia, and Danilo Bruschi. 2009. Testing CPU emulators. In International Symposium on Software Testing and Analysis. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Lorenzo Martignoni, Roberto Paleari, Giampaolo Fresi Roglia, and Danilo Bruschi. 2010. Testing system virtual machines. In International Symposium on Software Testing and Analysis. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Najmeh Miramirkhani, Mahathi Priya Appini, Nick Nikiforakis, and Michalis Polychronakis. 2017. Spotless sandboxes: Evading malware analysis systems using wear-and-tear artifacts. In IEEE Symposium on Security and Privacy.Google ScholarGoogle ScholarCross RefCross Ref
  26. Zhenyu Ning and Fengwei Zhang. 2017. Ninja: Towards transparent tracing and debugging on ARM. In 26th USENIX Security Symposium (USENIX Security 17).Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Gábor Pék, Boldizsár Bencsáth, and Levente Buttyán. 2011. nEther: In-guest detection of out-of-the-guest malware analyzers. In EuroSec. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Hao Shi, Abdulla Alwabel, and Jelena Mirkovic. 2014. Cardinal pill testing of system virtual machines. In USENIX Security 14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Hao Shi and Jelena Mirkovic. 2017. Hiding debuggers from malware with apate. In ACM Symposium on Applied Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Michael Sikorski and Andrew Honig. 2012. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. No Starch Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Chengyu Song, Paul Royal, and Wenke Lee. 2012. Impeding automated malware analysis with environment-sensitive malware. In HotSec. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Dawn Song, David Brumley, Heng Yin, Juan Caballero, Ivan Jager, Min Gyung Kang, Zhenkai Liang, James Newsome, Pongsin Poosankam, and Prateek Saxena. 2008. BitBlaze: A new approach to computer security via binary analysis. In ICISS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Chad Spensky, Hongyi Hu, and Kevin Leach. 2016. LO-PHI: Low-observable physical host instrumentation for malware analysis. In Network and Distributed System Security Symposium.Google ScholarGoogle ScholarCross RefCross Ref
  34. Ming-Kung Sun, Mao-Jie Lin, Michael Chang, Chi-Sung Laih, and Hui-Tang Lin. 2011. Malware virtualization-resistant behavior detection. In ICPADS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Basis Technology. 2016. The Sleuth Kit. Retrieved from http://www.sleuthkit.org/.Google ScholarGoogle Scholar
  36. Virus Total. 2017. VirusTotal Web Site. Retrieved from https://www.virustotal.com/en/.Google ScholarGoogle Scholar
  37. Amit Vasudevan and Ramesh Yerraballi. 2005. Stealth breakpoints. In ACSAC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. A. Vasudevan and R. Yerraballi. 2006. Cobra: Fine-grained malware analysis using stealth localized-executions. In Security and Privacy. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Lok-Kwong Yan, Manjukumar Jayachandra, Mu Zhang, and Heng Yin. 2012. V2E: Combining hardware virtualization and software emulation for transparent and extensible malware analysis. In Virtual Execution Environments Conference (VEE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Oleh Yuschuk. 2013. OllyDbg. Retrieved from http://www.ollydbg.de.Google ScholarGoogle Scholar
  41. Fengwei Zhang, Kevin Leach, Angelos Stavrou, Haining Wang, and Kun Sun. 2015. Using hardware features for increased debugging transparency. In Security and Privacy Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Handling Anti-Virtual Machine Techniques in Malicious Software

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Privacy and Security
        ACM Transactions on Privacy and Security  Volume 21, Issue 1
        February 2018
        148 pages
        ISSN:2471-2566
        EISSN:2471-2574
        DOI:10.1145/3171591
        Issue’s Table of Contents

        Copyright © 2017 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 6 December 2017
        • Accepted: 1 September 2017
        • Revised: 1 June 2017
        • Received: 1 September 2016
        Published in tops Volume 21, Issue 1

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader