안드로이드 플랫폼과 악성코드 동향 안철수 연구소 이성근 책임연구원
1
목차 1. 안드로이드 플랫폼 2. 앱(App) 과 앱 마켓플레이스(Marketplace) 3. 악성코드 동향 및 분석 4. 안드로이드 앱(App) 분석 5. 루팅 및 탈옥 6. 시사점
안드로이드 플랫폼
안드로이드 플랫폼의 개요
4
안드로이드 플랫폼의 구조 Android Runtime : 자바 프로그래밍 언어의 핵심 라이브러리 기능 대부분을 제공하도록 핵심 라이브러리를 제공 및 Dalvik 버추얼 머신을 포함하고 있다. Linux Kernel : 보안, 메모리 관리, 프로세스 관리, 네트워크 스택, 드라이버 모델과 같은 리눅스 버전2.6의 핵심 시스템 서비스를 이용하며 커널은 하드웨어와 소프트웨어간 추상 계층으로 동작한다
5
안드로이드의 파일 시스템 리눅스 파일시스템을 기반으로 구성됨. 안드로이드 플랫폼 위한 파일 저장 폴더 추가됨 /data, /system를 폴더가 추가 되어 있음.
그림. 안드로이드 파일 시스템 6
안드로이드 플랫폼의 디렉토리 구조 (1) Android의 App의 배포 단위는 apk 파일로 배포됨. Apk는 다음과 같은 디렉토리에 저장됨.
/data/app은 설치된 서드파티의 응용프로그램이 저장되는 위치
그림. 디렉토리 구조
7
안드로이드 플랫폼의 디렉토리 구조 (2) App의 Private 데이터의 영역이 저장되는 위치
<패키지 이름>은 단말기에서 유일해야 함.
App은 서로간의 데이터를 접근할 수 없음.
8
안드로이드 플랫폼의 파일 구조 App의 최소 배포 단위는 apk로 배포
실행 파일은 Dex
9
앱(App)과 앱 마켓플레이스(Market Place)
앱(App)과 앱 마켓플레이스( Marketplace ) 앱(App) 정의
- 어플리케이션 소프트웨어(Application Software)의 줄임말. - 애플 앱스토어의 성공 이후 스마트폰 어플리케이션을 의미함.
앱 마켓플레이스( Marketplace )
- 개발자가 앱을 등록하고, 사용자가 다운로드 할 수 있는 공간. - Apple AppStore, Google Android Market 등 다양함.
11
안드로이드 마켓( Android Market ) 안드로이드 마켓 -
2010년 3월을 기준으로 급속하게 등록 앱이 증가함. 국내에는 T-Store, KT 올레 스토어, LG U+ Oz 스토어 등을 운영 중. 애플 앱스토어에 비해 무료앱의 비중이 높음. 무료앱의 경우 ‘광고’를 이용한 수익 모델을 채택하고 있음. 비공식적인 서트파티 마켓이 운영 중임.
정보통신산업진흥원 ‘스마트폰 OS 및 어플리케이션 산업 동향’ 참고
12
안드로이드 마켓( Android Market ) 등록방법 개발자 등록
- 최초 유료 25$ 지불. - 구글 계정, 영문 이름, 메일 주소, 홈페이지, 전화번호 등록. - 누구나 쉽게 개발자로 등록이 가능함.
앱(App) 등록 -
서명된 apk 파일을 마켓에 업로드. 아이콘, 스크린 샷, 프로그램 이름, 설명, 카테고리, 국가 등 선택. 마지막으로 ‘Publish’ 클릭하면 바로 등록 및 배포. 앱(App) 보안 검증 절차 및 심의 과정 없음.
13
악성코드 동향 및 분석
악성코드의 행위 변화 범죄화
느린 감염 호기심, 자기과시
Zero-Day 공격 금전적인 목적
빠른 감염 호기심, 자기과시
• Files Virus
• Macro Virus
• Boot Virus
• Script Virus
• • • • • •
Worm Spyware Spam Phishing BotNet Rootkit
• Trojans
• Open Market
• 사회공학 기법
• SNS
16비트 DOS
32비트 Windows
32비트 Windows
64비트 Windows 모든 플랫폼/서비스
LAN
Internet
Internet
WEB, P2P, USB Multi-Media 서비스
~ 1995
1996 ~ 2000
2001 ~2005
금전적 목적 개인정보유출 국지적 양상
금전적 목적/조직적 Targeted 공격 국지적 양상 악성코드 대량 양산 쉽고 빠른 변종 제작 복잡성, 고도화 배포방법 다양화
2006 ~ 2009
Smart Phone Cloud Computing Social Computing Windows 7
2010
스마트 폰 악성코드의 행동 패턴 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
안드로이드 악성코드의 증가 악성코드 현황 - 안드로이드 폰의 증가로 인한 악성코드의 개수 증가. - 2011년 이후 급속하게 증가함.
17
안드로이드 악성코드 분석 요약 악성코드의 퍼미션과 API 분석 결과
18
악성코드 분석 ( 1/4 ) 2010.10.
Date 퍼미션
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
행위
19
진단명
AndroidSpyware.Mobilefonex
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.getLastKnownLoca tion android.net.ConnectivityManager.getNetworkInfo android.telephony.gsm.GsmCellLocation.getCid android.telephony.gsm.GsmCellLocation.getLac android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendMultipartTextMe ssage android.telephony.SmsManager.sendTextMessage android.telephony.TelephonyManager.getCallState android.telephony.TelephonyManager.getCellLocatio n android.telephony.TelephonyManager.getDataState
상용으로 판매되는 스파이웨어 프로그램이다. 수신 내역 가로채기, SMS/Email/GPS 정보 유출하기, Email 답장 발송 기능, 전화 송수신 유출하기, SIM 정보 변경 통보, SMS를 통해 핸드폰의 모든 기능 제어하기, 핸드폰의 각종 정보 유출하기등 다양한 악의적인 기능을 수행한다. 또한 설치되어 동작할 경우 아이콘으로 표기 되지 않아 사용자는 설치 및 동작 사실을 인지할 수 없다.
악성코드 분석 (2/4) 2010.12.
Date 퍼미션
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
행위
20
Android-Spyware. Geimini
진단명 API
android.content.Context.getContentResolver android.content.Context.getSystemService android.content.pm.PackageManager.getInstalledPac kages android.net.ConnectivityManager.getNetworkInfo android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendTextMessage android.telephony.SmsMessage.getDisplayOriginatin gAddress android.telephony.SmsMessage.getMessageBody android.telephony.TelephonyManager.getCallState android.telephony.TelephonyManager.getLine1Num ber
성인물을 리패킹 하여 서드 파티 마켓(third party market)에 등록된 앱으로 성인물 이 실행되나 사용자 동의 없이 사용자 개인 정보를 유출한다
악성코드 분석 (3/4) 2011.03.
Date 퍼미션
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
행위
21
Android-Spyware. BgService
진단명 API
android.content.Context.getContentResolver android.content.Context.getSystemService android.content.pm.PackageManager.getInstalledPac kages android.net.ConnectivityManager.getNetworkInfo android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendTextMessage android.telephony.SmsMessage.getDisplayOriginatin gAddress android.telephony.SmsMessage.getMessageBody android.telephony.TelephonyManager.getCallState android.telephony.TelephonyManager.getLine1Num ber
Android Market으로 위장하여 핸드폰 정보를 유출하고 특정 URL에 접속하여 파일 을 다운로드 받는다.
악성코드 분석 (4/4) 2011.05.
Date 퍼미션
사용 API
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
android.content.Context.getContentResolver android.content.Context.getSystemService android.database.sqlite.SQLiteDatabase.openDatabas e android.location.Location.getLatitude android.location.Location.getLongitude android.telephony.SmsManager.getDefault android.telephony.SmsManager.sendTextMessage android.telephony.SmsMessage.getMessageBody android.telephony.TelephonyManager.getLine1Num ber
행위
22
Android-Trojan. Smspacem
진단명
종교 비하 어플리케이션으로 위장하여 제 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 방법 을 사용하여 통신을 한다. 즉, 사용자 동의 없이 사용자 핸드폰에 저장된 연락처로 지구 종말에 관 련된 문자를 발송하며 외부의 명령을 받아 추가적인 기능을 수행한다.
Android-Spyware/Ewalls 안드로이드 트로이 목마 출현
개인의 전화번호와 단말기 정보, SIM 정보를 특정 서버로 전송 개인의 전화번호는 보이스 피싱과 스팸 문자에 악용될 수 있음
Android.Trojan/SmsSend 안드로이드 플랫폼에서 최초의 SMS 트로이목마 출현 Movie Player로 가장하여 마켓에서 다운로드 유도 앱(App) 을 실행하면 유료 부가 서비스에 임의로 문자 발송하여 과금 발생 사용자는 불법 과금이 발생 했는 지 인지하기 어려움 2010년 8월, 9월, 10월에 변종 출현
Android-Spyware/Snake 안드로이드 플랫폼에서 게임으로 가장하여 다운로드 후에 GPS 정보를 특정 서버로 전송 GPS Spy(유로 4.99$)를 다운로드 받은 사용자는 Snake가 전송한 GPS 정보를 통해 사용자의 위치 정보를 수신 GPS Spy와 Snake는 Email과 Key를 입력
Android-Trojan/Rooter 안드로이드 공식 마켓인 구글 마켓에서 유포된 악성코드
설치되면 강제로 루팅을 시도하고 루트 권한을 확보 원격 서버에 단말기와 사용자의 개인정보를 다량으로 유출
Android-Spyware/Adrd 일반 앱을 변조하여 악성코드를 삽입한 후 배포
사용자의 개인 정보를 무단으로 전송 문자 메시지를 통해서 원격 조정을 하는 기능 포함
안드로이드 앱(App) 분석
안드로이드 앱(App) 분석 요약 분석 샘플 - 안드로이드 마켓, 블랙 마켓 등을 통해 3만개 샘플 확보함. - 앱(App) 퍼미션과 API를 이용해 분석함. 35.00%
30.00%
25.00%
20.00%
Malware BlackMarket
15.00%
Googlel Market
10.00%
5.00%
0.00% 개인 정보 접근
과금 비용 발생 가능
29
단말 정보 유출 가능
사용 정보 유출 가능
위치 정보
안드로이드 앱(App) 상세 분석 (1/5) 개인 정보 - 사용자의 SMS 접근, 주소록 접근이 높게 나타났음.
30
안드로이드 앱(App) 상세 분석 (2/5) 과금 발생 가능성 높음 - SMS 전송, 인터넷을 통한 데이터 트래픽 발생 가능성.
31
안드로이드 앱(App) 상세 분석 (3/5) 단말 정보 유출 가능성 높음 - IMEI, IMSI, 전화번호 등 단말의 정보에 접근함.
32
안드로이드 앱(App) 상세 분석 (4/5) 사용자 위치 정보 접근 및 전송
33
안드로이드 앱(App) 상세 분석 (5/5) 사용자 개인 정보 접근
34
루팅 및 탈옥
루팅 ( Rooting ) 안드로이드 플랫폼의 구조는 Dalvik 기반의 버추얼 머신
안드로이드 플랫폼에서 최고 관리자 권한(Root) 권한을 획득하는 방법을 말함. 루팅을 시도하는 이유 주로 단말기의 성능을 향상 시킬려고 시도함.
루팅된 안드로이드 폰은 악의적인 악성코드가 루트 권한을 확보하게 되면 보안을 위협 할 수 있음.
사진 : ZDNet Korea 참고
탈옥 ( Jail Break ) •
내용 : – iOS 단말기의 Jailbreak 여부를 판단하는 라이브러리(Library)
•
다양한 iOS 탈옥 도구들 – – – – – –
•
RedSn0w PwnageTool Sn0wBreeze GreenPois0n LimeRa1n JailbreakMe (사파리 취약점 이용)
위의 탈옥 도구로 탈옥된 iOS 단말기 탈옥 여부 진단함
사진 : ZDNet Korea 참고
시사점
최근 보안 이슈 : App Store 보안
사진 : ZDNet Korea 참고
최근 보안 이슈 : 캐리어 iQ 이슈 Sprint, 고객 정보 수집 -키보드, 다이얼러 입력 정보 - App 실행 정보 - SMS 수신 정보 - 전화 수신 정보 - 위치 정보 - Media 정보 - Screen 클릭 정보 - 웹 브라우저 접속 정보
앱(App) 분석 결과에 따른 시사점 시사점
- 앱 보안 심의 절차가 없어 악성 앱이 쉽게 등록이 가능함. - 사용자 정보를 노리는 악의적인 앱이 유통될 가능성이 높음. - 악성코드 보다는 개인 정보 접근 및 과금 발생 빈도가 낮지만 일부 앱들은 과도한 퍼미션과 API 사용하고 있어 주의가 필요함. - 공식적인 마켓 보다 ‘블랙 마켓’에 유통되는 앱은 더욱 주의 필요함.
대응 및 대책 -
마켓의 앱을 자동으로 검증하는 서비스가 강력히 필요함. 마켓의 앱을 다운로드 할 때는 신중하게 다운로드 해야 함. 개인 정보 및 금융 정보는 암호화해서 보관. 과도한 트래픽을 요구하는 앱은 설치하지 않는 것이 바람직함. 의심이 되는 앱은 삭제하고, 백신 설치를 통해 검사가 필요함.
41
무게감이 다르다! 가벼운 빠른 V3Mobile
AhnLab V3 Mobile
감사합니다.