IoT 기술 발전에 따라 네트워크에 연결된 임베디드 장치의 사용이 증가하고 있다. Micrium의 임베디드 시스템용 uC/OS-II 실시간 커널은 자동차, 전화기, 공장 자동화, 모터제어 등과 같이 다양한 ...

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
https://www.riss.kr/link?id=T15060928
용인 : 단국대학교 대학원, 2019
학위논문(석사) -- 단국대학교 대학원 , 컴퓨터학과 소프트웨어학 전공 , 2019. 2
2019
한국어
005.1 판사항(23)
경기도
Code Integrity Verification for Securing uC/OS-II System
v, 37 장 : 삽화 ; 30 cm.
단국대학교 논문은 저작권에 의해 보호받습니다.
지도교수:조성제
참고문헌 : 장 31-35
I804:11017-000000193941
0
상세조회0
다운로드IoT 기술 발전에 따라 네트워크에 연결된 임베디드 장치의 사용이 증가하고 있다. Micrium의 임베디드 시스템용 uC/OS-II 실시간 커널은 자동차, 전화기, 공장 자동화, 모터제어 등과 같이 다양한 ...
IoT 기술 발전에 따라 네트워크에 연결된 임베디드 장치의 사용이 증가하고 있다. Micrium의 임베디드 시스템용 uC/OS-II 실시간 커널은 자동차, 전화기, 공장 자동화, 모터제어 등과 같이 다양한 시스템에서 사용되고 있고 네트워크에 연결되고 있다. 네트워크에 연결된 임베디드 장치가 여러 분야에서 중요 단말 역할을 수행함에 따라 점차적으로 사이버 공격의 대상이 되고 있다. 임베디드 장치를 대상으로 한 사이버 공격으로 인한 산업 시설의 가동중단 및 오작동 등으로 큰 피해가 야기될 수 있다. 따라서 네트워크에 연결된 임베디드 시스템에 대한 보안성을 강화하는 연구가 필요하다. 임베디드 시스템의 보안을 위해, 시스템의 코드가 불법으로 위변조되었는 지를 탐지하는 코드 무결성 검증 기법들이 많이 연구되어 왔다. 코드 무결성을 검증하기 위한 기존 연구로는 로컬 기반 프로그램 검증 기법과 원격 기반 프로그램 검증 기법이 존재한다. 로컬 기반 프로그램 검증 기법에는 체크섬(checksum)기반 위변조 검증 기법, secure boot를 통한 펌웨어 위변조 검증 기법, 난독화를 적용한 위변조 방지기법 등이 존재한다. 원격 기반 프로그램 검증 기법에는 소프트웨어 기반 방식과 하드웨어 기반 방식으로 분류할 수 있다. 그 외에 안전한 펌웨어 업데이트 기법을 적용하여 프로그램 위변조를 방지하고자 하는 연구가 수행되었다.
본 논문에서는 uC/OS-II 실시간 커널 수준에서 소프트웨어 기반으로 코드 무결성을 검증하는 2가지 기법을 제안하였다. 첫 번째, 임베디드 시스템 내에서 코드 무결성을 검증하는 기법은 프로그램 메모리의 일부 중요영역을 설정하여 주기적으로 MD5 해시연산을 통해 위변조가 발생하였는지를 확인한다. 이 기법은 프로그램 메모리의 일부만 검증하기 때문에 비교적 실행 오버헤드가 적어 실행 주기가 짧다. 두 번째 기법은 challenge-response 기법을 기반으로 외부 장치를 통해 코드 무결성을 검증한다. 외부 검증 장치에서 임의 값을 임베디드 시스템에 전송하면 임베디드 시스템은 전송받은 임의 값(nonce)을 이용해 의사 난수 생성을 수행한다. 생성된 난수 기반으로 프로그램 메모리 블록 접근 순서가 정해지고, 그 순서대로 블록들의 해시 값을 누적 계산하여 외부 검증장치에 전달한다. 외부 검증장치는 전달받은 최종 해시가 유효한 값인지를 확인하여 임베디드 시스템의 프로그램 메모리의 무결성을 검증한다. 이는 임베디드 시스템이 펌웨어 변조공격으로 프로그램이 변조될 경우, 효과적으로 변조 여부를 검증할 수 있다. 본 논문에서 제안한 두 기법을 uC/OS-II 상에 태스크로 구현하고 평가하여 유효성을 검증하였다.
다국어 초록 (Multilingual Abstract)
With the development of IoT technology, embedded devices become more connected to the internet. In addition, Micrium's uC/OS-II real-time kernel is used in a variety of embedded systems such as automobiles, telephones, factory automation, and motor co...
With the development of IoT technology, embedded devices become more connected to the internet. In addition, Micrium's uC/OS-II real-time kernel is used in a variety of embedded systems such as automobiles, telephones, factory automation, and motor control, and is connected to the network. As embedded devices with connectivity to a local network or internet play a critical role in many areas, they are becoming attractive targets for cyber attackers. The cyberattacks on the embedded devices can be a big threat to industrial control systems (ICS) and cause great damage to critical infrastructure. Therefore, it is very important to make embedded devices and their systems secure. As one approach to incorporating security in embedded systems, many research groups have studied on verifying code integrity on embedded systems. The integrity of program code can be verified locally or remotely. As code integrity check on the local machine, there are checksum-based forgery verification techniques, firmware forgery verification based on secure boot, and forgery prevention techniques using obfuscation. Remote-code integrity verification techniques can be classified in software-based and hardware-based method. Other studies have been conducted to prevent program tampering by applying secure firmware update techniques.
This thesis proposes two techniques for verifying the integrity of program code at uC/OS-II real-time kernel level without any hardware change. The first technique for code integrity verification is operated inside the system, sets some important area of the program memory and periodically checks whether the code is modified by attackers through MD5 hash calculation. Since this technique verifies only a part of the program memory, the execution cycle is short because of a relatively low execution overhead. The second technique verifies code integrity using an external device based on a challenge-response protocol. When an external verification device transmits an arbitrary value (nonce) to the embedded system, the embedded system generates pseudorandom numbers using the arbitrary value transmitted. The memory block access sequence is determined based on the generated random numbers. Then the hash values of the blocks are cumulatively calculated in that sequence and the final hash value is transmitted to the external verification device. The external verification device verifies the integrity of the memory of the embedded system by checking whether the final hash value received is a valid value. The proposed techniques allow the embedded system to effectively check if the program code is modified by firmware tampering attacks. The effectiveness of the proposed techniques have been validated by implementing the techniques as each task on uC/OS-II and performing experiments.
목차 (Table of Contents)