42
1 안드로이드 플랫폼과 악성코드 동향 안철수 연구소 이성근 책임연구원

keris 78th forum

Embed Size (px)

DESCRIPTION

안드로이드 플랫폼과 악성코드 동향

Citation preview

Page 1: keris 78th forum

1

안드로이드 플랫폼과 악성코드 동향

안철수 연구소

이성근 책임연구원

Page 2: keris 78th forum

목 차

1. 안드로이드 플랫폼

2. 앱(App) 과 앱 마켓플레이스(Marketplace)

3. 악성코드 동향 및 분석

4. 안드로이드 앱(App) 분석

5. 루팅 및 탈옥

6. 시사점

Page 3: keris 78th forum

안드로이드 플랫폼

Page 4: keris 78th forum

4

안드로이드 플랫폼의 개요

Page 5: keris 78th forum

5

안드로이드 플랫폼의 구조

Android Runtime : 자바 프로그래밍 언어의 핵심 라이브러리 기능 대부분을 제공하도록 핵심 라이브러리를 제공 및 Dalvik 버추얼 머신을 포함하고 있다. Linux Kernel : 보안, 메모리 관리, 프로세스 관리, 네트워크 스택, 드라이버 모델과 같은 리눅스 버전2.6의 핵심 시스템 서비스를 이용하며 커널은 하드웨어와 소프트웨어간 추상계층으로 동작한다

Page 6: keris 78th forum

6

안드로이드의 파일 시스템

리눅스 파일시스템을 기반으로 구성됨. 안드로이드 플랫폼 위한 파일 저장 폴더 추가됨 /data, /system를 폴더가 추가 되어 있음.

그림. 안드로이드 파일 시스템

Page 7: keris 78th forum

7

안드로이드 플랫폼의 디렉토리 구조 (1)

Android의 App의 배포 단위는 apk 파일로 배포됨. Apk는 다음과 같은 디렉토리에 저장됨. /data/app은 설치된 서드파티의 응용프로그램이 저장되는 위치

그림. 디렉토리 구조

Page 8: keris 78th forum

8

안드로이드 플랫폼의 디렉토리 구조 (2)

App의 Private 데이터의 영역이 저장되는 위치 <패키지 이름>은 단말기에서 유일해야 함. App은 서로간의 데이터를 접근할 수 없음.

Page 9: keris 78th forum

9

안드로이드 플랫폼의 파일 구조

App의 최소 배포 단위는 apk로 배포 실행 파일은 Dex

Page 10: keris 78th forum

앱(App)과 앱 마켓플레이스(Market Place)

Page 11: keris 78th forum

11

앱(App)과 앱 마켓플레이스( Marketplace )

앱(App) 정의 - 어플리케이션 소프트웨어(Application Software)의 줄임말. - 애플 앱스토어의 성공 이후 스마트폰 어플리케이션을 의미함.

앱 마켓플레이스( Marketplace ) - 개발자가 앱을 등록하고, 사용자가 다운로드 할 수 있는 공간. - Apple AppStore, Google Android Market 등 다양함.

Page 12: keris 78th forum

12

안드로이드 마켓( Android Market )

정보통신산업진흥원 ‘스마트폰 OS 및 어플리케이션 산업 동향’ 참고

안드로이드 마켓 - 2010년 3월을 기준으로 급속하게 등록 앱이 증가함. - 국내에는 T-Store, KT 올레 스토어, LG U+ Oz 스토어 등을 운영 중. - 애플 앱스토어에 비해 무료앱의 비중이 높음. - 무료앱의 경우 ‘광고’를 이용한 수익 모델을 채택하고 있음. - 비공식적인 서트파티 마켓이 운영 중임.

Page 13: keris 78th forum

13

안드로이드 마켓( Android Market ) 등록방법

개발자 등록 - 최초 유료 25$ 지불. - 구글 계정, 영문 이름, 메일 주소, 홈페이지, 전화번호 등록. - 누구나 쉽게 개발자로 등록이 가능함.

앱(App) 등록 - 서명된 apk 파일을 마켓에 업로드. - 아이콘, 스크린 샷, 프로그램 이름, 설명, 카테고리, 국가 등 선택. - 마지막으로 ‘Publish’ 클릭하면 바로 등록 및 배포. - 앱(App) 보안 검증 절차 및 심의 과정 없음.

Page 14: keris 78th forum

악성코드 동향 및 분석

Page 15: keris 78th forum

느린 감염 호기심, 자기과시

빠른 감염 호기심, 자기과시

Zero-Day 공격 금전적인 목적

~ 1995 1996 ~ 2000 2001 ~2005

