Graduation Year
2019
Document Type
Thesis
Degree
M.S.C.S.
Degree Name
MS in Computer Science (M.S.C.S.)
Degree Granting Department
Computer Science and Engineering
Major Professor
Srinivas Katkoori, Ph.D.
Committee Member
Jay Ligatti, Ph.D.
Committee Member
Hao Zheng, Ph.D.
Keywords
Control Flow Integrity (CFI), Basic Blocks, Hamming Distance, SimpleScalar
Abstract
A popular software attack on a program is by transferring the program control to malicious code inserted into the program. Control Flow Integrity (CFI) check has been proposed as a detection mechanism for control flow deviation. In the context of embedded processors, this thesis proposes a novel approach to implement CFI to detect and stall under a control flow attack. We exploit the unused bits in an instruction word to embed a label that can be used to check CFI during runtime. Given a control flow graph, we embed a unique label in each instruction in a basic block such that a given property is satisfied by labels along a valid control flow edge. For example, the hamming distance between any two basic blocks in a legal path is less than 5 and in illegal paths, it is greater than 5. In a five stage processor pipeline, when an instruction is fetched, its label is checked against prior instruction's label for the known property (i.e., hamming distance of 5). We implemented the proposed approach in the SimpleScalar toolset and validated on 7 embedded application benchmarks chosen from MiBench benchmark suite. To the best of our knowledge, this is the first time the control flow information is embedded in the executable binary that is used for CFI check during the runtime.
Scholar Commons Citation
Polnati, Srivarsha, "An Efficient Run-time CFI Check for Embedded Processors to Detect and Prevent Control Flow Based Attacks" (2019). USF Tampa Graduate Theses and Dissertations.
https://digitalcommons.usf.edu/etd/8404