IP Library Granted Patent US 10,565,377
Granted Patent B1
US 10,565,377 · App. 15/387,593 · Granted Feb 18, 2020

Context-based analysis of applications

Inventors: Cong Zheng (Fremont, CA); Zhi Xu (Fremont, CA)
Assignee: Palo Alto Networks, Inc.
G06F21/563H04L63/0254H04L63/168
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,565,377
App. No.
15/387,593
Granted
Feb 18, 2020
Kind
B1
Abstract

Evaluating samples is disclosed. A sample is received. A determination is made that the sample includes at least one sensitive code segment. A set of paths that include execution of the code segment is determined based at least in part using static analysis. A verdict for the sample is determined based at least in part on the set of paths.

Claims (32)

1. A system, comprising: a processor configured to:

receive a sample;

determine, based at least in part by performing static analysis on the sample, a set of function call paths that include execution of a sensitive code segment comprising the sample;

build a system component dependency graph; and

assign a maliciousness verdict to the sample at least in part by using the system component dependency graph to evaluate the set of function call paths, including by determining whether, for each function call path included in the set of function call paths, the sensitive code segment is called in response to a human interaction;

wherein, for at least one function call path included in the set of function call paths, the sensitive code segment is not called in response to a human interaction; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 wherein the maliciousness verdict assigned to the sample is “benign” when the set of function call paths is empty.

3. The system of claim 1 wherein the maliciousness verdict for the sample is that the sample is benign.

4. The system of claim 1 wherein the maliciousness verdict for the sample is that the sample is malicious.

5. The system of claim 1 wherein the maliciousness verdict for the sample is that the sample is suspicious.

6. The system of claim 1 wherein the processor is further configured to assign the maliciousness verdict at least in part by determining a dependency relation between a system event and a system component.

7. The system of claim 1 wherein the processor is further configured to assign the maliciousness verdict at least in part by determining a dependency relation between a set of system components.

8. The system of claim 1 wherein the processor is further configured to assign the maliciousness verdict at least in part by determining a dependency relation between a system component and an indirect call.

9. The system of claim 1 wherein the processor is further configured to perform dynamic analysis on the sample.

10. The system of claim 9 wherein the dynamic analysis to be performed is selected at least in part based on the set of function call paths.

11. A computer implemented method by at least one hardware processor, the method comprising: receiving a sample;

determining by the at least one hardware processor, based at least in part by performing static analysis on the sample, a set of function call paths that include execution of a sensitive code segment; building a system component dependency graph; and

assigning a maliciousness verdict to the sample at least in part by using the system component dependency graph to evaluate the set of function call paths, including by determining whether, for each function call path included in the set of function call paths, the sensitive code segment is called in response to a human interaction; wherein, for at least one function call path included in the set of function call paths, the sensitive code segment is not called in response to a human interaction.

12. The method of claim 11 wherein the maliciousness verdict assigned to the sample is “benign” when the set of function call paths is empty.

13. The method of claim 11 wherein the maliciousness verdict for the sample is that the sample is benign.

14. The method of claim 11 wherein the maliciousness verdict for the sample is that the sample is malicious.

15. The method of claim 11 wherein the maliciousness verdict for the sample is that the sample is suspicious.

16. The method of claim 11 further comprising assigning the maliciousness verdict at least in part by determining a dependency relation between a system event and a system component.

17. The method of claim 11 further comprising assigning the maliciousness verdict at least in part by determining a dependency relation between a set of system components.

18. The method of claim 11 further comprising assigning the maliciousness verdict at least in part by determining a dependency relation between a system component and an indirect call.

19. The method of claim 11 further comprising performing dynamic analysis on the sample.

20. The method of claim 19 wherein the dynamic analysis to be performed is selected at least in part based on the set of function call paths.

21. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a sample;

determining, based at least in part by performing static analysis on the sample, a set of function call paths that include execution of a sensitive code segment; building a system component dependency graph; and

assigning a maliciousness verdict to the sample at least in part by using the system component dependency graph to evaluate the set of function call paths, including by determining whether, for each function call path included in the set of function call paths, the sensitive code segment is called in response to a human interaction; wherein, for at least one function call path included in the set of function call paths, the sensitive code segment is not called in response to a human interaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2017
From: ZHENG, CONG; XU, ZHI
To: PALO ALTO NETWORKS, INC.
Reel/Frame 041640/0271 →
Cited By (7)
US 12,200,013 US 12,259,983 US 12,632,554 US 12,675,289 US 12,682,062 US 12,724,895 US 12,730,902