양정규 라온시큐리티

Similar documents
Secure Programming Lecture1 : Introduction

Microsoft PowerPoint App Fundamentals[Part1].pptx

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

1부

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

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

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

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

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

THE TITLE

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft PowerPoint - 김창수 v2.pptx

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

( )부록

No Slide Title

Interstage5 SOAP서비스 설정 가이드

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

슬라이드 1

슬라이드 1

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

Facebook API

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

스마트월드캠퍼스 교육교제

PowerPoint 프레젠테이션

서현수

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

untitled

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

Android Master Key Vulnerability

PowerPoint Presentation

Microsoft PowerPoint - Chapter_03-1_DevEnv.pptx

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Portal_9iAS.ppt [읽기 전용]

Cloud Friendly System Architecture

Android Malware Analysis

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

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

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

JVM 메모리구조

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

슬라이드 1

Secure Programming Lecture1 : Introduction

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

J2EE & Web Services iSeminar

슬라이드 1

제목을 입력하세요.

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)


SNS 어플리케이션 전자통신컴퓨터공학부 조성경

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

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

제20회_해킹방지워크샵_(이재석)

Secure Programming Lecture1 : Introduction

PowerPoint Presentation

02 C h a p t e r Java

ESET Mobile Security for Android

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

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

Microsoft PowerPoint - Mobile SW Platform And Service Talk pptx

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

슬라이드 1

DE1-SoC Board


Deok9_Exploit Technique

슬라이드 1

PowerPoint 프레젠테이션

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

Intro to Servlet, EJB, JSP, WS

PowerPoint 프레젠테이션

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Corporate PPT Template

1

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint 프레젠테이션

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

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

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

슬라이드 1

MasoJava4_Dongbin.PDF

MS-SQL SERVER 대비 기능

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

PowerPoint 프레젠테이션

Microsoft Word - 김완석.doc

1

슬라이드 1

네트워크 안정성을 지켜줄 최고의 기술과 성능 TrusGuard는 국내 최초의 통합보안솔루션으로서 지난 5년간 약 4천여 고객 사이트에 구축 운영되면서 기술의 안정성과 성능면에서 철저한 시장 검증을 거쳤습니다. 또한 TrusGuard는 단독 기능 또는 복합 기능 구동 시

Visual Studio online Limited preview 간략하게살펴보기

제목 레이아웃

untitled

< FB8F0B9D9C0CF5FBFEEBFB5C3BCC1A65FB1E2B9DDC0C75FBEC7BCBAC4DAB5E55FB4EBC0C0B1E2B9FD5FBFACB1B85FC3D6C1BEBAB8B0EDBCAD2E687770>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션


untitled

Transcription:

2012. 06. 26. 양정규 amadoh4ck@gmail.com 라온시큐리티

목차 2

3

1. 취약점분석의필요성 필요성 다양한이유로인해 Android Application 취약점분석필요 Smart Phone 사용증가 Smart 가전에적용추세 지속적사용증가예상 App Store 검증절차미흡 자체서명인증허용 개인정보유출 위치정보유출 사생활노출 좀비단말 (DDoS) Worm & Virus 배포에악용 피싱취약 국제전화 /SMS/MMS 유발 개발사책임 Android Application 취약점진단을통해사용자와개발사모두의피해를줄일수있습니다. (OS 의취약점과달리개발사에게피해가크게전달 ) 4

1. 취약점분석의필요성 필요성 Android Application 을통한피해사례증가 5

2. Android OS & Application Android OS 구성 6

2. Android OS & Application Android OS - Zygote 7

2. Android OS & Application Android Application 구성 8

2. Android OS & Application Android Application - Intent 다른 Component(Activity, Service 등 ) 를호출 Component 를호출하기위해 ACTION, CATEGORY, DATA 등의정보포함 Explicit Intent ( 명시적 ) 호출대상 Component 의이름이명시되어있는 Intent 어떤 Component 를호출해야할지명시되어있는 Intent Implicit Intent ( 암시적 ) 호출대상 Component 가정확히정해지지않고특성만나열되어있는 Intent Component 의특성을알고있어야호출가능 9

10

