IP Library Granted Patent US 8,806,640
Granted Patent B2
US 8,806,640 · App. 13/278,814 · Granted Aug 12, 2014

Program execution integrity verification for a computer system

Inventor: Xinyuan Wang (Clifton, VA)
Assignee: George Mason Intellectual Properties, Inc.
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,806,640
App. No.
13/278,814
Granted
Aug 12, 2014
Kind
B2
Abstract

A computer system may be employed to verify program execution integrity by receiving a request to launch a program that has been instrumented to include at least one integrity marker, instantiating the program with an integrity marker value, and verifying the execution integrity of the program based on the integrity marker value and information received from the program during execution. A computer system may also be employed for program instrumentation by modifying the program to include at least one instruction for passing an integrity marker value to an operating system kernel during execution of the instruction.

Claims (31)

1. A method of verifying program execution integrity employing a computer system including at least one processor configured to execute an operating system kernel, the method comprising:

the computer system receiving a request to launch a program that has been instrumented to include at least one integrity marker that is independent of other portions of the program;

the computer system using the kernel, and not a compiler outside of the kernel, to instantiate the program with a unique and dynamically generated integrity marker value; and

the computer system verifying the execution integrity of the program based on the unique and dynamically generated integrity marker value and information received from the program during execution.

2. The method of claim 1 , further comprising the computer system generating the integrity marker value for the program at run-time in response to the request.

3. The method of claim 2 , wherein the generating of the integrity marker value comprises generating a random or pseudorandom number to uniquely identify an instance of the program execution.

4. The method of claim 1 , wherein the instantiating of the program comprises:

the computer system creating a process or thread for the program;

the computer system assigning the unique and dynamically generated integrity marker value to the process or thread; and

the computer system providing the integrity marker value to the process or thread in a run-time environment.

5. The method of claim 1 , further comprising the computer system extracting the received information from a system call executed by the program.

6. The method of claim 1 , wherein the verifying comprises checking the information received from the program execution for an integrity marker value that matches the integrity marker value with which the program was instantiated.

7. The method of claim 1 , further comprising the computer system monitoring subsequent malicious activity of the program when the verifying fails.

8. The method of claim 1 , wherein the program is declared to be compromised by malware only after at least one integrity marker value is received from the program that does not match the unique and dynamically generated integrity marker value with which the program was instantiated.

9. The method of claim 1 , wherein the verifying comprises checking the information received from the program execution for an integrity marker value that matches a further processed value of the integrity marker value with which the program was instantiated.

10. The method of claim 1 , wherein using the kernel to instantiate the program with an integrity marker value comprises assigning a new integrity marker value each time the program is instantiated.

11. The method of claim 1 , wherein the program comprises a system call.

12. An apparatus for verifying program execution integrity, the apparatus comprising:

at least one processor configured to:

execute an operating system kernel,

receive a request to launch a program that has been instrumented to include at least one integrity marker that is independent of other portions of the program,

use the kernel, and not a compiler outside of the kernel, to instantiate the program with a unique and dynamically generated integrity marker value, and

verify the execution integrity of the program based on the integrity marker value and information received from the program during execution; and

at least one non-transitory storage medium coupled to the at least one processor and configured to store the program.

13. The apparatus of claim 12 , wherein the instantiating of the program comprises:

creating a process or thread for the program;

assigning the unique and dynamically generated integrity marker value to the process or thread; and

providing the integrity marker value to the process or thread via a run-time environment.

14. The apparatus of claim 12 , wherein the verifying comprises checking the information received from the program execution for an integrity marker value that matches a further processed value of the integrity marker value with which the program was instantiated.

15. The apparatus of claim 12 , wherein the processor is configured to use the kernel to instantiate the program with an integrity marker value by assigning a new integrity marker value each time the program is instantiated.

16. The apparatus of claim 12 , wherein the program comprises a system call.

Assignments (5)
CHANGE OF NAME Recorded Oct 9, 2015
From: GEORGE MASON INTELLECTUAL PROPERTIES, INC.
To: GEORGE MASON RESEARCH FOUNDATION, INC.
Reel/Frame 036828/0838 →
CONFIRMATORY LICENSE Recorded Aug 9, 2013
From: GEORGE MASON UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 030995/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2013
From: GEORGE MASON UNIVERSITY
To: GEORGE MASON INTELLECTUAL PROPERTIES, INC.
Reel/Frame 030816/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2013
From: WANG, XINYUAN; GEORGE MASON UNIVERSITY
To: GEORGE MASON UNIVERSITY
Reel/Frame 030820/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2012
From: WANG, XINYUAN
To: GEORGE MASON UNIVERSITY
Reel/Frame 027818/0067 →
Continuity (2)
Provisional Application 61405663 · Oct 22, 2010
Related Publication 20120159630A1 · Jun 21, 2012