임시 루팅

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

임시 루팅은 ADB(Android Debug Bridge) 및 안드로이드 전역 변수 RLIMIT_NPROC의 취약점을 공격하여 기기가 재부팅되기 전까지 관리자 권한을 유지한다. “rageagainstthecage”는 이러한 취약점을 이용하는 공격 코드로 안드로이드 시스템 내에서 동작하여 임시 루팅을 가능하게 한다. 이 공격 코드는 ADB 데몬의 PID를 저장하고 fork 명령을 통해 무제한 적으로 프로세스를 생성한다. 전역변수 RLIMIT_NPROC에는 시스템에서 최대로 생성 가능한 프로세스의 개수가 설정되어 있는데, 생성된 프로세스가 설정 값에 도달하게 되면 마지막으로 생성된 프로세스를 종료한 후 ADB를 재실행하게 하게 된다. 이 때 ADB가 재실행되면서 일시적으로 root 권한을 얻게 된다. 일반적으로 ADB로 shell 접속 시, 일반 유저 권한을 얻어야 하지만 RLIMIT_NPROC 초과로 인해 ADB 데몬이 setuid() 호출에 실패하게 된다. 현재 ADB에서는 setuid() 호출의 성공/실패 여부를 체크하지 않으므로, ADB 데몬이 루트 권한으로 동작하게 된다. 이와 같은 취약점을 이용한 루팅은 현재 안드로이드 버전 2.2.1까지만 적용된다. 최근에는 엘지 스마트 기기 안드로이드 버전 4.1 이상(Jelly Bean)인 경우 /sdcard/*_security와 같이 특정 경로에 특정 파일이 있으면 루트 권한을 획득할 수 있는 임시 루팅이 가능하다. 이 방식은 아래 그림과 같이 /system/bin/adb 데몬 내에 특정 파일 존재 유무를 확인하는 루틴을 우회함으로써 가능하게 된다.

옵티머스 Vu (/system/bin/adb)

여기서 /system/bin/adb 내에 해당 문구를 확인하는 방법은 아래 그림과 같이 busybox의 grep 명령어를 이용해서 확인이 가능하며, 스마트 기기별로 확인된 해당파일 이름은 아래 표와 같다.

옵티머스 G (/sdcard/G_security)
스마트 기기별 파일 이름
모델명 파일이름
LG-F100 옵티머스 Vu i_security
LG-F200 옵티머스 Vu2 d1l_security
LG-F180 옵티머스 G G_security
LG-F240 옵티머스 G Pro G_security
LG-F160 옵티머스 LTE2 d1l_security
LG-F260 옵티머스 LTE3 d1l_security

스마트기기에 미치는 영향

임시 루팅을 사용하는 방법은 스마트 기기를 부팅하여 데이터를 수집할 수밖에 없는 상황에서 가장 적합한 방법이다. 하지만, 스마트 기기가 부팅됨으로써 사용자 데이터가 존재하는 파티션(/data, /sdcard)이 마운트 되고 전력이 공급되면서 비할당 영역의 데이터가 변경될 수 있다는 단점이 있지만 이에 따른 데이터 변경은 미미하다. 임시 루팅은 최신 엘지 스마트기기(안드로이드 4.1 이상 운영체제가 설치된 스마트 기기)에 한하여 사용할 수 있으며, /sdcard 영역에 1byte의 파일 하나만 생성함으로써 수행할 수 있기 때문에 데이터의 변경을 최소화 할 수 있다. 또한, 해당파일 삭제 시 루팅이 해제되기 때문에 사용하기 간편하다는 장점도 있다.