8.파일시스템과 파일 복구

Similar documents
8.파일시스템과 파일 복구

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

ESET Mobile Security for Android

서현수

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

고객 카드

모바일 안드로이드 아키텍처

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

TTA Journal No.157_서체변경.indd

F120L(JB)_UG_V1.0_ indd

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint Template

슬라이드 1

1부

PowerPoint Presentation

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx

2019년도 지엠디 교육

Microsoft PowerPoint - 김창수 v2.pptx

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

02_3 지리산권 스마트폰 기반 3D 지도서비스_과업지시서.hwp

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

4S 1차년도 평가 발표자료

사용하기 전에 2

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

Android Master Key Vulnerability

PowerPoint Presentation

LG-LU6200_ICS_UG_V1.0_ indd

untitled

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

THE TITLE

Install stm32cubemx and st-link utility

F120S_(Rev1.0)_1130.indd

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

IRISCard Anywhere 5

SBR-100S User Manual

슬라이드 1

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

[Blank Page] i

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

슬라이드 1

Microsoft PowerPoint App Fundamentals[Part1].pptx

개인정보보호의 이해 및 안전한 관리 - 개인PC 및 스마트폰 개인정보보호-

슬라이드 1

PowerPoint 프레젠테이션

DBMS & SQL Server Installation Database Laboratory

Microsoft Word - src.doc

Microsoft PowerPoint - 권장 사양

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

I What is Syrup Store? 1. Syrup Store 2. Syrup Store Component 3.

디지털 공학

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - Mobile SW Platform And Service Talk pptx

Inside Android Applications

Chapter 2

Cloud Friendly System Architecture

보안공학연구회

PowerPoint 프레젠테이션

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Special Theme _ 스마트폰 정보보호 스마트폰은 기존 PC에서 가지고 있던 위협과 모바일 기기의 위협을 모두 포함하고 있다. 다시 말하면, 다양 한 기능이 추가된 만큼 기존 PC에서 나타났던 많은 위 협들이 그대로 상속되며, 신규 서비스 부가로 인해 신 규 위

미디어 및 엔터테인먼트 업계를 위한 Adobe Experience Manager Mobile

정보화 산업의 발전단계 : 정보혁명의 진화 정보화 산업의 발전단계 1세기에 두 번 정도의 큰 기술혁명이 이루어져 경제성장의 원동력으로 작용 uit 시대는 정보혁명 중 인터넷 이후의 새로운 기술혁명인 컨버전스 기술이 핵심이 되는 시대 uit 시대는 정보화의 극대화와 타

NX1000_Ver1.1

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

게시: SWD


52 l /08

양정규 라온시큐리티

ISP and CodeVisionAVR C Compiler.hwp

사용 설명서 이용 안내 사용 설명서의 내용은 제품의 펌웨어 버전에 따라 사용자에게 통보 없이 일부 변경될 수 사용 설명서는 Windows XP 환경을 기준으로 설명하고 있으며 사용자의 OS 환경에 따라 다소 차이가 있을 수 제품에 사용된 음원, Wallpaper, 이미

강연자소개 대외활동 동호회설립및운영자 (2004 년 12 월설립 ) 운영진 고현철, 김재훈, 유형목, 와함께국내에몇개남지않은임베디드리눅스를전문으로하는 community. 현재가입자수약만 4 천여명

쉽게 풀어쓴 C 프로그래밊

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

Contents I. 취약점점검소개 II. III. IV. 점검프로세스분석 취약점점검방법 기타

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Secure Programming Lecture1 : Introduction

B _00_Ko_p1-p51.indd

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

[Brochure] KOR_TunA

슬라이드 1

벤처연구사업(전동휠체어) 평가

Office 365 사용자 가이드

JVM 메모리구조

User Guide

Transcription:

SeoulTech 박종혁교수 Tel: 970-6702 Email: jhpark1@soultech.ac.kr

1. 모바일포렌식개요 2. 모바일포렌식의절차에따른분류 3. 스마트폰포렌식 4. 스마트폰데이터수집 5. 스마트폰데이터분석 6. 안드로이드개요 7. 안드로이드정적분석 8. 안드로이드동적분석

모바일포렌식 휴대폰, 스마트폰등소형화된기기에저장된데이터추출 다양한플랫폼, 파일구조등존재 Smart Phone Wearable Device USB Driver Mobile game, Smartcard, E-book etc..

