[AXIOM] 모바일 아티팩츠 분석기능 (9)
안녕하세요. 도깬리 포렌식스 입니다.
오늘은 루팅(Rooting)에 대해 알아보겠습니다. 모두 화이팅 하세요!!!
Rooting
iOS에서의 ‘탈옥(jailbreaking)’과 비슷한 개념입니다.
루팅(rooting)은 디바이스의 시스템 파일에 대한 ‘root’레벨 또는 상위 사용자 권한을 획득하는 것 입니다.
기본적으로, Android는 대부분의 핵심 저장소(/data/)를 잠금 해둡니다.
따라서, SMS 데이터베이스와 같은 조사에 중요한 파일을 획득하기 위해서는 이러한 제한을 회피하거나 제거하여야 합니다.
그림참조 : https://www.nextpit.com/how-to-root-your-device-without-voiding-the-warranty
root level process는 일반적으로 보안 취약점 공격(security exploit)을 이용하여 서명되지 않거나 맞춤형 코드를 실행함으로써 이러한 권한을 상승시킬 수 있습니다.
이런 것을 수행하는 표준화된 방법은 없습니다. 왜냐하면 취약점이라는 것은 하나의 디바이스 안에 특정한 하드웨어를 기반으로 하기 때문입니다.
만약 디바이스가 최종 사용자나 제3의 도구에 의해 루팅이 된다면, SuperSU와 같은 secondary gateway 어플리케이션이 될 수 있습니다.
SuperSU : 루트 접근을 원하는 어플리케이션에 대한 permission manager로써 기능을 합니다.
root에는 2가지 형태가 있습니다.
shell root
임시 root 입니다
디바이스가 재부팅될 때 까지만 유지됩니다.
이런 유형의 root는 좀더 ‘포렌식적으로 안전한(forensically sound)’ 것으로 간주되기 때문에 포렌식 분야에서 가치를 인정받고 있습니다.
다만 제3의 해커나 개발자들에 의해 개발이 덜 된 측면이 있습니다.
왜냐하면 대부분의 최종 사용자들은 디바이스를 사용하는 내내 root를 유지하는 것을 원하기 때문입니다.
permanent root
제3의 루팅 기술에서 훨씬 더 잘 알려진 기법입니다
예) KingRoot, KingoRoot, PingPong Root, StumpRoot 등등
이런 도구들은 특정 디바이스, 특정한 운영체제 버전을 위해 만들어졌고 해당 디바이스의 파일시스템에 오래 지속되고 상당한 변경을 초래할 수 있습니다.
상당수의 root level 취약점 공격 도구들이 기본적으로 쓰기 방지가 된 시스템 파티션에 파일을 두려고 합니다.
이런 것을 하기 위해, 그것은 먼저 해당 디렉토리에서의 퍼미션 변경을 시도합니다.
만약 어떤 포렌식 도구가 자동으로 root를 획득할 수 없다면, 포렌식 조사자는 직접 스스로 취약점 공격(exploit)을 시도할 필요가 있습니다.
처음 시작은 개발자 포럼과 웹사이트(http://xda-developers.com)를 이용하는 것이 좋습니다.
모든 써드 파티 루팅 도구들이 모든 포렌식 과정을 염두에 두고 개발된 것은 아니라는 사실을 알고 있어야 합니다.
그것은 디바이스에서의 정보를 영구삭제하거나 변경할 수 있으며 사건에서 증거로 사용하기 이전에 테스트 디바이스에서 시험되고 검증되어야 합니다.
AXIOM은 2가지 방법 중 하나를 사용하여 디바이스에 대한 shell rooting을 시도할 것 입니다.
이러한 방법은 안드로이드 버전 4.4.2 까지의 보안 취약점(security exploits)을 목표로 할 것 입니다.
이것 이상의 모든 버전은 현재 AXIOM으로 루팅되지 않을 것 입니다.
AXIOM은 오로지 Shell root가 안전하게 이루어질 때만 루팅을 시도할 것 입니다.
그것은 영구적으로 루팅하는 것이 아님을 의미합니다.
AXIOM은 성공한 것에 대해서는 어떤 방법론이 시도되었는지 로깅합니다.
만약 디바이스가 AXIOM에 의해 루팅되지 않았다면, 이미징을 위해 AXIOM으로 다시 돌아가기 전에 써드 파티 도구를 사용해 볼 수 있습니다.
AXIOM Process가 디바이스에 가한 루팅을 제거하기 위해서는 단순히 재부팅하기만 하면 됩니다.
Artifacts in a Full Image
AXIOM에 의한 Full Image 획득은 안드로이드 디바이스에서의 각 파티션을 이미징하게 합니다.
이들 각각의 파티션은 전체 이미지 .raw 파일에 추가될 것 입니다.
대부분의 데이터는 userdata 파티션에서 나오는 반면, 다른 중요한 파티션으로 조사자가 검토해야 할 것은 다음과 같은 것이 있습니다.
- system
- cache
- recovery
AXIOM Examine에 로드되면, 파티션이 확장되고, 추가적인 다음과 같은 아티팩츠가 생성됩니다.
/data/app/
설치된 어플리케이션(APKs)에 대한 저장 공간입니다.
/data/app-private/
제조사/통신사에 의해 미리 설치된 어플리케이션을 위한 저장 공간입니다.
/data/data/
주요 사용자 데이터 저장 공간입니다.
/data/system/
핸드셋 잠금과 다른 보안 정보에 대한 저장 공간입니다.
/data/media/
내부(internal) 또는 에뮬레이트된(emulated) MicroSD 스토리지에 대한 마운트 지점 입니다.
/data/misc
Wi-Fi 프로필과 같은 로그를 위한 저장 공간입니다.
/data/user
디바이스에서의 모든 사용자에 대한 목록입니다.
/system/app-private
미리 설치된 어플리케이션을 위한 또 다른 저장 공간입니다.
/system/app
안드로이드 디바이스 메모리는 여러 개의 파티션으로 나뉘어져 있습니다. 디바이스가 얼마나 많은 파티션을 만들 수 있는가에는 제한이 없습니다. 이것은 일반적으로 디바이스마다 다릅니다. 디바이스에서 발견되는 일반적인 파티션은 다음과 같습니다.
- Data (Userdata)
- System
- Recovery
- Cache
- Modem
- Boot
- Etc
물리적 이미지는 일반적으로 이러한 각각의 파티션을 포함하는 전체 메모리 이미지를 획득하는 것 입니다.
Magnet Acquire는 디바이스에서의 모든 파티션을 포함하는 dd 명령어를 이용하여 하나의 단일한 이미지 파일을 획득합니다.
감사합니다. 오늘도 즐거운 하루 되세요.
"좋아요"와 "구독하기"는 힘이 됩니다.
참고문서 : Magnet AXIOM Examinations (AX200)