블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2024/5 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

안드로이드 포렌식

원제 Android forensics : investigation, analysis, and mobile security for google android.
페이지 480|ISBN ISBN 안내 레이어 보기 9788960774032|판형 B5, 188*257mm|책정보더보기 도서관 소장 정보 국립중앙도서관



@ ADB 사용 준비

 - VMware, VBOX로 USB 연결하기, 연결 시 쓰기방지 할것. ( 자동마운트 대신 수동 마운트로 할것 )

 - ADB 사용법 추가 확인 주소 : http://developer.android.com/guide/developing/tools/adb.html#commandsummary


@ 안드로이드 파일시스템과 데이터 구조

 :  물리 메모리와 파일시스템과 데이터 구조는 안드로이드 기기의 데이터 저장소를 위한 기본요소다. 그러한 요소들을 깊이 있게 이해하게 되면 안드로이드 기기를 잘 이해할 수 있을 뿐만 아니라 새롱누 파일시스템과 데이터 구조를 보게 되더라도 스스로  조사할수 있게 된다.

  - yaffs2.tar.gz 를 다운 받아서 설치한 뒤 디바이스에 마운트해서 해당 값을 확인할 수 있다.

  - Shared Preferences

    -- boolean, float, int, long, strings 에 대한 값이 저장된다.

    -- 경로 : /data/data/apk_pkg_name/shared_prefs

  - SQLite 정보 위치 ( /data/data/com.android.webkit )

    -- app_icons, app_cache, app_geolocation : 아이콘 DB 1개 , 웹 어플 데이터 캐시 1개, GPS 위치와 권한과 관련된 DB 2개

    -- app_databases 웹사이트 지원을 위한 로컬 데이터 베이스 저장소를 제공하는 21개의 데이터 베이스

    -- databases : 브라우저와 브라우저 캐시를 위한 데이터 베이스 3개

  - db 보는 명령어

    -- sqlite3 db.db


@ 안드로이드 포렌식 기술

 : 안드로이드 기기에서 포렌식 이미지를 획득하기 위한 기술을 여러가지가 있다. 만약 분석 대상 기기가 패스코드로 보호돼 있다면 그것을 회피하거나 우회해서 데이터를 추출해야만 한다. 패스코드를 회피하기 위한 기술을 여러가지가 있지만 어느 상황에서나 항상 패스코드를 회피하는 것은 불가능하다. 일단 기기에 접근 가능하면 포렌식 분석가는 삭제되지 않은 데이터에 초점이 맞춰진 콘텐트 프로바이더를 통한 논리적인 데이터 획득이나 물리적인 데이터 획득 방법 중에서 어느 기술을 사요할 것인지 선택할 수 있다. 물리적 데이터 획득 기술은 이용하면 더 많은 데이터를 얻을 수 있지만 일반적으로 더 복잡한 분석 기술을 필요로 한다.

 - APK 보안 검토 툴 : http://viaforensics.com/appwatchdog/

 - AFLogical : 콘텐트 프로바이더로 접근할 수 있는 정보를 추출한다. viaForensics에서 무료 배포.

  -- 결과물은 CSV로 출력



 - 포렌식에 사용될 수 있는 상업용 제품

  -- Cellebrite UFED

  -- Compelson MOBILedit!

  -- EnCase Neutrino

  -- Micro Systemation XRY

  -- Paraben Device Seizure

  -- viaForensics의 viaExtract

  ( more. Oxygen Forensic Suite, Logicube's CellDEK )


 - 기기의 루트 권한 획득

  -- [ $ adb shell su ] 명령어로 루트 권한 획득이 가능한지 확인 ( 루팅 확인 )

  -- 복구 모드를 이용하여 루팅( 일시적/영구적 ) 하거나 취약점을 사용해서 루팅한다.

  -- 권한 획득 : 부트로더, RSD Lite, sbf_flash, fastboot, AFPhysical


@ 안드로이드 애플리케이션과 포렌식 분석

 : 조사할 안드로이드 기기를 획득하는 것은 연구나 개발, 논의 에 있어서 매우 주요한 부분이지만 안드로이드 포렌식에서는 단지 시작일 뿐이다. 분석을 위해서는 논리적 물리적 기술이 모두 필요하다. 하지만, 물리적 데이터 획득 이후에 더 많은 양의 분석이 요구 된다. 이 부분에서 목적은 포렌식 분석가나 보안 엔지니어가 안드로이드 기기를 조사할 수 있는 기술, 심지어 포렌식 툴이 제대로 지원하지 못하는 파일시스템이라고 하더라도 그것을 조사할 수 있는 기술을 제공하는 것이다. 기존의 포렌식 툴과 리눅스 명령. 그리고 경우에 따라서는 헥스 분석을 사용하면 조사가 필요한 데이터 대부분을 분석할 수 있다.

 - Hex : 포렌식 분석가의 좋은 친구

  -- $ sudo apt-get install ncurses-hexedit // 매우 빠른 터미널 기반의 헥스 에디터; 다른 것을 써도 된다.

 - strings 를 활용해서 정보의 갯수를 알 수 있다; 정보의 유/무

  -- $ strings --all --radix=x mmssms.db | grep 312123123 | wc -l // 해당 정보 312123123가 몇 개 존재하는 지 알수 있다.

 - FAT 포렌식 분석

  -- log2timeline을 이용한다. 그 전에 앞에서 활용했던 SD 카드 이미지 만들기, TSK의 mmls로 이미지를 조사하고, 이미지를 마운트해야 한다. ( 기타 추가 설명은 p 384에 있다. )

- YAFFS2( http://yaffs.net/yaffs-debugging ) : $ scalpel -c ~/scalpel-android.conf ~/xxx-datadata.dd -o ~/xxx-scalpel-test

- 법 집행기관이나 포렌식 분석가를 위한 리눅스를 아주 잘 설명한 웹사이트 ( Linux LEO : The Law Enforcement and Forensic Examiner's Introduction to Linux ) : http://www.linuxleo.com



# 책을 다 보고 나니, 이렇게 간단히 정리되었다. 정보 파일에 접근하기 위해 복구 및 권한을 가진 후 기기에 손상이 가지 않도록 복사한다. 그 다음에 해당 정보에서 필요한 정보를 추출한다.

# 여기서 들어가는 기술을 분리하자면 권한 획득, 복구 기술, 접근 기술, 추출 기술로 나뉘어지는 것 같다.














: