안드로이드 보안영역 해킹 취약점

CVE-2019-10574

Android 스마트폰에는 보안 영역이란 것이 있다. 사용자가 설치한 앱이 사용하는 일반 영역과 격리되어, 민감한 정보들이 저장되고 처리되는 곳이다. 지문 같은 생체 정보, 암호화 키, 금융 정보 등이 보안 영역에 저장된다. 이런 구성을 TEE(Trusted Execution Environment)라고 한다.

보안 영역에는 Trusted app(신뢰된 앱)만 접근할 수 있으며, 사용자가 설치한 일반 앱은 직접 접근할 수 없다. 일반 앱이 지문 인식, 저장매체 암호 해제, 금융 거래 등을 위해 보안 영역에 저장된 정보에 접근하려면, 신뢰된 앱에 요청하여 정보를 얻는다.

안드로이드 스마트폰에 대부분 사용되는 ARM 계열의 CPU는, ARM이 원천 특허를 가진 TrustZone을 이용해 보안 영역을 구성한다. 이때 각 CPU 제조사는 트러스트존을 독자적인 방식으로 자사 CPU에 적용한다. 대세를 이루고 있는 Qualcomm CPU의 트러스트존은 QSEE(Qualcomm Secure Execution Environment)라고 부른다.

2019.11.14일 발표된 Check Point의 보고서에서는 QSEE에 접근해 정보를 탈취할 수 있는 방법을 찾아냈다.

Qualcomm TrustZone의 취약점

보고서에서는 일반 영역을 Normal world, 보안 영역을 Secure world라고 표현했다. 그리고 신뢰된 앱을 trustlet이라고 했다. 이 연구에서는 CVE-2015-6639, CVE-2016-2431 등 퀄컴 트러스트존의 오래된 취약점도 이용됐다.

체크포인트가 사용한 수법은 먼저 신뢰된 앱을 일반 영역에서 실행하는 데서 출발한다. 일반 영역에서 신뢰된 앱을 변조하고, 변조 검증 절차를 무력화하여 보안 영역에서 실행시킨다. 악성코드가 보안 영역에서 실행되는 것이다.

연구는 구글 넥서스 6를 통해 이루어졌으며, 이후 LG, 모토로라, 삼성의 일부 기종에서도 성공했다.

이 취약점 CVE-2019-10574는 6월에 퀄컴에 통보됐으며, 퀄컴은 10월에 각 스마트폰 제조사에 패치를 제공했다.

보안 영역에 대한 과신은 금물

CPU 내에 있는 하드웨어적인 보안 영역이라고 해도, 출시된 상태로 고정된 것이 아니라 소프트웨어적으로 이용할 수 있도록 설계된 만큼, 악성코드가 침투할 수 있는 가능성은 열려 있다.

PC에서도 인텔 CPU의 보안 영역인 SGX Enclave에 침투하는 방법이 몇몇 알려져 있다(관1). 퀄컴의 보안 영역에서 취약점이 발견된 것도 이번이 처음이 아니다.

이들 보안 영역은 비교적 안전한 것이 사실이다. 하루에도 수십 개씩 발견되는 흔한 악성코드가 침투할 수는 없다. 그러나 지독한 놈에게는 당할 수 밖에 없다.

금융, 생체 인증 등과 관련된 앱의 소개를 보면, 민감한 정보는 별도의 보안 영역에 저장되어 해킹으로부터 안전하다고 선전하는 경우가 많다. 그러나 맹신해서는 안된다. 평소 악성코드에 감염되지 않도록 주의해야 한다.

그리고 인텔 CPU에서 스펙터(Spectre)류의 취약점이 계속 발견되고 있지만, 마이크로소프트에서 Windows 업데이트를 통해 대응하고 있다. 하드웨어적인 결함이라 근본적인 해결책은 못되지만, 아직 큰 사고는 나지 않는 것으로 볼 때, 효과적인 대응이라고 할 수 있다. 이 혜택은 PC 제조사와 관계 없이 모든 윈도우 사용자가 누리고 있다.

그러나 안드로이드 업데이트는 여전히 각 스마트폰 제조사가 담당하고 있다. 모든 안드로이드 사용자가 제때 업데이트를 받지는 못한다는 것이다. 고질적인 문제다.


관련 자료
  1. 포어섀도우(Foreshadow), 인텔 CPU 보안영역 해킹 취약점

참고 자료
  1. Qualcomm Bug Exposes Critical Data on Samsung, LG Phones
  2. The Road to Qualcomm TrustZone Apps Fuzzing

댓글

이 블로그의 인기 게시물

엑셀 필터 상태에서 복사와 잘라내기

가정에서도 망 분리를 해보자

잉크젯 프린터 전원은 항상 켜 놓아야 좋다