Mobilní malware na platformě Android – Přednáška 2 Ing. Milan Oulehla
Úvod Informace o technikách, které používají tvůrci mobilního malware:
• Bezpečnostní chyby se mění v čase • Vytvoření vlastních zdrojových kódů • Replikace výsledků
Bleskový úvod do Android Security Features 1 I. Linuxové jádro (Linux kernel) • Svobodný software • Je vyvíjeno pod licencí GPLv2 • Bezpečné – kód jádra je všem „na očích“
Bleskový úvod do Android Security Features 2 II. Application Sandboxing • Na rozdíl od klasického Linuxu má každá UŽIVATELSKÁ aplikace jedinečný UID (User ID)
• Tím se zajistí, že každá aplikace a její zdroje jsou odděleny od ostatních • Výjimka: Aplikace, které jsou podepsány stejným klíčem, si vzájemně mohou přistupovat k datům!!!
Bleskový úvod do Android Security Features 3
Bleskový úvod do Android Security Features 4 Application Sandboxing
Bleskový úvod do Android Security Features 5
Ostatní
Adresář
Execute bit (x): The execute bit is needed to traverse a directory. Příklad zneužití: shared_pref existuje? ANO/NE
Bleskový úvod do Android Security Features 6
Ostatní
Rooting mobilního zařízení umožní uživatelským aplikacím jednat s oprávněním superuživatele (roota)!!!
To aplikacím umožní: • Modifikaci jakékoliv části Android OS a to včetně jádra • Přístup ke zdrojům jakékoliv aplikace => zničí Sandboxing
Bleskový úvod do Android Security Features 7
ADB - Android Debug Bridge USB kabel
Bleskový úvod do Android Security Features 8
Název aplikace
Název adresáře pro ukládání xml dat
Bleskový úvod do Android Security Features 9
Adresář neexistuje => xml dat nebyla zatím zadána
Bleskový úvod do Android Security Features 10 III. Secure inter-process communication • Každá Android aplikace má přiřazeno jedinečné UID a každá musí běžet jako samostatný proces.
• Tím je procesům aplikací omezována: – interakce mezi sebou – přístup do operačního systému
• Omezení je realizováno na úrovni Linuxového jádra
Bleskový úvod do Android Security Features 11
Bleskový úvod do Android Security Features 12
Bleskový úvod do Android Security Features 13 Procesy aplikací spolu nemohou komunikovat přímo, ale musí použít „prostředníka“, např.: • Intents • Network sockets • atd.
Bleskový úvod do Android Security Features 14 IV. Application Signing • Každá aplikace, která má být publikovaná na Google Play, musí mít podepsaná vývojářem • Používají se Self Signed Certificates • => Nejsou kontrolovány certifikační autoritou!
Bleskový úvod do Android Security Features 15
Bleskový úvod do Android Security Features 16 Android Permission Model je důležitý pro: • tvůrce malware • bezpečnostní analytiky • antivirové společnosti Proto bude rozebrán v následující části (samostatné) přednášky.
Analýza Android oprávnění 1 V. Android Permission Model Všechny permissions, které bude aplikace vyžadovat, musí být deklarovány v AndroidManifest.xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Pokud se aplikace pokusí vykonat činnost, na níž nedeklarovala oprávnění v manifestu, okamžitý pád aplikace - security exception
Analýza Android oprávnění 2 Android Permission Model 2 Je založen na Linuxovém/Unixovém UID a GID /system/etc/permissions/platform.xml
Analýza Android oprávnění 3 Android Permission Model 3 • Aplikace požádá o oprávnění WRITE_EXTERNAL_STORAGE • Pokud uživatel schválí oprávnění při instalaci • Pak je aplikace (UID) přidána do skupiny gid="sdcard_rw" • Nyní může aplikace zapisovat na SD kartu
Analýza Android oprávnění 4 Bezpečnostní skenery provádějí analýzu oprávnění pomocí vyšetření AndroidManifest.xml souboru Android aplikace: requested permissions function permissions
Android systémová oprávnění: normal permissions dangerous permissions
Analýza Android oprávnění 5 • Function permissions - legitimní požadavky • Příklad aplikace – Diktafon • Requested permissions: – function (legitimate) permissions – illegitimate permissions
Analýza Android oprávnění 6 Normal permissions: • statický seznam • permissions that don't pose much risk to the user's privacy or the device's operation • INTERNET, ACCESS_NETWORK_STATE a RECEIVE_BOOT_COMPLETED.
Dangerous permissions: např.: RECORD_AUDIO or READ_CONTACTS.
Analýza Android oprávnění 7 Special Permissions: • SYSTEM_ALERT_WINDOW and WRITE_SETTINGS are particularly sensitive, so most apps should not use them. • Použití: – Musí být deklarovány v manifestu – Musí být zaslán intent s požadavkem na ruční autorizaci uživatele
Own permissions: • Tag
•
Analýza Android oprávnění 8 Activity permissions (applied to the tag) restrict who can start the associated activity. Service permissions (applied to the <service> tag) restrict who can start or bind to the associated service.
BroadcastReceiver permissions (applied to the tag) restrict who can send broadcasts to the associated receiver. ContentProvider permissions (applied to the <provider> tag) restrict who can access the data in a ContentProvider. • android:readPermission restricts who can read from the provider • android:writePermission restricts who can write to it.
Analýza Android oprávnění 9 Bezpečnostní skenery se snaží najít v AndroidManifest.xml tento nesoulad v oprávněních: • 𝐴−𝐵 ≠∅ • (𝐴−𝐵)∩𝐷≠∅
Analýza Android oprávnění 10 Limity metody
Analýza Android oprávnění 11 Takový malware potřebuje jediné oprávnění: <uses-permission android:name="android.permission.INTERNET"/>
Video ukázka: 5_Video-SDThieft
Analýza Android oprávnění 12 Pravděpodobný scénář:
Analýza Android oprávnění 13 Bezpečnostní skenery se snaží najít nesoulad mezi: • přiznanými oprávněními (v AndroidManifest.xml) • a skutečně použitými oprávněními: – dynamická analýza – spuštění v emulátoru – SW tester, uživatelské charakteristiky – Log činností => extrakce skutečných oprávnění
Analýza Android oprávnění 14 Pro zpřesnění slouží: 𝐵 − 𝐴 ≠ ∅
Útok na aplikaci – plán útoku Malware, který útočí na uživatelské aplikace I. Statická analýza: Reverse engineering oběti (aplikace) – String Digging – Dekompilace APK II. Dynamická analýza: Testovací provoz na zařízení s právy super uživatele!!! (root) III. Zneužití objevených chyb/slabin obětí IV. Vytvoření útočné aplikace (malware)
Útok na aplikaci 1
Útok na aplikaci 2
Útok na aplikaci 3
Útok na aplikaci 4
Útok na aplikaci 5
Útok na aplikaci 6 Krádeže dat z privátního datového prostoru aplikace: • Applications get a dedicated part of the filesystem in which they can write private data, including databases and raw files … • Zdroj: https://source.android.com/security/ /data/data/package_name/ Speciální podadresáře pro: shared_prefs (xml), databases, files …
Útok na aplikaci 7 Krádeže dat z privátního datového prostoru aplikace: Shared preferences Základní info: • Shared preferences stores private data in key-value pairs • XML format • An application’s data directory is the shared_pref folder
Útok na aplikaci 8 /data/data/package_name/shared_prefs/xml_file.xml
Útok na aplikaci 9 Nebezpečné ukládání citlivých dat v aplikaci Řetězec vygenerovaný podle určitých pravidel
ID aplikace a heslo
Mobilní zařízení
ZABEZPEČENÁ KOMUNIKACE
Video ukázka: 9_Video-Chovani_na_zarizeni_s_ROOTEM
Server banky
Útok na aplikaci 10 Nezabezpečená síťová komunikace Řetězec vygenerovaný podle určitých pravidel
ID aplikace a heslo
Mobilní zařízení
NEZABEZPEČENÁ KOMUNIKACE
Server banky
Útok na aplikaci 11 Video ukázky: 10_Video-Unsafe_communication_normal_request 12_Video-Unsafe_communication_edited_requestADMIN Použití: • činnost malware na telefonu s rootem • reverse engineering pro tvorbu malware například malware pro krádež hesel zabudovaných v aplikaci
Útok na aplikaci 12 Situace: zabezpečená komunikace, šifrovaná hesla Časté chyby: • Slabé šifry • Silné šifry se slabými hesly • Hesla jsou ukládána přímo v aplikaci • Hesla a loginy jsou součástí ladících informací (Log.d) Video ukázky: 13_Video-BrokenCryptography_part1 14_Video-BrokenCryptography_part2
Útok na aplikaci 13
Útok na aplikaci 14
Útok na aplikaci 15
Útok na aplikaci 16 Video ukázky: 15_Video-BrokenCryptography_part3 16_Video-BrokenCryptography_part4
Útok na aplikaci 17 Video ukázka: 17_Video-Zachytavani_logu_pomoci_logcat (pokud nestihneme na přednášce 1)
Útok na aplikaci 18 Bypass Activity • Dekompilace AKP aplikace - zjištění jména aktivity • Použití Application Manager se zjištěnými informacemi
Útok na aplikaci 19 Bypass Activity - Použití Aktivita může poskytovat funkcionalitu pro přihlášené uživatele: • e-mailový klient • cloudová úložiště
Útok na aplikaci 20 Bypass Activity – Video ukázky: 18_Video-Authentication_bypass_part_1 19_Video-Authentication_bypass_part_2 20_Video-Authentication_bypass_part_3
Útok na aplikaci 21 Mobilní zařízení, která mají povolený USB debugging, jsou zranitelná! Důkaz: Video ukázka: 21_Video-HappyUnlock
Útok na aplikaci 22 Příběh Od reverse engineering oběti (aplikace) po tvorbu útočné aplikace
Video ukázky: 22_Video-Encrypted_credentials_part1 23_Video-Encrypted_credentials_part2 24_Video-encrypted_credentials_part3 25_Video-encrypted_credentials_part4 26_Video-encrypted_credentials_part5_final_app
Útok na aplikaci 23 Reálný scénář: • Odcizí se jen zašifrovaná data (malware se snaží provádět minimum operací => rozšifrování až na straně útočníka) • Použití šifrovaného spojení např. Java implementace SSH dostupná na: http://www.jcraft.com/jsch/
Útok na aplikaci 24 http://www.jcraft.com/jsch/
Útok na aplikaci 25 Posílat data jen se skutečnými požadavky legitimizující aplikace:
Útok na aplikaci 26 Zneužívání legitimních mechanismů k nelegitimním účelům
Útok na aplikaci 27 Vyhodnocovací mechanismus bota: • fake SHA256 protection
{"icon":"01d","enginedata":"bd5a95ab68c802f81e7d7c052e8 3a52952b2c1abc","pressure":1023,"temp":52.54,"humidity":9 3,"wind":8.86,"enginesha":"aabc436e2dc018f729061d39ada2 35a350be438acdc383da2525f3812ab7eba7","description":"S ky is Clear"}
Útok na aplikaci 28 Na všechny útočné techniky, existují obranné techniky. Krátké vývojové cykly Bezpečnost nepřináší přímý zisk => je často podceňována
Děkuji Vám za pozornost.
[email protected]