Android Malware Analysis

Similar documents
Secure Programming Lecture1 : Introduction

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

THE TITLE

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

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

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

Microsoft PowerPoint App Fundamentals[Part1].pptx

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

서현수

1부

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

Microsoft PowerPoint - 김창수 v2.pptx

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

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

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

Secure Programming Lecture1 : Introduction

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

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

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

PowerPoint 프레젠테이션

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

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

Android Master Key Vulnerability

Facebook API

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

( )부록

슬라이드 1

슬라이드 1

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

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

PCServerMgmt7

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>


양정규 라온시큐리티

슬라이드 1

Chapter 1

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

PowerPoint Presentation

rmi_박준용_final.PDF

MasoJava4_Dongbin.PDF

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

rosaec_workshop_talk

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

PowerPoint Template

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

DocsPin_Korean.pages

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

PowerPoint 프레젠테이션

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (


<C7E0BAB9C0AFBCBA5F F30365F322E696E6464>

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint 프레젠테이션

안드로이드테스트앱을이용한난독화라이브러리파일동적분석 - 중요정보가라이브러리파일내부에 암호화되어있는악성앱동적분석 코드분석팀송지훤 본보고서의전부나일부를인용시, 반드시 [ 자료 : 한국인터넷진흥원 (KISA)] 를명시하

JVM 메모리구조

1. 배경 업무 내용이나 개인정보가 담긴 청구서 등을 메일로 전달 시 중요한 정보가 유출되는 경우가 발생하고 있으며, 이에 따른 메일 암호화 솔루션을 도입하고 있으나 기존 ActiveX를 기반으로 한 플러그인 방식은 여러 가지 제약으로 인해 사용성이 저하되고, 고객 대

1


Interstage5 SOAP서비스 설정 가이드

슬라이드 1

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

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

untitled

PowerPoint 프레젠테이션

1217 WebTrafMon II

*2008년1월호진짜

PowerPoint Presentation

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

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

Portal_9iAS.ppt [읽기 전용]

SBR-100S User Manual

5월고용내지

JDK이클립스

슬라이드 1

VMware vsphere

Intro to Servlet, EJB, JSP, WS

Microsoft Word - 안드로이드_개발_매뉴얼1.docx

bn2019_2

APOGEE Insight_KR_Base_3P11

PowerPoint 프레젠테이션

Solaris Express Developer Edition

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

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

슬라이드 1

독립기념관 7월호 3p

Microsoft Word - src.doc

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

160322_ADOP 상품 소개서_1.0

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

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

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

untitled

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

ESP1ºÎ-04

The Pocket Guide to TCP/IP Sockets: C Version

DE1-SoC Board

The Self-Managing Database : Automatic Health Monitoring and Alerting

강의10

Transcription:

Android Malware Analysis KISA 양인승

Contents Android Malware Staic Analysis Android Malware Dynamic Analysis Android Malware Analysis Environment

Android Malware? 02-705-8685 문자발송 안녕하세요. 금일모바일보안 ( 안드로이드악성앱강의 ) 수업장소강의실이다른곳으로변경되었습니다. 확인바랍니다. ttp://www.sogangmobsecurity*****.com 링크클릭 / 다운로드 MobSecu Lecture 대학원강의를듣는명단리스트 ( 전화번호 ) 확보 악성앱설치유도 설치시에악성앱감염

Recently, Smishing in Europe App Name / Package Name Overview [ source :, THE LATEST ANDROID OVERLAY MALWARE SPREADING VIA SMS PHISHING IN EUROPE, FireEye Report, 16.6.28 ]

Recently, Smishing in Europe(Cont.) Code structure and manifest file of obfuscated code

Android Malware Analysis (Abstract) 동적분석 정적분석 스마트폰 설치및감염 디컴파일 소스레벨코드 분석 탈취대상 SMS 발신번호파악 C2 주소파악및트래픽전송내용분석 문자메시지탈취코드분석 원격지차단조치 C&C 확인

Android Malware Static Analysis

Android Boot Process

Android Architecture SDK, JAVA NDK, C/C++

안드로이드설치파일 - APK(Android PacKage) 안드로이드어플리케이션설치를위한패키지, 즉압축파일 (zip) Android Studio JAVA Android SDK 1 개발 패키지에포함시켜 AssetManager 로관리할파일들포함 라이브러리를포함하는폴더배포시인증서로서명한내용, APK파일내폴더, 파일에대한 SHA-1 해쉬값컴파일되지않은리소스파일 ( 아이콘, 이미지, 음악등 ) 들이포함된폴더앱에대한설명및실행권한등의정보를지니는 XML 파일 Dalvik 가상머신에서동작하는바이너리실행파일컴파일된리소스파일

DEX(Dalvik Executable) Dalvik 가상머신에서동작하는바이너리실행파일 Android 2 설치 Applications 3 실행 Application Framework Libraries Dalvik VM Linux Kernel

ODEX (Optimizing Dalvik Executable) Optimized dex 로성능향상을위해 Hardware 에최적화되어만들어진 DEX 파일 App Install PackageManager /data/app/ /data/app-private/ /data/data/ /data/dalvik-cache APK 파일의심볼릭링크저장 복사된 APK 파일 패키지이름으로디렉토리생성 ODEX dex 파일을 dexopt 프로세스에의해검증하고최적화된파일

AndroidManifest.xml App 패키지명 사용권한 ( 무슨동작을할지추정가능 ) App 이름, 아이콘

AndroidManifest.xml Use-Permission

AndroidManifest.xml Activity 사용자와상호작용하는 UI 컴포넌트

AndroidManifest.xml Service UI 와상관없이 Background( 화면뒷단 ) 에서동작하는컴포넌트

AndroidManifest.xml BroadcastReceiver 방송을기다리고있다가, 이벤트발생시동작컴포넌트

AndroidManifest.xml Intent/Intent-filter 인텐트는일종의메시지객체로 Activity/Service 시작, Broadcast 를전달하며통신을용이하게함

AndroidManifest.xml Intent-filter

Content Provider DB 나파일에저장되는앱데이터를다루는인터페이스제공

SharedPreferences Key 와 Value 로이루어진파일형식으로데이터를저장 / 관리할수있도록제공 /data/data/< 패키지명 >/shared_prefs/ 에 xml 형태로저장됨

JNI(Java Native Interface) Java 언어와 C/C++ 로작성된네이티브코드간상호작용할수있는인터페이스 (Lib/armeabi/ 폴더아래 lib+ 라이브러리이름.so 로저장됨 ) Java 파일 C/C++ 파일

Obfuscation

Obfuscation 앱코드내문자, 클래스, 메서드등을난독화하여을어렵게함 난독화 (ProGuard) 적용전 난독화 (ProGuard) 적용후

분석의시작점 Q1. App 실행시가장먼저나타나는 Activity 는?

분석의시작점 Q2. Activity, Service class 내에서실행순서는?

분석의시작점 Q3. 빠른분석을위해서는? NPKI JNI HTTP SMTP PDUS

Android Malware Dynamic Analysis

Android Debug Bridge(ADB) 안드로이드에뮬레이터및기기에접근하여명령을수행하는도구 <sdk>/platform-tools/ 에있음

ADB Shell Commands Adb devices : adb 서버에연결된장치목록표시 Adb shell : 장치로의커맨드쉘명령이용 Adb install [-l][-r] file_spec : 패키지설치 Adb uninstall [-k] package : 패키지삭제 Adb push local remote : 파일올리기 Adb pull remote local : 파일내리기 Adb forward port port : 포트포워딩 Adb reboot : 장치재부팅

Network Monitoring

Network Monitoring 1 RootExplorer 로 Tcpdump 복사 2 adb 로접속후 Tcpdump 실행 3 adb 로저장된 pcap 파일을 PC 로꺼내확인

Network Monitoring 1 구글공식마켓에서 tpacketcapture 다운로드 2 tpacketcapture 실행후, 네트워크모니터링대상악성앱실행 3 PC에서상세히패킷분석

Network Monitoring

System Monitoring

System Monitoring adb 로접속후 ps adb 로접속후 netstat

Dalvik Debug Monitor Service(DDMS) Android DDMS 을이용한모니터링 장점 : 기본제공기능, 시스템라이브러리로그확인기능단점 : 제작자가로그함수를제거하였을경우애플리케이션로그확인제한적

IDA Remote Debugging GDB Server 와 IDA 를이용한 GUI 환경시스템라이브러리디버깅 Step0. find android_server binary on your host machine

IDA Remote Debugging GDB Server 와 IDA 를이용한 GUI 환경시스템라이브러리디버깅 Step1. move android_server to your target and execute!

IDA Remote Debugging GDB Server 와 IDA 를이용한 GUI 환경시스템라이브러리디버깅 Step2. port fowarding

IDA Remote Debugging GDB Server 와 IDA 를이용한 GUI 환경시스템라이브러리디버깅 Step3. IDA Pro Configuration

IDA Remote Debugging GDB Server 와 IDA 를이용한 GUI 환경시스템라이브러리디버깅 Step4. Choose Process

IDA Remote Debugging GDB Server 와 IDA 를이용한 GUI 환경시스템라이브러리디버깅

Packer classes.dex 파일을암호화, 동적으로런타임시복호화하여메모리에서 DexClassLoader 를통해실행 [ Source : Dongwoo Kim, Jin Kwak, and Jaecheol Ryou, DWroidDump: Executable Code Extraction from Android Applications for Malware Analysis, International Journal of Distributed Sensor Networks Volume 2015]

Obfuscation Vs Packer [ Source :SOPHOS ]

Memory Dump dump-code 를넣기위한분석된 DVM 사용 [ Source : Dongwoo Kim, Jin Kwak, and Jaecheol Ryou, DWroidDump: Executable Code Extraction from Android Applications for Malware Analysis, International Journal of Distributed Sensor Networks Volume 2015]

TraceDroid(OnlineService) http://tracedroid.few.vu.nl/

VirusTotal(OnlineService) https://www.virustotal.com/

Android Malware Analysis : Case Study

Permission 정보확인 문자전화번호부설정인터넷 폰상태 부팅하자마자

기기정보유출의심 API 수집정보폰번호 MMC+MNC IMEI Model/Build 정보 Network 상태정보 MAC address 계정정보위치정보 API or 변수 TelephonyManager.getLine1Number(); TelephonyManager.getNetworkOperator(); TelephonyManager.getDeviceId(); Build.MODEL Build.VERSION.SDK_INT ConnectivityManager.getActiveNetworkInfo();isConnected(); WifiInfo.getMacAddress(); AccountManager.get(context).getAccounts(); location.getlatitude(); location.getlongitude();

Data 전송방식 방식 POST GET 파일전송메일전송 Code 예시 HttpPost v1 = new HttpPost(v0); v1.setentity(new UrlEncodedFormEntity(((List)v3), "UTF-8")); HttpResponse v2 = new DefaultHttpClient().execute(((HttpUriRequest)v1)); BufferedReader v1_1 = new BufferedReader(new InputStreamReader(new DefaultHttpClient(((HttpParams) v1)).execute(new HttpGet(v0)).getEntity().getContent())); String v3 = v1_1.readline(); File v4 = new File(String.valueOf(this.getSDPath()) + "/aaa.zip"); DefaultHttpClient v2 = new DefaultHttpClient(); MultipartEntity v7 = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); v7.addpart("source", ((ContentBody)v0)); v6.setentity(((httpentity)v7)); HttpEntity v8 = ((HttpClient)v2).execute(((HttpUriRequest)v6)).getEntity(); this.mailhost = "smtp.gmail.com"; this.user = user; this.password = password; Properties v0 = new Properties(); v0.setproperty("mail.transport.protocol", "smtp"); MimeMessage v1 = new MimeMessage(this.session); Transport.send(((Message)v1));

