IP Library › Granted Patent US 10,255,434
Granted Patent B2
US 10,255,434 · App. 15/057,336 · Granted Apr 9, 2019

Detecting software attacks on processes in computing devices

Inventors: Sudha Anil Kumar Gathala (Tracy, CA); Rajarshi Gupta (Sunnyvale, CA); Nayeem Islam (Palo Alto, CA)
Assignee: QUALCOMM Incorporated
G06F21/554G06F21/52G06F21/552G06F21/566
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,255,434
App. No.
15/057,336
Granted
Apr 9, 2019
Kind
B2
Abstract

Various embodiments include methods for detecting software attacks on a process executing on a computing device. Various embodiment methods may include monitoring structural attributes of a plurality of virtual memory regions utilized by the process, and comparing the monitored structural attributes to the expected structural attributes of the plurality of VMRs. Various embodiment methods may further include determining whether the monitored structural attributes represent anomalous behavior of the process based on the comparison between the monitored structural attributes and the expected structural attributes.

Claims (87)

1. A method for detecting software attacks on a process executing on a computing device, comprising:

monitoring, via a processor in the computing device, structural attributes of a plurality of virtual memory regions utilized by the process, wherein the monitored structural attributes include how many virtual memory regions are utilized by the process;

generating a vector data-structure that includes a series of numbers, wherein each number signifies a partial or complete representation of data collected via the monitoring;

comparing, via the processor, the monitored structural attributes to expected structural attributes of the plurality of virtual memory regions by applying the generated vector data-structure to a classifier model; and

determining, via the processor, whether the monitored structural attributes represent anomalous behavior of the process based on a result of applying the generated vector data- structure to the classifier model.

2. The method of claim 1 , further comprising:

initiating a protective action in response to determining that the monitored structural attributes represent anomalous behavior.

3. The method of claim 1 , wherein monitoring the structural attributes of the plurality of virtual memory regions utilized by the process further comprises:

monitoring changes to access permissions of the plurality of virtual memory regions; or

monitoring a state transition history of the plurality of virtual memory regions.

4. The method of claim 1 , wherein monitoring the structural attributes of the plurality of virtual memory regions utilized by the process comprises:

storing information about a current virtual memory region in which the process is executing;

receiving new information about an instruction currently being executed by the process;

determining whether there has been a transition from the current virtual memory region based on the received new information; and

logging the transition from the current virtual memory region to a new virtual memory region in response to determining that there has been the transition from the current virtual memory region.

5. The method of claim 4 , wherein receiving the new information about the instruction currently being executed by the process comprises receiving a program counter value and a process identifier.

6. The method of claim 1 , wherein monitoring the structural attributes of the plurality of virtual memory regions utilized by the process comprises:

storing information about a current virtual memory region in which the process is executing;

implementing one or more virtual memory region tracking strategies on the plurality of virtual memory regions;

determining whether there has been a transition from the current virtual memory region based on the one or more virtual memory region tracking strategies; and

logging the transition from the current virtual memory region to a new virtual memory region in response to determining that there has been the transition from the current virtual memory region.

7. The method of claim 6 , wherein implementing the one or more virtual memory region tracking strategies on the plurality of virtual memory regions comprises implementing selective tracking, periodic tracking, opportunistic tracking, or page fault based tracking on the plurality of virtual memory regions.

8. The method of claim 1 , wherein comparing the monitored structural attributes to the expected structural attributes of the plurality of virtual memory regions comprises applying a set of rules to the monitored structural attributes, wherein the set of rules are based on the expected structural attributes of the plurality of virtual memory regions.

9. The method of claim 1 , wherein comparing the monitored structural attributes to the expected structural attributes of the plurality of virtual memory regions comprises:

modeling the expected structural attributes of the plurality of virtual memory regions to generate a model; and

comparing the monitored structural attributes to the model.

10. A computing device, comprising:

a memory comprising a plurality of virtual memory regions; and

a processor coupled to the memory and configured with processor-executable instructions to:

monitor structural attributes of the plurality of virtual memory regions utilized by a process executing on the computing device, wherein the monitored structural attributes include how many virtual memory regions are utilized by the process;

generating a vector data-structure that includes a series of numbers, wherein each number signifies a partial or complete representation of data collected via the monitoring;

compare the monitored structural attributes to expected structural attributes of the plurality of virtual memory regions by applying the generated vector data-structure to a classifier model; and

determine whether the monitored structural attributes represent anomalous behavior of the process based on a result of applying the generated vector data-structure to the classifier model.

11. The computing device of claim 10 , wherein the processor is further configured with processor-executable instructions to:

initiate a protective action in response to determining that the monitored structural attributes represent anomalous behavior.

12. The computing device of claim 10 , wherein the processor is further configured with processor-executable instructions such that monitoring the structural attributes of the plurality of virtual memory regions utilized by the process is performed by:

monitoring changes to access permissions of the plurality of virtual memory regions; or

monitoring a state transition history of the plurality of virtual memory regions.

13. The computing device of claim 10 , wherein the processor is further configured with processor-executable instructions to monitor the structural attributes of the plurality of virtual memory regions utilized by the process by:

storing information about a current virtual memory region in which the process is executing;

receiving new information about an instruction currently being executed by the process;

determining whether there has been a transition from the current virtual memory region based on the received new information; and

logging the transition from the current virtual memory region to a new virtual memory region in response to determining that there has been the transition from the current virtual memory region.

