해당 도서의 10장_안드로이드 데이터 복구 기법 (269p-284p) 내용 정리


데이터 복구

기기에서 삭제된 데이터에 정상적으로 접근하지 못할 때 해당 데이터 되찾는 과정. 

삭제된 데이터 덮어쓰지 않기 위해 주의해야 할 점:

  • 폰 압수 후 다른 용도로 사용하지 않기
  • 기기 비행기 모드 설정, 네트워크 연결 옵션 비활성화, 기기 전원 끄기

삭제된 파일 복구

파일들은 삭제되었다고 표시되어 있지만 덮어쓰여지기 전에는 파일 시스템에 존재

삭제된 파일 안드로이드 기기에서 복구하는 것에는 두 가지 시나리오 포함: SD카드에서 삭제된 데이터 복구/기기 내장 메모리에서 삭제된 데이터 복구

  • SD 카드에서 삭제된 데이터 복구
    • Remo Recover for Android 등의 포렌식 도구 사용하면 됨
      1. 소프트웨어 설치 후 메인 화면에서 적절한 파일 복구 모드를 선택. 이때 안드로이드 기기가 반드시 USB 디버깅 모드로 연결되어 있어야 하며 그렇지 않으면 기기 탐지되지 않음
      2. 사용 가능한 저장소 목록 나오면 그 중에서 저장소 선택
      3. 복구할 파일 타입 선택하거나 모두 선택하고 계속 진행
      4. 복구 과정 완료되면 추출된 파일 목록 보여짐
  • 내장 메모리에서 삭제된 데이터 복구
    • 내장 메모리의 파일 시스템은 포렌식 도구들이 인식하지 못하거나 마운트하지 못할 수 있음
    • 폰 루팅되어 있지 않으면 안드로이드 폰의 내장 메모리의 미가공 파티션에 접근하지 못할 수 있음.
    • 발생 가능한 문제: 
      • 루팅 과정에서 /data 파티션에 데이터 기록될 수 있기 때문에 기기에 존재하는 가치 있는 데이터 덮어쓸 수 있음
      • 내장 파일 시스템은 YAFFS2(구형 기기), EXT3, EXT4, RFS 또는 안드로이드에 구현된 자체 시스템 될 수 있음 → 윈도우 파일 시스템을 대상으로 설계된 많은 복구 도구 동작 않을 것
      • 애플리케이션 데이터는 보통 SQLite 포맷으로 저장됨. 많은 포렌식 도구들이 이런 파일에 대한 접근 제공하지만 파일들을 내보내 네이티브 브라우저로 봐야 할 수도 있음.

SQLite 파일 파싱하여 삭제된 파일 복구

SQLite 데이터베이스는 삭제된 데이터를 데이터베이스 자체 내에 저장할 수 있음

사용자에 의해 삭제로 표시된 파일은 더 이상 활성화된 SQLite 데이터베이스 파일에 나타나지 않음

삭제된 데이터 포함할 수 있는 SQLite 페이지 내에는 비할당 블록/빈 블록 두 가지 영역이 있음

옥시즌 포렌식 SQLite 뷰어와 같은 사용 가능한 포렌식 도구를 사용하여 삭제된 데이터 파싱 가능 → 그러나 복구할 수 있는 양에 제약이 있음

 

- 안드로이드 기기에서 삭제된 SMS 복구하는 예제-

SMS/MMS 관련 사항은 /data/data/com.android.prociedrs.telephony/databases 아래에 mmssms.db라는 이름의 SQLite 데이터 베이스 파일로 저장되어 있음.

해당 파일 사용해 삭제된 SMS 복구하는 과정:

  1. 안드로이드 기기에서 USB 디버깅 모드 활성화시키고, 기기를 포렌식 워크스테이션에 연결. adb 명령행 도구 사용해 adb pull 명령을 내려 /data/data 아래의 데이터베이스 폴더를 추출. 파일이 로컬 컴퓨터에 추출되면 옥시즌 포렌식 SQLite 뷰어 도구 사용해 mmssms.db 파일 열기
  2. 도구에서 sms라고 명명된 테이블 클릭하고 Tables data 탭 아래의 현재 메시지 관찰
  3. 삭제된 데이터 보기 위해 Blocks containing deleted data 탭 클릭

 

 