모바일의구성 하드웨어, 소프트웨어, 컨텐츠로구성 디지털증거는다양한정보들을수집하여분석 모바일하드웨어 무선네트워크웨어러블디바이스스마트폰 etc 모바일 모바일소프트웨어 WAP LBS GIS 모바일콘텐츠 게임, 교육 Healthcare, SMS, 폰뱅킹 E-mail etc

모바일포렌식의문제점 국내외적으로상이한포멧 : 국내 CDMA, 국외 GSM 방식 통신환경의급속한변화 : 통합융합, USIM카드도입 파일의비표준화 : 동일모델이라도파일규격상이 통신케이블의비표준화

SYN 통신을이용한데이터추출 충전단자의통신포트를이용한접근. JTAG (Joint Test Action Group) 를이용한데이터추출 하드웨어칩디버깅을위한프로그래밍과삭제된데이터복원기법이용 플래쉬메모리직접데이터추출 휴대폰의고장혹은파손시지원

SYN 통신을이용한데이터추출 데이터통신을위하여각회사별로지원하는프로토콜이용 비할당된영역으로부터삭제되지않은데이터및삭제표시가되었으나삭제되지않은데이터추출 정상적인동작으로라이브데이터유입가능성존재

JTAG (Joint Test Action Group) 를이용한데이터추출 모바일기기의케이블핀번호가서로다르므로기기별로최적화하여분석해야함 케이블포트를삭제하거나디버깅데이터를변환하기도함 삭제되거나일부덮여진데이터추출가능

플래쉬메모리직접데이터추출 휴대폰의고장, 심각한훼손시데이터추출 메모리를분리하여정보를추출. 모바일의무결성에치명적인손실발생 장비를이용한메모리추출

스마트폰의포렌식데이터 (1/2) 스마트폰사용자들의스마트폰을이용해서전화통화나문자메시지뿐만아니라할일, 일 정관리, 메모, 이메일, 인터넷, 사진, 비디오, 음악등상당히많은활동을하며, 그기록들 은스마트폰에저장함 포렌식관점에서스마트폰의기본애플리케이션에저장된데이터를정리하면다음과같음 연락처 : 이름, 전화번호, 주소이메일주소등 통화목록 : 통화상대, 날짜, 시간등 문자메시지 : 보낸 ( 받은 ) 사람, 시간, 내용등 이메일 : 보낸 ( 받은 ) 사람, 시간, 내용, 첨부파일등 웹히스토리 : 방문 URL, 검색어, 아이디, 패스워드등 GPS(Global Positioning System): 위치정보 문서파일 사진, 비디오, 오디오 IMEI(International Mobile Equipment Identity): 국제모바일기기식별코드, 휴대전화마다부여되 는고유번호 IMSI(International Mobile Station Identity): 국제이동국식별번호, USIM 마다부여되는고유번호 MAC(Media Access Control) 주소

스마트폰의포렌식데이터 (2/2) 기본애플리케이션외에도사용자가직접설치한애플리케이션에서는다음과같은개인정 보가저장 Skype, Google voice 애플리케이션 Kakao talk, Twitter DM, Facebook message SNS (Twitter, Facebook, me2day, Naver band 등 ) 클라우드서비스 (icloud, Dropbox, SugarSync, N 드라이브등 ) 키관리애플리케이션 (DataVault, OneLock 등 ) 금융애플리케이션 (KB 스타뱅킹, 우리은행, 신한 S 뱅크등 ) 내비게이션 (Olleh navi, Tmap 등 ) 친구목록, 통화목록 개인정보 친구목록, 문자메시지 친구목록, 문자메시지, 쪽지등 문서파일, 사진, 비디오, 오디오, 백업등 여권번호, 아이디, 패스워드, 신용카드, 보안카드등 아이디, 패스워드, 인증서, 보안카드등 GPS 데이터

