[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

21
슈슈슈슈슈슈 슈슈슈 슈슈슈슈슈 슈슈슈슈슈슈슈 슈슈 슈슈 슈슈슈슈 2015-10-07 1

Upload: kenny-park

Post on 22-Feb-2017

255 views

Category:

Education


9 download

TRANSCRIPT

Page 1: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

1

슈퍼컴퓨터를 이용한안드로이드 어플리케이션의

정적 분석

울프리카

2015-10-07

Page 2: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

2

믿었던 손전등 앱 마저…

2015-10-07

' 손전등 앱 ' 개인정보 훔쳐가… 유심칩 번호까지

유출http://imnews.imbc.com//replay/2014/nwtoday/article/3553372_13495.html

Page 3: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

3

권한은 읽지도 않는다

2015-10-07

특정 권한이 있다면 개인 정보에 마음대로 접근할 수 있다http://cfile23.uf.tistory.com/image/116B183F4EDDA0D02D4774

http://rosaec.snu.ac.kr/meet/file/20120118i.pdf

Page 4: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

4

백신이 필요하다

2015-10-07

TaintDroid 패키지명 ?권한 ?

Page 5: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

5

동적 분석 vs 정적 분석

2015-10-07

직접 실행해 보며 유출 지점을 찾는 동적 분석

실행해 보지 않고도 분석해내는 정적 분석분석시 시간 및 위험 최소화

Page 6: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

6

APK 파일 구조

2015-10-07

Android 에서 어플리케이션을 이루고 있는 APK 파일의 구조http://justamomentgoose.files.wordpress.com/2013/06/apk-structure.png

Page 7: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

7

그러나…

2015-10-07

Page 8: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

8

난독화 및 보호

2015-10-07

APKProtecthttp://apkprotect.com

Page 9: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

9

엄청난 시간 요구

2015-10-07

ScanDal - Black Market Applicationshttp://ropas.snu.ac.kr/scandal/

Page 10: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

102015-10-07

슈퍼컴퓨터를 활용하자 !

Page 11: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

11

기대 효과 <Server>

2015-10-07

ScanDal

유출 가능 차단

Page 12: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

12

기대 효과 <Client>

2015-10-07

ScanDal

유출 가능 안전한 앱

Page 13: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

13

차단할 경로

2014-11-22

개인정보를 획득하는 부분

개인정보가 기기 밖으로 나가는 부분

Source

Sink

Page 14: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

14

Flow Chart <Source>

2014-11-22

개인 정보접근

개인 정보

다음 단계로…

Page 15: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

15

Flow Chart <Source> (Cont.)

2014-11-22

개인 정보접근

개인 정보

다음 단계로…

PrivateManager

Page 16: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

16

Flow Chart <Sink>

2014-11-22

개인 정보유출 가능

외부

다음 단계로…

Page 17: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

17

Flow Chart <Sink> (Cont.)

2014-11-22

개인 정보유출 가능

외부

다음 단계로…

PrivateManager

Page 18: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

18

Smali 코드

2015-10-07

a.javajavac

01100011101010011101010010010001111001111110101001011101101010111010101010000110001010101

class-es.dex

baks-mali

smali

iget-object v2, p0 …new-instance v3, …invoke-virtual {v1} …move-result- …invoke-direct …invoke-virtual {v3} …move-result v3a.smali

Page 19: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

19

Smali 코드 변경

2015-10-07

invoke-virtual {v7}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String; move-result-object v7

개인정보에 접근

const v13, 1 const-string v11, "src" const-string v12, "id“ invoke-static/range {v11 .. v13}, Lcom/privatechecker/inAppClass;->privateRequest(Ljava/lang/String;Ljava/lang/String;I)Z move-result v11

접근해도 되는지를 물어본다

if-eqz v11, :private4

goto :privateEnd4 :private4 const-string v7, "" :privateEnd4

허가되면 그대로 진행

아니라면 빈 문자열로

대체

Page 20: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

202015-10-07

Q&A

Page 21: [15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석

21

감사합니다

2015-10-07