인증서유출 1 인증서폴더 (NPKI) 존재여부확인 2 zip 압축

Database(Contact, SMS 등 ) 접근 Uri v1 = Uri.parse("content://sms/"); String[] v2 = new String[]{"_id", "address", "body", "date", "type"}; Cursor v7 = context.getcontentresolver().query(v1, v2, null, null, " _id desc limit 5"); ContentResolver: Application 이 Content provider 내의 data 에 access 하기위해사용 Cursor: Database query 를통해얻은결과가 Cursor 객체에포함되어반환하게됨

Database 접근 ( 몸캠피싱사례 ) 2 악성앱추가설치 3 녹화된몸캠협박 ( 실행시저장된연락처유출 ) ( 금전요구 ) 1 스카이프를통해음란채팅유인 연락처에저장된친구들

Database 접근 ( 메신저사례 ) 카카오톡 DB 저장위치 대화내용테이블 악성앱은일부모바일메신져의대화내용을복호화하여전송 ( 암 / 복호화에쓰이는키값이 user_id 로가능하였음 )

도청 녹음을위해서는 MediaRecorder 를사용 전화내용녹음을위해서는 TelephonyManager API 를이용 전화를모니터링하여, oncallstatechanged() 에서 state 값에따라동작 incomingnumber 로발신번호확인하여녹음 현재통화중 폰이울리는중 통화중이아님

문자수신시탈취 수신된문자에특정문자 ( cmd# ) 로시작하면, 이어지는문자내용을새로운 C2 주소로변경 신규문자를전송

아이콘숨기기 App 의런처아이콘을숨겨사용자가악성앱설치를의심하지못하게함 PackageManager.setComponentEnabledSetting(ComponentName componentname, int newstate, int flags) NewState 2 : COMPONENT_ENABLED_STATE_DISABLED Flag 1 : DONT_KILL_APP

기기관리자등록 기기관리자로등록하여 App 의삭제를어렵게함 Intent v0 = new Intent("android.app.action.ADD_DEVICE_ADMIN"); v0.putextra("android.app.extra.device_admin", this.componentname); v0.putextra("android.app.extra.add_explanation", "Install"); - 사용자의동의가있어야등록 - 기기관리자로등록되면어플리케이션에서바로삭제안됨 - 보안 > 디바이스관리자 > 해제후삭제됨

설치앱정보획득 PackageManager.getInstalledPackages()

Assets/Raws 추가앱을 drop 하여설치

Uninstall/Install 설치된정상앱을 Update 한다고유도하여악성앱으로교체 기존앱삭제 APK 파일설치

Resource Resource 에서직접읽어오는값을확인하는방법 1 getresources().getstring( ID 값 ); 에서 10 진수 ID 값확인 2 ID값을 16진수로변환하고 public.xml에서해당 id를찾음 3 strings.xml에서 id 값을확인 Res/values/public.xml Res/values/strings.xml

Resource( 백신사칭사례 ) 실제모바일백신에서사용되는문자내용과이미지를사용 ( 정상앱인것처럼하여속이기위함 )

난독화 (DES,AES 알고리즘 ) 분석 Mon(***.***.166.32) Tue(***.***.166.43) Wed(***.***.166.44) Thu(***.***.166.45) Fri, Sat, Sun(***.***.166.46) DES 로암호화된 Dex 파일 C2 IP 가요일별로 AES 로암호화됨

난독화 (APKProtect) 분석

난독화 (APKProtect) 분석 상세 URL 등주요정보가난독화 복호화

난독화 (APKProtect) 분석

난독화 (APKProtect) 분석 getstacktrace()[1] : StackTrace 의정보를이용하여한수준이전의 Class 명과 Method 명을가져와서복호화키에사용

난독화 (APKProtect) 분석 복호화하여나온정보유출지주소와 URL 정보

패킹 (BANGCLE) 분석 BANGCLE 프로텍트사용중확인 패킹되어정적분석이어려우며, 실행중클래스를로드하여사용함

패킹 (BANGCLE) 분석 Native Code 를 JNI 를통해사용 동작중인특정프로세스를확인하여중단시킴 기기정보 /SMS 유출등악성기능확인 특정번호로전화가올경우받도록유도하는화면표시

패킹 (BANGCLE) 분석 DDMS 를통해 Native code(so) 실행확인 앱삭제방해기능 ( 허위삭제알림 ) 네트워크모니터링 : 외부로기기정보암호화하여유출

난독화샘플분석 악성앱제작자가만든내부함수를통해 C2 주소문자열복호화 문자를디코딩하여 C2 주소로변경 ) 추가신규악성앱다운로드시도