스마트폰의포렌식의절차 스마트폰포렌식의절차는컴퓨터포렌식의절차와유사하나휴대폰의통신기능을고려하 여진행 1 현장보존 - 범죄현장에서스마트폰이발견되면사진을찍어현장을보존해야함 - 스마트폰이켜져있을경우에는화면사진을캡처해두어야함 2 증거의확보 - 스마트폰을확보했다면네트워크차단이우선적으로이뤄져야함 ( 비행모드 ) - 스마트폰이켜져있을경우전원을공급하여활성데이터를보존해야함 3 데이터수집및분석 - 법적효력을갖기위해선다음과같은고려사항을지켜야함 - 수사의범위와권한의적정성 - 스마트폰의데이터무결성 - 스마트폰의증거인멸검증을위한연계보관성 - 기종에따라데이터추출및분석방법이상이하므로올바른방법을선택해야함 4 보고서작성 - 사건정보, 증거의획득과정, 분석결과등을작성함

논리적메모리추출방법 USB 인터페이스를이용하여스마트폰에저장된파일과디렉토리를추출하는방법 안드로이드 루팅을통한슈퍼유저권한을얻어야모든정보를추출가능함 안드로이드메모리구성 Cache 설치파일등의임시파일을저장하는파티션 System 기본어플리케이션의설치위치 Data, sdcard 사용자가스마트폰을사용하면서생기는모든데이터 연락처, 통화목록, 문자메시지, 사진, 등 종류파티션파일시스템용도 내장메모리 Cache YAFFS2 or Ext4 임시파일저장 System YAFFS2 or Ext4 기본애플리케이션설치 Data YAFFS2 or Ext4 사용자데이터 외장메모리 Sdcard FAT32 외장 SD 카드 안드로이드메모리구성

논리적메모리추출방법 ios ios 디바이스에서는슈퍼유저권한을얻지않아도대부분의데이터를추출가능 IOS 데이터추출은 itunes 백업메커니즘을이용함 현재 ios 9 버전에서는데이터파일들의 SHA1 해시값을폴더이름하며데이터를추출함

물리적메모리추출방법 플래시메모리전체를비트단위로복사하는메모리추출방법임 물리적추출방법의종류는다음과같음 운영체제에기반한방법 스마트폰을부팅한후운영체제의명령어를사용하여비트단위의추출을수행하는방법이다. JTAG 포트를이용한방법 PCB(Printed Circuit Board) 의 JTAG 포트에직접연결하거나표준 24 핀인터페이스로연결할수도있다 메모리칩을분리하는방법 메모리칩을스마트폰으로부터분리하여직접데이터를추출하는방법 Boot loader 를이용한방법 운영체제를커널에올려주는부트로더를통해서모든데이터를추출함

안드로이드설치권한체크 aapt 명령어로 APK의 manifest에대한정보를알아보는방법. package name, versioncode, versionname, permission 정보,sdkVersion 정보, 사용된리소스에대한정보, supports-screens 등정보를알수있음 aapt 실행화면 [adt-bundle-windows-x86- 설치위치 ]\sdk\build-tools\android- 버전 \ 안에 aapt.exe 파일존재

안드로이드설치권한체크 aapt 명령어로 APK의 manifest에대한정보를알아보기방법. C:\adb pull /data/app/xxx.apk. C:\aapt d permissions dsn.apk 정상적인앱의권한요구화면 악성앱의권한요구화면