파일 카빙 기법 사용한 복구

파일 카빙은 삭제되거나 숨겨진 파일을 분석 위해 복구 가능하게 만듦. 파일 시스템 메타데이터 없이 컴퓨터 파일을 조각으로부터 재조립하는 과정. 

카빙 과정에서 파티션/디스크 전체의 포렌식 이미지 생성하기 위해 특정 여러 바이너리 데이터를 대상으로 특정 파일 타입 검색되고 추출됨. 파일 카빙은 파일 시스템 메타데이터와 대조 없이 파일 구조와 내용만을 기반으로 드라이브의 할당되지 않은 공간에서 파일을 복구. 

 

파일 카빙은 실제 사용되는 기법에 따라 분류.

헤더-푸터 카빙 방법: 헤더와 푸터 정보를 기반으로 복구

파일 구조 기반의 카빙 방법: 파일 재구성 위해 파일의 내부 레이아웃을 사용

스마트 카빙 등의 새로운 기법: 몇 개의 유명한 파일 시스템 내에서 파편화 일어났을 때의 특성 사용

 

폰 이미징되면 스카펠과 같은 도구 사용해 이미지 분석 가능

스카펠: 파일 카빙을 위한 강력한 오픈 소스 유틸리티, 블록 데이터베이스 저장소 분석하고 삭제된 파일 인지하여 그 파일들을 복구. 

- 스카펠을 우분투 워크스테이션에서 사용하는 방법 - 

  1. sudo apt-get install scalpel 명령으로 스카펠을 우분투 워크스테이션에 설치
  2. /etc/scalple 디렉토리에 있는 scalpel.conf 파일은 지원하는 파일 형식에 대한 정보를 담고 있음. 안드로이드와 관련된 파일 지원하기 위해 해당 파일을 수정해야 함.
  3. 스카펠은 환경설정 파일과 함께 조사할 dd 이미지를 대상으로 실행해야 함. 환경설정 파일과 dd 파일을 입력으로 주고 명령어를 사용해 도구 실행할 수 있음. 명령어 실행되면 도구가 파일 카빙하고 생성하기 시작
  4. 출력 폴더에는 파일 타입에 따라 폴더가 생성됨. 폴더 각각에는 폴더 이름에 나타난 파일 형식을 가진 데이터가 존재
  5. 각 폴더는 사진, PDF 파일, ZIP 파일 등 안드로이드 기기에서 복구된 데이터 담고 있음

디스크디거(DiskDigger)와 같은 애플리케이션을 안드로이드 기기에 설치하여 내장 메모리와 SD카드로부터 다양한 형태의 파일 복구할 수 있음. 이 애플리케이션은 내장 메모리에서 콘텐츠 복구 위해 안드로이드 기기의 루트 권한을 요구함

 

기기에 설정된 구글 계정에 접근할 수 있다면 삭제된 주소록 복구 가능. 

구글 계정 접근 이후 데이터 복구 위해 거치는 과정:

  1. 지메일 계정에 로그인
  2. Gmail 클릭, Contacts 선택
  3. 주소록 목록 상단에 위치한 More 클릭
  4. Restore Contacts 클릭

이 기법 이용하면 이전 30일 이내의 어떠한 상태로 주소록의 상태 복구할 수 있음 


퀴즈

1. 파일 시스템 메타데이터와 대조 없이 파일 구조와 내용만을 기반으로 드라이브의 할당되지 않은 공간에서 파일을 복구하는 기법의 이름은?

더보기

파일 카빙 기법

2. 블록 데이터베이스 저장소 분석하고 삭제된 파일 인지하여 그 파일들을 복구하는 파일 카빙을 위한 강력한 오픈 소스 유틸리티의 이름은?

더보기

스카펠

 

+ Recent posts