Andoird Malware Analysis Environment

Android Studio 구글에서안드로이드개발을용이하도록하는공식적인 IDE 프로그램으로개발자에게제공 다운로드주소 : https://developer.android.com/studio/index.html 버전명 : Android Studio 2.2.2 (2016.11 기준 )

JDK(Java Development Kit) 안드로이드는자바를기반으로하는플랫폼으로분석시 JDK 설치가필요함다운로드주소 : http://www.oracle.com/technetwork/java/javase/downloads/index.html 버전명 : Java SE 8u111 / 8u112 (2016.11 기준 ) 운영체제에맞게다운로드

안드로이드 SDK 설치 안드로이드애플리케이션구동을위해 SDK 설치및설정이필요

이클립스설치 안드로이드애플리케이션개발및분석을위한편집도구 ( 안드로이드 SDK 에포함 ) 다운로드주소 : http://www.eclipse.org/ 버전명 : Eclipse for Android Developers(Neon, 2016.11 기준 ) 운영체제에맞게다운로드

이클립스에안드로이드 ADT 플러그인설정 안드로이드개발용이클립스플러그인 ADT 추가설치이클립스 [Help] [Install New Software] 클릭

ADT 를이용한안드로이드 SDK 추가설치 안드로이드개발자사이트에공개된 SDK 의추가설치공개된 SDK 의경우기본프로그램만있어인터넷을통한추가설치작업이필요 [Windows-Android SDK Mnager] 선택후추가로필요한 SDK 요소를다운

Android Reverse Engineering(ARE) Tools Apktool : http://ibotpeaches.github.io/apktool/ Dex2jar : https://code.google.com/p/dex2jar/ JD-GUI : http://jd.benow.ca/ BakSmali/Smali : https://github.com/jesusfreke/smali JEB : https://www.pnfsoftware.com/ IDA Pro : https://www.hex-rays.com/products/ida/

Apktools Apk 내부파일확인 http://ibotpeaches.github.io/apktool/

Smali/baksmali Dalvik executable(.dex) 파일을읽기 / 변경가능한코드 (.smali) 로변경

Dex2Jar Dex 파일을 jar 파일로변환 http://sourceforge.net/projects/dex2jar/

JD-GUI JD-GUI 를통해서 jar 파일확인 http://jd.benow.ca/jd-gui/#jd-gui-download

Apk to JAVA APK 디컴파일부터 jar 파일변환까지도구들을엮어만든통합툴

Demonstration

Thank you!