안드로이드설치권한체크 주로사용하는접근권한 ( 현재 110 개의퍼미션이정의되어있음 ) 접근권한 내용 ACCESS_FINE_LOCATION 현재위치정보에접근허용 (GPS-위치정보) ACCESS_NETWORK_STAT 네트워크에대한정보접근허용 ( 네트워크연결정보 ) ACCESS_WIFI_STATE Wi-Fi 네트워크에대한정보접근허용 (Wi-Fi 네트워크연결정보 ) CALL_PHONE Dialer 사용자인터페이스를통하지않고전화통화허용 ( 무단전화걸기 ) CALL_PRIVILEGED Dialer 사용자인터페이스를통하지않고긴급전화번호를비롯한모든전화번호사용허용 ( 무단전화걸기 GET_ACCOUNTS Accounts Service 내의계정목록에접근허용 ( 단말기에설정되어있는계정 ) PROCESS_OUTGOING_CALL 발신전화를종료하거나모니터, 수정허용 ( 발신전화모니터 ) READ_CONTACTS 사용자전화번호부읽기허용 ( 주소록 ) READ_CALENDAR 사용자캘린더데이터읽기허용 ( 일정 ) READ_HISTORY_BOOKMAR 사용자의브라우저히스토리와즐겨찾기읽기허용 ( 브라우저히스토리와즐겨찾기 ) READ_OWNER_DATA owner 데이터읽기허용 ( 파일열람 ) READ_PHONE_STATE 폰상태읽기허용 (IMEI, IMSI, 폰번호, 통화중상태 )

안드로이드설치권한체크 접근권한 내용 READ_SMS SMS 읽기허용 (SMS) RECEIVE_MMS 받는 MMS 모니터링하거나기록또는가공허용 (MMS 모니터 ) RECEIVE_SMS 받는 SMS 모니터링하거나기록또는가공허용 (SMS 모니터 ) RECORD_AUDIO 오디오기록가능 SEND_SMS SMS 메시지발송가능 ( 문자발송 ) USE_CREDENTIALS AccountManager 로부터인증토큰요청허용 ( 인증토큰 ) WRITE_OWNER_DATA owner 데이터쓰기허용 ( 파일쓰기 )

ADB 를이용한데이터수집 ADB 를통한데이터수집을위해서는기기가루팅되어있어야가능함 퍼미션변경해야만 PC 로다운로드가능함 : chmod 755 xxxx.db db 파일을 PC 에다운로드 adb pull /data/data/[app]/databases/xxxx.db

데이터경로 안드로이드공식표준경로는다음과같으며기기에따라경로정보가조금씩다를수있음 데이터연락처통화기록 SMS/MMS 일정메일목록메일내용웹히스토리알람다운로드 경로 /data/data/com.android.providers.contacts/databases/contacts2. 유 /data/data/com.android.providers.contacts/databases/contacts2.db /data/data/com.android.providers.telephony/databases/mmssms.db /data/data/com.android.providers.calendar/databases/calendar.db /data/data/com.android.providers.email/databases/emailprovider.db /data/data/com.android.providers.email/databases/emailproviderbody.db /data/data/com.android.providers.browser/databases/browser.db /data/data/com.android.google.android.deskclock/databases/alarm.db /data/data/com.android.providers.downloads/databases/downloads.db

SD 카드데이터수집 안드로이드의 OS 의경우내장 / 외장 SD 카드를사용하여추가적인데이터를저장함 USB 를이용한접근이가능일반적이나프로그램을통한자동화된수집이불가함 ADB 를통한 pull 명령을사용하면 SD 카드로부터데이터를저장할수있음.

DB 중요정보수집 SQL Lite Browser 를이용하여다운받은.db 파일열람 - http://sourceforge.net/projects/sqlitebrowser 에서프로그램다운필요 다운받은.db 파일점검

기본응용프로그램분석 안드로이드에기본적으로설치되어있는응용프로그램들은모두 SQLite 데이터파일안에저장됨 SQLite Expert 와같은뷰어프로그램을통해수집한각응용프로그램의 SQLite 데이터베이스파일을분석할수있음

멀티미디어데이터분석 멀티미디어데이터 ( 사진, 동영상, 오디오 ) 를기본적으로 SD 카드에저장함 주기적으로 SD 카드를전체스캔하여각멀티미디어파일의저장위치를 external- 숫자.db 파일안에저장함. DB 경로 테이블명 /data/data/com.android.providers.media/dat abases/external- 숫자.db Images, video, audio_meta 필드정보 _data _displayname _size Mime_type Data_taken Data_modified Latitude Longtitude title 파일경로파일명크기데이터타입멀티미디어생성시간멀티미디어수정시간위도경도제목

위치정보분석 GPS 정보분석 GPS 캐시정보는 GPS 에서마지막으로수신된위치정보를 CachedPosition 테이블에저장함 저장된정보는위도, 경도, 시간정보이므로사용자가해당시간에특정위치에있었다는증거로활용될수있음 Wifi 정보 사용자가특정 Wifi 에접속하게되면접속한 Wifi Ap 의 SSID 정보와 MAC 주소가기기안에저장됨 SSID 는 wpa_supplicant..conf 파일에저장됨 일반적으로 SSID 를설정할때 Wifi AP 의위치한장소이름을사용하는경우가많음 Cache.wifi 파일에는접속했던 Wifi MAC 주소가저장되어있음 cache.wifi 파일안에저장된 MAC 주소정보

삭제데이터복구 SQLite 데이터베이스의삭제된레코드복구 안드로이드의대부분데이터는 SQLite 데이터베이스형태로저장됨 사용자가데이터를삭제했을경우 SQLite 데이터베이스는해당레코드가위치한부분을비할당영역으로변경함 다른레코드가덮어쓰거나 SQLite 데이터베이스가비할당영역을정리하기전에는파일내에그대로남아있음 따라서비할당영역에남아있는레코드들을복구하면삭제된데이터를복구할수있음. 다음은주요정보별삭제데이터복구여부를보여준다. 데이터삭제데이터복구여부상세정보 연락처 O 데이터테이블레코드복구 통화기록 X 삭제와동시에비할당영역정리 SMS O SMS 테이블레코드복구 MMS O 각테이블의레코드복구 일정 O Events 테이블레코드복구 메일 X 삭제와동시에비할당영역정리

삭제데이터복구 SD 카드의삭제된파일복구 안드로이드 OS 는 USB 설정을통해 SD 카드와 PC 의연결을지원함 안드로이드 SD 카드는 FAT 32 파일시스템을사용함 기존의하드디스크와같이파일시스템메타데이터복구와카빙을통한복구방식을모두그대로적용할수있음

안드로이드란? 핸드폰을포함한모든모바일기기에탑재될수있는모바일플랫폼 구글이중심이된 OHA(Open Handset Aliance) 에서개발한완전히개방된모바일플랫폼 주요특징 다양한기술을수용하고빠르게혁신할수있는개방적인모바일플랫폼을구축 리눅스커널기반 - 자바프로그래밍언어 - 많은확장라이브러리

안드로이드아키텍쳐 Java C C++

안드로이드아키텍쳐 안드로이드어플리케이션 ( 앱 ) 이란? 안드로이드 package(*.apk) 형태 스마트폰등 device로다운로드하는단위 Java code + data/resource files 로구성 aapt tool(android Asset Packaging Tool) 을사용하여제작 (eclips 내부 ) 사용자와안드로이드사이에서작동되는소프트웨어 안드로이드는 Core Application( 기본 ) 을포함하고있다. SMS, Email, Calendar, Map, WebBrowser, contacts 등 기본 Application 이아닌별도 Application 도이에포함 카카오톡, 틱톡, Facebook, 네이트온등 모든어플리케이션은 Java 언어로작성되어진다.

안드로이드아키텍쳐 어플리케이션프레임워크 Application Framework 는 Core Application 에서사용된기능이나개발자들이주로사용하는기능들을제공하여재사용성 (reuse) 을높여개발의편리함을제공한다.(JAVA) 뷰관리자 : List, Grid, TextBox, Button 등사용자와상호작용과풍부한기능및확장성제 공 컨텐츠관리자 : 앱들간의데이터접근및자체데이터공유주소록등다른 application 이가지고있는 DATA 에접근 리소스관리자 : 문자열, 그래픽, 레이아웃등자원들에대한접근을제공 액티브관리자 : 앱의 Life Cycle 을관리

안드로이드아키텍쳐 Libraries 안드로이드시스템에서다양하게사용되는 C/C++ 라이브러리 시스템 C 라이브러리 : 임베디드리눅스기반용으로조정된표준 C 시스템라이브러리 미디어라이브러리 : MPEG4, H.264, MP3, AAC, JPG, PNG 등다양한오디오 / 비디오포맷과정적이미지 파일에대한재생과레코딩을지원 OpenGL : 3D 기반그래픽엔진, 하드웨어 3D 가속 ( 하드웨어적으로지원할경우 ) SQLite : 강력하고가벼운관계형데이터베이스엔진 FreeType : 비트맵, 백터폰트렌더링을지원하는라이브러리 LIbWebCore(WebKit): 웹브라우져엔진

안드로이드아키텍쳐 Android Runtime 안드로이드에서사용되는달빅가상머신과코어라이브러리로구성 달빅가상머신은안드로이드에서자체적으로만들었으며무료로배포 에플리케이션의호환성과실행일관성을제공하며, 최적화된파일포맷 (.dex) 과달빅바 이트코드를실행 달빅가상머신은임베디드환경을위해디자인되어디바이스별로다양한가상머신프 로세스들을지원하며, 실행시메모리를매우효율적으로사용함 코어라이브러리들은강력하지만단순하고익숙한개발플랫폼을제공하는 Java 언어를위한코어 API 들을포함 ( 데이터구조, 유틸리티, 파일접근, 네트워크접근, 그래픽등 ) 안드로이드 5.0 롤리팝 (Lolipop) 부터는 ART 를새로운런타임으로완전히대체 코어라이브러리 (Core libraries) ART

안드로이드아키텍쳐 Linux Kernel Linux Kernel 2.6 기반 보안, 메모리관리, 네트워크, 드라이버등을구현및관리 안드로이드에맞게수정된리눅스커널 X-windows, glibc, 표준리눅스유틸리티전체를포함하고있지않음 하드웨어를구동하기위한디바이스드라이버, 메모리, 프로세스, 네트워크관리등기본역할 수행 안드로이드시스템이동작할수있도록필요한기능들이추가된형태로구성

안드로이드아키텍쳐 최근들어스마트폰의사용이급격하게증가하고있으며, 또한스마트폰에는통화기록과문자메시지뿐만아니라이메일, 아이디, 패스워드, GPS(Global Positioning System) 데이터, 신용카드등수많은개인정보가저장 이에따라디지털포렌식수사에서도스마트폰포렌식의비중이크게증가 스마트폰에는많은양의개인정보가저장되어있기때문에범죄현장에서스마트폰을획득한경우지문을채취한경우보다더많은정보를얻을수있음

정적분석이란? 프로그램을실행하지않은채소스코드분석만으로해당모바일앱에대한악성행위를검증하는것, 단말기로부터사용자에의해설치된모바일앱의 APK 파일을추출하고이를검증하는방법 정적분석방법

정적분석방법 ( 바이트코드추출 ) 바이트코드란 C 언어의기계어인어셈블리어라부르는것과같이안드로이드자바의기계어를의미함 apk dex Manifest disassemble Dedexer smali apktool Disassemble : Apktool 을이용하여안드로이드어플을해제하고 Smali 코드를분석 dex : 안드로이드런타임에서동작하는바이너리실행파일 Manifest : 앱에대한정보및실행권한등의정보를가지는 xml

정적분석방법 ( 자바소스추출 ) apk dex Manifest Decompile Undx Dex2jar( 자주사용 ) jar Disassemble Decomplie Ida Pro Java Decomplier (JD-gui) Decompile dex2jar 와 decompiler(jad, jd-gui) 를사용하여자바코드분석 Undx 는 apk 파일안의 dex 파일을.class 로만드는것 Decompiler 는.class 를.java 형태로변환

정적분석방법 apk 파일추출 ( 일반 APP) ADB 을이용하여 apk 파일을로컬 PC 로복사 adb(android Debug Bridge) 란? 개발자툴이며, 안드로이드기기에명령을내릴수있는프로그램 cd C:\Android SDK 설치장소 \sdk\platform-tools C:\Android SDK 설치장소 \sdk\platform-tools\adb pull /data/app/test.apk 일반 APP 은안드로이드폰의 /data/app/ 디렉터리안에존재 apk 보호를위해관리자권한이없는핸드폰에서는볼수없음 ( 루팅 )

정적분석방법 정적분석툴 (baksmali) baksmali, smali http://code.google.com/p/smali/ dex 포맷을위한어셈블러 / 디어셈블러 문은자스민 (jasmin)/ 디덱서 (dedexr) 의구문에가볍게기반 아이슬란드말로 baksmali( 디어셈블러 ), smali( 어셈블러 ) 에상응하는의미 사용법 java -jar [baksmali 파일 ] -x [ 압축을풀 dex 파일 or apk 파일 ] -o [ 압축풀릴폴더이름 ] C:\Android SDK 설치장소 \sdk\platform-tools\java - jar baksmali.jar x classess.dex(dex 파일경로 ) 또는 C:\Android SDK 설치장소 \sdk\platform-tools\java - jar baksmali.jar x crackme01.apk(apk 파일경로 )

정적분석방법 정적분석툴 (baksmali) baksmali 를사용하여바이트코드추출화면 o 옵션으로인해 test 라는폴더가생성화면 바이트코드화면

정적분석방법 정적분석툴 (dex2jar) dex2jar http://code.google.com/p/dex2jar/.dex 형식을.class 형식으로변환시키는도구 사용법 dex2jar classes.dex 또는 dex2jar test.apk

정적분석툴 (jd-gui) jd-gui http://java.decompiler.free.fr/?q=jdgui class 파일을.java 파일로디컴파일하는툴 jd-gui 는 GUI 기반의툴임 (dex2jar 프로그램실행이선행되어야함 ) Jad -o sjava class 파일명.class : class 파일하나만컴파일할경우 Jad o r sjava dsrc 패키지명 /xxx/xxx/*.class : package 를디컴파일할경우 jd-gui 를이용자바소스추출화면

동적분석이란? 정적분석방법과는달리, 실제로프로그램을실행시켜테스트한결과를토대로권한우회, 정보유출, 악성행위수행여부등을검증하는것 동적분석방법특정모바일앱을단말기에설치하고실제로구동하여단말기동작에대한로그를추출하고이를통해권한우회, 정보유출, 악성행위여부를분석하는방법 동적분석을통해모바일앱이사용자정보에접근하고조작하는지를실시간으로감시 감시하고있는데이터가네트워크혹은다른방법으로전송될경우, 관련된모바일앱이나도착지 정보를로그화 사용자의사와무관하게다른악성코드를다운로드받거나 과금서비스를사용하는지감시

스마트폰환경에서의프록시설정 기본브라우져설정이용 안드로이드앱이실행하였을때외부로통신하기위해나가는패킷을분석하는방법 웹해킹시사용하는웹프록시툴을이용 스마트폰에서전송하는패킷을특정아이피와포트로전송하는것을중간에웹프록시툴이가로채어분석 환경설정 -> 무선및네트워크 -> Wi-Fi 설정 -> 고급설정 -> 프록시, 포트설정

앱설치전과후비교 ( 새로생성된파일에중요한내용포함여부확인 ) 1) Find 명령을통하여파일리스트를파일로생성한다 분석할앱을설치하기전아래명령을수행하여파일리스트를생성한다. - #find / grep v E ^/?proc > before.txt ( 설치전 ) 분석할앱을설치한후아래명령을수행하여파일리스트를생성한다. - #find / grep v E ^/?proc > install.txt ( 설치후 ) 2) Diff 명령으로파일비교 ( + 는추가된파일, - 는삭제된파일을나타낸다 ) - #diff before.txt install.txt

