54
안드로이드 악성코드의 철학적 연구 Philosophical study of Android malware kino@PAraDOx CONference 2014 PAraDOx CONference, 2 nd Session

안드로이드 악성코드의 철학적_연구_padocon_조효제

Embed Size (px)

Citation preview

Page 1: 안드로이드 악성코드의 철학적_연구_padocon_조효제

안드로이드 악성코드의 철학적 연구

Philosophical study of Android malware

kino@PAraDOx CONference

2014 PAraDOx CONference, 2nd Session

Page 2: 안드로이드 악성코드의 철학적_연구_padocon_조효제

부제 악성코드의 발전은 끝이 없고

같은 안티를 반복한다.

Subtitle Malware GoGo Same anti GoGo

kino@PAraDOx CONference

2014 PAraDOx CONference, 2nd Session

Page 3: 안드로이드 악성코드의 철학적_연구_padocon_조효제

발표전에..

• 저는 철학자도 심리학자도 아닙니다.

• 그래도 이 발표를 위해 최대한 정보를 찾아 올바른 내

용만 삽입하기 위해 노력하였습니다.

• 가볍게 들어주시길 .

Page 4: 안드로이드 악성코드의 철학적_연구_padocon_조효제

발표자 소개

성명 : 조효재제 (27세), 정글러

닉네임 : Kino, Peterpan

소속 : Padocon, 보안회사+ 근무

관심분야 : 시즌4티어, 봇 갱, 역갱

간략한 자기소개

저는 1989년 2월 대구에서 1남 1녀중 장남으로 태어나 엄하신 아버지와 온화한 어머니 아래에서 “거짓말을 하지 말자” 라는 가훈에 따라 자라왔습니다.

Page 5: 안드로이드 악성코드의 철학적_연구_padocon_조효제

목차

Part1. 결정론

Part2. 평행이론

Part3. 안드로이드 악성코드

Part4. 악성코드 사기기법 분석

Part5. 실험적 경험론.

Part6. 영겁회귀

Page 6: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 1. 인과성 (因果性)

어떤 상태(원인)에서 다른상태(결과)가 필연적으로 일어나는 법칙성

Page 7: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 1. 인과성 (因果性)

Page 8: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 1. 인과성 (因果性)

Page 9: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 1. 인과성 (因果性)

Page 10: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 1. 인과성 (因果性)

새로운 플랫폼은 언제나 새로운 위협을 동반한다.

Page 11: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 2. 평행이론(parallel life)

다른 시대의 두 사람이 일정한 시간차이를 두고 같은 운명을 반복한다는 법칙성

Page 12: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 2. 평행이론(parallel life)

• Before Talking

– PC 기반의 악성코드의 종류

• 행위적 측면

• 목적적 측면

– 안드로이드 악성코드

Page 13: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 2. 평행이론(parallel life)

• 행위적 측면에서 바라본 악성코드의 발전 – 시스템 파괴

• Brain virus, Jerusalem, 미켈란젤로,CIH 바이러스

– 웜

• Morris Worm, Melissa Worm, Nimda, SQL Slammer, Blaster Worm

– Ransom Ware

• Hdd 암호화 Trojan 등장

– 봇넷

• Mariposa, Zeus

– And so on……

Page 14: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 2. 평행이론(parallel life)

• 목적적 측면에서 바라본 악성코드의 발전

– 단순장난 및 자기과시형

• Elk Cloner, (50번째 부트 시 메세지 출력)

– 잘못된 만남형

• Morris Worm, (인터넷 크기 측정을 위해 제작)

– 금전갈취형

• Ransomware, 정보유출형 악성코드,

Page 15: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 2. 평행이론(parallel life)

• 안드로이드 환경에서의 악성코드

– 단순장난형

• 배터리/데이터 소모형악성코드

– 시스템 파괴 & 봇넷

• oldboot

– 웜과 비슷한 형태

• sms를 통한 apk 설치링크 전송 악성코드

– 금전갈취형

• 스미싱, 공인인증서 유출

– And so on……

Page 16: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part3. 안드로이드 악성코드

• Android Malware

– PC에서 일련의 악의적인 행위를 하는 프로그램

• 왜 안드로이드인가?

– 안드로이드의 특징

• 높은 점유율 (80% 이상, 국내기준)

• 다양한 개발방법을 가짐

• 손쉬운 악성코드 배포 및 설치

• 높은 자율성

스마트폰 앱

Page 17: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part3. 안드로이드 악성코드

• 스마트폰 악성코드 종류와 흐름

– 고조선 시절 ( 배터리/데이터 소모형 )

• 이 때 까지는 스마트폰 운영체제가 비교적 다양하여 크게 부각되지

않음.

– 초 중기 안드로이드 악성코드

• 루팅을 이용한 최고관리자 권한탈취

• 최고권한으로 무엇이든 수행할 수 있게되며 이를 금전갈취에 활용

– 현재의 악성코드

• 간단한 트릭을 이용한 금전갈취

– 스미싱

• 공인인증서, 주소록 등의 정보유출을 통한 금전 갈취

• 스마트폰 정보를 이용한 사기용 악성코드 등

Page 18: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part3. 안드로이드 악성코드

• 분석 시 사용된 도구

– Jadx, dex2jar

• 자바 디컴파일을 통한 코드 분석 도구

– IDA, GDB

• so (shared object) 파일 분석 도구

– Droidbox, OnlineSandbox

• 안드로이드 앱 동적분석 도구

Page 19: 안드로이드 악성코드의 철학적_연구_padocon_조효제
Page 20: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 몸캠이란? – 웹캠 등의 도구를 통해 채팅 등에서 서로의 몸을 보여주며 스스

로의 욕구를 해소하는 (自慰 : 스스로를 위로하는 행위 및 일련의 행동) 캠의 방식

• 불타는 욕정을 이용한 몸캠사기 – 몸캠을 미끼로 악성 S/W를 설치해 타겟 스마트폰의 연락처 및

문자 등을 유출함

• 일종의 온라인 꽃뱀

Page 21: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

1. 몸캠을 위한 skype ID 전송

skypeID를 게재한 음란 메시지 기재

Chat App Hacker

2. Skype ID 획득후 연락 시도

다양한 경로를 통해 음란메시지 획득

Chat App Victim

Page 22: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

3. 채팅과정에서 악성 APP 설치 유도

음란채팅 시도

음성인식을 핑계로 악성 APP 설치요구

Lure Victim

4. 정보 전송

카톡, 연락처, SMS 정보 등을 전송

Lure

음란채팅 과정을 동영상으로 녹화

Server MalApp

Victim

Page 23: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

Page 24: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 선행연구 - 꽃뱀찾기

Page 25: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 선행연구 - 꽃뱀찾기

Page 26: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 심층연구를 위한 채팅시도

FAIL

Page 27: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 그냥 기존 샘플로 분석하기로 함

• MainActivity

Page 28: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• BackGroundService.clases

Page 29: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• MyMessageService.clases

Page 30: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 동영상 배포를 빌미로 금전 요구

Page 31: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

• 해외 사이트(gay……)에 촬영영상 판매 – 당신도 이제 유명인

Page 32: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part4. 악성코드 사기 기법 분석

성욕. 건전한 방법으로

해결합시다.

Page 33: 안드로이드 악성코드의 철학적_연구_padocon_조효제
Page 34: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

경험은 생물이 환경에 따라 변화하는 과정이며 수동적, 감각적인 것에 그치지 않고 모든 세계를 실험하여 나가는 능동적, 행위적인 것이라는 이론

Page 35: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• 진화하는 악성코드

– 악성코드 분석 시스템의 발전

• 다양한 동적분석 sandbox 툴의 개발

• 수많은 악성코드 분석방법의 공유

– 자가보호를 시작

• 간단한 난독화 (안드로이드 개발툴킷에서 기본 제공)

• zip파일 헤더 변조를 통한 자가보호

• dex 디컴파일로 부터 자가 보호

• ndk를 이용한 개발 및 자가 보호

Page 36: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• 아직 숨겨진 트릭들이 많다

– 내가 악성코드 제작자라면??

• Malware File Dropping (Encryption, Use Network)

– 윈도우의 드롭퍼처럼 파일을 드랍해 악성 행위를 수행

– Bypass Dynamic Analysis

• Droidbox, Online Sandbox 등을 탐지해 정상적인 동작을 수행하지 않

– disturb Static Analysis

• 정적분석 시 코드를 보기 어렵도록 만듬

Page 37: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• Malware File Dropping (Encryption, Use Network)

– 일반 악성코드에 Dropper가 있다면 안드로이드에서도…?

• 암호화된 파일을 복호화

• 네트워크를 통한 다운로드

– 이미 실제 악성코드에 적용되어 있음

Page 38: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• Bypass Dynamic Analysis

• 목표

– Droidbox, Online Sandbox 등을 탐지해 정상적인 동작을

수행하지 않음

• 타겟 시스템

– http://anubis.iseclab.org

– 안드로이드 가상 머신 (AVD, Android Virtual Device, Droidbox )

– 실제 기기

Page 39: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• Real Machine과 Virtual Machine의 구분

– 리얼과 가상이므로 실질적인 차이가 존재할 것으로 판단

• Real Machine

– ARM Process를 기반으로 동작, 별도의 컨트롤이 필요하지 않음

• Virtual Machine

– AVD 등에서 ARM Process를 기반으로 하고 있지만 Host 머신은

x86이므로 가상화에 필요한 무언가가 있을것으로 판단

– 비교 분석 대상

• 실행중인 프로세스와 파일을 통한 비교

Page 40: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• 동적분석 우회

– QEMU

• VMWare, Virtualbox와 같은 가상화 소프트웨어

• 타 가상화 소프트웨어와 달리 다양한 플랫폼을 지원함.

– x86 기반 시스템에서 ARM 에뮬레이팅이 가능

– ARM 이외에도 MIPS등의 CPU 에뮬레이팅 가능

Page 41: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• 탐지방법 – 실행중인 프로세스 목록중 qemud의 동작여부 확인

– /system/bin/qemud, /system/bin/qemu-props 존재여부 확인

Page 42: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• 동적분석 우회 테스트 – 테스트 코드 실행

Page 43: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• 동적분석 우회 테스트 – Anubis 테스트

https://anubis.iseclab.org/?action=result&task_id=1ecd971eb2ddc36d4117752853f30dd24&format=html

Page 44: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• JAVA Self Modifying Code

– 시도해보지 않았으나 사긴이 오래 걸릴것 같아 Pass

• Arm Self Modifying Code

– NDK로 개발해 자기자신의 코드를 암호화 하여 배포,

– IDA등으로 분석 시도 할 경우 암호화된 데이터를 볼 수 있음.

Page 45: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• Arm Self Modifying Code

Page 46: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• Concept

Page 47: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• POC

initializing: mov r0, pc

sub r0, r0, #24

sub r1, r0, #400 ; 0x190

ldr r8, [r0, #388] ; 0x184

sub r1, r1, r8

ldr r2, [r0, #392] ; 0x188

sub r3, r0, #400 ; 0x190

ldr r4, [r0, #396] ; 0x18c

mov r6, #0

Decode: ldr r8, [r1, r6]

eor r8, r8, r5

str r8, [r1, r6]

add r6, r6, #4

cmp r6, r2

Decode Func Addr

Decode Func Size

Get Decode Key

Load Encryption Data

Decrypt

Save

Simple XOR !!

SetKey

mov r5, #0

ldr r5, [r0, #384] ; 0x180

Page 48: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• POC - Original

Page 49: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• POC - Encryption

Page 50: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 5. 실험적 경험론

• NDK Anti Debugging Code 삽입

– JNI_Onload 함수 내에 안티 디버깅 코드 삽입으로 디버깅

여부 탐지 가능

– JNI_Onload

• NDK 파일을 Load.library로 로드하게 될 때 호출 여부와 관계없이

가장 먼저 실행하게 되는 함수

• 코드패치를 하지 않을 경우 라이브러리 로드 단계에서 프로세스가

종료됨

Page 51: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 6. 영겁회귀

모든것은 무한히 되풀이 된다

Page 52: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 6. 영겁회귀

• Countermeasure

새로운

플랫폼의 출연

악성코드 등장

방어 기술의 진화

악성코드의 진화

Page 53: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part 6. 영겁회귀

• Countermeasure

– 우리는 같은 싸움을 반복해 왔다.

• 환경만 변했을 뿐이다.

• 이후 IoT와 같은 새로운 영역에서 같은 문제가 발생할 수 있다.

– 오늘본 코드들, 분명 곧 악성코드에서 다시 만나게 될 것이다.

• 그 이상의 발전된 기술로 우리를 놀래킬 것이다.

– 어느것도 완벽히 막을 수는 없다.

• 그렇기 때문에 우리는 대비해야 한다.

Page 54: 안드로이드 악성코드의 철학적_연구_padocon_조효제

Part7. Reference

• 악성코드의 역사 , 윤주환, 2013.02.23, http://www.slideshare.net/btakeya/ss-17061173

• 안드로이드 앱 보호를 위한 네이티브 코드 암호화 연구, 조효제, 2014. 02, 순천향대학교

• 위키피디아 철학, http://ko.wikipedia.org/wiki/%EC%B2%A0%ED%95%99

• 다음 백과사전 철학, 다음, http://100.daum.net/encyclopedia/view.do?docid=b20c2369b