박우진

Add README.md

Showing 1 changed file with 71 additions and 0 deletions
[![MIT License][license-shield]][license-url]
<!-- TABLE OF CONTENTS -->
## Table of Contents
* [About the Project](#about-the-project)
* [Build](#Build)
* [Usage](#usage)
* [License](#license)
* [Contact](#contact)
<!-- ABOUT THE PROJECT -->
## 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 -->
## 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 EXAMPLES -->
## 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 -->
## License
LLVM([https://github.com/llvm-mirror/llvm](https://github.com/llvm-mirror/llvm))
<!-- CONTACT -->
## Contact
2015104175 박우진 - amdx1254@khu.ac.kr <br>
[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=flat-square
[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt