8
TZIPC : ARM TrustZone을 이용한 보안 IPC 131 TZIPC : ARM TrustZone을 이용한 보안 IPC (TZIPC : Secure IPC using ARM TrustZone) 유성배 김세원 †† 유시환 †† ††† (Sungbae Yoo) (Sewon Kim) (Seehwan Yoo) (Chuck Yoo) 신뢰성 있는 시스템에서, 각 요소간의 안전한 통신은 중요한 부분 중 하나이다. 따라서 본 논 문에서는 IPC(Inter Process Communication)의 신뢰성을 높이는데 초점을 맞췄다. 그리고 신뢰성을 높이 기 위해 기존의 소프트웨어적인 고립기법 대신 하드웨어적인 고립방식인 ARM TrustZone을 이용하였다. 본 논문에서는 최종적으로 ARM TrustZone을 이용한 보안 IPCTZIPC를 제안한다. 기존의 IPC는 운 영체제에서 관리되고 있어 운영체제 변조에 취약한 구조를 가지고 있다. 운영체제는 Rooing이나 Jail-breaking과 같은 기법들을 통해 쉽게 변조 될 수 있다. 반면에 TZIPCTrustZone을 사용하여, IPC 메시지를 운영체제와 분리시킨다. 따라서, 운영체제가 변조되는 상황 하에서도 TZIPC를 사용하면 IPC 시지의 무결성을 지킬 수 있다. 그럼에도 불구하고 TZIPC에 존재하는 오버헤드는 약 0.24%정도로 미미한 정도이다. 키워드: ARM TrustZone, IPC, 보안, 신뢰성 있는 시스템 Abstract In a trustworthy system, It is one of important part to protect communication between elements of system. We focused on improvement of IPC(Inter Process Communication)’s reliability. And, we use hardware isolation - ARM TrustZone, rather than software isolation. Finally, we proposed TZIPC, an secure IPC using ARM TrustZone. Existing IPC has a vulnerable structure because it is managed by OS. It is possible to tamper an OS using techniques such as rooting, jail-breaking. Otherwise, TZIPC uses Trustzone for isolation of IPC message data from an OS. So, TZIPC can protect integrity of IPC message data, even if OS is infected by malicious codes. Nevertheless, TZIPC’s overhead is 0.24%, which is neglible. Keywords: ARM TrustZone, IPC, security, trustworthy system 이 논문은 국가과학기술연구망(Kreonet) 을 이용하여 정부( 교육과학기술부)재원으로 한국연구재단의 지원을 받아 수행된 연구임(No.2010-0029180) 이 논문은 제39회 추계학술발표회에서 ‘ARM TrustZone을 이용한 보안 IPC의 설계의 제목으로 발표된 논문을 확장한 것임 †† ††† 학생회원 비 회 원 종신회원 논문접수 심사완료 : : : : : 고려대학교 컴퓨터·전파통신공학과 [email protected] 고려대학교 컴퓨터·전파통신공학과 [email protected] [email protected] 고려대학교 컴퓨터·전파통신공학과 교수 [email protected] (Corresponding author) 20121232013221Copyright2013 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작 물의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처 를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지: 시스템 및 이론 제40권 제3(2013.6) 1. 서 론 모바일 기기들의 사용이 점차 증가하고 있으며, 모바 일 기기는 실생활에 점점 밀접하게 관련되어지고 있다. 특히 각 개인과 밀접해지면서, 모바일 기기 내에는 많은 양의 개인정보들이 저장되고 있다. 메시지, E-Mail, SNS, 통화 내역, 사진과 같이 개인의 사생활과 밀접한 정보들이다. 또한, 모바일 기기에는 수많은 센서들이 장 착되어 있다. GPS, 마이크, 카메라와 같은 장치들을 이 용하면 현재 사용자의 상태 및 위치를 상세하게 알 수 있다. 따라서 모바일 기기가 악성코드에 감염된다면, 재 사용자의 상태, 위치 및 개인 정보들이 고스란히 노 출 될 수 있다. 또한, 전자상거래, 전자지갑(예를 들어, Google Wallet) 등의 높은 신뢰성이 요구되는 애플리케 이션들은 점차 증가하고 있다[1]. 그러므로 모바일 기기는 신뢰성 있는 시스템이 되어 야 한다. 하지만 현재까지의 모바일기기는 신뢰성 있는 시스템은 아니다. 모바일 기기 사용 증가와 동시에 모바

(TZIPC : Secure IPC using ARM TrustZone)kiise.or.kr/e_journal/2013/6/CST/pdf/03.pdf · L4 내의 IPC를 포함해서 L4 자체는 완전히 정형 검증 된 운영체제이다. 안드로이드

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

TZIPC : ARM TrustZone을 이용한 보안 IPC 131

TZIPC : ARM TrustZone을 이용한 보안 IPC(TZIPC : Secure IPC using ARM TrustZone)

유 성 배† 김 세 원

†† 유 시 환

†† 유

†††

(Sungbae Yoo) (Sewon Kim) (Seehwan Yoo) (Chuck Yoo)

요 약 신뢰성 있는 시스템에서, 각 요소간의 안 한 통신은 요한 부분 하나이다. 따라서 본 논

문에서는 IPC(Inter Process Communication)의 신뢰성을 높이는데 을 맞췄다. 그리고 신뢰성을 높이

기 해 기존의 소 트웨어 인 고립기법 신 하드웨어 인 고립방식인 ARM TrustZone을 이용하 다.

본 논문에서는 최종 으로 ARM TrustZone을 이용한 보안 IPC인 TZIPC를 제안한다. 기존의 IPC는 운

