Signed manifest for run-time verification of software program identity and integrity
First Claim
Patent Images
1. A method comprising:
- generating with a hardware service processor an integrity check value on a section of a software program loaded from a storage into a memory, in response to a request to execute the section of the software program, the service processor running outside the context of a host operating system that executes the software program, the service processor including processing resources separate from a host processor that executes the host operating system, the service processor inaccessible to the host operating system or programs executed under the host operating system;
reading, with the service processor from the memory, an expected value for the section from an integrity manifest corresponding to the section of the software program that is loaded into memory with the software program, where the integrity manifest includes expected values for multiple different sections of the software program, each expected value including a hash value for all regions that represent the identity of a respective section of the software program;
representing the identity of the section of the software program with the generated integrity check value as a hash value of executable code, static configuration data, and relocation fix-ups for the section of the software program;
comparing the generated integrity check value to the expected value for the section of the software program;
determining that the generated integrity check value and the expected value do not match;
determining that the section of the software program has been modified in response to detecting that the generated integrity check value and the expected value do not match; and
triggering a remedial response when the integrity check value and the expected value do not match, including alerting an administrator over an out-of-band communication link.
1 Assignment
0 Petitions
Accused Products
Abstract
A measurement engine performs active platform observation. A program includes an integrity manifest to indicate an integrity check value for a section of the program'"'"'s source code. The measurement engine computes a comparison value on the program'"'"'s image in memory and determines if the comparison value matches the expected integrity check value. If the values do not match, the program'"'"'s image is determined to be modified, and appropriate remedial action can be triggered. The integrity manifest can include a secure signature to verify the validity of the integrity manifest.
120 Citations
19 Claims
-
1. A method comprising:
-
generating with a hardware service processor an integrity check value on a section of a software program loaded from a storage into a memory, in response to a request to execute the section of the software program, the service processor running outside the context of a host operating system that executes the software program, the service processor including processing resources separate from a host processor that executes the host operating system, the service processor inaccessible to the host operating system or programs executed under the host operating system; reading, with the service processor from the memory, an expected value for the section from an integrity manifest corresponding to the section of the software program that is loaded into memory with the software program, where the integrity manifest includes expected values for multiple different sections of the software program, each expected value including a hash value for all regions that represent the identity of a respective section of the software program; representing the identity of the section of the software program with the generated integrity check value as a hash value of executable code, static configuration data, and relocation fix-ups for the section of the software program; comparing the generated integrity check value to the expected value for the section of the software program; determining that the generated integrity check value and the expected value do not match; determining that the section of the software program has been modified in response to detecting that the generated integrity check value and the expected value do not match; and triggering a remedial response when the integrity check value and the expected value do not match, including alerting an administrator over an out-of-band communication link. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An article comprising a non-transitory computer-readable storage medium having content stored thereon to provide instructions which, when executed, result in a processor performing operations including:
-
generating an integrity check value on a section of a software program loaded from a storage into a memory, in response to a request to execute the section of the software program, the generating performed with a service processor that runs outside the context of a host operating system that executes the software program, the service processor including processing resources separate from a host processor that executes the host operating system, the service processor inaccessible to the host operating system or programs executed under the host operating system; reading an expected value for the section from an integrity manifest corresponding to the section of the software program that is loaded into memory with the software program, where the integrity manifest includes expected values for multiple different sections of the software program, each expected value including a hash value for all regions that represent the identity of a respective section of the software program; representing the identity of the section of the software program with the generated integrity check value as a hash value of executable code, static configuration data, and relocation fix-ups for the section of the software program; comparing the generated integrity check value to the expected value for the section of the software program; determining that the generated integrity check value and the expected value do not match; determining that the section of the software program has been modified in response to detecting that the generated integrity check value and the expected value do not match; and triggering a remedial response when the integrity check value and the expected value do not match, including alerting an administrator over an out-of-band communication link. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a hardware host processor to execute a host operating system and programs under the operating system, including a software program loaded into memory from a storage device; a hardware service processor having processing resources separate from the host processor, the service processor running outside the context of the operating system that executes the software program, the service processor inaccessible to the operating system or programs executed under the operating system, the service processor to generate an integrity check value on a section of the software program in response to a request to execute the section of the software program; read an expected value for the section from an integrity manifest corresponding to the section of the software program, where the integrity manifest includes expected values for multiple different sections of the software program, each expected value including a hash value for all regions that represent the identity of a respective section of the software program; represent the identity of the section of the software program with the generated integrity check value as a hash value of executable code, static configuration data, and relocation fix-ups for the section of the software program; compare the generated integrity check value to the expected value for the section of the software program; determine that the generated integrity check value and the expected value do not match; determine that the section of the software program has been modified in response to determining that the generated integrity check value and the expected value do not match; and trigger a remedial response when the integrity check value and the expected value do not match, including alerting an administrator over an out-of-band communication link. - View Dependent Claims (18, 19)
-
Specification