IP Library Granted Patent US 11,893,113
Granted Patent B2
US 11,893,113 · App. 17/289,821 · Granted Feb 6, 2024

Return-oriented programming protection

Inventors: Yitzhack Davidovich (Jerusalem, IL); Yoav Fuchs (Har Gillo, IL); Nir Brakha (Tel Aviv, IL)
Assignee: C2A-SEC, Ltd.
G06F21/554G06F21/54
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 11,893,113
App. No.
17/289,821
Granted
Feb 6, 2024
Kind
B2
Abstract

An ROP attack protection apparatus constituted of: a first region of memory having stored therein a protection function, the first region of memory set as executable; and a second region of memory having stored thereon a plurality of operation functions, the second region of memory set as non-executable, wherein the protection function is arranged to: responsive to a call to one of the plurality of operation functions and further responsive to at least one predetermined rule, allow execution of the called operation function; and after receiving a return from the executed operation function, set the executed operation function as non-executable.

Claims (67)

1. A return-oriented programming (ROP) attack protection apparatus comprising:

a first region of memory having stored therein a protection function, said first region of memory set as executable; and

a second region of memory having stored therein a plurality of operation functions, said second region of memory set as non-executable,

wherein said protection function is arranged to:

responsive to a call to one of said plurality of operation functions and further responsive to at least one predetermined rule, allow execution of said called operation function; and

after receiving a return from said executed operation function, set said executed operation function as non-executable,

wherein said plurality of operation functions comprises said called function and a caller function, said call to said called function received from said caller function,

wherein said protection function is further arranged to:

responsive to said call, set said caller function as non-executable;

responsive to said received return, allow execution of said caller function,

wherein responsive to said at least one predetermined rule, said protection function is further arranged to determine whether a return address of said call is valid,

wherein said allowance of said execution of said called operation function is responsive to said return address of said call being determined to be valid, and

wherein, responsive to said return address of said call being determined to not be valid, said protection function is further arranged to:

not allow said execution of said called operation function; and

output a notification regarding the non-valid return address.

2. The ROP attack protection apparatus of claim 1 , wherein said determination that the return address is valid comprises a determination that the return address is not within an address range of said protection function, and

wherein said determination that the return address is not valid comprises a determination that the return address is within an address range of said protection function.

3. The ROP attack protection apparatus of claim 1 , wherein said call to one of said plurality of operation functions comprises:

a call to said protection function; and

information regarding an address of said called function.

4. The ROP attack protection apparatus of claim 1 , wherein said allowance of said execution comprises defining a section of said second region of memory as being executable, and

wherein said setting said executed operation function as non-executable comprises defining said section of said second region of memory as being non-executable.

5. The ROP attack protection apparatus of claim 4 , wherein said definition of said section of said second region of memory as being executable comprises overwriting a value of a first register with a first boundary of an address range of said operation function which is allowed to be executed and overwriting a value of a second register with a second boundary of the address range of said operation function which is allowed to be executed, and

wherein said definition of said section of said second region of memory as being non-executable is performed by said overwriting.

6. The ROP attack protection apparatus of claim 1 , wherein said allowance of said execution comprises copying said called operation function to said first region of memory, and

wherein said setting said executed operation function as non-executable comprises deleting said executed operation function from said first region of memory.

7. A return-oriented programming (ROP) attack protection method, the method comprising:

providing a region of memory having stored therein a plurality of operation functions, the region of memory set as non-executable;

responsive to a call to one of the plurality of operation functions and further responsive to at least one predetermined rule, allowing execution of the called operation function; and

after receiving a return from the executed operation function, setting the executed operation function as non-executable,

wherein the plurality of operation functions comprises the called function and a caller function, the call to the called function received from the caller function,

wherein the method further comprises:

responsive to said call, setting the caller function as non-executable; and

responsive to said received return, allowing execution of the caller function, and

wherein responsive to said at least one predetermined rule, the method further comprises:

determining whether a return address of said call is valid, said allowance of said execution of the called operation function being responsive to the return address of the call being determined to be valid;

responsive to the return address of the call being determined to not be valid, not allowing said execution of the called operation function and outputting a notification regarding the non-valid return address.

8. The ROP attack protection method of claim 7 , wherein said allowing execution of the called operation function and said setting the executed operation function as non-executable is performed by a protection function,

wherein said determining that the return address is valid comprises determining that the return address is not within an address range of the protection function, and

wherein said determining that the return address is not valid comprises determining that the return address is within an address range of the protection function.

9. The ROP attack protection method of claim 8 , wherein the call to one of said plurality of operation functions comprises:

a call to said protection function; and

information regarding an address of the called operation function.

10. The ROP attack protection method of claim 7 , wherein said allowance of said execution comprises defining a section of the region of memory as being executable, and

wherein said setting the executed operation function as non-executable comprises defining the section of the region of memory as being non-executable.

11. The ROP attack protection method of claim 10 , wherein said definition of the section of the region of memory as being executable comprises overwriting a value of a first register with a first boundary of an address range of the operation function which is allowed to be executed and overwriting a value of a second register with a second boundary of the address range of the operation function which is allowed to be executed, and

wherein said definition of the section of the region of memory as being non-executable is performed by said overwriting.

12. The ROP attack protection method of claim 7 , wherein said allowance of said execution comprises copying the called operation function to an executable region of memory, and

wherein said setting the executed operation function as non-executable comprises deleting the executed operation function from the executable region of memory.

13. A return-oriented programming (ROP) attack protection apparatus comprising:

a processor;

a first region of memory having stored therein instructions which when read by said processor causes said processor to implement a protection function, said first region of memory set as executable; and

a second region of memory having stored therein instructions which when read by said processor causes said processor to implement a plurality of operation functions, said second region of memory set as non-executable,

wherein, responsive to a call and further responsive to at least one predetermined rule, said processor is arranged to implement said protection function to:

allow execution of one of said operation functions; and

set said executed operation function as non-executable after completion of said executed operation function,

wherein said plurality of operation functions comprises said called function and a caller function, said call to said called function received from said caller function,

wherein said processor is further arranged to implement said protection function to:

responsive to said call, set said caller function as non-executable;

responsive to said received return, allow execution of said caller function,

wherein responsive to said at least one predetermined rule, said processor is further arranged to implement said protection function to determine whether a return address of said call is valid,

wherein said allowance of said execution of said called operation function is responsive to said return address of said call being determined to be valid, and

wherein, responsive to said return address of said call being determined to not be valid, said processor is further arranged to implement said protection function to:

not allow said execution of said called operation function; and

output a notification regarding the non-valid return address.

14. The ROP attack protection apparatus of claim 13 , wherein said determination that the return address is valid comprises a determination that the return address is not within an address range of said protection function, and

wherein said determination that the return address is not valid comprises a determination that the return address is within an address range of said protection function.

Continuity (2)
Provisional Application 62756595 · Nov 7, 2018
Related Publication 20210397705A1 · Dec 23, 2021