체제에서 리되고 있어 운 체제 변조에 취약한 구조를 가지고 있다. 운 체제는 Rooing이나

Jail-breaking과 같은 기법들을 통해 쉽게 변조 될 수 있다. 반면에 TZIPC는 TrustZone을 사용하여, IPC

메시지를 운 체제와 분리시킨다. 따라서, 운 체제가 변조되는 상황 하에서도 TZIPC를 사용하면 IPC 메

시지의 무결성을 지킬 수 있다. 그럼에도 불구하고 TZIPC에 존재하는 오버헤드는 약 0.24%정도로 미미한

정도이다.

키워드: ARM TrustZone, IPC, 보안, 신뢰성 있는 시스템

Abstract In a trustworthy system, It is one of important part to protect communication between

elements of system. We focused on improvement of IPC(Inter Process Communication)’s reliability.

And, we use hardware isolation - ARM TrustZone, rather than software isolation. Finally, we

proposed TZIPC, an secure IPC using ARM TrustZone. Existing IPC has a vulnerable structure

because it is managed by OS. It is possible to tamper an OS using techniques such as rooting,

jail-breaking. Otherwise, TZIPC uses Trustzone for isolation of IPC message data from an OS. So,

TZIPC can protect integrity of IPC message data, even if OS is infected by malicious codes.

Nevertheless, TZIPC’s overhead is 0.24%, which is neglible.

Keywords: ARM TrustZone, IPC, security, trustworthy system

․이 논문은 국가과학기술연구망(Kreonet)을 이용하여 정부(교육과학기술부)의

재원으로 한국연구재단의 지원을 받아 수행된 연구임(No.2010-0029180)

․이 논문은 제39회 추계학술발표회에서 ‘ARM TrustZone을 이용한 보안

IPC의 설계’의 제목으로 발표된 논문을 확장한 것임

††

†††

학생회원

비 회 원

종신회원

논문 수

심사완료

:

:

:

:

:

고려 학교 컴퓨터· 통신공학과

[email protected]

고려 학교 컴퓨터· 통신공학과

[email protected]

[email protected]

고려 학교 컴퓨터· 통신공학과 교수

[email protected]

(Corresponding author임)

2012년 12월 3일

2013년 2월 21일

CopyrightⒸ2013 한국정보과학회ː개인 목 이나 교육 목 인 경우, 이 작

물의 체 는 일부에 한 복사본 혹은 디지털 사본의 제작을 허가합니다.

이 때, 사본은 상업 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처

를 반드시 명시해야 합니다. 이 외의 목 으로 복제, 배포, 출 , 송 등 모든

유형의 사용행 를 하는 경우에 하여는 사 에 허가를 얻고 비용을 지불해야

합니다.

정보과학회논문지: 시스템 이론 제40권 제3호(2013.6)

1. 서 론

모바일 기기들의 사용이 차 증가하고 있으며, 모바

일 기기는 실생활에 하게 련되어지고 있다.

특히 각 개인과 해지면서, 모바일 기기 내에는 많은

양의 개인정보들이 장되고 있다. 메시지, E-Mail,

SNS, 통화 내역, 사진과 같이 개인의 사생활과 한

정보들이다. 한, 모바일 기기에는 수많은 센서들이 장

착되어 있다. GPS, 마이크, 카메라와 같은 장치들을 이

용하면 재 사용자의 상태 치를 상세하게 알 수

있다. 따라서 모바일 기기가 악성코드에 감염된다면,

재 사용자의 상태, 치 개인 정보들이 고스란히 노

출 될 수 있다. 한, 자상거래, 자지갑( 를 들어,

Google Wallet) 등의 높은 신뢰성이 요구되는 애 리

이션들은 차 증가하고 있다[1].

그러므로 모바일 기기는 신뢰성 있는 시스템이 되어

야 한다. 하지만 재까지의 모바일기기는 신뢰성 있는

시스템은 아니다. 모바일 기기 사용 증가와 동시에 모바

132 정보과학회논문지 : 시스템 이론 제 40 권 제 3 호(2013.6)

일 기기의 악성코드의 양은 가 르게 증가하고 있다. 안

드로이드 악성코드의 경우, 2010년에는 었지만 2011

년에 어들면서 기하 수 으로 증가하 다. 특히 2010

년과 2011년 사이에 약 200배 가까이 증가했다[2].

모바일 기기를 신뢰성 있는 시스템으로 만들기 해

서 코드의 검증을 생각해 볼 수 있다. 하지만, 모바일

기기의 쓰임은 차 다양해지고 모바일 기기의 기능은

차 복잡해지고 있다. 이에 따라, 모바일 운 체제는

이미 데스크탑 운 체제만큼이나 복잡해졌다[3]. 모바일

랫폼 하나인 안드로이드의 경우를 보면, 다수의 라

이 러리들로 구성이 되어 있어 체 코드량이 약 1200

만라인 정도 되며, 최신버 일수록 차 증가하고 있다.

이 게 많은 양의 코드에 해 일일이 검증하기는 어렵다.

따라서 코드의 체를 검증하는 것은 불가능하며, 작

은 TCB(trusted computing base)를 두고, 하나씩 빌딩

블록(building block)을 쌓아나가는 방법이 더 효과 이

다. 빌딩블록을 쌓아감에 있어서, 각 빌딩블록간의 신뢰

성 있는 통신은 그 자체가 가장 요한 빌딩블록이라고

할 수 있다[4]. 본 논문에서는 통신들 에서도 로세

스간의 통신에 을 맞추고자 한다. 신뢰할 수 있는

IPC(Inter Process Communication)는 보안상으로 안

한 시스템의 가장 기본 인 요소이다.

