안드로이드플랫폼과악성코드동향 안철수연구소 이성근책임연구원 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 공격금전적인목적 범죄화 금전적목적 / 조직적 Targeted 공격국지적양상악성코드대량양산쉽고빠른변종제작복잡성, 고도화배포방법다양화 금전적목적개인정보유출국지적양상 Files Virus Boot Virus Macro Virus Script Virus Worm Spyware Spam Phishing BotNet Rootkit Trojans 사회공학기법 Open Market SNS 16 비트 DOS LAN 32 비트 Windows Internet 32 비트 Windows Internet 64 비트 Windows 모든플랫폼 / 서비스 WEB, P2P, USB Multi-Media 서비스 Smart Phone Cloud Computing Social Computing Windows 7 ~ 1995 1996 ~ 2000 2001 ~2005 2006 ~ 2009 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 ) Date 2010.10. 진단명 Android- Spyware.Mobilefonex 퍼미션 API android.app.activitymanager.getmemoryinfo 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 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 를통해핸드폰의모든기능제어하기, 핸드폰의각종정보유출하기등다양한악의적인기능을수행한다. 또한설치되어동작할경우아이콘으로표기되지않아사용자는설치및동작사실을인지할수없다. 19
악성코드분석 (2/4) Date 2010.12. 진단명 퍼미션 API 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 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) 에등록된앱으로성인물이실행되나사용자동의없이사용자개인정보를유출한다 20
악성코드분석 (3/4) Date 2011.03. 진단명 퍼미션 API 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 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 에접속하여파일을다운로드받는다. 21
악성코드분석 (4/4) Date 2011.05. 진단명 퍼미션 사용 API 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 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 행위 종교비하어플리케이션으로위장하여제 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% 15.00% Malware BlackMarket 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 감사합니다.