2

2015104175

컴퓨터공학과_박우진

a4053157 Add README.md · by 박우진

MIT License

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

  1. Clone the repo

    git clone http://khuhub.khu.ac.kr/2020-2-capstone-design2/2015104175.git
    
  2. Install cmake

    sudo apt install cmake
    
  3. Create Build folder

    mkdir ./2015104175/build
    
  4. Change directory

    cd ./2015104175/build
    
  5. Create LLVM Clang build file

    cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm-project/llvm
    
  6. 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