• Files Virus

• Boot Virus

• Macro Virus

• Script Virus

• Worm

• Spyware

• Spam

• Phishing

• BotNet

• Rootkit

2006 ~ 2009

LAN

16비트 DOS

Internet

32비트 Windows

악성코드의 행위 변화

Internet

32비트 Windows

금전적 목적/조직적 Targeted 공격 국지적 양상

악성코드 대량 양산 쉽고 빠른 변종 제작

복잡성, 고도화 배포방법 다양화

• Trojans

• 사회공학 기법

WEB, P2P, USB Multi-Media 서비스

64비트 Windows 모든 플랫폼/서비스

범죄화 금전적 목적 개인정보유출 국지적 양상

Smart Phone Cloud Computing Social Computing

Windows 7

2010

• Open Market

• SNS

Page 16: keris 78th forum

스마트 폰 악성코드의 행동 패턴

Services that cost you money make phone calls send SMS or MMS

Storage modify/delete SD card contents

Your personal information read contact data read calendar data, write calendar data

Phone calls read phone state and identity

Your location fine (GPS) location coarse (network-based) location

Network Communication create Bluetooth connection full internet access view network state, view Wi-Fi state

Page 17: keris 78th forum

17

안드로이드 악성코드의 증가

악성코드 현황 - 안드로이드 폰의 증가로 인한 악성코드의 개수 증가.

- 2011년 이후 급속하게 증가함.

Page 18: keris 78th forum

18

안드로이드 악성코드 분석 요약

악성코드의 퍼미션과 API 분석 결과

Page 19: keris 78th forum

19

악성코드 분석 ( 1/4 )

Date 2010.10. 진단명 Android-

Spyware.Mobilefonex

퍼미션

android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_WIFI_STATE android.permission.CALL_PHONE android.permission.INTERNET android.permission.PROCESS_OUTGOING_CALLS android.permission.READ_CONTACTS android.permission.READ_PHONE_STATE android.permission.READ_SMS android.permission.RECEIVE_BOOT_COMPLETED android.permission.RECEIVE_SMS android.permission.RESTART_PACKAGES android.permission.SEND_SMS android.permission.WAKE_LOCK android.permission.WRITE_CONTACTS android.permission.WRITE_SMS android.permission.MODIFY_PHONE_STATE

API android.app.ActivityManager.getMemoryInfo android.content.Context.getContentResolver android.content.Context.getSystemService android.content.Context.openFileOutput android.location.Location.getLatitude android.location.Location.getLongitude android.location.LocationManager.getAllProviders android.location.LocationManager.getLastKnownLocation android.net.ConnectivityManager.getNetworkInfo android.telephony.gsm.GsmCellLocation.getCid android.telephony.gsm.GsmCellLocation.getLac android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendMultipartTextMessage android.telephony.SmsManager.sendTextMessage android.telephony.TelephonyManager.getCallState android.telephony.TelephonyManager.getCellLocation android.telephony.TelephonyManager.getDataState

행위

상용으로 판매되는 스파이웨어 프로그램이다. 수신 내역 가로채기, SMS/Email/GPS 정보 유출하기, Email 답장 발송 기능, 전화 송수신 유출하기, SIM 정보 변경 통보, SMS를 통해 핸드폰의 모든 기능 제어하기, 핸드폰의 각종 정보 유출하기등 다양한 악의적인 기능을 수행한다. 또한 설치되어 동작할 경우 아이콘으로 표기 되지 않아 사용자는 설치 및 동작 사실을 인지할 수 없다.

Page 20: keris 78th forum

20

악성코드 분석 (2/4)

Date 2010.12. 진단명 Android-Spyware.

Geimini

퍼미션

android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_NETWORK_STATE android.permission.WRITE_EXTERNAL_STORAGE android.permission.RECEIVE_BOOT_COMPLETED android.permission.RECEIVE_SMS android.permission.SEND_SMS android.permission.CHANGE_NETWORK_STATE android.permission.READ_PHONE_STATE android.permission.WAKE_LOCK android.permission.INTERNET

API

android.content.Context.getContentResolver android.content.Context.getSystemService android.content.pm.PackageManager.getInstalledPackages android.net.ConnectivityManager.getNetworkInfo android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendTextMessage android.telephony.SmsMessage.getDisplayOriginatingAddress android.telephony.SmsMessage.getMessageBody android.telephony.TelephonyManager.getCallState android.telephony.TelephonyManager.getLine1Number

행위 성인물을 리패킹 하여 서드 파티 마켓(third party market)에 등록된 앱으로 성인물이 실행되나 사용자 동의 없이 사용자 개인 정보를 유출한다

