상세 컨텐츠

본문 제목

퀄컴 칩 사용하는 안드로이드 기기에서 커널 취약점 발견

국내외 보안동향

by 알약(Alyac) 2020. 4. 17. 14:30

본문

Kernel vulnerabilities in Android devices using Qualcomm chips explored


퀄컴 칩을 사용하는 안드로이드 기기에 영향을 미치는 치명적인 취약점 2건에 대한 자세한 분석이 발표되었습니다.


CVE-2019-14040, CVE-2019-14041로 등록된 이 두 보안 취약점은 퀄컴 칩셋을 사용하는 모든 안드로이드 기기에 영향을 미치며, 악용될 경우 악성 애플리케이션에 루트 전체 권한을 부여할 수 있습니다.


Zimperium의 zLabs 연구 팀은 2019년 7월 31일 퀄컴 측에 이를 제보했습니다.

 

8월 4일 PoC가 전달되었으며, 퀄컴은 그로부터 한 달 후 안드로이드 기기 업체에 패치를 전달했습니다.


업체들이 이 보안 패치를 고객들에 배포할 수 있는 충분한 시간을 둔 후, 퀄컴은 지난 2월 보안 공지를 발행했습니다.


그리고 Zimperium은 PoC 코드를 GitHub (1, 2)에 공개했으며 이 커널 취약점에 대한 자세한 정보를 공개했습니다.


안드로이드 환경에는 TrustZone과 통신이 필요한 프로세스를 관리하는 QSEECOM(QTI Secure Execution Environment Communicator)이라는 드라이버가 존재합니다.


첫 번째 취약점인 CVE-2019-14041은 포인터와 함께 TrustZone으로 전송되는 버퍼 업데이트 함수에서 발생하는 race condition 이슈입니다.


QSEECOM에서 노출된 한 API는 /dev/qseecom 기기에 대한 ioctls 호출로 구성됩니다.  


중복을 방지하기 위해 완전히 다른 ioctls 두 개를 통해 버퍼 업데이트 함수에 접근할 수 있으며, 각 상황에서 다른 방식으로 작동합니다. 


그동안 이 함수는 data -> type을 확인하고, 이 호출을 통해 메모리를 손상시키는 것이 가능했습니다.


두 번째 취약점인 CVE-2019-14040는 커널 메모리 매핑에 존재하는 use-after-free 취약점입니다. 


Zimperium은 매핑에 사용된 ION 메커니즘이 사용자 공간의 프로세스가 특수 힙(heap) 외부의 메모리를 할당하는데, 다른 일반 메모리와는 다르게 행동하고 있어 그 결과 사용자 공간의 프로세스가 메모리 공간을 매핑하거나 읽기/쓰기가 가능해진다고 밝혔습니다.


할당된 ION 버퍼가 참조되면 핸들을 포함한 일부 파라미터가 저장됩니다. 


연구원들은 요청이 진행되기 전 확인 과정을 거치는 동안 표준 유효성 검사를 우회하고 커널 매핑을 해킹해 코드 실행이 가능할 수준으로 요청의 길이가 확장할 수 있음을 발견했습니다.


또한 다른 취약점(CVE-2017-13253, CVE-2018-9411, CVE-2018-9539) 공격 체인과 결합될 경우에도 악성 앱이 루트 권한을 가질 수 있어 민감 데이터 및 크리덴셜 탈취, 추가 악성코드 배포, 개인 전화 도청, 기기의 카메라 및 마이크 제어 등과 같은 행위가 가능해집니다.


이에 대해 퀄컴은 ZDNet 측에 아래와 같이 답변했습니다.


“우리의 최우선 과제는 강력한 보안과 프라이버시를 위한 기술을 제공하는 것입니다. Zimperium이 공개한 연구와 관련된 문제는 2019년 11월 픽스를 개발하여 제조사에 전달했으며 아직까지 악용된 사례를 찾아볼 수 없었습니다. OEM 측에서 패치를 제공한 즉시 사용자는 이를 업데이트할 것을 권장합니다.”





출처:

https://www.zdnet.com/article/technical-details-of-kernel-vulnerabilities-in-android-devices-using-qualcomm-chips-revealed/

https://blog.zimperium.com/multiple-kernel-vulnerabilities-affecting-all-qualcomm-devices/

관련글 더보기

댓글 영역