https://youtu.be/DWX2QmSLFpI?si=SrpViTAJOWdzVkeO

 


안드로이드 데이터 수집 Ⅱ

Logical dump

  • 파일 시스템 상에서 표시되는 파티션 내부의 파일 및 폴더를 획득하는 방법
  • 복호화된 데이터 획득할 수 있는 가능성 존재

◆ ADB(Android Debug Bridge)

  • 안드로이드 기기와 통신할 수 있는 명령 도구
  • ADB 명령어는 앱의 설치 및 디버깅과 같은 기기 작업에 사용된다. 
  • ADB 구성 요소
    • 클라이언트: 사용자가 입력한 명령어를 스마트폰 기기로 전송하는 역할
    • 서버: 클라이언트와 데몬 간의 통신을 관리
    • 데몬(adbd): 기기에서 명령어를 실행
  • ADB Backup
    • 동작 방식
      1. 컴퓨터에서 ADB Backup 명령어를 스마트폰으로 전송
      2. 스마트폰은 명령어 해석 후 원하는 데이터 추출
      3. tar 파일 형식으로 추출한 데이터를 묶어줌
      4. deflate 알고리즘으로 압축
      5. 백업 시 스마트폰에 입력한 암호를 키로 사용해 백업 파일 암호화하고 PC로 전송
    • 안드로이드 4.0부터 지원
    • 관리자 권한 없이 데이터 수집 가능
    • 이 기능 이용 위해서는 ADB 디버깅 활성화 필요
      1. 수집 대상 스마트폰 잠금 해제 가능해야 함 (사용자 패스워드 정보 필요)
      2. 안드로이드 개발자 옵션 활성화 (설정-휴대전화 정보-빌드 번호 7번 터치)
      3. 개발자 옵션에서 ADB 디버깅 활성화 (ADB 활용해 스마트폰-컴퓨터 간 명령어 송수신 허가)
    • ADB Backup 명령어
      • # adb backup [-f <file>] [-apk | -noapk] [-shared | -noshared] [-all] [-system | nosystem] [<packages...>]
      • -f <file>: 백업 파일의 이름 지정하는 옵션. 지정하지 않으면 기본적으로 현재 디렉터리에 'backup.adb'로 저징
      • -apk | -noapk: apk 백업 여부를 지정하는 옵션. 기본값은 -noapk.
      • -shared | -noshared: 장착된 외부 저장장치(공유 스토리지/SD 카드)도 백업할지 선택하는 옵션. 기본값은 -noshared.
      • -all: 설치된 모든 앱 백업
      • -system | -nosystem: 시스템 앱 포함 옵션. 기본값은 -system.
      • <packages..>: 백업할 앱을 직접 지정할 수 있는 옵션.
  •  장점
    • 루팅 또는 취약점 등을 이용하지 않고 수행할 수 있음 → 사용자 데이터 무결성 훼손 최소화
    • 복호화된 데이터 획득 가능
  • 단점
    • 애플리케이션 데이터 외 다른 데이터는 수집 불가(기기정보, 시스템 로그 등)
    • 기기를 실행한 상태(활성화 상태)에서 수행하기 때문에 사용자 데이터 파티션의 무결성 훼손
    • ADB Backup을 지원하지 않는 애플리케이션은 수집 불가
  • Android Backup Extractor(ABE)
    • Android Backup File의 암호화 및 압축을 해제해주는 도구
    • Andorid Backup 파일 구조
      • /apps 폴더 내에 패키지별로 폴더가 존재(폴더 이름은 패키지명)
      • 패키지별 폴더 아래의 구조
        • /apps/[pk_name]/_manifest: APK 파일에 대한 정보를 담고 있는 파일
        • /apps/[pk_name]/f/: files 폴더를 가리킴. 앱에서 파일 저장할 때 사용
        • /apps/[pk_name]/db/: databases 폴더를 가리킴. 앱이 데이터를 저장하는 데이터베이스가 저장되어 있음.
        • /apps/[pk_name]/sp/: shared_prefs 폴더를 가리킴. 앱에서 사용하는 설정 정보가 저장되어 있음.
        • /apps/[pk_name]/c/: cache 폴더를 가리킴. 앱이 임시파일을 저장할 때 사용. 존재하지 않을 수도 있음
        • /apps/[pk_name]/r/: 기타 파일들이 저장되어 있음

◆ Samsung Smart Switch

  • 삼성전자에서 개발한 스마트폰 백업 및 복원 애플리케이션
  • 삼성에서 출시한 안드로이드 폰이라면 모두 지원.
    • 백업된 데이터는 안드로이드 기반 타 스마트폰뿐만 아니라 아이폰에도 복원 가능
  • 백업 기능 활용해 데이터 수집 가능
  • 수집 방법
    1. 삼성 스마트 스위치 실행
    2. 환경설정>백업 파일>백업 결과를 저장할 폴더 선택
    3. 이때 백업 데이터 안전한 보호를 위해서는 백업 데이터 암호화를 선택→그러나 이 옵션 선택 시 별도의 복호화 작업이 필요.
    4. 설정 완료 후 백업 버튼 클릭
    5. 백업할 데이터 선택
    6. 백업 버튼 클릭
  • 백업에 대한 정보 + 수집 대상 기기에 대한 정보도 함께 저장됨

◆ Content Provider

  • 안드로이드에서 애플리케이션간 데이터 공유하기 위한 인터페이스.
    • 서로 다른 앱 간의 데이터 공유를 위한 유일한 방법
  • 안드로이드 샌드박스(Sandbox) 매커니즘을 사용
    • 안드로이드 보안 정책으로 앱마다 샌드박스를 할당
    • 앱들은 서로의 샌드박스 영역 침범 불가(다른 앱의 데이터에 접근 불가)
  • 모든 애플리케이션에 지원되는 기능은 아니기 때문에 Content Provider가 지원하는 앱 데이터만 수집 가능
  • 모든 앱은 해당 데이터에 접근할 수 있는 고유의 URI (Uniform Resource Identifier) 정의
    • URI를 모르는 경우 다른 앱 데이터에 접근 불가
    • URI를 아는 경우 다른 앱 데이터(SQLite DB)에 접근 가능
  • 기본적 데이베이스 명령어 활용 가능, 기본적 연산 처리 가능(create, select, update, delete)
  • 주요 수집 대상
    • URI가 알려진 통화 기록, 연락처, 인터넷 북마크, 일정, 문자(SMS/MMS) 등 기본 애플리케이션
  • 데이터 수집 앱 설치 & 실행 필요
    • Content Provider를 사용해 다른 애플리케이션의 데이터 수집
  • 장점
    • 앱 설치 및 실행만으로 데이터 수집 가능
  • 단점
    • 데이터 수집 앱을 설치해야 하기 때문에 사용자 데이터 파티션의 무결성을 훼손
    • 수집 가능한 앱 데이터 종류가 제한적
      • 대부분의 사용자 앱이 Content Provider를 제공하지 않거나 비공개
      • 국내 제조사(삼성, LG)의 경우 기본앱의 URI를 수정해 사용
    • DB 파일 자체를 수집하는 게 아니라 DB 파일 내부의 활성 레코드만 수집하기 때문에 삭제된 데이터 복구 불가능

+ Recent posts