더 나은 세상

ARM Trustzone 본문

컴퓨터 프로그래밍

ARM Trustzone

leemark 2022. 1. 13. 22:29

이 게시글은 http://bits-please.blogspot.com/2015/08/full-trustzone-exploit-for-msm8974.html

 

Full TrustZone exploit for MSM8974

A security blog focusing on Android, the Linux Kernel and everything nice.

bits-please.blogspot.com

위 글의 해석을 포함하고 있습니다.

우선 ARM의 trustzone을 이해할 필요가 있습니다.

따라서 ARM의 trustzone을 설명하고 exploit을 하는 방법으로 넘어가겠습니다.

trustzone이란 ARM에서 발표한 architecture로 하나의 os로 이루어진 sw 계층구조를 2개로 나누어 normal world와 secure world로 나누고 있습니다.

ARM trsutzone

이와 같은 개념은 ARM에서 처음 제시한 것은 아니고 TEE(Trusted Execution Environment)라는 대명사로 불리고 ARM에서 다른 명칭을 붙여서 Trust zone이라고 하는 것입니다. 마치 TEE는 스마트폰이고 애플에서 붙인 이름이 아이폰과 같은 의미입니다. 이런 trustzone을(줄여서 TZ) 이용하여 ARM은 악성코드가 있을지 모르는 normal world의 application과 OS를 우리의 개인정보가 포함되어 있는 secure world로부터 보호하고 있습니다.

위의 그림에서 보시면 open application은 악성코드가 있을지 모르는 application이고 embedded OS는 안드로이드정도로 생각하시면 됩니다. OS에도 보안 기능이 있긴 하지만 워낙 application이 많고 OS kernel의 코드도 길기 때문에 방어가 불가능하다고 보고 OS도 믿지 못하게 되었죠. 이렇게해서 태어난 개념이 TEE고 TZ는 ARM이 이를 바꿔서 만든 개념입니다. ARM architecture는 모바일에서 주로 쓰기 때문에 모바일 환경에서는 TEE는 TZ라고 칭하고 그 외의 영역에서는 TEE라고 호칭합니다. secure OS는 secure world에서 동작하는 OS이고 normal OS와 비슷한 동작을 하지만 하는 역할은 아무래도 적어질 수 밖에 없죠. trusted application은 우리의 개인정보를 가지고 있는 은행어플이나 증권어플 같은 것을 의미하게 됩니다. 가장 아래를 보시면 secure core가 나오는데 secure core는 가장 최근에 나온 개념으로 core가 하나 더 있다고 생각하시면 됩니다.

 

'컴퓨터 프로그래밍' 카테고리의 다른 글

[윈도우 프로그래밍]  (0) 2022.01.13
ARM page table  (0) 2019.04.05
CVE-11176(3)  (0) 2019.03.31
CVE-11176(2)  (0) 2019.03.31
CVE-11176(1)  (0) 2019.03.30