William Enck 등이 제안한 Taintdroid는 동 Taint

분석을 통해, 안드로이드 랫폼에서 정보의 흐름을 실

시간으로 모니터링 하는 시스템이다[5]. William Enck

등은 이 시스템을 이용해 애 리 이션이 유 의 개인

정보( 치정보, 폰의 정보, 사용이력 등)를 이용하고 있

음을 분석하 다. 그리고 안드로이드 IPC인 바인더에

해 Taint 분석을 수행하 으며 바인더를 통해 상당히

민감한 개인 정보들이 오고 감을 확인하 다. 따라서

IPC가 보안상으로 요한 요소임은 자명하다.

IPC의 신뢰성을 높이기 해서, IPC의 코드와 데이터

를 고립시키는 기법이 필요하다. 기존에는 보안이 필요

한 요소들을 고립시키기 하여, 소 트웨어 인 샌드박

싱 기법을 주로 사용했다. 일반 으로 Apple iOS나

Android와 같은 모바일 랫폼에서는 애 리 이션에게

는 최소한의 권한만을 주어 실행한다. 하지만, Apple

iOS jail-breaking[6]이나, Android Rooting[7]과 같은

경우를 보면, 애 리 이션이 리자 벨의 권한을 획

득할 수 있다. 따라서 이러한 소 트웨어 인 기법들은

쉽게 뚫릴 수 있으며 안 하지 않다.

그러므로 본 논문에서는 하드웨어 인 고립기법인

ARM TrustZone를 IPC에 용하여 신뢰성을 높이고자

한다. ARM TrustZone을 이용하여 IPC 코드와 데이터

를 다른 애 리 이션이나 운 체제로부터 분리시켜, 신

뢰성을 보장할 수 있는 IPC인 TZIPC를 제안하고자 한다.

일반 으로 ARM TrustZone을 이용하게 되면, 운

체제 단 로의 보호를 생각하게 된다. 하지만 TZIPC에

서는 재 실행 인 애 리 이션을 식별함으로써, 애

리 이션 단 의 보호를 고려하 다는 의의가 있다.

본 논문에서, 2장에서는 IPC의 신뢰성 향상을 한

련연구에 해 설명한다. 3장에서는 ARM TrustZone

과 본 논문에서 제안하는 TZIPC에 한 구조와 동작에

해 설명한다. 4장에서는 실험환경과 구 에 한 내용

에 해 설명한다. 5, 6장에서는 다른 IPC와 TZIPC를

비교한다. 특히, 5장에서는 신뢰성을 6장에서는 성능을

비교 분석한다. 마지막으로, 7장에서는 결론을 기술한다.

2. 련 연구

2.1 IPC의 신뢰성 향상

Dan R. K. Ports 등이 제안한 방법에서는 VMWare

에서 Overshadow 기법을 사용하 다[4]. Overshadow

기법은 VMM(Virtual Monitor Manager)이 메모리 페

이지를 사용하고자 하는 상 애 리 이션에게는 해당

페이지의 원본을 제공하고, 운 체제나 다른 애 리 이

션에게는 해당 페이지에 해 암호화된 값을 제공함으

로써 신뢰성을 높이는 기술이다. 특히, IPC로 사용되는

공유메모리의 내용을 운 체제가 읽거나 쓸 수 없게 함

으로써, IPC의 신뢰성을 높 다. L4droid에서는 안 한

스마트폰을 만들기 해 안드로이드에 L4를 용하 다.

L4 내의 IPC를 포함해서 L4 자체는 완 히 정형 검증

된 운 체제이다. 안드로이드 IPC인 바인더를 검증된

L4 IPC로 체함으로써, IPC의 신뢰성을 높 다[8].

2.2 IPC 공격 모델

Dan R. K. Ports의 논문에서는 악의 인 운 체제가

보안이 필요한 애 리 이션간의 IPC 메시지를 가로채

거나 변조할 수 있다고 주장하 다[4]. William Enck

등이 제안한 Taintdroid에서는 운 체제를 수정하여, 바

인더 IPC 쪽에 Binder Hook을 삽입하 다. 그리고 Binder

Hook을 사용하여 IPC의 메시지를 가로채고, 가로챈 메

시지를 이용하여 동 Taint 분석을 수행하고 있다[5].

사실을 통해 운 체제를 조작하면 IPC를 가로채는

것이 충분히 가능하다는 것을 알 수 있다. 일반 인 환

경에서의 운 체제 조작 역시 충분히 가능하다. 악의

인 로세스가 충분히 Rooting이나 Jail-breaking과 같

은 기법을 통해 리자 권한을 얻을 수 있다. 그리고

리자 권한을 지니고 있으면, 부트 시 스를 수정하거나,

커 모듈( 는 드라이버) 등을 로드하는 것이 가능하다

[9]. 이러한 경우, 악성 코드를 커 과 동등한 권한으로

실행시킬 수 있다. 커 과 동등한 권한으로 실행된 악성

코드는 커 을 원하는 로 변조시키는 것이 가능하다.

IPC 공격의 응용 는 메시지 가로채기와 메시지 변

TZIPC : ARM TrustZone을 이용한 보안 IPC 133

조의 두 가지로 나 수 있다. 첫째로, IPC 메시지를 가

로채는 공격에 해서는 모바일 결제와 모바일 뱅킹과

같은 애 리 이션의 경우가 가장 표 이다. 결제 암

호화 모듈과 결제 창을 띄우는 애 리 이션이 서로 다

른 로세스로 이루어져 있을 경우, IPC 메시지를 간

에서 가로채서 결제정보를 획득할 수 있다.

