학회_공부해요/모바일포렌식

안드로이드 데이터 추출 기법

yenas0 2024. 11. 12. 16:45
반응형

안드로이드 폰 이미징

포렌식에서 물리 또는 논리적 수집과정을 기기 이미징 이라고 함

물리적 이미지는 안드로이드 기기 메모리의 비트 단위 복사본

비트 단위 이미지는 기기 상의 콘텐츠를 복사 붙여넣기 하는 것과는 다름

기기 콘텐츠를 복붙하는거는 보이는 파일, 숨겨진 파일, 시스템 관련 파일만 복사.. -> 논리적 이미지

논리적 이미지로는 삭제된 파일이나 접근 불가능한 파일들은 복사되지 않음.

모든 데이터를 얻으려면? 메모리 비트 단위로 이미징 해야함

 

가정) 전원이 켜지지 않는 데스크탑 컴퓨터를 압수해 포렌식 조사를 함

조사관은 write blocker에 연결해 비트 단위 포렌식 이미지를 도구를 사용해 얻어냄 -> 원본 하드디스크는 데이터의 포렌식 이미징 과정 동안 안전하게 보호..

 

 

안드로이드 기기는 내부 저장소, 외부 저장소라는 두 가지 파일 저장공간이 있음

내부저장소: 내장된 비휘발성 메모리

외부저장소: micro SD 카드와 같은 분리 가능한 저장 공간

외부 저장소를 항상 분리할 수 있는거는 아니고 있을 때는 메모리 카드의 포렌식 이미지가 수집되야한다.

 

데이터 추출 기법

1. 수동 데이터 추출

메모리에 존재하는 데이터에 접근하기 위해 모바일 기기의 일반적인 유저 인터페이스를 사용

단점: 운영체제가 접근 가능한 파일들만 조사가 가능함

기기를 수동으로 작동시, 잘못되 버튼이나 데이터 조작이 가능하므로 주의해야함.

 

안드로이드 기기 수집을 위해 루트 권한 사용

기본적으로 안드로이드 내부 디렉토리와 시스템 관련 파일들에 대한 접근 허용은 안됨. 근데 루팅하면 된다..

기기를 루팅하면 슈퍼유저 권한이 되어서 모든 데이터에 접근이 가능하다.

근데 넥서스 4랑 5에서는 루팅하면 파티션 강제로 삭제하기도 함.. 이러면 모든 유저 데이터가 삭제됨.

루팅이 많은 데이터를 제공하는거는 맞는데 데이터가 삭제되거나 핸드폰 망가질 수도 있음

 

2. 논리적 데이터 추출

논리적 데이터 추출 리법은 파일 시스템에 접근하는 것을 통해 기기에 존재하는 데이터를 추출함.

사용하기에 쉽다.

데이터 추출동안 루팅 되어있어야댐! 루트 권한 없어도 ㄱㅊ긴한데 모든 파일에 접근하려면 루팅 된 상태로 해야됨.

논리적 추출은 adb pull 명령어 또는 content provider 명령어 사용함

 

adb pull 명령어 사용

adb는 명령행 도구로 정보를 추출하기 위해 기기와 통신하는 것을 도움.

adb 사용해서 기기의 모든 데이터 추출하거나 관심있는 파일만 추출할 수 있음. 이때 개발자모드에서 USB 디버깅 옵션은 켜둬어야됨.

애플리케이션 데이터는 아래 위치 중에 하나에 저장됨.

Shared preferences key-value 쌍으로 이뤄진 데이터가 경량의 XML 포맷 
Shared preference 파일은 애플리케이션 /dat 디렉토리의 shared_pref 폴더 에 저장
내부 저장소 개인소유이며 기기의 내부 메모리에 위치
다른 애플리케이션이 접근 불가
외부 저장소 공개된 데이터를 일반적으로 보안 매커니즘의 적용 받지 않는 기기의 외부 메모리에 저장
/sdcard 디렉토리에 있음
SQLite 데이터베이스 /data/data/PackageName/ 데이터베이스에서 찾을 수 있음.
보통 db 파일 확장자로 저장

 

3. 물리적 데이터 추출

JTAG랑 칩오프 두가지 방식있음

이런 방법은 어렵고 경험이 많이 필요함

 

JTAG

고급 데이터 수집 방법을 동원하는데 여기에는 기기의 특정 포트에 연결하고 기기에 저장된 데이터를 전송하기 위해 프로세서를 조작하는 것이 포함됨.

잘못되면 기기 손상 가능

그나마 노력 적게 든다..

 

칩오프

기기에서 NAND 플래시 칩을 제거해 정보 추출

ㄱㅣ기가 패스코드로 보호되어있고 USB 디버깅 활성화 안되어있을 때 동작

반응형