SlideShare a Scribd company logo
1 of 17
안드로이드 마스터키 취약점
발표자에 대한 짧은 소개
이번 강연을 듣기 위해서 필요한 것은?
안드로이드가 무엇일까?


2008년 출시된 리눅스 커널 기반의
모바일 플랫폼



현재 Android 4.3 버전인 젤리빈까지
업데이트



ARM, MIPS, x86 Architecture 까지
지원



Apache 2.0, GPL v2 License



전세계에서 약 9억대의 단말기에서
사용되고 있음
왜 안드로이드 취약점이 위험한가


레퍼런스 폰을 제외한 다른 휴대폰은 단말기 제조사가 업데이트
된 버전을 제공해야 하기 때문에 빠른 업데이트가 어려움



업데이트 된 버전을 제공하더라도 본인이 업데이트를 하지 않는
경우가 많고, 업데이트 하는 법이 번거로워 업데이트를 잘 하지
않음.



공격자가 취약점을 악용해 공격할 경우 APK 파일을 “알 수 없는
소스 설치”를 활성화 해 놓으면 설치 가능



이 때문에 패치가 되더라도 공격 대상은 줄지 않는 것이 특징

T store, Olleh store,
OZ store 의 경우
알 수 없는 소스
체크를 해제해야
설치가 가능함
안드로이드 마스터키 취약점?
APK 파일 구조
APK 내부에서 사용할
파일들이 저장됨

APK 에서 사용될 외부
라이브러리가 위치함
APK 파일을 인증하는
파일들이 위치함
Xml 이나 APK 에서
사용될 이미지가 저장
Dalvik 머신에서 돌릴
소스 파일
APK 파일 실행 과정
classes.dex
AndroidManifest.xml
classes.dex
resources.arsc
META-INF
MANIFEST.MF

MANIFEST.MF
Android
PackageParser
ZipFile.java

Android Dalvik
Machine

Load Fail
META-INF 파일?

