IP Library › Granted Patent US 11,960,605
Granted Patent B2
US 11,960,605 · App. 17/991,715 · Granted Apr 16, 2024

Dynamic analysis techniques for applications

Inventors: Cong Zheng (San Jose, CA); Wenjun Hu (Santa Clara, CA); Zhi Xu (Cupertino, CA)
Assignee: Palo Alto Networks, Inc.
G06F21/566G06F21/53G06F21/562G06F11/3414G06F2221/033
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 11,960,605
App. No.
17/991,715
Granted
Apr 16, 2024
Kind
B2
Abstract

A sample is analyzed to determine a set of events that should be selected for performing by a dynamic analyzer executing the sample in an instrumented, emulated environment. The set of selected events is performed. In some cases, at least one emulator detection resistance action is performed. A maliciousness verdict is determined for the sample based at least in part on one or more responses taken by the sample in response to the set of selected events being performed by the dynamic analyzer.

Claims (36)

1. A system, comprising:

a processor configured to:

analyze a sample to determine a set of events that should be selected for performing by a dynamic analyzer executing the sample in an instrumented, emulated environment;

interact with the sample at least in part by: performing the set of selected events and performing a set of emulator detection resistance actions, including by hiding at least one emulator feature; and

determine a maliciousness verdict for the sample based at least in part on one or more responses taken by the sample in response to the interaction performed by the dynamic analyzer; and

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

2. The system of claim 1 , wherein the set of emulator detection resistance actions includes returning a random value in response to receiving a system call.

3. The system of claim 1 , wherein the set of emulator detection resistance actions includes modifying a system static constant field.

4. The system of claim 1 , wherein the set of emulator detection resistance actions includes receiving a file open request from the sample, determining that the file is on a list, and redirecting a file handler associated with the file.

5. The system of claim 1 , wherein the set of emulator detection resistance actions includes generating artificial user data.

6. The system of claim 5 , wherein the artificial user data includes artificial contacts.

7. The system of claim 5 , wherein the processor is further configured to detect when the sample attempts to access at least some of the artificial user data and in response log the attempted access.

8. The system of claim 1 , wherein determining the set of events includes evaluating user interface elements of the executing sample.

9. The system of claim 8 , wherein evaluating the user interface elements includes determining which elements are actionable.

10. The system of claim 9 , wherein determining which elements are actionable includes determining which elements have previously been interacted with.

11. The system of claim 8 , wherein performing the set of selected events includes interacting with at least one user interface element.

12. The system of claim 1 , wherein analyzing the sample includes evaluating a manifest file.

13. The system of claim 1 , wherein performing the set of selected events includes simulating a system event.

14. The system of claim 1 , wherein performing the set of selected events includes forcibly launching a component.

15. A method, comprising:

analyzing a sample to determine a set of events that should be selected for performing by a dynamic analyzer executing the sample in an instrumented, emulated environment;

interacting with the sample at least in part by: performing the set of selected events and performing a set of emulator detection resistance actions, including by hiding at least one emulator feature; and

determining a maliciousness verdict for the sample based at least in part on one or more responses taken by the sample in response to the interaction performed by the dynamic analyzer.

16. The method of claim 15 , wherein the set of emulator detection resistance actions includes returning a random value in response to receiving a system call.

17. The method of claim 15 , wherein the set of emulator detection resistance actions includes modifying a system static constant field.

18. The method of claim 15 , wherein the set of emulator detection resistance actions includes receiving a file open request from the sample, determining that the file is on a list, and redirecting a file handler associated with the file.

19. The method of claim 15 , wherein the set of emulator detection resistance actions includes generating artificial user data.

20. The method of claim 19 , wherein the artificial user data includes artificial contacts.

21. The method of claim 19 , further comprising detecting when the sample attempts to access at least some of the artificial user data and in response logging the attempted access.

22. The method of claim 15 , wherein determining the set of events includes evaluating user interface elements of the executing sample.

23. The method of claim 22 , wherein evaluating the user interface elements includes determining which elements are actionable.

24. The method of claim 23 , wherein determining which elements are actionable includes determining which elements have previously been interacted with.

25. The method of claim 22 , wherein performing the set of selected events includes interacting with at least one user interface element.

26. The method of claim 15 , wherein analyzing the sample includes evaluating a manifest file.

27. The method of claim 15 , wherein performing the set of selected events includes simulating a system event.

28. The method of claim 15 , wherein performing the set of selected events includes forcibly launching a component.

Continuity (3)
Continuation 17168007 · Feb 4, 2021
Continuation 16024515 · Jun 29, 2018
Related Publication 20230078962A1 · Mar 16, 2023