ScanDal/Privacy 안드로이드앱의 개인정보누출을잡아내는 정적분석기 서울대학교프로그래밍연구실김진영윤용호이광근
요약
요약 안드로이드앱의개인정보누출문제
요약 안드로이드앱의개인정보누출문제 정적분석으로잡아보자
요약 안드로이드앱의개인정보누출문제 정적분석으로잡아보자 잡았다요놈!
나의안드로이드사용기 - 블랙마켓
남의안드로이드사용기 - 블랙마켓
남의안드로이드사용기 - 블랙마켓
나의안드로이드사용기 - 확인. 수락. 다음. 예. 이런거, 안읽으시죠?
안드로이드보안은 사실상무방비상태 OS도 마켓도 사용자도 해답은?
TaintDroid? OS 를뜯어고쳐서앱을동적으로감시 기기가일을더하므로 (10% 까지 ) 느려진다 기기제조사도구글도그다지...
ScanDal / Privacy 앱을미리 Scan 하자 Dalvik 레벨에서 Java 가아닌 지금은 Privacy 유출에집중 Scandal 을일으켜보자
ScanDal 구조, 크게 apk 파서, 번역기및요약실행기 요약기계상태 Unzip dump 후처리기...dex... DexDump 누출경보
ScanDal 구조, 크게 apk 파서, 번역기및요약실행기 요약기계상태 Unzip dump 후처리기...dex... DexDump 누출경보
ScanDal 구조, 크게 apk 파서, 번역기및요약실행기 요약기계상태 Unzip dump 후처리기...dex... DexDump 누출경보
우리가찾는것은 민감한정보들이 전화번호부, 문자메시지, 위치정보, 사진, 영상, 기기고유번호 (IMEI 등 ) 어디로빠져나가는가 인터넷 URL에담아서 (WebView.loadUrl) 서버로직접 (OutputStream.write) 문자메시지로
성능 q tñ T Ñ T Äú l0 å x Ù (KB) ( ) (MB) ú i Kids Preschool Puzzle 87 6 67 X Ù! Flurry Job Search 167 6 121 X Ù! Ñ Kids Shapes 225 9 164 X Ù! Flurry Kids ABC Phonics 134 12 77 X Ù! Flurry Backgrounds HD Wallpapers 109 17 143 00 à8! Ñ Bible Quotes 138 36 278 X Ù! AdSense ES Task Manager 158 86 433 X Ù! AdSense Multi Touch Paint 198 174 740 X Ù! AdMob Adao File Manager 255 220 1160 X Ù! AdMob (D-Day) The Day Before 293 626 2761 X Ù! AdMob ò FreeSMS 387 708 1249 4 appleà8! Ñ Shot Gun Free* 95 36 164 X Ù, 4 appleà8, 00 à8! E1 Ñ Baseball Superstars 2010* 165 61 285 X Ù, 4 appleà8, 00 à8! E1 Ñ Monkey Jump 2* 169 74 442 X Ù, 4 appleà8, 00 à8! E1 Ñ Gold Miner* 191 81 481 X Ù, 4 appleà8, 00 à8! E1 Ñ Mini Army* 480 174 1292 X Ù, 4 appleà8, 00 à8! E1 Ñ Xing Metro* 253 23049 1784 X Ù, 4 appleà8, 00 à8! E1 Ñ 공식마켓의인기무료앱 + 비공식마켓의변조된앱 * AdSense, AdMob : 광고모듈서버 Flurry : 앱사용행태분석모듈서버
Google Wallpaper 4.2.2 (1/5) 기기고유번호 inittagwebview() getsearchurl() getlocale_version_imei_w_h()
Google Wallpaper 4.2.2 (2/5) inittagwebview() getsearchurl() getlocale_version_imei_w_h()
Google Wallpaper 4.2.2 (3/5) 기기고유번호 inittagwebview() getsearchurl() getlocale_version_imei_w_h()
Google Wallpaper 4.2.2 (4/5) 기기고유번호 inittagwebview() getsearchurl() getlocale_version_imei_w_h() http://www.imnet.us/api/wallpapers/photos/ search_keywords? +IMEI+SignatureParamString
Google Wallpaper 4.2.2 (5/5) 기기고유번호 inittagwebview() getsearchurl() getlocale_version_imei_w_h() http://www.imnet.us/api/wallpapers/ photos/search_keywords? +IMEI +SignatureParamString
비공식마켓의변조된앱 Monkey Jump 2, Gold Miner, Mini Army, Baseball Superstars 2010, Shot Gun Free, Xing Metro 겉보기엔공식마켓앱과같으나 악성코드를품고다시배포됨 ScanDal 로분석한결과 공식마켓의앱에서는누출없음 비공식마켓의앱에서는누출검출
다시, 좀더자세히 apk 파서, 번역기및요약실행기 요약기계상태 Unzip dump 후처리기...dex... DexDump 누출경보
분석용핵심언어 200 여개의달빅명령어를 18 개의명령어로번역 API 실행의미하드코딩용명령어포함
분석기본체, 요약실행기 apk 파서, 번역기및요약실행기 요약기계상태 Unzip dump 후처리기...dex... DexDump 누출경보
요약실행기 요약해석이론에따라 실행의미정의, 요약실행의미정의
간단한문자열분석도 Prefix Domain 문자열을공통접두사로요약 URL, URI 분석에유용 하길기대하며 ropas.snu.ac.kr/~yhyoon ropas.snu.ac.kr/~jykim ropas.snu.ac.kr/~*
아까그예제에서는 기기고유번호 inittagwebview() getsearchurl() getlocale_version_imei_w_h() http://www.imnet.us/api/wallpapers/ photos/search_keywords? +IMEI +SignatureParamString
벽, 높지는않은 타입에따라다른메소드호출 예외상황처리 실행의미정의만잘되면충분
진짜벽하나, Listener Java의이벤트처리콜백 주로 UI에관련 앱을모델링 초기화단계후 이벤트를대기하는형태 이벤트대기부분은 flow-insensitive 분석
좀더넓게보면 코드에명시되지않는함수호출 Listener 등록을포함하여 Thread, Intent, 기타여러 API 지금은일일이실행의미를하드코딩
노동집약적벽 라이브러리함수실행의미 정적분석기라면누구나마주치는 Java 기본라이브러리도방대한데... Android API 는클래스가약 3 천개 자주쓰이는것위주로하드코딩
언제나까다로운 Reflect ( 아주단순한 ) 다단계프로그래밍 문자열로클래스, 메소드를 문자열값도분석하므로 현재, 문자열로클래스 (java.lang.class) 객체를만드는프로그램은분석가능
다른측면 : 비용 q tñ T Ñ T Äú l0 å x Ù (KB) ( ) (MB) ú i Kids Preschool Puzzle 87 6 67 X Ù! Flurry Job Search 167 6 121 X Ù! Ñ Kids Shapes 225 9 164 X Ù! Flurry Kids ABC Phonics 134 12 77 X Ù! Flurry Backgrounds HD Wallpapers 109 17 143 00 à8! Ñ Bible Quotes 138 36 278 X Ù! AdSense ES Task Manager 158 86 433 X Ù! AdSense Multi Touch Paint 198 174 740 X Ù! AdMob Adao File Manager 255 220 1160 X Ù! AdMob (D-Day) The Day Before 293 626 2761 X Ù! AdMob ò FreeSMS 387 708 1249 4 appleà8! Ñ Shot Gun Free* 95 36 164 X Ù, 4 appleà8, 00 à8! E1 Ñ Baseball Superstars 2010* 165 61 285 X Ù, 4 appleà8, 00 à8! E1 Ñ Monkey Jump 2* 169 74 442 X Ù, 4 appleà8, 00 à8! E1 Ñ Gold Miner* 191 81 481 X Ù, 4 appleà8, 00 à8! E1 Ñ Mini Army* 480 174 1292 X Ù, 4 appleà8, 00 à8! E1 Ñ Xing Metro* 253 23049 1784 X Ù, 4 appleà8, 00 à8! E1 Ñ 시간도메모리도많이쓰지만...
앞으로 남은벽들을마저넘고 Reflect 누출아닌누출 콜백찾기자동화 분석속도를높이고 발넓히기
고맙습니다