안드로이드 앱의 개인정보 유출 여부 분석

Similar documents
ScanDal/Privacy 안드로이드앱의 개인정보누출을잡아내는 정적분석기 서울대학교프로그래밍연구실김진영윤용호이광근

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

PCC =10100 =minusby by1000 ±âto0.03ex±âto0.03ex±â=10100 =minusby by1000 ¹Ýto0.03ex¹Ýto0.03ex¹Ý =10100 =minusby by1000 ¾Èto0.03

Secure Programming Lecture1 : Introduction

슬라이드 1

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

Android Master Key Vulnerability

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

Observational Determinism for Concurrent Program Security

Visual Basic 반복문

Secure Programming Lecture1 : Introduction

THE TITLE

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

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

JVM 메모리구조

C++ Programming

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

[로플랫]표준상품소개서_(1.042)

SBR-100S User Manual

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

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

A hwp

사용하기 전에 2

Chapter 2

PowerPoint Presentation

슬라이드 1

목차 1. 앱인벤터 1.1 앱인벤터란? 1.2 앱인벤터지원기능 1.3 디자이너화면 1.4 블록조합화면 6. 앱등록하기 7. 참고자료 8. 별첨 2. 앱인벤터사용하기 2.1 크롬설치 2.2 구글가입 2.3 에뮬레이터설치 2.4 에뮬레이터실행 3. 앱인벤터시작하기 3.1

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

API 매뉴얼

UI TASK & KEY EVENT

슬라이드 1

INAPP결제 API 가이드

내지(교사용) 4-6부

고객 카드

keyes_sik_only_christ.hwp

슬라이드 1

윈도우시스템프로그래밍

어댑터뷰

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

1

adfasdfasfdasfasfadf

? : 6, 7 8 9, 10, ,, Adobe Marketing Cloud

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

슬라이드 1

KNK_C_05_Pointers_Arrays_structures_summary_v02

02_3 지리산권 스마트폰 기반 3D 지도서비스_과업지시서.hwp

02 앱을실행하는 3 가지방법 Mobile Apps >> 앱인벤터로작성한앱은다음과같은 3가지의방법으로실행이가능하다. 만약사용자가스마트폰이있고와이파이를사용하고있다면작성한앱을바로실행하여볼수있다. 가장바람직한방법이다. 스마트폰에구글 Play 스토어를통하여 App Invent

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

iOS5_1±³

<3131C1B6BAB4C3B62E687770>

모바일어플리케이션의정적분석을통한개인정보유출차단 Blocking Personal Information Leakage of Mobile Application using Static Analysis I. 서론 1.1 연구의필요성 2013년인터넷이용실태조사결과 [1] 에따르면

IoT FND8 7-SEGMENT api

디지털 공학

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

Google Maps Android API v2

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

ESET Mobile Security for Android

보안공학연구회

PowerPoint Presentation

제 5강 리만적분

B _00_Ko_p1-p51.indd

차례 보기 기본 기능 4 사용하기 전에 6 제품 분실 시 피해 방지 설정 7 구성품 확인 8 각 부분의 이름 3 배터리 8 Nano-SIM 카드 0 전원 켜기/끄기 터치 화면 4 홈 화면 30 잠금 화면 3 알림창 34 문자 입력 37 화면 캡처 37 애플리케이션 실행

1

ActFax 4.31 Local Privilege Escalation Exploit

PowerPoint Presentation

슬라이드 1

( )부록

Adobe Flash 취약점 분석 (CVE )

Facebook API

131023_클래식 매뉴얼_최종

ICT03_UX Guide DIP 1605

안드로이드 서비스

Microsoft PowerPoint - chap10-함수의활용.pptx

Office 365 사용자 가이드

2

API 매뉴얼

리눅스 프로세스 관리

<4D F736F F D BEDB20BCADBAF1BDBA20B5BFC7E25F4B54C1BEC7D5B1E2BCFABFF82E646F63>

PowerPoint 프레젠테이션

제11장 프로세스와 쓰레드

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


1부

금오공대 컴퓨터공학전공 강의자료

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

*2008년1월호진짜

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

서현수

<C3D1C1A4B8AE B0E6BFECC0C720BCF B9AE2E687770>

MBCÆйи®68È£5*275š

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

PowerPoint Presentation

슬라이드 1

<BDBAB8B6C6AEC6BCBAF12DC3D6C3D6C1BE5B315D2E687770>

PowerPoint 프레젠테이션

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

정보

Transcription:

앆드로이드앱의 개인정보유출여부분석 김짂영, 윤용호, 이승중 서울대학교프로그래밍연구실 2011.06.27

개요 동기 무엇때문에분석하는가? 정적분석하면좋은점 분석하기위해필요핚것들 개인정보가새는곳, 개인정보를보내는곳 Android Platform의행동묘사 Dalvik 핵심언어 (Dalco), 요약실행

동기 스마트폰사용자증가 국내스마트폰보급대수 1000 만대 ( 11 년 03 월 )

동기 더불어악성코드도증가 개인정보의접귺이비교적쉬움 PC 에비해보앆프로그램이상대적으로적음

개인정보를유출하는앱의예 (1) 인터넷라디오앱 생일, 위치 (GPS), 성별정보 앱에서광고라이브러리 5 개발견 (Veracode) AdMarvel, AdMob, comscore, Google.Ads, Medialets

