Multi-aspect, robust, and memory exclusive guest os fingerprinting

Yufei Gu, Yangchun Fu, Aravind Prakash, Zhiqiang Lin, Heng Yin

Research output: Contribution to journalArticlepeer-review

15 Scopus citations


Precise fingerprinting of an operating system (OS) is critical to many security and forensics applications in the cloud, such as virtual machine (VM) introspection, penetration testing, guest OS administration, kernel dump analysis, and memory forensics. The existing OS fingerprinting techniques primarily inspect network packets or CPU states, and they all fall short in precision and usability. As the physical memory of a VM always exists in all these applications, in this article, we present OS-Sommelier+, a multi-aspect, memory exclusive approach for precise and robust guest OS fingerprinting in the cloud. It works as follows: given a physical memory dump of a guest OS, OS-Sommelier+ first uses a code hash based approach from kernel code aspect to determine the guest OS version. If code hash approach fails, OS-Sommelier+ then uses a kernel data signature based approach from kernel data aspect to determine the version. We have implemented a prototype system, and tested it with a number of Linux kernels. Our evaluation results show that the code hash approach is faster but can only fingerprint the known kernels, and data signature approach complements the code signature approach and can fingerprint even unknown kernels.

Original languageEnglish (US)
Article number6853383
Pages (from-to)380-394
Number of pages15
JournalIEEE Transactions on Cloud Computing
Issue number4
StatePublished - Oct 1 2014


  • Operating system fingerprinting
  • memory forensics
  • virtual machine introspection

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Hardware and Architecture
  • Computer Science Applications
  • Computer Networks and Communications


Dive into the research topics of 'Multi-aspect, robust, and memory exclusive guest os fingerprinting'. Together they form a unique fingerprint.

Cite this