둘째로, IPC 메시지 변조에 해서는 소 트웨어 라

이선스 리가 표 이며, 구 이(Google Play)

의 LVL(License Verification Library)을 로 들 수

있다. LVL은 배포자의 애 리 이션에 포함되어 재

사용자가 해당 애 리 이션의 라이선스를 가지고 있는

지 여부를 단한다. 라이선스 여부를 단 할 때, LVL

과 마켓 애 리 이션은 안드로이드의 IPC인 Binder로

통신하게 된다[10]. 이 때, IPC 메시지를 변조하여, 라이

선스가 없음에도 라이선스가 있는 것처럼 장하여 라

이선스 테스트를 통과할 수 있다.

3. TZIPC : TrustZone을 이용한 보안 IPC

이번 에서는 본 논문에서 제안하는 IPC인 TZIPC

에 해 다루고자 한다. 이를 해서 먼 3.1 에서는

ARM TrustZone에 해 소개하고 3.2 에서 기존 IPC

와의 차이 을 주로 TZIPC의 구조에 해 설명한다.

3.3 에서는 IPC 메시지 송/수신과 같은 TZIPC의 동작

에 해 설명한다. 마지막으로, 3.4 에서는 TZIPC의

동작 생길 수 있는 외상황에 해 TZIPC가 어떤

식으로 동작하는지를 설명한다.

3.1 ARM TrustZone

ARM TrustZone은 하나의 물리 로세서 코어를

secure와 normal의 두 가지 world로 나 어 다. 각

world마다 CPU의 상태 페이지테이블 련 지스터

는 분리되어 있으며, 주소 공간 역시 분리되어 있다. 일

반 으로 하나의 world에 하나의 OS를 고립시켜 사용한

다. 각 world마다 다른 종류의 OS를 구동하는데,

Secure world에 충분히 검증 된 OS를, normal world에

는 검증은 힘들지만 일반 으로 많이 사용하는 OS를 구

동한다. 실행하는 애 리 이션의 경우에도 마찬가지로,

secure world에 보안이 필요한 애 리 이션을, normal

world에는 일반 인 애 리 이션을 실행하게 된다.

기존의 ARM의 CPU 모드에는 FIQ, IRQ, Abort,

Kernel, User, Undefined 모드가 있었다. 이러한 CPU

모드에 추가 으로 ARM TrustZone에서는 모니터

(monitor) 모드가 추가되었다. 모니터 모드는 world간의

환을 한 모드이다. 모니터 모드에서는 secure world

에서 사용가능한 명령어나 메모리 역을 근할 수 있으

므로, world간의 환을 수행할 수 있다. 그림 1은 ARM

TrustZone이 추가된 모니터 모드를 나타내는 그림이다.

그림 1 ARM TrustZone이 추가된 CPU 모드 구조

Fig. 1 The CPU Modes added ARM TrustZone

그림 1을 보면, 모니터 모드로의 진입은 SMC(Secure

Monitor Call) 명령어가 실행된 경우나, IRQ FIQ

발생시 이루어짐을 알 수 있다. 한, SMC 명령어는

커 모드에서만 실행이 가능하다.

Secure world에서 메모리 근을 제어하여, 메모리

역을 고립시킬 수도 있다. TZASC(TrustZone Address

Space Controller) 는 TZMA(TrustZone Memory

Adater)를 이용하여 secure world에서만 근 가능한

메모리 역을 지정할 수 있다. secure world에서만

근 가능한 메모리 역을 normal world에서 근하

을 경우 모니터 모드에서 TrustZone 페이지폴트가 발

생하게 된다.

TrustZone을 사용할 경우, 부 은 2회 일어난다. 이

2회의 부 을 통해 두 world가 부 된다. 먼 secure

world의 운 체제가 부 을 시작하고, TrustZone 련

근 권한을 설정한다. Secure world의 부 이 완료된

후, normal world의 운 체제가 부 을 시작한다. 따라

서 secure world의 기화가 완료되기 까지 normal

world로 환되는 경우가 없으므로, secure world의 코

드들은 안 하게 보호될 수 있다[11].

Normal world의 운 체제가 변조되어 secure world에

해 악의 인 동작을 시도할 수 있다. normal world에

서 secure world를 근하기 해서는 SMC 명령어가

실행이 되어야 한다. SMC 명령어는 모니터 모드의

SMC 핸들러에서 처리된다. 따라서 모니터 모드에 존재

하는 SMC 핸들러의 코드를 검증한다면, 악성코드의

SMC 명령어를 통한 공격을 방지할 수 있다.

3.2 TZIPC의 구조

TZIPC는 ARM TrustZone을 사용하여 기존의 IPC

보다 신뢰성을 높 다. 그림 2는 TZIPC와 기존 IPC와

구조상으로 어떤 차이가 있는지를 보여주고 있다.

그림 2(a)를 보면, 기존의 IPC는 운 체제 내부에

치하고 있다. 기존의 IPC는 운 체제에서 제공해주는

형태이므로, 악의 인 운 체제 는 운 체제의 변조에

의한 IPC 공격에 해 취약한 구조를 가지고 있다[4].

134 정보과학회논문지 : 시스템 이론 제 40 권 제 3 호(2013.6)

(a) Existing IPC (b) Proposed IPC : TZIPC

그림 2 TZIPC와 기존 IPC의 차이

Fig. 2 A difference between TIPC and existing IPC

그림 3 IPC를 한 독립 인 통신채 확보

Fig. 3 A flow diagram when IPC's data is transmitted /

received

그림 2(b)를 보면, TZIPC는 IPC가 운 체제 내부가

아닌 모니터 모드에 치하고 있다. 모니터 모드를 사용