앱설치전, 삭제후비교 ( 삭제된파일에대해중요내용포함여부확인 ) 1) Find 명령을통하여파일리스트를파일로생성한다분석할앱을설치하기전아래명령을수행하여파일리스트를생성한다. - #find / grep v E ^/?proc > before.txt ( 설치전 ) 분석할앱을삭제한후아래명령을수행하여파일리스트를생성한다. - #find / grep v E ^/?proc > delete.txt ( 삭제후 ) 2) Diff 명령으로파일비교 ( + 는추가된파일, - 는삭제된파일을나타낸다 ) - #diff before.txt delete.txt

logcat 사용 ( 스마트폰에서발생시키는로그를분석 ) 1) c:\>adb logcat c : 로그삭제 2) c:\>adb logcat *:W : warning 이상만출력 1 우선순위 : Verbose < Debug < Info < Warning < Error < Fatal < Silent 2 Filter 는각우선순위의첫대문자로설정 3 Filter 이상의우선순위를갖는로그를출력 3) c:\>adb logcat f /dev/log/test.txt : -f 옵션은파일로저장 adb logcat h : help adb logcat b events /dev/log/events 내용출력 4) Grep 을이용하여특정문자열검색하여출력 c:\>adb shell #logcat grep update

logcat filter 활용 ( 스마트폰에서발생시키는로그를분석 ) 아래주소에서다운가능하다. http://cafe.naver.com/logcatfilter 맨좌측에는디바이스정보가나오며중간은로그의순위를나타낸다. 마지막으로밑부분은필터 를적용하여검색기능활용가능

이창선 김희현 유진호. 컴퓨터보안창과방패. 이한미디어, 2014 조정원외 3 명. 안드로이드모바일악성코드와모의해킹진단. 에어콘, 2014 이동전화포렌식가이드라인, 정보통신단체표준, TTAS.KO-12.0059, 2007 최우용, 은성경, 스마트폰포렌식기술동향, 한국전자통신연구원, 사이버보안기술특집, 2013 이규안, 모바일포렌식의현황과전망, www.krnet.or.kr/board/include/download.php?no=1305&db=dpro gram&fileno=2, 대검찰청, 오정훈, 이상진, 안드로이드스마트폰포렌식분석방법에관한연구, 디지털포렌식연구, 2012