안드로이드 포렌식을 시작합니다. 1편 세팅
Forensics 2011. 8. 14. 15:18 |2008년 10월에 처음 모바일폰이 나왔죠.. 기종은
HTC DREA100
T-Mobile G1
Global System for Mobile Communications(GSM)
구글의 꿈은 세계 정복이며, 그들의 야망은 정보를 대량으로 수집하는 것입니다.
안드로이드를 Open Source로 제공하는건 위 꿈과 야망 둘 중에 하나가 일치해서가 아닐까 합니다.
--------------------------------------------------------------------------------------------------------
안드로이드 부팅 순서
1. 전원이 들어오고 boot ROM 코드가 chip에서 실행됩니다.
2. boot loader가 읽어 들이고
3. Linux kernel로 넘어 갑니다.
4. init process가 실행되고
5. Zygote와 Dalvik
6. 시스템 서버
7. 부팅이 완료!
--------------------------------------------------------------------------------------------------------
모든 테스트는 우분트에서 진행합니다. 우분트는 아래 사이트에서 받아서 VM으로 설치하였습니다.
URL: http://www.ubuntu.com/download/ubuntu/download
우분트 설치 후, 기본적으로 사용할 도구인 Sleuth kit을 설치합니다.
그리고 포렌식 부분에서 중요하게 생각되는 automount를 비활성 시킵니다.
방법 : apps > nautilus > preferences > media_automount > uncheck
--------------------------------------------------------------------------------------------------------
우분투에서 포렌식 테스트를 막힘없이 진행하기 위해 필요한 라이브러리와 AOSP(Android Open Source Project)를 받아서 설치하거나 저장합니다.
root@ubuntu:~# sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get upgrade -u
root@ubuntu:~# sudo reboot
root@ubuntu:~#sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
root@ubuntu:~/Desktop# mkdir -p ~/bin
root@ubuntu:~/Desktop# mkdir -p ~/android
root@ubuntu:~/Desktop# curl http://android.git.kernel.org/repo > ~/bin/repo
root@ubuntu:~/Desktop# chmod 755 ~/bin/repo
root@ubuntu:~/android# cd ~/android/
root@ubuntu:~/android# time ~/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
cd ~/android
source build/envsetup.sh
lunch
time make
--------------------------------------------------------------------------------------------------------
Linux SDK 설치
root@ubuntu:~/wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz
참고 : 리눅스가 64bit일 경우, sudo apt-get install ia32-libs로 32bit 라이브러리를 설치합니다.
- android 실행
root@ubuntu:~# tar -xvzf android-sdk_r12-linux_x86.tgz
root@ubuntu:~# cd ~/android-sdk-linux_x86/tools
root@ubuntu:~/android-sdk-linux_x86/tools# ./android
안드로이드를 실행하면, Android SKD and Android Virtual Device(AVD) manager가 실행됩니다.
available packages > SDK Platform Android 2.3, API 9, revision 1> check > install selected > Accept ALL > Install
- PATH 설정
nano -w ~/.bashrc
export PATH=$PATH:/home/dorumugs/android-sdk-linux_x86/tools/
export PATH=$PATH:/home/dorumugs/android-sdk-linux_x86/platform-tools/
- 안드로이드 USB profile생성
sudo nano -w /etc/udev/rules.d/51-android.rules
벤더사들의 ID를 확인하기 위해서는 아래 URL을 확인하면됩니다.
참고 : http://developer.android.com/guide/developing/device.html#VendorUds
#Acer
SUBSYSTEM=="usb", SYSFS{idVendor}=="502", MODE"0666"
#Dell
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE"0666"
#Foxconn
SUBSYSTEM=="usb", SYSFS{idVendor}=="489", MODE"0666"
#Garmin-Asus
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE"0666"
#HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE"0666"
#Huawei
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE"0666"
#Kyocera
SUBSYSTEM=="usb", SYSFS{idVendor}=="482", MODE"0666"
#LG
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE"0666"
#Motorola
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE"0666"
#Nvidia
SUBSYSTEM=="usb", SYSFS{idVendor}=="955", MODE"0666"
#Pantech
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE"0666"
#Samsung
SUBSYSTEM=="usb", SYSFS{idVendor}=="400000000", MODE"0666
#Sharp
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE"0666"
#Sony Ericsson
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE"0666"
#ZTE
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE"0666"
- 파일 권한 변경
dorumugs@ubuntu:~$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
--------------------------------------------------------------------------------------------------------
설치한 에뮬레이터 동작
에뮬레이터를 사용하여 기존에 모바일에서 동작하는 시스템을 그대로 구현할 수 있습니다.
시스템을 그대로 구현하고 테스트를 진행할 수 있는 것은 포렌식에 있어서 증명할 수 있는 기회를 제공하므로
매우 중요합니다. 에뮬레이터를 동작 시켜 보도록 합니다.
dorumugs@ubuntu:~$ android (PATH를 지정하여 어디서든 실행이 가능합니다.)
에뮬레이터를 구동한 후 저장되는 디렉터리는 아래와 같습니다.
Ubuntu => /hoome/<username>/.android
구동되고 있는 에뮬에이터의 디렉터리 구조를 확인해보면 아래와 같은 디렉터리 구조를 확인 할 수 있습니다.
cache.img - 디스크의 /cache 파티션 => YAFFS2 file system
sdcard.img - SD 카드의 이미지 => fat32 file system
userdata-qemuu.img - 디스크의 /data 파티션 => YAFFS2 file system
dorumugs@ubuntu:~/.android/avd/dorumugs_test.avd$ file sdcard.img
sdcard.img: x86 boot sector, code offset 0x5a, OEM-ID "MSWIN4.1", Media descriptor 0xf8, sectors 51200 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 397, reserved3 0x800000, serial number 0xd06340e, label: " SDCARD"
dorumugs@ubuntu:~/.android/avd/dorumugs_test.avd$ file cache.img
cache.img: VMS Alpha executable
dorumugs@ubuntu:~/.android/avd/dorumugs_test.avd$ file userdata-qemu.img
userdata-qemu.img: VMS Alpha executable
--------------------------------------------------------------------------------------------------------
'Forensics' 카테고리의 다른 글
안드로이드 포렌식 3편 Log (2) | 2011.08.14 |
---|---|
안드로이드 포렌식 2편 adb 사용 (0) | 2011.08.14 |
MAC live data 수집 (0) | 2011.03.10 |
ENCE 준비 1. 시험 신청 (0) | 2011.03.09 |
침해대응시 사용하는 스크립트 툴 (0) | 2011.02.10 |