하여, IPC의 코드와 데이터를 커 이나 다른 애 리

이션에서 근할 수 없게 하 다. 한, IPC를 수행할

때, 운 체제를 거치지 않고 바로 모니터 모드로 진입하

여 수행할 수 있게 하 다. 운 체제를 거치지 않고 모

니터 모드로 진입하는 방법으로는 TrustZone 페이지폴

트를 사용하 다. IPC를 간에서 가로챌 수 있는 여지

가 없으므로, 메시지 가로채기와 메시지 변조와 같은

IPC 공격에 해 안 하다.

한, TZIPC는 IPC를 해 사용되는 공유 메모리를

TrustZone을 이용하여 고립시킴으로써 신뢰성을 높 다.

기존의 공유메모리의 경우, 운 체제의 변조 등에 의하

여 악의 인 로세스가 같은 역의 공유메모리를 같

이 매핑(mapping)한다면, IPC 데이터를 가로채거나 변

조할 수 있는 험성이 있었다.

하지만, 그림 3을 보면 ARM TrustZone을 이용하여

공유메모리의 역을 다른 로세스나 심지어 운 체제

로부터 완 히 독립된 통신채 로 만들어 으로써, 다

른 요소들이 개입할 수 있는 여지를 없앴다.

3.3 TZIPC의 동작

3.3.1 IPC 기화

IPC 기화를 한 API는 다음과 같은 동작을 수행

한다.

그림 4 IPC 송/수신시 흐름도

Fig. 4 A flow diagram when IPC's data is transmitted /

received

1) SMC 명령어를 이용하여 모니터 모드로 환한다.

모니터 모드로 환할 때, 통신을 수행할 로세스

ID와 자신의 로세스 ID를 넘겨 다.

2) 모니터 모드에서는 secure world에서 사용 가능한

메모리 역 에 이번 IPC에서 사용할 역을 할당

한 후, 그 역의 주소를 반환하여 다. 만약 이미

해당 IPC로 할당된 역이 있다면, 그 역의 주소

를 반환한다.

3) 그 역의 주소를 로세스의 가상메모리 주소공간

에 매핑한다.

3.3.2 IPC 메시지 송/수신

IPC 메시지 송/수신 과정은 secure world만 근 가

능한 메모리 역을 normal world에서 근 할 때 발

생하는 TrustZone 페이지폴트를 이용한다.

그림 4는 IPC 동작의 흐름을 나타내고 있다.

먼 , IPC를 사용하려는 애 리 이션이 기화될 때,

두 역이 매핑 된다. (a) IPC 메시지를 송받기 한

역, (b) 유 모드에서 모니터에 진입하기 한 역이다.

IPC 메시지를 송/수신할 때, 애 리 이션은 (a) 역

에 바로 복사 작업을 한다. 이 때, (a) 역이 secure

world에서만 근이 가능한 역이므로 TrustZone 페

이지폴트가 일어난다. 그리고 모니터 모드의 TrustZone

페이지폴트 핸들러가 실행되어 TZIPC가 실행된다.

TZIPC에서는 악의 인 로세스를 막기 해, 재

로세스가 (a) 역을 기화했었던 로세스인지 확인한

다. 재 로세스가 해당 로세스라면, (a) 역을 잠시

normal world에서도 근 가능하게 변경한다. 만약 재

로세스가 해당 로세스가 아니라면, 근을 제한한다.

그 후에 normal world쪽으로 돌아간다. 돌아갈 때,

페이지폴트를 낸 명령어의 주소로 돌아간다. 아까와는

달리 메모리를 근할 수 있으므로 페이지폴트 없이 명

TZIPC : ARM TrustZone을 이용한 보안 IPC 135

령어가 실행된다.

마지막으로 모든 작업이 끝난 후에, (b) 역에 근

한다. 마찬가지로 페이지폴트가 일어나고, 모니터에 진

입한다. 이때, (a), (b) 역 모두를 secure world만

근하게 변경한다.

3.3.3 재 애 리 이션의 식별

재 실행 인 로세스마다 주소공간이 다르다는

을 이용한다. 주소공간의 경우 페이지테이블에 의해서

이루어지므로, 각 로세스마다 페이지테이블 지스터

의 내용이 다르다. 따라서 페이지테이블 지스터 값을

이용하여, 재 실행되고 있는 로세스를 식별할 수 있다.

3.4 동작 외상황 처리

3.4.1 IPC 에 IRQ 는 FIQ 발생시

IPC 메시지 송/수신 에 IRQ 는 FIQ가 발생하여,

도 에 운 체제의 커 쪽 코드가 선 할 수 있다.

한, 커 이 선 한 이후, 스 링 등을 통해 다른 애

리 이션 한 실행 될 수 있다. 이런 경우 IPC를 사용

하는 도 이었다면, 근 제한이 해제되었던 역이 그

로 노출될 수 있다.

따라서 모니터 모드의 IRQ/FIQ 핸들러에서 해당 역

의 근 권한을 secure world에서만 근 가능하도록 권한

을 다시 조정하여 다. 그림 5는 이 과정을 나타내고 있다.

그림 4와 다르게 그림 5에서는 간부분에 커 이 선

하는 부분이 있다. 하지만 미리 역 모두를 secure

world만 근가능하게 권한을 조정하 으므로 안 하다.

IRQ/FIQ에 한 처리가 모두 끝나고, IPC를 수행하던

로세스로 다시 돌아가면 다시 IPC 메시지 송을 수행

하면서, TrustZone 페이지폴트가 발생하게 된다. 이 때,

다시 normal world에서도 근이 가능하게 변경한다.

3.4.2 근 제한 역에 근했을 시

모니터 모드의 페이지폴트 핸들러에서 재 로세스가

그림 5 IPC 에 IRQ 는 FIQ 발생시 흐름도

Fig. 5 A flow diagram when IRQ or FIQ occurs during IPC

해당 역에 근이 불가능하다고 정되었다면, normal

world로 돌아갈 때, 페이지폴트가 발생한 다음 명령어

로 이동한다. 결과 으로 해당 역에 근했던 명령어

는 아 무시되어진다.

4. 실험 환경 구

TZIPC와 기존 IPC와의 비교분석을 해서 ARM

cortexA8 CPU를 사용하는 보드를 통해 구 하고 실험

하 다. 표 1은 실험한 보드의 구체 인 하드웨어 환경

을 보여주고 있다.

표 1 실험 보드의 하드웨어 환경

Table 1 The hardware environment of experiments

CPU

Manufacturer/Model Samsung/S5PC100

Frequency 666MHz

I/D/L2 Cache 32KB/32KB/256KB

Memory

Capacity 128MB x 4

Speed DDR2 (333Mbps)

실험에 사용된 CPU인 S5PC100는 iRAM이라는 메모

리 역만 일부를 secure world에서만 근 가능한

역으로 지정할 수 있다. 한, iRAM의 경우에는 캐시

설정이 strongly ordered로 되어있지 않으면 TrustZone

페이지폴트가 제 로 일어나지 않으므로, strongly ordered

로 캐시설정을 해주어야 한다.

소 트웨어 환경은 보드제조사에서 기본으로 제공하

던 안드로이드 랫폼을 수정하여 구동시켰다. 해당 안

드로이드 랫폼의 리 스 버 은 2.6.29이다.

4.1 기존의 운 체제를 Normal world에서 실행

TZIPC는 기존의 운 체제를 normal world에서 수행

하게 하고 IPC를 secure world에서만 근가능하게 하는

구조이다. 따라서 마치 반가상화(Para-virtualization)처

럼, 기존의 운 체제를 normal world에서 실행시키게

하는 작업이 필요하다. 기존의 운 체제를 수정 없이 바

로 normal world에서 실행은 불가능하며, 그 이유는 다

음과 같다.

1) 운 체제를 처음 기화하는데 있어서 secure world

에서만 실행 가능한 명령어를 실행해야 하는 경우가

있다. 이러한 경우, SMC 콜을 통해서 secure world

에서 해당 명령어를 신 수행하게 변경해 주어야 한

다. 일반 으로 TrustZone을 고려하지 않은 운 체제

를 TrustZone을 지원하는 로세서에 올릴 때는 이러

한 문제 이 없는데, 로세서가 기화되었을 때,

로세서의 world가 secure world로 되기 때문이다.

2) 처음에 secure world에서 동작하기 때문에, secure

136 정보과학회논문지 : 시스템 이론 제 40 권 제 3 호(2013.6)

world에서 normal world로 world간 환하는 코드

가 필요하다. 한 모니터 모드에서 실행되는 코드

한 필요하다. 따라서 이러한 코드들이 재될 수

있는 메모리공간이 필요한데, 이 부분을 설정해 주기

해서 기존의 운 체제의 메모리맵이나 메모리크기

에 련한 설정을 변경해 주어야 한다.

5. 신뢰성 분석

앞서 3 에서는 본 논문에서 제안하는 TZIPC의 구조

에 해 서술하 다. 이번 에서는 TZIPC와 기존 IPC

각각에 공격을 실제로 수행하 을 때의 결과에 해 보

이고, 그 결과를 바탕으로 신뢰성을 비교하고자 한다.

5.1 분석에 사용된 공격의 가정 시나리오

운 체제가 변조되었을 경우 운 체제 내부의 변수를

엿보거나 수정하는 것이 가능하다. 운 체제가 IPC

련 정보를 모두 알고 있으므로 운 체제가 변조된다면

IPC시에 데이터들의 무결성을 보장할 수 없게 된다.

무결성을 보장할 수 없게 되는 구체 인 상황은 다음

과 같다. 공유메모리를 사용하는 IPC가 있다고 가정하

자. 운 체제는 공유메모리의 정보를 알고 있으므로 운

체제가 변조되었을 경우, 악의 인 로세스가 자신의

주소공간에 공유메모리와 동일한 물리주소를 가진 메모

리를 매핑하는 것이 가능해진다. 이를 통해, IPC 시에

데이터들을 가로채거나 변조하는 것이 가능하다.

따라서, 분석을 해서 의 상황을 가정으로 한 다음

과 같은 공격 시나리오를 사용하 다.

1) IPC를 사용하기 해 공유메모리를 변조된 운 체제에

요청한다.

2) 변조된 운 체제는 공유메모리를 매핑할 때, 악의

인 로세스에게도 동일한 물리주소를 가진 역을

매핑해 다.

3) 악의 인 로세스는 이 역을 이용하여 공유메모리

내의 데이터를 읽거나, 변조하려는 시도를 한다.

5.2 공격시 기존기법과의 결과 비교

앞서 5.1 에서 설명한 가정과 시나리오를 토 로 공

격을 시도해 보았다. 비교 상으로 한 기존 IPC는 공유

메모리를 이용하는 IPC이다. 표 2는 공격 시도에 따른

성공 여부에 한 비교 결과를 나타낸다.

표 2를 보면, 제안한 IPC인 TZIPC가 기존의 IPC들

과 보이는 가장 큰 차이는 권한을 리하는 주체라고

할 수 있다. TZIPC에서는 모니터에서 TrustZone 페이

