사용자 안드로이드 기기를 루팅해 전체 제어 권한을 갖는 Drammer 안드로이드 핵 발견
New Drammer Android Hack lets Apps take Full control (root) of your Phone
2015년 초, 구글 프로젝트 제로의 보안연구원들이 메모리 설계상에 존재하는 결점을 악용하여 더 높은 커널권한을 획득하여 리눅스 컴퓨터를 하이재킹하는 방법을 공개했습니다. 그리고 최근 과거에 발견되었던 동일한 설계상의 결점으로 안드로이드 수백만대에서 제한없이 "루트"접근권한을 얻어 누구나 해당 기기들을 제어할 수 있는 취약점이 발견되었습니다.
Vrije Universiteit Amsterdam의 VUSec Lab 연구원들은 Rowhammer 공격방법을 사용하여 모바일 기기의 DRAM을 공격하는데 성공했습니다. 이는 모바일 기기에서 Rowhammer 취약점이 악용된 첫 사례입니다.
DRAM Rowhammer 공격이란?
Row Hammer 취약점의 가장 큰 특징은, 바로 bit flip 현상입니다. 모든 컴퓨터 데이터들을 실행가능한 0과 1의 구조로 바꾸는데, bit flip 현상은 DIMM내의 값을 2진수로 변경합니다.
메모리의 특정영역이 Hammering이 되면, 주변 row를 방해하여 해당 row에서 다음 row의 전기가 손실되며, 결과적으로 bit filp이 발생하게 됩니다. 이러한 변조를 통하여 공격자는 기기의 루트 권한을 획득할 수 있습니다.
▶ FFS Rowhammer 공격, 리눅스 VM 하이재킹
간단히 말하면, Rowhammer는 새로운 세대의 DRAM 칩의 메모리 row에 반복적으로 접근해 인접한 row에 “bit filp”을 야기시켜, 누구나 메모리에 저장된 컨텐츠의 값을 변경하도록 허용합니다.
연구원들은 모바일에서 Rowhammer 공격을 확인하기 위해 DRAMMER라 명명된 새로운 PoC 익스플로잇을 만들어 테스트를 진행했습니다. 그 결과, 안드로이드 기기들을 완벽히 루팅할 수 있도록 데이터의 중요한 비트들을 변경하는데 성공했습니다. 해당 공격은 구글의 넥서스 4 및 5, 엘지 G4, 삼성 갤럭시 S5 및 S5, 2013~2014년에 출시된 모토로라의 Moto G 모델, OnePlus의 One을 포함한 안드로이드 기기들을 성공적으로 루팅했으며, 다른 제조사의 기기들도 포함될 가능성이 있습니다.
Drammer 공격의 동작 방식(익스플로잇 소스 코드)
연구원들은 특별한 사용자 승인이 필요하지 않은 루팅 익스플로잇이 포함된 앱을 개발하였습니다. DRAMMER 공격이 실행되기 위해서는 피해자가 악성코드(연구원들의 익스플로잇 코드)가 포함된 앱을 다운로드해야 합니다.
연구원들은 ION memory allocator 안드로이드 메커니즘을 악용해 DRAM으로의 직접 접근 권한을 획득했습니다. ION memory allocator는 모든 앱에 DRAM 접근 권한을 부여할 뿐만 아니라, DRAM의 인접 row들을 확인할 수 있도록 하여 타겟 비트를 filp하는데 아주 중요한 요소가 됩니다.
이후 피해자의 기기에서 데이터에 접근하는 것부터 사진찍기까지, 가능한 전체 제어권을 얻을 수 있는 루트 접근 권한을 위해 어떻게 비트를 filp해야 할지 연구했습니다.
그들은 “우리의 기술은 높은 레벨에서 서로 다른 사이즈의 사용 가능한 메모리 덩어리들을 모두 소진시킵니다. 이후 물리적 메모리 allocator를 확실하게 예측 가능한 메모리 영역의 서빙을 시작하는 상태로 만드는 방식으로 동작합니다.”, “우리는 해당 allocator가 강제로 물리적 메모리에 자리잡고, bit filp에 취약하고 메모리 내의 인접한 부분들에 hammering을 가합니다. 이후 우리가 제어할 수 있는 페이지 테이블 등의 보안에 민감한 데이터를 타겟으로 합니다.”고 설명했습니다.
일단 이 악성 앱을 다운로드하면, DRAMMER 익스플로잇은 단 몇 분, 몇 초 만에 사용자의 기기의 제어권을 탈취합니다. 이는 사용자와의 어떠한 상호작용 없이 실행되며, 심지어 사용자가 다른 앱을 사용하고 있을 때나, 폰이 슬립모드인 상태에도 공격은 계속됩니다.
연구원들은 사용자들이 자신의 안드로이드 폰을 직접 테스트할 수 있도록 고안된 앱(소스코드)을 발표할 예정입니다. 또한 취약한 기기의 리스트를 만들기 위해 사용자들의 기록을 익명으로 수집할 것입니다.
빠른 수정이 불가능한 Drammer
지난 7월, 연구원들은 구글에 이를 제보했습니다. 구글은 해당 결점을 “심각함” 수준으로 분류하고, $4,000의 버그바운티를 지급했습니다.
구글은 그들의 파트너 제조사들에게 해당 이슈에 대해 알렸습니다. 또한 DRAMMER 공격 실행을 더욱 어렵게 만들기 위한 완화법을 개발하여 11월 보안 공지에 포함할 예정입니다.
그러나 연구원들은 이미 출시된 안드로이드 스마트폰의 메모리 칩을 바꿀 수 없다는 점을 들며 강력하게 경고했습니다. 또한 DRAMMER가 악용하는 소프트웨어의 기능들은 OS들에 핵심적이고 필수적이기 때문에, 사용자경험(UX)에 영향을 미치지 않고서는 삭제되거나 수정될 수 없다고 덧붙였습니다. 이는 해당 공격이 다음 세대의 안드로이드 기기에서 패치되기 어렵다는 의미입니다.
안드로이드 6.0.1에서의 Drammer 공격 시연 영상
▶ LG 넥서스 5 관련 영상 자세히 보기
연구원들은 루팅되지 않은 엘지 넥서스 5에서 DRAMMER 공격을 시연하는 PoC 영상 2개를 공개했습니다. 첫 번째 영상에 사용된 스마트폰은 안드로이드 6.0.1을 사용하며, 지난 10월 5일 공개된 구글의 보안 패치를 완료했습니다.
▶ Stagefright 버그 관련 영상 자세히 보기
두 번째 영상에서는 DRAMMER 공격이 많은 안드로이드 기기에서 Stagefright 버그와 결합될 수 있다는 것을 보여주고 있습니다. 해당 버그는 아직까지도 패치가 완료되지 않았습니다. Stagefright를 악용하면 advanced shell을 얻을 수 있으며, DRAMMER 익스플로잇을 실행하면 해당 shell이 루트 권한을 얻게 됩니다.
관련하여 더욱 자세한 정보는 DRAMMER에 관한 페이지를 방문하거나, 연구원들이 발행한 논문에서 확인할 수 있습니다.
출처 :
http://thehackernews.com/2016/10/root-android-phone-exploit.html
모든 윈도우 버전 공격 가능한 코드 인젝션 기술 "AtomBombing" 발견 (0) | 2016.10.31 |
---|---|
CVE-2016-8610: “SSL Death Alert“ 취약점 발견 (0) | 2016.10.27 |
폭스콘이 OEM으로 생산하는 Android 휴대폰에서 “Pork Explosion” 취약점 발견! (0) | 2016.10.26 |
대규모 ATM 해킹이 발생... 320만명 인도 사용자의 계정정보 유출돼 (0) | 2016.10.25 |
Linux 커널에서 "Dirty Cow(CVE-2016-5195)" 제로데이 취약점 발견! (0) | 2016.10.25 |
댓글 영역