IP Library › Granted Patent US 9,418,227
Granted Patent B2
US 9,418,227 · App. 14/578,222 · Granted Aug 16, 2016

Detecting malicious software

Inventor: Douglas North Franklin (Atlanta, GA)
Assignee: Palo Alto Networks, Inc.
G06F21/566G06F21/56G06F21/564H04L63/0209H04L63/14H04L63/145H04L63/1416G06F2221/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 9,418,227
App. No.
14/578,222
Granted
Aug 16, 2016
Kind
B2
Abstract

A computer implemented method, apparatus, and program code for detecting malicious software components. A series of calls made by a software component is monitored to identify an identified respective series of call types to components named in said calls. A determination is made as to whether the identified respective series of call types to components named in said calls is indicative of malicious behavior.

Claims (64)

1. A method for detecting a malicious software component, the method comprising:

monitoring a series of calls made by a potentially malicious software component to determine a respective series of call types to a plurality of software components named in the series of calls while executing the potentially malicious software component in an emulated data processing system executed on a first data processing system that emulates hardware and an operating system environment of the first data processing system, the potentially malicious software component making a series of calls specified by the potentially malicious software component to the emulated data processing system;

determining whether the respective series of call types is indicative of a malicious behavior based on a comparison of the respective series of call types to named software components with a set of predetermined call patterns indicative of malicious behavior for the potentially malicious software component, wherein the respective series of call types to named software components include executable files, data files, configuration files, Universal Resource Locators, Universal Resource Names, Universal Resource Identifiers, Active X controls, object linking and embedding (OLE) controls, Java™ programs, applets, or any combination thereof; and

preventing the potentially malicious software component from being executed or stored on a second data processing system in response to determining the respective series of call types to the plurality of software components named in the series of calls is indicative of the malicious behavior based on a policy, wherein the policy includes a set of rules and/or a set of patterns that determines whether the respective series of call types to named software components indicates that the potentially malicious software component is malicious.

2. The method of claim 1 , further comprising:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, recording that the potentially malicious software component is a malicious software component; and

generating a signature from the malicious software component.

3. The method of claim 1 , further comprising:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, recording that the potentially malicious software component is a malicious software component;

generating a signature from the malicious software component; and

storing the signature for in a data store for use by a virus protection system.

4. The method of claim 1 , further comprising:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, recording that the potentially malicious software component is a malicious software component;

generating a signature from the malicious software component; and

sending the signature from the first data processing system to the second data processing system for use by a virus protection system executed on the second data processing system.

5. The method of claim 1 , further comprising:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, recording that the potentially malicious software component is a malicious software component;

generating a signature from the malicious software component; and

sending the signature from the first data processing system to a network device for use by a firewall executed on the network device.

6. The method of claim 1 , further comprising:

receiving the potentially malicious software component for performing malware analysis of the potentially malicious software component using the emulated data processing system executed on the first data processing system.

7. The method of claim 1 , further comprising:

receiving the potentially malicious software component from a network device for performing malware analysis of the potentially malicious software component using the emulated data processing system executed on the first data processing system, wherein the network device executes a firewall.

8. The method of claim 1 , wherein the preventing the potentially malicious software component from being executed or stored on the second data processing system further comprises:

blocking the potentially malicious software component from being communicated to the second data processing system using a network device, wherein the network device executes a firewall.

9. The method of claim 1 , further comprising:

executing the series of calls made by the potentially malicious software component using the emulated data processing system executed on the first data processing system.

10. The method of claim 1 , wherein the determining whether the respective series of call types to named software components is indicative of a malicious behavior further comprises:

determining that a component referenced by one of the calls is a predetermined malware component, wherein the predetermined malware component is an adware engine or a malware engine; and

in response to determining that the component referenced by one of the calls is the predetermined malware component, determining that a type of the one of the calls is indicative of the malicious behavior.

11. The method of claim 1 , wherein at least one pattern in the set of predetermined call patterns comprises two or more call types arranged in a predetermined order for identifying the malicious behavior.

12. The method of claim 1 , wherein the set of predetermined call patterns are retrieved from the policy that determines whether the respective series of call types to the plurality of software components named in the series of calls is indicative of malicious behavior for the potentially malicious software component.

13. The method of claim 1 , wherein a component named in one of the calls in the respective series of call types is from one of a dynamic link library, an executable file, or a Universal Resource Locator.

14. The method of claim 1 , further comprising:

allowing a request to execute or store the potentially malicious software component within the second data processing system in response to determining the respective series of call types to the plurality of software components named in the series of calls is not indicative of the malicious behavior based on the policy.

15. A first system for detecting a malicious software component, comprising:

a processor configured to:

monitor a series of calls made by a potentially malicious software component to determine a respective series of call types to a plurality of software components named in the series of calls while executing the potentially malicious software component in an emulated system executed on the first system, the potentially malicious software component making a series of calls specified by the potentially malicious software component to the emulated system that emulates hardware and an operating system environment of the first system;

determine whether the respective series of call types is indicative of a malicious behavior based on a comparison of the respective series of call types to a plurality of named software components with a set of predetermined call patterns indicative of malicious behavior for the potentially malicious software component, wherein the respective series of call types to named software components include executable files, data files, configuration files, Universal Resource Locators, Universal Resource Names, Universal Resource Identifiers, Active X controls, object linking and embedding (OLE) controls, Java™ programs, applets, or any combination thereof; and

prevent the potentially malicious software component from being executed or stored on a second system in response to determining the respective series of call types to the plurality of software components named in the series of calls is indicative of the malicious behavior based on a policy, wherein the policy includes a set of rules and/or a set of patterns that determines whether the respective series of call types to named software components indicates that the potentially malicious software component is malicious; and

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

16. The system recited in claim 15 , wherein the processor is further configured to:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, record that the potentially malicious software component is a malicious software component; and

generate a signature from the malicious software component.

17. The system recited in claim 15 , wherein the processor is further configured to:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, record that the potentially malicious software component is a malicious software component;

generate a signature from the malicious software component; and

store the signature for in a data store for use by a virus protection system.

18. The system recited in claim 15 , wherein the processor is further configured to:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, record that the potentially malicious software component is a malicious software component;

generate a signature from the malicious software component; and

send the signature from the first system to the second system for use by a virus protection system executed on the second system.

19. The system recited in claim 15 , wherein the processor is further configured to:

responsive to a determination that the respective series of call types to named software components is indicative of the malicious behavior, record that the potentially malicious software component is a malicious software component;

generate a signature from the malicious software component; and

send the signature from the first system to a network device for use by a firewall executed on the network device.

20. The system recited in claim 15 , wherein the processor is further configured to:

receive the potentially malicious software component from a network device for performing malware analysis of the potentially malicious software component using the emulated system executed on the first system; and

block the potentially malicious software component from being communicated to the second system using the network device, wherein the network device executes a firewall.

21. The method of claim 1 , further comprising:

storing a collection of data in a behavior inventory that includes an identification of call types made to named software components selected by a snooper component of the emulated system, wherein each entry in the collection of data identifies a call type and a named software component.

22. The method of claim 1 , further comprising:

storing a collection of data in a behavior inventory that includes an identification of call types made to named software components selected by a snooper component of the emulated system, wherein each entry in the collection of data identifies a call type and a named software component, and wherein each entry in the collection of data is stored in the behavior inventory in an order as identified by the snooper component to form a series of sequential call types to named software components for analysis.

23. The method of claim 1 , wherein the respective series of call types to named software components include Universal Resource Locators, Universal Resource Names, Universal Resource Identifiers, Active X controls, object linking and embedding (OLE) controls, Java™ programs, applets, or any combination thereof.

Continuity (3)
Continuation 13801250 · Mar 13, 2013
Continuation 11969480 · Jan 4, 2008
Related Publication 20150205961A1 · Jul 23, 2015