Table of Contents
About The Project
최근 다양한 IoT 디바이스의 사용이 증가하고 있다. baremetal IoT 디바이스의 경우에는 운영체제가 존재하지 않는 구조로 하나의 애플리케이션이 실행되며, 운영체제가 제공하는 보안 메커니즘이 존재하지 않는다. 따라서, 운영체제가 제공해주는 I/O protection, memory protection등의 혜택을 받지 못한다. 이로인해 memory corruption attack, code reuse attack 등에 취약하며, I/O 디바이스로의 허용되지 않는 접근이 발생할 수 있다. 본 논문은 baremetal 펌웨어의 취약점을 MPU(Memory Protection Unit), load timeaddress randomization, ARM TrustZone등의 기법을 이용하여 사전에 차단할 수 있도록 하는 보안 강화기법을 연구해보고 구현해본다.
Build
-
Clone the repo
git clone http://khuhub.khu.ac.kr/2020-2-capstone-design2/2015104175.git
-
Install cmake
sudo apt install cmake
-
Create Build folder
mkdir ./2015104175/build
-
Change directory
cd ./2015104175/build
-
Create LLVM Clang build file
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm-project/llvm
-
Build
make
Usage
2015104175/build/bin/clang -emit-llvm -c -S source.c -o source.ll
2015104175/build/bin/clang -load 2015104175/build//lib/LLVMBaremetalSec.so -lr source.ll -o source.ll
License
LLVM(https://github.com/llvm-mirror/llvm)
Contact
2015104175 박우진 - amdx1254@khu.ac.kr