Page 21: keris 78th forum

21

악성코드 분석 (3/4)

Date 2011.03. 진단명 Android-Spyware.

BgService

퍼미션

android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_NETWORK_STATE android.permission.WRITE_EXTERNAL_STORAGE android.permission.RECEIVE_BOOT_COMPLETED android.permission.RECEIVE_SMS android.permission.SEND_SMS android.permission.CHANGE_NETWORK_STATE android.permission.READ_PHONE_STATE android.permission.WAKE_LOCK android.permission.INTERNET

API

android.content.Context.getContentResolver android.content.Context.getSystemService android.content.pm.PackageManager.getInstalledPackages android.net.ConnectivityManager.getNetworkInfo android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendTextMessage android.telephony.SmsMessage.getDisplayOriginatingAddress android.telephony.SmsMessage.getMessageBody android.telephony.TelephonyManager.getCallState android.telephony.TelephonyManager.getLine1Number

행위 Android Market으로 위장하여 핸드폰 정보를 유출하고 특정 URL에 접속하여 파일을 다운로드 받는다.

Page 22: keris 78th forum

22

악성코드 분석 (4/4)

Date 2011.05. 진단명 Android-Trojan.

Smspacem 퍼미션

android.permission.READ_PHONE_STATE android.permission.SEND_SMS android.permission.WRITE_SMS android.permission.RECEIVE_SMS android.permission.READ_CONTACTS android.permission.RECEIVE_BOOT_COMPLETED android.permission.INTERNET android.permission.SET_WALLPAPER

사용 API

android.content.Context.getContentResolver android.content.Context.getSystemService android.database.sqlite.SQLiteDatabase.openDatabase android.location.Location.getLatitude android.location.Location.getLongitude android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendTextMessage android.telephony.SmsMessage.getMessageBody android.telephony.TelephonyManager.getLine1Number

행위

종교 비하 어플리케이션으로 위장하여 제 3의 마켓(Third Party Market)에서 배포되며 설치 시 단말기의 바탕화면을 변경하며, 2011년 5월 21일과 같이 특정한 날이 되면 현재 핸드폰의 연락처에 저장된 전화번호로 다음의 메시지를 전송한다. "Cannot talk right now, the world is about to end" "Jebus is way over due for a come back" "Its the Raptures,praise Jebus" "Prepare to meet thy maker, make sure to hedge your bet just in case the Muslims were right" "Just saw the four horsemen of the apocalypse and man did they have the worst case of road rage" "Es el fin del mundo" "I am infected and alive ver 1.00” “You have to download this and thank me later” 문자와 다음의 문자열중한문자를 더한 문자를 발송한다. http://turbobit.net/3qijra41byed.html http://turbobit.net/9fzlltk2eptu.html http://turbobit.net/9c19sk0tcg8z.html. 특정한 날에 http://biofaction.no-ip.biz/talktome.asmx 으로 SOAP 방법을 사용하여 통신을 한다. 즉, 사용자 동의 없이 사용자 핸드폰에 저장된 연락처로 지구 종말에 관련된 문자를 발송하며 외부의 명령을 받아 추가적인 기능을 수행한다.

Page 23: keris 78th forum

Android-Spyware/Ewalls

안드로이드 트로이 목마 출현 개인의 전화번호와 단말기 정보, SIM 정보를 특정 서버로 전송 개인의 전화번호는 보이스 피싱과 스팸 문자에 악용될 수 있음

Page 24: keris 78th forum

Android.Trojan/SmsSend

안드로이드 플랫폼에서 최초의 SMS 트로이목마 출현 Movie Player로 가장하여 마켓에서 다운로드 유도 앱(App) 을 실행하면 유료 부가 서비스에 임의로 문자 발송하여 과금 발생 사용자는 불법 과금이 발생 했는 지 인지하기 어려움 2010년 8월, 9월, 10월에 변종 출현

Page 25: keris 78th forum

Android-Spyware/Snake

안드로이드 플랫폼에서 게임으로 가장하여 다운로드 후에 GPS 정보를 특정 서버로 전송 GPS Spy(유로 4.99$)를 다운로드 받은 사용자는 Snake가 전송한 GPS 정보를 통해 사용자의 위치 정보를 수신 GPS Spy와 Snake는 Email과 Key를 입력

Page 26: keris 78th forum

Android-Trojan/Rooter

안드로이드 공식 마켓인 구글 마켓에서 유포된 악성코드 설치되면 강제로 루팅을 시도하고 루트 권한을 확보 원격 서버에 단말기와 사용자의 개인정보를 다량으로 유출

