IP Library Granted Patent US 8,640,243
Granted Patent B2
US 8,640,243 · App. 13/427,089 · Granted Jan 28, 2014

Detecting malicious computer code in an executing program module

Inventor: Philip D. Kaufman (Omaha, NE)
Assignee: International Business Machines Corporation
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,640,243
App. No.
13/427,089
Granted
Jan 28, 2014
Kind
B2
Abstract

A computer program includes one or more computer program instructions, each computer program instruction being of one or more instruction types. Prior to execution of the computer program instructions, the computer determines respective counts for the instruction type(s) of the computer program instructions. At a time during execution of the computer program instructions, the computer determines respective counts for the instruction type(s) of the computer program instructions. The computer, in response to determining that the count for one of the instruction types determined prior to execution differs a predetermined amount from the count for the same instruction type determined during execution, makes a record that the computer program has an indicia of maliciousness.

Claims (33)

1. A method to determine if a computer program in a memory of a computer is malicious, the computer program including a plurality of different types of computer program instructions, the method comprising the steps of:

associating a threshold value with each of the instruction types, each threshold value determined at least based on a likelihood that the associated instruction type will be present in malicious code, an instruction type having a higher likelihood of being present in malicious code having a lower associated threshold value than an instruction type having a lower likelihood of being present in malicious code;

prior to execution of the computer program in the computer, the computer counting the computer program instructions of each of the types;

at a time during execution of the computer program in the computer, the computer counting the computer program instructions of each of the types; and

the computer determining that the count of the computer program instructions of one of the types determined prior to execution of the computer program differs by at least the associated threshold value from the count of the computer program instructions of the one type determined at the time during execution of the computer program, and in response, the computer making a record that the computer program has an indicia of maliciousness.

2. A method in accordance with claim 1 , wherein the step of making a record further comprises:

the computer determining that the count of the computer program instructions of two or more of the types determined prior to execution of the computer program differs by at least respective associated threshold values from the count of the computer program instructions of the one or more types determined at the time during execution of the computer program, and in response, the computer making a record that the computer program has an indicia of maliciousness.

3. A method in accordance with claim 1 , wherein the step of the computer counting the program instructions of each of the types at a time during execution of the computer program is performed at two or more times during execution of the computer program.

4. A method in accordance with claim 1 , wherein the step of the computer counting the program instructions of each of the types at a time during the execution of the computer program is performed by a program routine that is called upon the execution of a computer program instruction of the type operating system interrupt generating program instruction.

5. A method in accordance with claim 4 , further comprising the step of inserting a program instruction into the computer program, the inserted program instruction of the type operating system interrupt generating program instruction.

6. A method in accordance with claim 1 wherein the associated threshold value is zero.

7. A method in accordance with claim 1 wherein the associated threshold value is an integer greater than zero.

8. A method in accordance with claim 1 , further comprising the step of the computer terminating or suspending execution of the computer program in response to determining that the count of the computer program instructions of one of the types determined prior to execution of the computer program differs by at least the instruction type's associated threshold value from the count of the computer program instructions of the one type determined at the time during execution of the computer program.

9. A computer program product to determine if a computer program in a memory of a computer is malicious, the computer program including a plurality of different types of computer program instructions, the computer program product comprising:

one or more computer-readable storage devices and program code stored on at least one of the one or more storage devices, the program code comprising:

program code to associate a threshold value with each of the instruction types, each threshold value determined at least based on a likelihood that the associated instruction type will be present in malicious code, an instruction type having a higher likelihood of being present in malicious code having a lower associated threshold value than an instruction type having a lower likelihood of being present in malicious code;

program code to count the computer program instruction of each of the types prior to execution of the computer program in the computer;

program code to count the computer program instruction of each of the types at a time during execution of the computer program in the computer; and

program code to determine that the count of the computer program instructions of one of the types determined prior to execution of the computer program differs by at least the associated threshold value from the count of the computer program instructions of the one type determined at the time during execution of the computer program, and in response, to make a record that the computer program has an indicia of maliciousness.

10. A computer program product in accordance with claim 9 , wherein the program code to make a record further comprises:

program code to determine that the count of the computer program instructions of two or more of the types determined prior to execution of the computer program differs by at least respective associated threshold values from the count of the computer program instructions of the one or more types determined at the time during execution of the computer program, and in response, the computer making a record that the computer program has an indicia of maliciousness.

11. A computer program product in accordance with claim 9 , wherein the program code to to count the computer program instruction of each of the types at a time during execution of the computer program are performed at two or more times during execution of the computer program instructions.

12. A computer program product in accordance with claim 9 , wherein the program code to count the computer program instruction of each of the types at a time during execution are performed by program code that is called upon the execution of a computer program instruction of the type operating system interrupt generating program instruction.

13. A computer program product in accordance with claim 12 , further comprising program code to cause the computer to insert a program instruction into the computer program, the inserted program instruction of the type operating system interrupt generating program instruction.

14. A computer program product in accordance with claim 9 wherein the associated threshold value is zero.

15. A computer program product in accordance with claim 9 wherein the associated threshold value is an integer greater than zero.

16. A computer program product in accordance with claim 9 , further comprising program code to terminate or suspend execution of the computer program in response to determining that the count of the computer program instructions of one of the types determined prior to execution of the computer program differs by at least the instruction type's associated threshold value from the count of the computer program instructions of the one type determined at the time during execution of the computer program.

17. A computer system to determine if a computer program in a memory of a computer is malicious, the computer program including a plurality of computer program instructions, each computer program instruction being of one or more instruction types, the computer program product comprising:

one or more processors, one or more computer-readable memories, one or more computer-readable storage devices, and program instructions stored on at least one of the one or more computer-readable storage devices for execution by at least one of the one or more processors, the program instructions comprising:

program code to associate a threshold value with each of the instruction types, each threshold value determined at least based on a likelihood that the associated instruction type will be present in malicious code, an instruction type having a higher likelihood of being present in malicious code having a lower associated threshold value than an instruction type having a lower likelihood of being present in malicious code;

program code to count the computer program instruction of each of the types prior to execution of the computer program in the computer;

program code to count the computer program instruction of each of the types at a time during execution of the computer program in the computer; and

program code to determine that the count of the computer program instructions of one of the types determined prior to execution differs by at least the associated threshold value from the count of the computer program instructions of the one type determined at the time during execution of the computer program, and in response, to make a record that the computer program has an indicia of maliciousness.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2012
From: KAUFMAN, PHILIP D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027909/0941 →
Continuity (1)
Related Publication 20130254892A1 · Sep 26, 2013