1. 일반취약점 중요정보처리미흡 휴대폰정보 (IMEI, IMSI, Phone Number 등 ) 개인정보 / 위치정보 ID/Password, 계좌번호, SMS, 통화목록등중요정보 Application 구동에필요한중요설정정보, 결제정보등 중요정보에대한취급 / 처리미흡 중요정보평문저장 중요정보평문전송 중요정보메모리덤프 설정파일, XML 파일등에평문저장 SQLite Database 파일에평문저장 Application Source 에평문저장 암호화저장필요 ID/Password 정보등인증정보의평문전송 웹서버와통신하는중요정보를평문으로전송 Parameter 위 / 변조를통한다른취약점발생 암호화통신필요 11 중요정보에대해전역변수등에저장할경우암호화했다하더라도메모리덤프에취약 중요정보의경우사용후바로메모리에서제거필요

1. 일반 취약점 웹 취약점 Android Application과 연동 시 보안에 소홀해 지는 경향 발생 서버 설정, Web Application 보안 상태 등이 취약한 경우 일반 웹 서버보다 심각 SQL Injection, XSS, File Upload/Download, 인증 취약 Backup 파일 노출, 관리자 페이지 노출, 결제/DRM 등 다양한 취약점 발생 웹 서버와 연동 시 웹 취약점 SQL Injection File Upload/Download XSS 웹 서버가 Database에 저 장된 데이터를 Query를 통해 요청할 때 사용자가 입력한 입력 값 중 SQL Query 문자의 특수 문자 를 Filtering 하지 않아 발 생 File Upload: Server 내에 서 명령 수행이 가능한 Script 파일을 Upload하 여 Server 명령을 수행하 는 취약점 HTML 태그문자를 사용 자의 입력 값에서 Filtering 하지 않아 JavaScript 등을 악용하여 세션 탈취 등에 이용하는 취약점 특수 문자 Filtering 수행 필요 File Download: 프로그래 머가 의도한 파일이 아닌 서버 내의 중요 파일을 다운로드 받는 취약점 12 인증을 우회하여 높은 권 한 획득 가능

2. Android 기반 취약점 Android 기반 주요 취약점 Dalvik 또한 Java Virtual Machine Java 역 컴파일 가능 디버깅 시 출력했던 로그 그대로 출력 특정 Condition으로 로그를 막아 놓은 경우도 출력 가능 Native Code의 경우 Buffer Overflow 취약점 존재 Android OS 기반의 대표적 취약점들 Java 역 컴파일 불필요한 로그 출력 Java 언어의 특징 상 역 컴파일이 가능 분석이 나 취약점 찾기 용이 개발자가 개발 단계에서 출력했던 로그 정보를 그 대로 방치한 채 패키지를 만든 경우 발생 Java Code가 아닌 C, C++로 작성된 native code를 사용하기 위해 JNI를 사용 개발자가 특정 조건을 거 짓으로 만들어 로그를 출 력하지 못하게 한 경우 간단한 수정만으로 로그 출력 가능 C, C++에는 기본적으로 Buffer Overflow 취약점 이 존재하며 이 취약점이 발생할 경우 Application 의 모든 권한 도용 가능 난독화가 안되어 함수 이 름이나 변수 이름이 기능 을 유추하기 쉽게 설정된 경우 분석이나 취약점 찾 기 용이 13 Buffer Overflow

2. Android 기반 취약점 Intent 기반 취약점 Activity, Service 등에 Data를 전달하기 위해 Intent 사용 다른 Application에 기본적으로 Export 되어진 Activity, Service 등의 조작 가능 중요 기능에 대해 전달된 Intent에 대한 검증 혹은 인증 필요 Intent를 가로채고 수정하므로써 DoS, phishing, 권한 우회 등의 문제 야기 가능 Intent 조작을 통한 취약점 Broadcast Service Activity Broadcast Receiver를 등 록하여 Broadcast Intent 를 처리할 때 Intent를 검 증하지 않아 취약점 발생 sendbroadcast 악의적인 Service를 구현 하고 정상적인 Service가 처리해야 할 Intent를 대 신 처리하는 경우와 Intent를 조작하여 정상적 인 Service에 문제 발생 악의적인 Activity를 작성 하여 정상적인 Activity의 Intent 처리를 가로채거 나 Intent를 조작하여 비 정상적인 Activity가 실행 되도록 문제 발생 sendorderedbroadcast startservice startactivity sendstickybroadcast bindservice startactivityforresult 14

15

1. Pre-Requirements Android 개발환경설치 Emulator 및각종기본 Tool 을위해필요 Java SDK 설치 : JRE 가아닌 JDK 설치 http://java.sun.com/javase/downloads/index.jsp Eclipse 설치 : Eclipse IDE for Java Developers 버전설치 http://www.eclipse.org/downloads/ Android SDK 설치 : 최신버전설치 ( 디렉터리이름에한글포함금지 ) http://developer.android.com/sdk ADK 설치 : Android Development Tool Eclipse Help/Software Update : https://dl-ssl.google.com/android/eclipse/ 파일다운로드 : http://developer.android.com/sdk/adt_download.html Eclipse Android SDK 경로설정 SDK Manager 를통해 Android 버전별에뮬레이터및 SDK 선택 Download 16

2. Static Analysis 정적분석방법 APK DEX Manifest Disassemble Decompile Dedexer smali undx dex2jar apktool jar Disassemble Decompile Ida pro jaranalyzer Jreverse PRO Java Decompiler 17

2. Static Analysis smali/baksmali - Disassemble ODEX : Optimized DEX file dalvik machine 에서하드웨어에최적화된 DEX file 로 speed 향상을위해사용. Unsafe instruction 을사용하여빠른실행속도를가지나 dalvik 가상머신을 crash 시킬수있으므로사용에주의해야함 apk 파일과 odex 파일이존재할경우사용 Smali : assembler Baksmali : disassembler 다운로드경로 : http://code.google.com/p/smali/ 사용법 java -jar baksmali.jar -d system/framework -x Calculator.odex(odex 파일경로 ) baksmali -x Calculator.odex java -jar smali.jar -o classes.dex out Out of memory 에러발생시 Java 옵션에 -Xmx512m 사용 18

2. Static Analysis apktool - Disassemble apk 파일의 Decoding 및 Building 을돕는도구 Debugging 이나 reverse engineering 을위해사용 다운로드경로 http://code.google.com/p/android-apktool/ debug : http://code.google.com/p/android-apktool/wiki/smalidebugging 사용법 다운로드경로에서 apktool 다운로드 & install apk 디코딩실행 (out 폴더생성후 ) apktool d {apkname.apk} out out 폴더의 source file 과 resource file 수정 apk 빌드실행 apktool b d out out/dist/apkname.apk 생성 Jarsigner 나 sign.jar 를이용하여 apk Signning 수행 19

2. Static Analysis dex2jar - Decompile dex 파일을 jar 파일로변환하는도구 Dex2jar.jar 파일과함께 dex2jar batch / shell script 제공 간단한사용가능하지만코드손실이존재 dex2jar {classes.dex} undx 에비해최근에도업데이트가이루어지고있음 다운로드경로 : http://code.google.com/p/dex2jar/ jd-gui - Decompile class 파일아니 jar 파일을 java source 로 Decompile jd 의 GUI 버전 Jad 와병행사용 http://www.varaneckas.com/jad/ 다운로드경로 : http://java.decompiler.free.fr/?q=jdgui 20

3. Dynamic Analysis Log Monitoring (LogCat) Android 개발자들의디버깅을지원하기위해제공되는개발도구 진단에사용 개발단계에서사용되거나프로그램오류시발생하는각종 Log 출력가능 SDK 를설치하면서선택하여함께설치가능 21

3. Dynamic Analysis File System Monitoring Android Application 이실행중생성 / 변경 / 삭제하는파일이있는지를모니터링 adb shell 을통해가능 Busybox 사용하여모니터링 Application 사용경로의파일들의변화비교 (App 실행전 / 후 ) /data/data/{package name} Busybox 설치후모니터링 busybox 설치 : http://benno.id.au/blog/2007/11/14/android-busybox Application 을실행하기전 find 와 touch 사용 #find /data/data/{package name} > old.txt #touch /data/timestamp Application 을실행한후 find 사용 #find /data/data/{package name} newer /data/timestamp 22

3. Dynamic Analysis Network Monitoring Ad-hoc, Wifi & ARP Spoofing, Wireshark 단말설치, Proxy 사용등방법이용 http-proxy 옵션 proxy 주소및 port 지정 emulator 에서웹서핑시 proxy 에 intercept 23

3. Dynamic Analysis Memory Dump DDMS heap dump hprof-conv eclipse MAT plugin 24

3. Dynamic Analysis Intent Sniffing / Fuzzing Intent Sniffing Getting Intent Info Intent Fuzzing 25

