커널, 시스템, App 로그들

시스템과 커널은 리눅스 시스템에서 확인할 수 있는 내용을 그대로 담고 있습니다.
시스템에서 남기는 로그를 확인하는 방법은 아래와 같습니다.

ㅁ Kernel log

time stamp를 확인하거나 언제 boot-up되었는지에 대한 내용을 알 수 있습니다.(최근에 boot하지 않을 경우, 없을 수 있음)

길이가 길경우, 파이프라인( | )으로 확인하거나, 리다이렉트( > )하여 확인합니다. 전체 길이는 ( | wc -l)로 확인합니다. 

 

ㅁ 시스템의 Update List, App의 debug Message

해당 로그로 경도 / 위도 데이터의 정보, 날짜 / 시간 정보, App의 자세한 정보 등을 알 수 있습니다.

맨 앞에 있는 I는 message의 type을 말해줍니다. type의 정보는 아래와 같습니다.

Message Type     Description
V                           Verbose
D                           Debug
I                            Information
W                          Warning
E                           Error
F                           Fatal
S                           Silent 


로그는 기본으로 전체를 보여주나, radio와 events로 구분해서 볼 수 있습니다.
방법은 -b radio 하거나 -b events 하면 됩니다.


ㅁ radio

radio에서는 아래와 같은 정보를 확인할 수 있습니다.
- Time stamp - Unix Epoch로 시간 정보를 확인 가능합니다.

(ex> 123451234) => dcode나, date -d @1234512345로 확인.

- 모바일 폰이 통신을 위해 새용한 cellular modem의 AT 명령어
- SMS의 받는 사람, 크기, 인코딩된 SMS Message
- 장치의 IP 주소, network정보, 위치 정보
- 무선 통신 정보


ㅁ events

INSERT와 SELECT 정보로 DB에 저장되는 내용이 존재하는 것을 알 수 있습니다.


ㅁ dumpsys

dumpsys는 서비스, 메모리, 시스템의 자세한 정보를 제공합니다. 제공하는 정보는 아래와 같습니다.

root@ubuntu:~/android-sdk-linux_x86# adb shell dumpsys

- 동작중인 services
- 각서비스들의 Dump (Sync, 위치, 사용자,
- 현재 동작하고 있는 Services, broadcasts, pending intents, activities, processes
- Processes이 사용하는 Memory, Process IDs(PID), databases 


ㅁ 로그로 사용되는 정보
 



ㅁ bugreport
위의 명령어나 파일들을 어떻게 일일이 수집할까하는 고민이 있을 수 있습니다.
그와 관련해서 이번 섹션에서 소개되는 bugreport는 굉장히 유용합니다.
데이터를 한번에 수집할 때, 사용할 수 있으므로 의미있지만, 상당히 긴 로그를 불러옵니다.

사용방법은 아래와 같습니다. 
root@ubuntu:~/android-sdk-linux_x86# adb bugreport

Posted by 도시형닌자
:

안드로이드 폰을 우분투에 연결합니다. 테스트한 폰은 SKY 폰입니다. 


 USB 저장소를 사용 중으로 변경하면, 아래와 같이 /dev/sdb1 장치가 /media/6663-6233에 마운팅 된것을 확인 할 수 있습니다. Physical sd card가 4기가 존재합니다. 파일 시스템은 FAT32로 동작합니다. 

 
 

USB Debugging
대부분의 모바일 포렌식 도구들은 모바일에 Debugging 옵션을 선택해야 가능한 경우가 많습니다. 
Debugging옵션을 활성화 하면, ADB(Android Debug Bridege)를 이용하여, 
장치(모바일)의 로그나 시스템 쉘을 사용할 수 있습니다.

적용 방법 : 모바일에서 Devices Setting > Applications > Development > USB debugging > check
sky 모바일 폰 : 설정 > 시스템 > 응용프로그램 > 개발 > USB 디버깅 > 체크 



장치가 연결된 후, 우분트엣서는 adb를 사용하여 모바일에 접근할 수 있습니다. 
로컬 adb client program은 5037port를 사용합니다.  


adb devices를 사용할 때, device가 no permissions라고 나올 경우, vendor ID를 확인하여 rule에 추가합니다.
참고 : vendor ID를 추가하는 법은 이미 배워서 넘어갑니다.
참고 : 연결된 ubs의 정보를 확인하는 명령어는 아래와 같습니다.

 

- 사용되는 명령어
dorumugs@ubuntu:~$ adb devices - 장치에 연결
dorumugs@ubuntu:~$ adb kill-server  - 연결된 장치 refresh
dorumugs@ubuntu:~$ sudo restart udev - usb 장치 재시작
dorumugs@ubuntu:~$ adb shell - 장치에 존재하는 shell을 사용 

 

'Forensics' 카테고리의 다른 글

Windows 8 Forensics - 1. Interface  (0) 2012.05.14
안드로이드 포렌식 3편 Log  (2) 2011.08.14
안드로이드 포렌식을 시작합니다. 1편 세팅  (0) 2011.08.14
MAC live data 수집  (0) 2011.03.10
ENCE 준비 1. 시험 신청  (0) 2011.03.09
Posted by 도시형닌자
:
안드로이드는 Linux 2.6 Kernel을 사용합니다.

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

root@ubuntu:~/android# time ~/bin/repo sync

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

첨고 : 접속이 안될경우 http://developer.android.com/sdk/index.html로 들어가서 다운로드 합니다.
참고 : 리눅스가 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
Posted by 도시형닌자
: