IP Library Granted Patent US 8,549,635
Granted Patent B2
US 8,549,635 · App. 13/436,964 · Granted Oct 1, 2013

Malware detection using external call characteristics

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 8,549,635
App. No.
13/436,964
Granted
Oct 1, 2013
Kind
B2
Abstract

A malware scanner 2 , for malware such as computer viruses, worms, Trojans and the like, utilizes the external call characteristics associated with known items of malware to identify the presence of malware within a computer file. Malware written in a high level language when compiled can take a variety of different forms as object code, but these different object code forms will usually share external call characteristics to a sufficient degree to allow the presence of such external call characteristics to properly and accurately generically identify different compiled variants of the source code malware.

Claims (42)

1. A computer program product embodied on a non-transitory tangible computer readable medium and configured to:

search a computer program for external call instructions;

compare the external call instructions within the computer program with at least one predetermined external call instruction characteristic corresponding to known malware, wherein the at least one predetermined external call characteristic comprises relative position information specifying relative positions of at least one external call instruction with respect to another external call instruction within the computer program; and

identify the computer program as containing malware if the external call instructions within the computer program match the at least one predetermined external call instruction characteristic corresponding to known malware; and

perform at least one action if the computer program is identified as containing malware.

2. The computer program product of claim 1 , wherein the at least one predetermined external call instruction characteristic comprises predetermined sets characterizing external calls, and wherein at least one of the predetermined sets characterizing external calls includes at least one wildcard external call marker that provides a match to any external call within a particular range within the computer program.

3. The computer program product of claim 2 , wherein at least one of the predetermined sets characterizing external calls includes at least one parameterized characterizing external call associated with a characterizing parameter value, the parameterized characterizing external call matching with an external call within the computer program if the characterizing parameter value also matches a corresponding parameter value associated with the external call within the computer program.

4. The computer program product of claim 3 , wherein the characterizing parameter value has associated relative position information specifying a relative position to the parameterized characterizing external call within which a matching parameter value must be found.

5. The computer program product of claim 1 , wherein performing the at least one action includes at least one of deleting one or more files associated with known malware, quarantining one or more files associated with known malware, denying access to one or more files associated with known malware, and generating an alert message.

6. The computer program product of claim 1 , wherein the search includes searching for all external calls within the computer program.

7. The computer program product of claim 1 , wherein the computer program product is further configured to analyze the computer program to determine identifying characteristics of external calls prior to the searching.

8. The computer program product of claim 7 , wherein the analysis includes one or more of:

analyzing link information associated with the computer program; and

analyzing a location of the computer program within a file to identify a boundary between the computer program and a joined run-time library.

9. The computer program product of claim 1 , wherein the malware is one or more of:

a computer virus;

a worm; and

a Trojan.

10. The computer program product of claim 1 , wherein the external call instructions that are subject to the comparison comprise at least one of a call to an operating system, a call to a dynamic link library associated with the computer program, and a call to a run-time library joined with the computer program.

11. A method of detecting a computer program containing malware, comprising:

searching the computer program for external call instructions;

comparing the external call instructions within the computer program with at least one predetermined external call instruction characteristic corresponding to known malware, wherein the at least one predetermined external call characteristic comprises relative position information specifying relative positions of at least one external call instruction with respect to another external call instruction within the computer program; and

identifying the computer program as containing malware if the external call instructions within the computer program match the at least one predetermined external call instruction characteristic corresponding to known malware; and

performing at least one action if the computer program is identified as containing malware.

12. The method of claim 11 , wherein the at least one predetermined external call instruction characteristic comprises predetermined sets characterizing external calls, and wherein at least one of the predetermined sets characterizing external calls includes at least one wildcard external call marker that provides a match to any external call within a particular range within the computer program.

13. The method of claim 12 , wherein at least one of the predetermined sets characterizing external calls includes at least one parameterized characterizing external call associated with a characterizing parameter value, the parameterized characterizing external call matching with an external call within the computer program if the characterizing parameter value also matches a corresponding parameter value associated with the external call within the computer program.

14. The method of claim 13 , wherein the characterizing parameter value has associated relative position information specifying a relative position to the parameterized characterizing external call within which a matching parameter value must be found.

15. The method of claim 11 , wherein performing the at least one action includes at least one of deleting one or more files associated with known malware, quarantining one or more files associated with known malware, denying access to one or more files associated with known malware, and generating an alert message.

16. The method of claim 11 , wherein the searching the computer program includes searching for all external calls within the computer program.

17. The method of claim 11 , further comprising analyzing the computer program to determine identifying characteristics of external calls prior to the searching.

18. The method of claim 17 , wherein the analyzing includes one or more of:

analyzing link information associated with the computer program; and

analyzing a location of the computer program within a file to identify a boundary between the computer program and a joined run-time library.

19. The method of claim 11 , wherein the malware is one or more of a computer virus, a worm, and a Trojan.

20. The method of claim 11 , wherein the external call instructions that are subject to the comparison comprise at least one of a call to an operating system, a call to a dynamic link library associated with the computer program, and a call to a run-time library joined with the computer program.

21. An apparatus for detecting a computer program containing malware, comprising:

a processor; and

a memory, the apparatus configured to:

search the computer program for external call instructions;

compare the external call instructions within the computer program with at least one predetermined external call instruction characteristic corresponding to known malware, wherein the at least one predetermined external call characteristic comprises relative position information specifying relative positions of at least one external call instruction with respect to another external call instruction within the computer program; and

identify the computer program as containing malware if the external call instructions within the computer program match the at least one predetermined external call instruction characteristic corresponding to known malware; and

perform at least one action if the computer program is identified as containing malware.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →