Back to results
US 9,177,147 B2Granted
Protection against return oriented programming attacks
AssigneeIntel Corporation
InventorStephen A. Fischer
Life of this patent
Estimating the term…
Abstract
In one embodiment, a processor includes at least one execution unit. The processor also includes a Return Oriented Programming (ROP) logic coupled to the at least one execution unit. The ROP logic may validate a return pointer stored on a call stack based on a secret ROP value. The secret ROP value may only be accessible by the operating system.
Claims24
A processor comprising:
- at least one execution unit;
- a Return Oriented Programming (ROP) logic comprising at least one hardware circuit and coupled to the at least one execution unit, the ROP logic to:
- pop a return pointer and a check value off a call stack;
- determine whether the check value was generated from a secret ROP value, wherein the secret ROP value is only accessible to an operating system, the secret ROP value to be generated at a beginning of a session and stored in a secure location, the secret ROP value corresponding to a salt value and to be generated based on a ROP security level;
- and
- in response to determining that the check value was generated from the secret ROP value, validate that the return pointer is not part of a ROP attack;
- and
- a control register including at least one bit to indicate whether the ROP logic is enabled.
5 more elements
A processor comprising:
- at least one core to execute a checked return instruction to:
- pop a return pointer and a check value off a call stack;
- determine whether the check value was generated from a secret Return Oriented Programming (ROP) value, wherein the secret ROP value is only accessible to an operating system and is to be generated at a beginning of a session and stored in a secure location, the secret ROP value corresponding to a salt value and to be generated based on a ROP security level;
- and
- in response to determining that the check value was generated from the secret ROP value, validate that the return pointer is not part of a ROP attack,
- wherein the at least one core comprises at least one hardware component and a control register including at least one bit to indicate whether a ROP logic is enabled.
3 more elements
A method, comprising:
- obtaining, via a Return Oriented Programming (ROP) logic of a processor, a check value and a return pointer from a call stack stored in a memory, wherein the processor comprises a control register including at least one bit to indicate whether the ROP logic is enabled;
- determining whether the check value was generated from a secret ROP value, wherein the secret ROP value is only accessible to an operating system and is to be generated at a beginning of a session and stored in a secure location, the secret ROP value corresponding to a salt value and to be generated based on a ROP security level;
- and
- upon determining that the check value was generated from the secret ROP value, executing the return pointer, wherein the check value is associated with the return pointer.
1 more element
Dependencies are inferred from the claim text.