Ye edited Motivation_System_and_high_performance__.md  about 8 years ago

Commit id: 8a7f530d1bc0e7b2a2e250ec1c686f152b7df719

deletions | additions      

       

##Motivation  System and high performance computing code are often written in low level languages such as C and C++. Low level languages provide high performance but are open to memory corruption attacks due to lack memory safety and manual memory management. Memory corruption attacks \cite{Szekeres_2013} starts by creating memory errors such as overflows,underflows overflows, underflows  or dangling pointers. One main type of memory corruption attack is control-flow hijacking that takes control of the entire program by using memory errors to enable the write and execution of desired instructions. The classic control-flow attack that works by overwriting the program with new instructions can prevented with non-executable data policies, however Jump Oriented Programming (JOP) can bypass data policies by chaining in-memory code from common libraries such as libc. There are enough instruction sequences and system calls in libc functions that make it Turing complete \cite{Tran_2011}, allowing attackers to create arbitrary programs. Currently there are no policies that prevent JOP because it executes valid code from memory, but mitigation techniques \cite{Li_2010}\cite{Pappas_2012} can be applied to reduce the effectiveness of such attacks.