3. Dynamic Analysis Debugging 필요도구 : Android SDK 환경, apktool, apk-sign, netbeans APK Tools 를이용하여디버깅모드 (-d 옵션 ) 로 Decoding apktool.bat d d {apkname.apk} out APK Tools 를이용하여디버깅모드로 Decoding 한것을디버깅모드로다시 Build ( 동적디버깅을위해필요 ) apktool.bat b d out out 폴더밑에 dist 폴더생성되고그안에새로운 apk 파일생성하고 Sign Netbeans 에서프로젝트추가 [New Project] -> [Java] -> [Java Project with Existing Source] 선택 프로젝트추가후 Android 버전에맞게 android.jar 파일추가 android.jar 는 Android SDK 설치경로에서찾을수있음 DDMS 에서디버깅할 Application 을선택하여열린 Port 번호확인 포트확인후 Netbeans 에서원격디버깅세팅 [Debug] -> [Attach Debugger] 선택 Java Debugger, localhost (127.0.0.1), Port 번호설정 DDMS 에서디버깅대상에초록버그모양표시여부확인 Netbeans 에서 Ctrl + Shift + F8 을이용하여 line break pointer 설정 26

3. Dynamic Analysis Debugging 27

4. Auto Auditing Taintdroid 4 level tracking 을통한 Monitoring Taintdroid tracking 방법 - Message-level tracking : IPC를통한프로세스간메시지통신을추적 - Variable-level tracking : 지역변수, 함수 Argument, Class, 배열등을통한정보전달을추적 - Method-level tracking : Native Method (JNI) 를통한정보전달을추적 - File-level tracking : File System에저장되는정보를추적 28

4. Auto Auditing 자동점검도구필요 다양한요구로인해수동점검만으로는불가능 자동점검도구필요 Android Application 은하루가다르게급속히증가 버전별점검필요 전문점검인력부족 / 연구부족 Application Source Code 양방대 PC 와마찬가지로악성행위를하는 Malware 가꾸준히증가 수동점검의경우점검기준이모두다름 표준점검항목필요 악성 / 취약 Application 에대한표준대응체제필요 자동점검도구를이용한표준점검항목점검및표준대응체제구축필요 ( 전문연구인력을통한자동점검도구연구및개발필요 ) 29

30

1. 취약점별대응방안 중요정보처리미흡대응방안 중요정보를파일, Database 에저장할경우암호화하여저장 중요정보를가지고통신할경우 SSL 과같은보안통신채널을사용 SSL 의경우에도자체서명이아닌서명기관을확인하도록조치 웹취약점대응방안 Android Application 와통신하는웹서버와 Database 서버의경우 URL 이노출될염려가적다고판단하여보안을소홀히하는경우가있으나 Android Application 을 Disassemble, Decompile 하면 URL 등의정보는쉽게획득가능 SQL Injection, XSS, File Upload/Download 등의취약점 각언어별로문자열 Filtering 을통해취약점을소스레벨에서수정 Backup File 노출, Admin Page 노출, Directory Indexing 등취약점 웹서버의설정을수정하거나불필요한페이지를제거하는등의조치를취하여취약점을수정 31

1. 취약점별대응방안 Android 기반주요취약점대응방안 불필요한로그출력 Release 버전의경우 log class 호출자체를제거 Buffer Overflow 복사할문자열의크기를버퍼크기와일치하는지검사 Java 역컴파일 난독화수행 ( 예 : ADT 8.0.1 부터지원하는 proguard 적용 ) http://developer.android.com/guide/developing/tools/proguard.html Intent 기반취약점대응방안 AndroidManifest.xml 파일의 permission 필드의 android:protectionlevel 을 Signature 혹은 SignatureOrSystem 레벨로설정 같은개발자가 Signing 한 Application 과 System Application 만권한사용가능 AndroidManifest.xml 파일의 activity, service, receiver 필드에서 android:exported 를 false 로설정 다른 Application 이해당 activity, service, receiver 를호출할수없음 중요한기능을수행하는 Intent Data 에 hash, 암호화등을수행하여인증 32

2. 결론 Android Application 점검방안 Android Application 의다양한취약점으로인해각종중요정보, 금전적손해발생, 악성행위에악용, Zombie Phone 으로 DDoS 에사용등심각한피해발생 잘못된 Application 설계 보안에위배되는 Source Code Native Code 의오류 불필요한권한의남용 기타설계 / 개발단계에서의보안오류 개발단계부터보안 Secure Coding Guide 마련 자동 Static Analysis 점검필요 Source Code Auditing 필요 Package 전체적설계오류 Storage 사용상보안오류 통신상보안오류 Android OS 특성에대한잘못된인지로인해발생하는보안오류 자동점검도구에의한 1 차점검 객관화 / 정형화된 Check List 필요 Android 전문진단인력을통한 2 차점검 보안에대한지속적인관심필요 33

감사합니다. Auditing Android Applications Q & A 34