IP Library Granted Patent US 7,904,278
Granted Patent B2
US 7,904,278 · App. 11/743,284 · Granted Mar 8, 2011

Methods and system for program execution integrity measurement

Assignee: The Johns Hopkins University
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 7,904,278
App. No.
11/743,284
Granted
Mar 8, 2011
Kind
B2
Abstract

The present disclosure is directed towards methods and systems and methods for measuring the integrity of an operating system's execution and ensuring that the system's code is performing its intended functionality. This includes examining the integrity of the code that the operating system is executing as well as the data that the operating system accesses. Integrity violations can be detected in the dynamic portions of the code being executed.

Claims (19)

1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method for measuring and verifying the integrity of a running computer program, the method comprising the step of examining the integrity of the running computer program's execution state comprising the steps of:

measuring the integrity of the running computer program's code during runtime;

measuring the integrity of the running computer program's data comprising a plurality of data objects accessed by the computer program during runtime, the measuring the integrity of the running computer program's data step comprising the steps of:

identifying the plurality of data objects using a plurality of attributes relevant to the running computer program's integrity to produce a baseline of the plurality of data objects from a stored image of the running computer program;

measuring an image of the running computer program in a memory without modifying the running computer program to produce a measurement manifest comprising the steps of:

inspecting the identified plurality of data objects;

generating an abstract of an object graph for each data object; and

using the abstracts of the object graphs to produce the measurement manifest; and

comparing the baseline and the measurement manifest to verify the integrity of the running computer program's data; and

inserting a trigger in the running computer program whose integrity has been measured to independently measure and verify the integrity of a new module before the new module is loaded into the memory.

2. The method of claim 1 , further comprising the steps of:

computing the security relevant attributes of the new module based on a stored image and the new module's target location in memory; and

entering the computed attributes in a baseline and adding the static objects of the new module to a list of items being measured.

3. The method according to claim 1 , further comprising the step of producing a baseline for the new module comprising the step of:

computing a hash of a text of the new module in the memory from the stored image of the new module and the location in the memory where the new module is being loaded.

4. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code instructing a microprocessor to implement a method for measuring and verifying the integrity of a computer program and modules being loaded from a stored location into a memory comprising the steps of:

calculating an image of the computer program in the memory using an image of the computer program in the stored location, the relevant runtime information and knowledge of how the computer program will be loaded into the memory;

comparing, using the microprocessor, an image of the computer program in the memory with the calculated image of the computer program in the memory; and

using the comparison to verify the integrity of the computer program in the memory.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2018
From: JOHNS HOPKINS UNIVERSITY
To: UNITED STATES GOVERNMENT, AS REPRESENTED BY THE NATIONAL SECURITY AGENCY
Reel/Frame 046713/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2007
From: WILSON, PERRY W.; PENDERGRASS, J. AARON; MCDONELL, C. DURWARD; HEINE, DAVID J.; LEWIS, BESSIE
To: JOHNS HOPKINS UNIVERSITY
Reel/Frame 019905/0465 →
CONFIRMATORY LICENSE Recorded Sep 14, 2007
From: JOHN HOPKINS UNIVERISTY APPLIED PHYSICS LABORATORY
To: NATIONAL SECURITY AGENCY
Reel/Frame 019882/0891 →
GOVERNMENT INTEREST ASSIGNMENT Recorded Sep 13, 2007
From: LOSCOCCO, PETER A.
To: NATIONAL SECURITY AGENCY
Reel/Frame 019882/0586 →
Continuity (2)
Provisional Application 60796694 · May 2, 2006
Related Publication 20080015808A1 · Jan 17, 2008