Attack Protection for valid gadget control transfers

US9767272B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9767272-B2
Application numberUS-201414518507-A
CountryUS
Kind codeB2
Filing dateOct 20, 2014
Priority dateOct 20, 2014
Publication dateSep 19, 2017
Grant dateSep 19, 2017

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.

In one embodiment, a processor comprises: a first register to store a first bound value for a stack to be stored in a memory; a second register to store a second bound value for the stack; a checker logic to determine, prior to an exit point at a conclusion of a function to be executed on the processor, whether a value of a stack pointer is within a range between the first bound value and the second bound value; and a logic to prevent a return to a caller of the function if the stack pointer value is not within the range. Other embodiments are described and claimed.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: a first hardware register to store a first bound value for a stack to be stored in a memory; a second hardware register to store a second bound value for the stack; a checker logic to determine, prior to an exit point at a conclusion of a function to be executed on the processor, whether a value of a stack pointer is within a range between the first bound value and the second bound value; a logic to prevent a return to a caller of the function if the stack pointer value is not within the range; and a second logic to store a random value in a third register prior to a call to the function, and in response to a control transfer termination (CTT) instruction encountered after a control transfer instruction that returns from the function, determine whether a current value of the third register equals the random value, and if so, continue execution of the caller of the function, and otherwise to terminate execution. 2. The processor of claim 1 , wherein the logic is to raise an exception if the stack pointer value is not within the range. 3. The processor of claim 2 , wherein the exception is to indicate a stack pivot attack. 4. The processor of claim 2 , further comprising control logic to terminate the program responsive to the exception. 5. The processor of claim 1 , wherein the checker logic is further to determine, prior to a second exit point of the function, whether the value of the stack pointer is within the range. 6. The processor of claim 1 , wherein the first register and the second register comprise a single register. 7. The processor of claim 1 , wherein the checker logic is to execute at least one user level instruction to determine whether the value of the stack pointer is within the range. 8. At least one non-transitory computer readable storage medium comprising instructions that when executed enable a system to: store, in a first register, a first bound value for a stack to be stored in a memory; store, in a second register, a second bound value for the stack; determine, prior to an exit point at a conclusion of a function, whether a value of a stack pointer is within a range between the first bound value and the second bound value; prevent a return to a caller of the function if the stack pointer value is not within the range; and store a random value in a third register prior to a call to the function, and in response to a control transfer termination (CTT) instruction encountered after a control transfer instruction that returns from the function, determine whether a current value of the third register equals the random value, and if so, continue execution of the caller of the function, and otherwise to terminate execution. 9. The non-transitory computer readable storage medium of claim 8 , further comprising instructions that when executed enable the system to raise an exception if the stack pointer value is not within the range. 10. The non-transitory computer readable storage medium of claim 9 , wherein the exception is to indicate a stack pivot attack. 11. The non-transitory computer readable storage medium of claim 9 , further comprising instructions that when executed enable the system to terminate the program responsive to the exception. 12. The non-transitory computer readable storage medium of claim 8 , further comprising instructions that when executed enable the system to determine, prior to a second exit point of the function, whether the value of the stack pointer is within the range. 13. The non-transitory computer readable storage medium of claim 8 , further comprising instructions that when executed enable the system to execute at least one user level instruction to determine whether the value of the stack pointer is within the range.

Assignees

Inventors

Classifications

  • Compare instructions, e.g. Greater-Than, Equal-To, MINMAX · CPC title

  • Register stacks; shift registers · CPC title

  • to perform miscellaneous control operations, e.g. NOP · CPC title

  • Executing subprograms · CPC title

  • Recovery, e.g. branch miss-prediction, exception handling (error detection or correction G06F11/00) · 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 US9767272B2 cover?
In one embodiment, a processor comprises: a first register to store a first bound value for a stack to be stored in a memory; a second register to store a second bound value for the stack; a checker logic to determine, prior to an exit point at a conclusion of a function to be executed on the processor, whether a value of a stack pointer is within a range between the first bound value and the s…
Who is the assignee on this patent?
Intel Corp
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 Tue Sep 19 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).