14. The computing device of claim 13 , wherein the processor is configured with processor-executable instructions to perform operations such that receiving the new information about the instruction currently being executed by the process comprises receiving a program counter value and a process identifier.

15. The computing device of claim 10 , wherein the processor is further configured with processor-executable instructions to perform operations such that monitoring the structural attributes of the plurality of virtual memory regions utilized by the process comprises:

storing information about a current virtual memory region in which the process is executing;

implementing one or more virtual memory region tracking strategies on the plurality of virtual memory regions;

determining whether there has been a transition from the current virtual memory region based on the one or more virtual memory region tracking strategies; and

logging the transition from the current virtual memory region to a new virtual memory region in response to determining that there has been the transition from the current virtual memory region.

16. The computing device of claim 15 , wherein the processor is configured with processor-executable instructions to perform operations such that implementing the one or more virtual memory region tracking strategies on the plurality of virtual memory regions comprises implementing selective tracking, periodic tracking, opportunistic tracking, or page fault based tracking on the plurality of virtual memory regions.

17. The computing device of claim 10 , wherein the processor is further configured with processor-executable instructions such that comparing the monitored structural attributes to the expected structural attributes of the plurality of virtual memory regions comprises:

applying a set of rules to the monitored structural attributes, wherein the set of rules are based on the expected structural attributes of the plurality of virtual memory regions.

18. The computing device of claim 10 , wherein the processor is further configured with processor-executable instructions such that comparing the monitored structural attributes to the expected structural attributes of the plurality of virtual memory regions comprises:

modeling the expected structural attributes of the plurality of virtual memory regions to generate a model; and

comparing the monitored structural attributes to the model.

19. A non-transitory computer readable storage medium having stored thereon processor-executable software instructions configured to cause a processor of a computing device to perform operations comprising:

monitoring structural attributes of a plurality of virtual memory regions utilized by a process executing on the computing device, wherein the monitored structural attributes include how many virtual memory regions are utilized by the process;

generating a vector data-structure that includes a series of numbers, wherein each number signifies a partial or complete representation of data collected via the monitoring;

comparing the monitored structural attributes to expected structural attributes of the plurality of virtual memory regions by applying the generated vector data-structure to a classifier model; and

determining whether the monitored structural attributes represent anomalous behavior of the process based on a result of applying the generated vector data-structure to the classifier model.

20. The non-transitory computer readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations further comprising:

initiating a protective action in response to determining that the monitored structural attributes represent anomalous behavior.

21. The non-transitory computer readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that monitoring the structural attributes of the plurality of virtual memory regions utilized by the process further comprises:

monitoring changes to access permissions of the plurality of virtual memory regions; or

monitoring a state transition history of the plurality of virtual memory regions.

22. The non-transitory computer readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that monitoring the structural attributes of the plurality of virtual memory regions utilized by the process comprises:

storing information about a current virtual memory region in which the process is executing;

receiving new information about an instruction currently being executed by the process;

determining whether there has been a transition from the current virtual memory region based on the received new information; and

logging the transition from the current virtual memory region to a new virtual memory region in response to determining that there has been the transition from the current virtual memory region.

23. The non-transitory computer readable storage medium of claim 22 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that receiving the new information about the instruction currently being executed by the process comprises receiving a program counter value and a process identifier.

24. The non-transitory computer readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that monitoring the structural attributes of the plurality of virtual memory regions utilized by the process comprises:

storing information about a current virtual memory region in which the process is executing;

implementing one or more virtual memory region tracking strategies on the plurality of virtual memory regions;

determining whether there has been a transition from the current virtual memory region based on the one or more virtual memory region tracking strategies; and

logging the transition from the current virtual memory region to a new virtual memory region in response to determining that there has been the transition from the current virtual memory region.

25. The non-transitory computer readable storage medium of claim 24 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that implementing the one or more virtual memory region tracking strategies on the plurality of virtual memory regions comprises implementing selective tracking, periodic tracking, opportunistic tracking, or page fault based tracking on the plurality of virtual memory regions.

26. The non-transitory computer readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that comparing the monitored structural attributes to the expected structural attributes of the plurality of virtual memory regions comprises:

applying a set of rules to the monitored structural attributes, wherein the set of rules are based on the expected structural attributes of the plurality of virtual memory regions.

27. The non-transitory computer readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that comparing the monitored structural attributes to the expected structural attributes of the plurality of virtual memory regions comprises:

modeling the expected structural attributes of the plurality of virtual memory regions to generate a model; and

comparing the monitored structural attributes to the model.

28. A computing device, comprising:

means for monitoring structural attributes of a plurality of virtual memory regions utilized by a process executing on the computing device, wherein the monitored structural attributes include how many virtual memory regions are utilized by the process;

means for generating a vector data-structure that includes a series of numbers, wherein each number signifies a partial or complete representation of data collected via the monitoring;

means for comparing the monitored structural attributes to expected structural attributes of the plurality of virtual memory regions comprising means for applying the generated vector data-structure to a classifier model; and

means for determining whether the monitored structural attributes represent anomalous behavior of the process based on a result of applying the generated vector data-structure to the classifier model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2016
From: GATHALA, SUDHA ANIL KUMAR; GUPTA, RAJARSHI; ISLAM, NAYEEM
To: QUALCOMM INCORPORATED
Reel/Frame 038282/0684 →
Continuity (2)
Provisional Application 62219970 · Sep 17, 2015
Related Publication 20170083702A1 · Mar 23, 2017