Patent ID: 9665717
Date: 2017-05-30
CPC Classifications: G06F,G06N

Claim:
1. A computer program product for mitigating return-oriented programming (ROP) attacks, the computer product comprising: one or more non-transitory computer-readable storage media and program instructions stored on the one or more non-transitory computer-readable storage media, the program instructions comprising: program instructions to receive program code for execution and associated components needed by the program code for execution; program instructions to load the program code and associated components into memory; program instructions to select a predetermined number of sequences of machine language instructions from the loaded program code and the associated components, wherein each sequence terminates in a return instruction, and wherein the predetermined number of sequences includes: machine language instruction sequences that are equivalent to a conditional statement “if-then-else return”; sequences of machine language instructions corresponding to known malicious code sequences; and sequences of machine language instructions corresponding to machine language instructions in known toolkits for assembling malicious code sequences; and for each selected machine language instruction sequence, program instructions to: rearrange memory blocks containing the selected machine language instruction sequence, using address space layout randomization (ASLR); then wait an expected time interval required to locate the selected machine language instruction sequence by inspecting the rearranged memory blocks; and repeat the rearranging at the expiration of the expected time interval; whereby ROP attacks are mitigated.