지폴트를 통해 메모리의 근 권한을 제어하는 반면, 기

존의 IPC는 운 체제에서 주소 공간을 통해 제어하고

있다. 그에 따라서 공격 성공 여부도 나뉘었다. TZIPC

에서는 공격이 실패하 으나, 나머지 기존의 IPC에서는

공격이 성공하 다.

표 2 제안한 IPC와 기존 IPC 비교

Table 2 The security comparison of proposed IPC and

existing IPC

The kind of IPC Access control Attack

Shared memory (DRAM) OS Success

AF_UNIX socket OS Success

Shared memory (iRAM) OS Success

Proposed IPC : TZIPC Monitor Failure

따라서 TZIPC에서는 운 체제가 변조가 되었다고 하

더라도 메시지를 가로채거나 변조하는 것이 불가능함을

알 수 있다. 동일한 물리주소를 가진 역을 매핑해도

TrustZone에 의해 근이 제한되었기 때문이다. 반면

기존 IPC는 운 체제가 변조되었을 때, 해당 역을 추

가 으로 보호할 수 있는 수단이 없어 메시지를 가로채

거나 변조하는 것이 가능하다.

6. 성능 분석

이 에서는 TZIPC와 기존의 IPC 각각에 실제로

공격을 수행해 본 결과를 토 로, TZIPC가 해당 공격

에 해 우수한 신뢰성을 갖고 있음을 보 다. 이번

에서는 송속도와 지연에 해 분석하고자한다.

6.1 기존 기법과 송 속도 비교

송 속도 측정을 해서 1페이지의 메모리(4KB)에

데이터를 읽고 쓰는 데 걸리는 시간을 측정하 다. 시간 측

정을 해 lmbench2.0의 API를 이용하 다[12]. lmbench2.0

API는 BENCH라는 매크로함수를 통해, 어떤 함수가

어느 정도의 시간이 걸리는지를, μsec단 까지 매우 정

하게 측정할 수 있는 도구이다. 다음 4 종류의 실험을

수행하 다.

1) DRAM을 mmap으로 공유메모리로 지정하여 데이터

읽고 썼다.

2) AF_UNIX 옵션으로 소켓을 열어 데이터를 주고받았다.

(AF_UNIX 소켓은 IPC로 흔히 쓰이는 방식으로, 같은

호스트 내의 로세스와 통신할 때 사용한다.)

3) iRAM을 mmap으로 공유메모리로 지정하여 데이터

를 읽고 썼다. (TZIPC가 iRAM을 사용하므로 오버

헤드 측정을 해 실험하 다.)

4) TZIPC를 사용하여 데이터를 주고받았다.

표 3은 이러한 4 종류 실험에 한 결과이다.

DRAM을 이용한 공유메모리, AF_UNIX 소켓, iRAM

을 이용한 공유메모리, 제안한 IPC인 TZIPC의 결과는

각각 27.9542, 34.7968, 379.2117, 380.1311μsec이다. 결

과를 비교하면 DRAM의 읽고 쓰는 속도가 가장 빠르

고, 그 다음 AF_UNIX 소켓으로 보내고 받는 속도,

iRAM 역, TZIPC의 속도 순이다.

TZIPC : ARM TrustZone을 이용한 보안 IPC 137

표 3 제안한 IPC와 기존 IPC기법과의 성능 비교

Table 3 The performance comparison of proposed IPC

and existing IPC

The kind of IPC Time (Unit : sec)

Shared memory (DRAM) 27.9542

AF_UNIX socket 34.7968

Shared memory (iRAM) 379.2117

Proposed IPC : TZIPC 380.1311

TZIPC의 속도가 가장 느리긴 하지만, 이는 iRAM을

사용하는 것이 DRAM를 사용하는 것보다 느리기 때문

이다. DRAM를 사용할 경우 iRAM을 사용하는 것보다

약 13.5배 더 빠르다. iRAM을 써야 하는 것이 모든

CPU에게 의무 사항은 아니다. DRAM도 secure world

만 사용가능한 역으로 지정할 수 있는 CPU가 많다.

ARM CortexA9인 Tegra3의 경우는 MC(Memory

Controller)를 이용하면 DRAM 역에 한 권한 지정

이 가능하다.

iRAM과 TZIPC의 속도를 비교해 보면, TZIPC가

iRAM보다는 느리다. 수행에 약 0.9μsec정도가 더 걸리

는데, 이는 TrustZone 페이지폴트로 인해, 모니터 모드

의 핸들러가 수행되는 시간이 더해졌기 때문이다. 하지

만 체 수행 시간으로 계산을 해보면, TrustZone 페이

지폴트로 인해 발생하는 오버헤드는 약 0.24%정도로 극

히 미미한 정도라고 볼 수 있다.

6.2 IRQ 는 FIQ 발생시 지연 분석

IRQ 는 FIQ 발생시 secure world에서만 근 가

능하도록 권한을 조정하는 작업을 해주므로 약간의 지

연이 일어날 수 있다. ARM 로세서에서 기본 으로

제공하는 시스템 퍼포먼스 모니터를 사용하여 사이클

수를 측정하고 지연을 분석하 다. 표 4는 이러한 지연

을 측정한 결과를 나타낸다.

사이클 수는 1,229이고 동작 주 수를 통해 소모시간

을 계산한 결과, 소모시간은 2.0483μsec이다. 따라서 매

우 은 양의 사이클을 소모하는 것을 확인할 수 있었

다. 소모시간 역시 sec단 로 매우 게 사용함을 확

인 할 수 있었다. 따라서 TZIPC에 의한 IRQ 는 FIQ

의 지연은 거의 없다고 할 수 있다.