Page 27: keris 78th forum

Android-Spyware/Adrd

일반 앱을 변조하여 악성코드를 삽입한 후 배포 사용자의 개인 정보를 무단으로 전송 문자 메시지를 통해서 원격 조정을 하는 기능 포함

Page 28: keris 78th forum

안드로이드 앱(App) 분석

Page 29: keris 78th forum

29

안드로이드 앱(App) 분석 요약

분석 샘플 - 안드로이드 마켓, 블랙 마켓 등을 통해 3만개 샘플 확보함.

- 앱(App) 퍼미션과 API를 이용해 분석함.

0.00%

5.00%

10.00%

15.00%

20.00%

25.00%

30.00%

35.00%

개인 정보 접근 과금 비용 발생 가능 단말 정보 유출 가능 사용 정보 유출 가능 위치 정보

Malware

BlackMarket

Googlel Market

Page 30: keris 78th forum

30

안드로이드 앱(App) 상세 분석 (1/5)

개인 정보 - 사용자의 SMS 접근, 주소록 접근이 높게 나타났음.

Page 31: keris 78th forum

31

안드로이드 앱(App) 상세 분석 (2/5)

과금 발생 가능성 높음 - SMS 전송, 인터넷을 통한 데이터 트래픽 발생 가능성.

Page 32: keris 78th forum

32

안드로이드 앱(App) 상세 분석 (3/5)

단말 정보 유출 가능성 높음 - IMEI, IMSI, 전화번호 등 단말의 정보에 접근함.

Page 33: keris 78th forum

33

안드로이드 앱(App) 상세 분석 (4/5)

사용자 위치 정보 접근 및 전송

Page 34: keris 78th forum

34

안드로이드 앱(App) 상세 분석 (5/5)

사용자 개인 정보 접근

Page 35: keris 78th forum

루팅 및 탈옥

Page 36: keris 78th forum

루팅 ( Rooting )

사진 : ZDNet Korea 참고

안드로이드 플랫폼의 구조는 Dalvik 기반의 버추얼 머신 안드로이드 플랫폼에서 최고 관리자 권한(Root) 권한을 획득하는 방법을 말함. 루팅을 시도하는 이유

주로 단말기의 성능을 향상 시킬려고 시도함.

루팅된 안드로이드 폰은 악의적인 악성코드가 루트 권한을 확보하게 되면 보안을 위협 할 수 있음.

Page 37: keris 78th forum

탈옥 ( Jail Break )

사진 : ZDNet Korea 참고

• 내용 :

– iOS 단말기의 Jailbreak 여부를 판단하는 라이브러리(Library)

• 다양한 iOS 탈옥 도구들

– RedSn0w

– PwnageTool

– Sn0wBreeze

– GreenPois0n

– LimeRa1n

– JailbreakMe (사파리 취약점 이용)

• 위의 탈옥 도구로 탈옥된 iOS 단말기 탈옥 여부 진단함

Page 38: keris 78th forum

시사점

Page 39: keris 78th forum

최근 보안 이슈 : App Store 보안

사진 : ZDNet Korea 참고

Page 40: keris 78th forum

최근 보안 이슈 : 캐리어 iQ 이슈

Sprint, 고객 정보 수집 -키보드, 다이얼러 입력 정보 - App 실행 정보 - SMS 수신 정보 - 전화 수신 정보 - 위치 정보 - Media 정보 - Screen 클릭 정보 - 웹 브라우저 접속 정보

Page 41: keris 78th forum

41

앱(App) 분석 결과에 따른 시사점

시사점 - 앱 보안 심의 절차가 없어 악성 앱이 쉽게 등록이 가능함. - 사용자 정보를 노리는 악의적인 앱이 유통될 가능성이 높음. - 악성코드 보다는 개인 정보 접근 및 과금 발생 빈도가 낮지만 일부 앱들은 과도한 퍼미션과 API 사용하고 있어 주의가 필요함. - 공식적인 마켓 보다 ‘블랙 마켓’에 유통되는 앱은 더욱 주의 필요함.

대응 및 대책 - 마켓의 앱을 자동으로 검증하는 서비스가 강력히 필요함. - 마켓의 앱을 다운로드 할 때는 신중하게 다운로드 해야 함. - 개인 정보 및 금융 정보는 암호화해서 보관. - 과도한 트래픽을 요구하는 앱은 설치하지 않는 것이 바람직함. - 의심이 되는 앱은 삭제하고, 백신 설치를 통해 검사가 필요함.

Page 42: keris 78th forum

감사합니다.

무게감이 다르다! 가벼운 빠른 V3Mobile

AhnLab V3 Mobile