IP Library Granted Patent US 10,713,357
Granted Patent B2
US 10,713,357 · App. 15/898,237 · Granted Jul 14, 2020

Detecting lateral movement using a hypervisor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,713,357
App. No.
15/898,237
Granted
Jul 14, 2020
Kind
B2
Abstract

The subject matter described herein provides protection against zero-day attacks by detecting, via a hypervisor maintaining an extended page table, an attempt to execute arbitrary code associated with malware in a guest operation system (OS) running within a virtual machine (VM). Further, the subject matter provides detection of lateral movement of the malware. The hypervisor uses hidden breakpoints to detect a request for thread creation, and then determines whether the request is to download and execute arbitrary code.

Claims (37)

1. A system for hypervisor detection of attempted arbitrary code execution in zero-day exploits, said system comprising:

at least one physical processor; and

at least one memory comprising computer program code, the at least one memory and the computer program code configured to, with the at least one physical processor, cause the physical processor to at least:

detect, by a hypervisor via a hidden breakpoint, a request from a current process in a guest operating system (OS) to create a thread, the request including a process identifier (ID) for the thread;

in response to detecting the request, determine whether a process ID for the current process is different from the process ID for the thread and different from a process ID for a parent process of the thread; and

upon determining that the process ID for the current process is different from the process ID for the thread and different from the process ID for the parent process of the thread:

obtain a thread context for the thread and a process context for the current process, the thread context identifying an entry point for the thread, the process context identifying a set of modules associated with the current process; and

upon the entry point being outside an address space of the identified set of modules or associated with a function that loads other code, classify the request as attempted lateral movement associated with malware.

2. The system of claim 1 , wherein the computer program code is configured to set the hidden breakpoint on a pre-defined function used by the current process to create the thread.

3. The system of claim 1 , wherein the computer program code is configured to set the hidden breakpoint on any function used by the current process to set the thread context.

4. The system of claim 1 , wherein the computer program code is configured to determine that the entry point is within a stack, and classify the request as attempted lateral movement associated with malware.

5. The system of claim 1 , wherein the computer program code is configured to notify a security system monitor to quarantine the guest OS or quarantine a virtual machine that runs the guest OS after classifying the request as attempted lateral movement associated with malware.

6. The system of claim 1 , wherein the computer program code is configured to determine whether the entry point is within one of the identified set of modules by checking whether the entry point is in a legitimate code region associated with the identified set of modules.

7. The system of claim 1 , wherein the computer program code is further configured to create the thread.

8. A method for hypervisor detection of attempted arbitrary code execution in zero-day exploits, said method comprising:

detecting, by a hypervisor via a hidden breakpoint, a request from a current process in a guest operating system (OS) to create a thread, the request including a process identifier (ID) for the thread;

in response to detecting the request, determining whether a process ID for the current process is different from the process ID for the thread and different from a process ID for a parent process of the thread; and

upon determining that the process ID for the current process is different from the process ID for the thread and different from the process ID for the parent process of the thread:

obtaining a thread context for the thread and a process context for the current process, the thread context identifying an entry point for the thread, the process context identifying a set of modules associated with the current process; and

upon the entry point being outside an address space of the identified set of modules or associated with a function that loads other code, classifying the request as attempted lateral movement associated with malware.

9. The method of claim 8 , further comprising setting the hidden breakpoint on a pre-defined function used by the current process to create the thread.

10. The method of claim 8 , further comprising setting the hidden breakpoint on any function used by the current process to set the thread context.

11. The method of claim 8 , further comprising determining that the entry point is within a stack, and classifying the request as attempted lateral movement associated with malware.

12. The method of claim 8 , further comprising notifying a security system monitor to quarantine the guest OS or quarantine a virtual machine that runs the guest OS after classifying the request as attempted lateral movement associated with malware.

13. The method of claim 8 , further comprising determining whether the entry point is outside the identified set of modules by checking whether the entry point is in a legitimate code region associated with the identified set of modules.

14. The method of claim 8 , further comprising creating the thread.

15. One or more non-transitory computer storage media having computer-executable instructions that, upon execution by a processor, cause the processor to at least perform operations comprising:

detecting, by a hypervisor via a hidden breakpoint, a request from a current process in a guest operating system (OS) to create a thread, the request including a process identifier (ID) for the thread;

in response to detecting the request, determining whether a process ID for the current process is different from the process ID for the thread and different from a process ID for a parent process of the thread; and

upon determining that the process ID for the current process is different from the process ID for the thread and different from the process ID for the parent process of the thread:

obtaining a thread context for the thread and a process context for the current process, the thread context identifying an entry point for the thread, the process context identifying a set of modules associated with the current process; and

upon the entry point being outside an address space of the identified set of modules or associated with a function that loads other code, classifying the request as attempted lateral movement associated with malware.

16. The one or more non-transitory computer storage media of claim 15 , wherein the operations include setting the hidden breakpoint on a pre-defined function used by the current process to create the thread.

17. The one or more non-transitory computer storage media of claim 15 , wherein the operations include setting the hidden breakpoint on any function used by the current process to set the thread context.

18. The one or more non-transitory computer storage media of claim 15 , wherein the operations include determining that the entry point is within a stack, and classifying the request as attempted lateral movement associated with malware.

19. The one or more non-transitory computer storage media of claim 15 , wherein the operations further include notifying a security system monitor to quarantine the guest OS or a quarantine virtual machine that runs the guest OS after classifying the request as attempted lateral movement associated with malware.

20. The one or more non-transitory computer storage media of claim 15 , wherein the operations include determining whether the entry point is within one of the identified set of modules by checking whether the entry point is in a legitimate code region associated with the identified set of modules.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2018
From: DABAK, PRASAD
To: NICIRA, INC.
Reel/Frame 044951/0126 →