표 4 TZIPC에 의한 IRQ 는 FIQ의 지연

Table 4 The delay caused by TZIPC when IRQ or FIQ occurs

The number of cycle 1,229

Time (Unit : sec) 2.0483

7. 결 론

신뢰성 있는 시스템을 구축하는 데 있어서 안 한

IPC는 상당히 요한 부분 에 하나이다. 한 Root-

ing이나 Jail-breaking과 같은 기법으로 인해, 더 이상

소 트웨어 인 고립은 충분하지 않다. 따라서 본 논문

에서는 하드웨어 인 고립기법인 ARM TrustZone을

이용하여 안 한 IPC를 제안하 다.

본 논문에서 제안한 IPC인 TZIPC는 약 0.24%의

은 오버헤드로도 IPC 메시지를 안 하게 보호할 수 있

었다. 보호를 해, 모니터 모드에 IPC의 코드 데이

터를 고립시키고 normal world에서는 근이 불가능하

게 하 다. 따라서 악의 인 운 체제나 운 체제 변조

에 의한 공격을 막을 수 있다.

참 고 문 헌

[ 1 ] He Liu, Stefan Saroiu, Alec Wolman, and Himanshu

Raj. Software abstractions for trusted sensors. In

Proceedings of the 10th international conference

on Mobile systems, applications, and services

(MobiSys '12), ACM, New York, NY, USA, 2012.

[ 2 ] AhnLab. ASEC Report vol.25, http://download.ahnlab.

com/asecReport/ASEC_Report_Vol.25_Kor.pdf

(available 2012, Nov. 30)

[ 3 ] Amit Vasudevan, Emmanuel Owusu, Zongwei

Zhou, James Newsome, Jonathan M. McCune.

Trustworthy Execution on Mobile Devices: What

Security Properties Can My Mobile Platform Give

Me? In Proceedings of the 5th international

conference on Trust and trustworthy computing

(TRUST'12), 2012

[ 4 ] Dan R. K. Ports and Tal Garfinkel. Towards

application security on untrusted operating systems.

In Proceedings of the 3rd conference on Hot

topics in security (HOTSEC'08). USENIX Asso-

ciation, Berkeley, CA, USA, 2008.

[ 5 ] William Enck, Peter Gilbert, Byung-Gon Chun,

Landon P. Cox, Jaeyeon Jung, Patrick McDaniel,

and Anmol N. Sheth. TaintDroid: an information-

flow tracking system for realtime privacy moni-

toring on smartphones. In Proceedings of the 9th

USENIX conference on Operating systems design

and implementation (OSDI'10). USENIX Association,

Berkeley, CA, USA, 1-6, 2010.

[ 6 ] Theinfow. http://works.bepress.com/cgi/viewcontent.

cgi?article=1001&context=mark_benson (available 2012,

Nov. 30)

[ 7 ] Thesnkchrmr. RageAgainstTheCage. http://works.bepress.

com/cgi/viewcontent.cgi?article=1001&context=mark

_benson. (available 2012, Nov. 30)

[ 8 ] Matthias Lange, Steffen Liebergeld, Adam Lac-

korzynski, Alexander Warg, and Michael Peter.

L4Android: a generic operating system framework

for secure smartphones. In Proceedings of the 1st

ACM workshop on Security and privacy in smart-

phones and mobile devices (SPSM '11). ACM,

138 정보과학회논문지 : 시스템 이론 제 40 권 제 3 호(2013.6)

New York, NY, USA, 2011.

[ 9 ] Samuel T. King, Peter M. Chen, Yi-Min Wang,

Chad Verbowski, Helen J. Wang, and Jacob R.

Lorch. SubVirt: Implementing malware with virtual

machines. In Proceedings of the 2006 IEEE

Symposium on Security and Privacy (SP '06).

IEEE Computer Society, Washington, DC, USA,

2006.

[10] Google Developers site. Application Licensing.

http://developer.android.com/guide/google/play/licen

sing/index.html (available 2012, Nov. 30)

[11] ARM Limited. ARM security technology: Building a

secure system using TrustZone technology. White-

Paper PRD29GENC-009429C, 2009.

[12] Carl Staelin and Hewlett-packard Laboratories.

lmbench: Portable Tools for Performance Analysis

In proceedings of USENIX Annual Technical

Conference, 1996.

유 성 배

2012년 2월 건국 학교 컴퓨터학과 학사

2012년~ 재 고려 학교 컴퓨터 통

신공학과 석사 과정. 심분야는 임베디

드 시스템, 시스템 가상화

김 세 원

2004년 2월 고려 학교 컴퓨터학과 학사

2006년 2월 고려 학교 컴퓨터학과 석사

2006년~ 재 고려 학교 컴퓨터 통

신공학과 박사과정. 심분야는 시스템 가

상화, 력 리

유 시 환

2002년 2월 고려 학교 컴퓨터학과 학사

2004년 2월 고려 학교 컴퓨터학과 석사

2013년 2월 고려 학교 컴퓨터 통신

공학과 박사. 심분야는 실시간 운 체

제, 내장형 시스템, 시스템 가상화

1982년 2월 서울 학교 자공학과 학사

1983년 2월 서울 학교 자공학과 석사

1986년 8월 Master of Computer Sci-

ence in University of Michigan. 1990

년 8월 Ph.D of Computer Science in

University of Michigan. 1990년~1995

년 Sun Microsystems Lab.Researcher. 1995년~ 재 고

려 학교 컴퓨터 통신공학과 교수. 심분야는 시스템

가상화, 멀티코어 랫폼, 커 네트워킹, 센서 네트워킹, 멀

티미디어 스트리