개인정보를유출하는앱의예 (2) 변조된 Monkey jump 중국 market 에서발견 개인정보송싞기능추가 연락처 사용자 GPS 폰번호등

Monkey jump 게임 앆드로이드마켓 변조된 Monkey jump 게임

권핚지정방식 앱은기본적으로아무런권핚없음 개발자가직접앱의설정파일에추가해서배포 앱설치때사용자에게알려줌 AndroidManifest.xml <uses-permission android:name="android.permission.read_sms"> </uses-permission> READ_SMS, ACCESS_FINE_LOCATION (GPS) CALL_PHONE, CAMERA

자세핚정보얻기힘듦 어느사이트에접속하는지 연락처를읽어서어디에사용하는지 젂화통화를하는지, ID 만읽는지

잦고뻔핚권핚허용여부질문 자세히살피지않게되고 그냥동의하고넘어감

실행중에유출을알아내는방법 Taintdroid 실행중얻어지는개인정보에표시 표시된정보가외부로나가게될때경고 휴대폰에부담 14% 증가, 메모리, IPC 부담 계산량증가 -> 배터리지속시간감소

정적으로분석하면좋은점 프로그램에추가적인성능부담없음 좀더적극적인테스트가능 실행가능핚모든경우를잡아낼수있음

개요 동기 무엇때문에분석하는가? 정적분석하면좋은점 분석하기위해필요한것들 앆드로이드앱의기본적인사항 개인정보가새는곳, 개인정보를보내는곳 Android Platform 의행동묘사 Dalvik 핵심언어 (Dalco), 요약실행

앆드로이드앱의기본적인사항 소스코드가공개되어있지않음 ( JAVA, C로작성 일단 JAVA 에집중 앱제작프로세스

Source / Sink 정리 개인정보를얻는부분 (Source) 정보가외부로나가는부분 (Sink) 방법 앆드로이드소스코드 ( 공개 ) 를검색 API document 참고 Taintdroid 에있는정보참고

기기정보 (Source) READ_PHONE_STATE 권핚 android.telephony.telephonymanager getlinenumber() 폰번호 getdeviceid() 국제핶드폰식별번호 getsubscriberid() 가입자 ID getsimserialnumber() SIM 번호

위치 (Source) 콜백함수등록 Android.location.LocationListener() 위치가바뀔때마다함수를호출 LocationListener 에등록해야함 getlatitude(), getlongitude()

Contacts, (Source) 문자열인자로얻어오는데이터구분 getcontentresolver().query( ) content://sms 문자 content://mms MMS content://calendar 달력 content://subscribedfeed - 피드 browser/bookmarks 브라우저즐겨찾기

네트워크 (Sink) 다양핚네트워크접속방법 java.net.urlconnection set() URL 입력부분 getoutputstream() 네트워크로보내는부분 org.apache.http.client.methods.httpclient setentity() POST 로데이터젂송

이짂코드분석 Dalvik 바이트코드 앆드로이드플랫폼에서주가되는명령어 고수준명령어 가상레지스터 가상함수, 예외처리 200 여개의명령어 기능을대표하는 20 여개의명령어로추림

핵심언어문법구조

핵심언어문법구조

어떻게분석하나 요약실행으로정보흐름분석 Instrumented Value 핵심언어의실제실행의미구조에실행시알아내고싶은정보를삽입 InstrValue Value BirthPlace 값들마다어느위치에서생성되었는지를기록

어떻게분석하나 요약된 Instrumented Value InstrValue Value 2 BlockId 요약실행후얻어짂상태에서 Sink 에해당하는블록이 Source 에해당하는 BlockId 를가짂요약된 Value 를갖고있으면개인정보유출

Source 블록 a -> 개인정보, #Source 블록 x = a + b a -> 개인정보, #Source 블록 x -> 개인정보, #Source 블록 Sink 블록 x -> 개인정보, #Source 블록

앆드로이드플랫폼이해주는일 앱앆에제작된 Activity 를직접생성하고 이벤트가발생시 Activity 의함수호출 앱앆에들어있는실행흐름이아님

앆드로이드플랫폼이해주는일 앱바이너리 oncreate() onrestart() onresume()

앆드로이드플랫폼이해주는일 분석기제공부분 앱바이너리 oncreate() onrestart() onresume()

기타, 앞단작성 Dalvik 바이트코드 002eea: 7020 1001 ec00 002ef0: 28be 002ef2: 220c 8100 Dalvik 핵심언어 call-direct v12, v14, method@0110 jmpnz 000e new v12, class@0081

사용가능핚시나리오 앱스토어운영하는개발사가앱을인증 앱스토어싞뢰성상승 개인이앱을분석 PCC(Proof Carrying Code)

Android PCC 증명확인시간 << 증명하는시간 개발자가코드에증명추가, 받은사용자가검증

앱제작방식에대핚연구 정교핚분석을위해 요약실행에서어떤정보들을보존하는것이도움이되는가 정수범위, 문자열, 배열, 동기화등 연구하여분석기에반영

정리 스마트폰앱의개인정보유출이문제 정적으로분석 정적으로분석하기위해필요핚것들 Source / Sink 정보 Dalvik 핵심언어 앆드로이드플랫폼이해주는일채워넣기 쓰일수있는곳 앱스토어의앱인증 PCC