각 파일의 Hash 정보를 MANIFEST.MF에 저장함
나중에 여기에 저장된 파일은 ZipFile.java 라는 곳에서
HashMap class 로 가져옴
HashMap class?
HashMap<String, String> hashmap = new HashMap<String, String>();
……..
hashmap.put(“resources.arsc”, “te8QmLcoFryubr7j35nJn9hBL0w=“);
hashmap.put(“classes.dex”, “1scfAxJEwLtNZ7GFtfPjRIN7cJg=“);
hashmap.put(“AndroidManifest.xml”, “NkADBOd37NXe+7rROuZr9VekTdM=“);
……...
Duplicate classes.dex
HashMap<String, String> hashmap = new HashMap<String, String>();
……..
hashmap.put(“resources.arsc”, “te8QmLcoFryubr7j35nJn9hBL0w=“);
hashmap.put(“classes.dex”, “1scfAxJEwLtNZ7GFtfPjRIN7cJg=“);
hashmap.put(“classes.dex”, “//////////////////////////////////”);
hashmap.put(“AndroidManifest.xml”, “NkADBOd37NXe+7rROuZr9VekTdM=“);
……...
hashmap.put(“classes.dex”, “//////////////////////////////////”);
공격을 하기 위한 조건


Package명과 Class명을 공격 대상 애플리케이션과 동일하게 해야 함



1. 기존의 dex File의 snail code를 수정하여 repackaging



2. AndroidManifest.xml 에 있는 package, class를 그대로 복원하여 소스를 reconstruct
시연


Target Application : Test application (kr.reversergoodboy.hackersbank)



Target Environment : Android 4.0 (Android Virtual Machine)
왜 이 취약점이 위험할까?


진짜 파일에 Classes.dex만 수정하는 것이라 일반인은 구분이 불가함



Classes.dex 만 생성해서 삽입하면 공격이 됨. ( 간.편 )



취약점이 발생하더라도 단말기 제조업체에서 업데이트를 하지 않으면 DANGER!
 1-Day Exploit이 발생
해결 방법


기기 업데이트 (단말기 제조업체에서 제공하는 경우)



Play store에서만 애플리케이션 다운로드 할 것. (Play store에서도 악성 앱의 발견수가 증가하고
있으므로 믿을 수 있는 애플리케이션만 설치할 것)



Bluebox Security 사에서 제공하는 스캐너를 이용하여 이 취약점을 이용한 악성코드를 탐지하고
취약 여부를 확인함
질의응답
감사합니다

More Related Content

Similar to KSIA 7th Security Conference Session 2 ( Android Masterkey )

[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
 
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfletswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfLee Dahae
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig baseINSIGHT FORENSIC
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴Sanghyuk Jung
 
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 APINAVER Engineering
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicknight1128
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataTed Won
 
20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현Tae Young Lee
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1jangpd007
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집Daegwon Kim
 
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
(140407) #fitalk   d trace를 이용한 악성코드 동적 분석(140407) #fitalk   d trace를 이용한 악성코드 동적 분석
(140407) #fitalk d trace를 이용한 악성코드 동적 분석INSIGHT FORENSIC
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장SeongHyun Ahn
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
Open Source Engineering V2
Open Source Engineering V2Open Source Engineering V2
Open Source Engineering V2YoungSu Son
 
안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법chon2010
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명Peter YoungSik Yun
 
Android ndk jni 설치및 연동
Android ndk jni 설치및 연동Android ndk jni 설치및 연동
Android ndk jni 설치및 연동Sangon Lee
 
JVM_트러블슈팅.pdf
JVM_트러블슈팅.pdfJVM_트러블슈팅.pdf
JVM_트러블슈팅.pdfkwbak
 

Similar to KSIA 7th Security Conference Session 2 ( Android Masterkey ) (20)

[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
 
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfletswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig base
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴
 
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
 
JDK 변천사
JDK 변천사JDK 변천사
JDK 변천사
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집
 
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
(140407) #fitalk   d trace를 이용한 악성코드 동적 분석(140407) #fitalk   d trace를 이용한 악성코드 동적 분석
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
Open Source Engineering V2
Open Source Engineering V2Open Source Engineering V2
Open Source Engineering V2
 
안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법안드로이드 와 디바이스 드라이버 적용 기법
안드로이드 와 디바이스 드라이버 적용 기법
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 
Android ndk jni 설치및 연동
Android ndk jni 설치및 연동Android ndk jni 설치및 연동
Android ndk jni 설치및 연동
 
JVM_트러블슈팅.pdf
JVM_트러블슈팅.pdfJVM_트러블슈팅.pdf
JVM_트러블슈팅.pdf
 

Recently uploaded

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 

Recently uploaded (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

KSIA 7th Security Conference Session 2 ( Android Masterkey )

  • 3. 이번 강연을 듣기 위해서 필요한 것은?
  • 4. 안드로이드가 무엇일까?  2008년 출시된 리눅스 커널 기반의 모바일 플랫폼  현재 Android 4.3 버전인 젤리빈까지 업데이트  ARM, MIPS, x86 Architecture 까지 지원  Apache 2.0, GPL v2 License  전세계에서 약 9억대의 단말기에서 사용되고 있음
  • 5. 왜 안드로이드 취약점이 위험한가  레퍼런스 폰을 제외한 다른 휴대폰은 단말기 제조사가 업데이트 된 버전을 제공해야 하기 때문에 빠른 업데이트가 어려움  업데이트 된 버전을 제공하더라도 본인이 업데이트를 하지 않는 경우가 많고, 업데이트 하는 법이 번거로워 업데이트를 잘 하지 않음.  공격자가 취약점을 악용해 공격할 경우 APK 파일을 “알 수 없는 소스 설치”를 활성화 해 놓으면 설치 가능  이 때문에 패치가 되더라도 공격 대상은 줄지 않는 것이 특징 T store, Olleh store, OZ store 의 경우 알 수 없는 소스 체크를 해제해야 설치가 가능함
  • 7. APK 파일 구조 APK 내부에서 사용할 파일들이 저장됨 APK 에서 사용될 외부 라이브러리가 위치함 APK 파일을 인증하는 파일들이 위치함 Xml 이나 APK 에서 사용될 이미지가 저장 Dalvik 머신에서 돌릴 소스 파일
  • 8. APK 파일 실행 과정 classes.dex AndroidManifest.xml classes.dex resources.arsc META-INF MANIFEST.MF MANIFEST.MF Android PackageParser ZipFile.java Android Dalvik Machine Load Fail
  • 9. META-INF 파일? 각 파일의 Hash 정보를 MANIFEST.MF에 저장함 나중에 여기에 저장된 파일은 ZipFile.java 라는 곳에서 HashMap class 로 가져옴
  • 10. HashMap class? HashMap<String, String> hashmap = new HashMap<String, String>(); …….. hashmap.put(“resources.arsc”, “te8QmLcoFryubr7j35nJn9hBL0w=“); hashmap.put(“classes.dex”, “1scfAxJEwLtNZ7GFtfPjRIN7cJg=“); hashmap.put(“AndroidManifest.xml”, “NkADBOd37NXe+7rROuZr9VekTdM=“); ……...
  • 11. Duplicate classes.dex HashMap<String, String> hashmap = new HashMap<String, String>(); …….. hashmap.put(“resources.arsc”, “te8QmLcoFryubr7j35nJn9hBL0w=“); hashmap.put(“classes.dex”, “1scfAxJEwLtNZ7GFtfPjRIN7cJg=“); hashmap.put(“classes.dex”, “//////////////////////////////////”); hashmap.put(“AndroidManifest.xml”, “NkADBOd37NXe+7rROuZr9VekTdM=“); ……... hashmap.put(“classes.dex”, “//////////////////////////////////”);
  • 12. 공격을 하기 위한 조건  Package명과 Class명을 공격 대상 애플리케이션과 동일하게 해야 함  1. 기존의 dex File의 snail code를 수정하여 repackaging  2. AndroidManifest.xml 에 있는 package, class를 그대로 복원하여 소스를 reconstruct
  • 13. 시연  Target Application : Test application (kr.reversergoodboy.hackersbank)  Target Environment : Android 4.0 (Android Virtual Machine)
  • 14. 왜 이 취약점이 위험할까?  진짜 파일에 Classes.dex만 수정하는 것이라 일반인은 구분이 불가함  Classes.dex 만 생성해서 삽입하면 공격이 됨. ( 간.편 )  취약점이 발생하더라도 단말기 제조업체에서 업데이트를 하지 않으면 DANGER!  1-Day Exploit이 발생
  • 15. 해결 방법  기기 업데이트 (단말기 제조업체에서 제공하는 경우)  Play store에서만 애플리케이션 다운로드 할 것. (Play store에서도 악성 앱의 발견수가 증가하고 있으므로 믿을 수 있는 애플리케이션만 설치할 것)  Bluebox Security 사에서 제공하는 스캐너를 이용하여 이 취약점을 이용한 악성코드를 탐지하고 취약 여부를 확인함