Memory integrity checking

US2016232379A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016232379-A1
Application numberUS-201315021022-A
CountryUS
Kind codeA1
Filing dateOct 31, 2013
Priority dateOct 31, 2013
Publication dateAug 11, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

According to an example, memory integrity checking may include receiving computer program code, and using a loader to load the computer program code in memory. Memory integrity checking may further include verifying the integrity of the computer program code by selectively implementing synchronous verification and/or asynchronous verification. The synchronous verification may be based on loader security features associated with the loading of the computer program code. Further, the asynchronous verification may be based on a media controller associated with the memory containing the computer program code.

First claim

Opening claim text (preview).

What is claimed is: 1 . A non-transitory computer readable medium having stored thereon machine readable instructions to provide memory integrity checking, the machine readable instructions, when executed, cause at least one processor to: receive computer program code; use a loader to load the computer program code in memory; and verify the integrity of the computer program code by selectively implementing at least one of synchronous verification and asynchronous verification, wherein the synchronous verification is based on loader security features associated with the loading of the computer program code, and the asynchronous verification is based on a media controller associated with the memory containing the computer program code. 2 . The non-transitory computer readable medium of claim 1 , wherein to implement the synchronous verification, the machine readable instructions, when executed, further cause the at least one processor to: compute a hash associated with the computer program code; and use the computed hash to update a hash of memory pages that are associated with the computer program code and are loaded in the memory. 3 . The non-transitory computer readable medium of claim 2 , wherein to implement the synchronous verification, the machine readable instructions, when executed, further cause the at least one processor to: send pairs including the computed hash and associated range for the memory pages to a memory controller; and instruct the memory controller to detect a change in the computed hash related to the associated range for the memory pages. 4 . The non-transitory computer readable medium of claim 1 , wherein to implement the synchronous verification, the machine readable instructions, when executed, further cause the at least one processor to: determine when an operating system (OS) has replaced a safe memory page associated with the computer program code; and in response to a determination that the OS has replaced the safe memory page associated with the computer program code, instruct the media controller to stop checking a memory page range associated with the replaced safe memory page, and to remove a previous hash associated with the replaced safe memory page. 5 . The non-transitory computer readable medium of claim 1 , wherein to implement the asynchronous verification, the machine readable instructions, when executed, further cause the at least one processor to: use the media controller associated with the memory to identify an unauthorized signature associated with the computer program code. 6 . The non-transitory computer readable medium of claim 5 , wherein to use the media controller associated with the memory to identify an unauthorized signature associated with the computer program code, the machine readable instructions, when executed, further cause the at least one processor to: compare a signature associated with the computer program code to an unauthorized signature list. 7 . The non-transitory computer readable medium of claim 5 , wherein to use the media controller associated with the memory to identify an unauthorized signature associated with the computer program code, the machine readable instructions, when executed, further cause the at least one processor to: account for a plurality of interleaved memory chips and non-contiguous memory pages associated with the computer program code. 8 . The non-transitory computer readable medium of claim 7 , wherein to account for a plurality of interleaved memory chips and non-contiguous memory pages associated with the computer program code, the machine readable instructions, when executed, further cause the at least one processor to: use associative hashing to compute independent hashes of the non-contiguous memory pages associated with the computer program code. 9 . The non-transitory computer readable medium of claim 1 , wherein to implement the asynchronous verification, the machine readable instructions, when executed, further cause the at least one processor to: use the asynchronous verification for kernel integrity protection by: determine a plurality of authorized kernel function pointers; use the authorized kernel function pointers to generate an authorized list of values that the authorized kernel function pointers point to; send the authorized list of values to the media controller; and use the media controller to determine that contents of memory address of pointers for a kernel contain a value matching the authorized list of values. 10 . A memory integrity checking apparatus comprising: a loader to receive and load computer program code to memory, the loader including security features to implement synchronous verification to evaluate the integrity of the computer program code to be stored in the memory; and a media controller corresponding to a memory controller, the media controller included in the memory to address a memory page, the media controller further implementing asynchronous verification to evaluate the integrity of the computer program code when stored in the memory. 11 . The memory integrity checking apparatus of claim 10 , wherein the media controller includes a plurality of active media controllers that are associated with a plurality of active memory controllers. 12 . The memory integrity checking apparatus of claim 10 , wherein the media controller further implements the asynchronous verification by: receiving, at the media controller, information related to locations of a range of addresses related to the computer program code to be stored in the memory, from an operating system (OS). 13 . A method for memory integrity checking, the method comprising: receiving computer program code; using a loader to load the computer program code in memory; and verifying the integrity of the computer program code by selectively implementing at least one of synchronous verification and asynchronous verification, wherein the synchronous verification is based on loader security features associated with the loader, and the asynchronous verification is based on a media controller associated with the memory. 14 . The method of claim 13 , wherein implementing the synchronous verification further comprises: evaluating a signature associated with the computer program code. 15 . The method of claim 13 , wherein implementing the synchronous verification further comprises: computing a hash associated with the computer program code; and comparing the hash to an authorized signature list.

Assignees

Inventors

Classifications

  • G06F21/52Primary

    during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow} · CPC title

  • to a system of files or objects, e.g. local or distributed file system or database · CPC title

  • Security improvement · CPC title

  • by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights (G06F12/1458 takes precedence) · CPC title

  • G06F21/64Primary

    Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016232379A1 cover?
According to an example, memory integrity checking may include receiving computer program code, and using a loader to load the computer program code in memory. Memory integrity checking may further include verifying the integrity of the computer program code by selectively implementing synchronous verification and/or asynchronous verification. The synchronous verification may be based on loader…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F21/52. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 11 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).