Controlling your control flow graph

Arun Kanuparthi, Jeyavijayan Rajendran, Ramesh Karri

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Code Reuse Attacks (CRAs) are software exploits in which an attacker directs program control flow through existing code without injecting malicious code to achieve his objective. In this paper, we propose Dynamic Sequence Checker (DSC), a framework to verify the validity of control flow between basic blocks in the program. Unique codes are assigned to every basic block in the program at compile time in such a way that the Hamming distance between two legally connected basic blocks is a known constant. At runtime, Hamming distance between the codes assigned to the source and destination basic blocks are calculated and compared against the known constant, to verify the control flow. Execution is aborted if the Hamming distance comparison does not match. We implemented DSC on a cycle-accurate x86 simulator. DSC has been able to detect all the CRA gadgets reported by the ROPGadget tool. The average performance overhead is 4.7% over a baseline processor.

Original languageEnglish (US)
Title of host publicationProceedings of the 2016 IEEE International Symposium on Hardware Oriented Security and Trust, HOST 2016
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages43-48
Number of pages6
ISBN (Electronic)9781467388252
DOIs
StatePublished - Jun 20 2016
Event2016 IEEE International Symposium on Hardware Oriented Security and Trust, HOST 2016 - McLean, United States
Duration: May 3 2016May 5 2016

Publication series

NameProceedings of the 2016 IEEE International Symposium on Hardware Oriented Security and Trust, HOST 2016

Other

Other2016 IEEE International Symposium on Hardware Oriented Security and Trust, HOST 2016
CountryUnited States
CityMcLean
Period5/3/165/5/16

ASJC Scopus subject areas

  • Computer Networks and Communications
  • Hardware and Architecture
  • Safety, Risk, Reliability and Quality

Fingerprint Dive into the research topics of 'Controlling your control flow graph'. Together they form a unique fingerprint.

Cite this