Bezpečnost OS Android Bezpečnost instalačních APK balíčků OS Android

Podobné dokumenty
Postup instalace umožňující el. podpis v IS KP14+ pro webové prohlížeče Google Chrome a Firefox.

Bezpečná autentizace přístupu do firemní sítě

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Extrémně silné zabezpečení mobilního přístupu do sítě.

Mobilní malware na platformě Android Přednáška 1. Ing. Milan Oulehla

Doporučeno pro předpokládané využití serveru pro zpracování 2000 dokumentů měsíčně. HW: 3GHz procesor, 2 jádra, 8GB RAM

SDC aplikace. Podrobný návod na zprovoznění RS485 RTS vysílače

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

Zabezpečení mobilních bankovnictví

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Střední odborná škola a Střední odborné učiliště, Hořovice

Mobilní malware na platformě Android Přednáška 2. Ing. Milan Oulehla

ELEKTRONICKÉ PODÁNÍ OBČANA

Postup instalace umožňující el. podpis v IS KP14+ pro Internet Explorer 11 přes novou podpisovou komponentu.

Mobilní aplikace Novell Filr Stručný úvod

WD FileAgent. Manuál

Vývoj Internetu značně pokročil a surfování je dnes možné nejen prostřednictvím počítače, ale také prostřednictvím chytrých telefonů, tabletů a

O projektu Nasazení OpenOffice.org v praxi

LV5WDR Wireless Display Receiver Rychlá příručka

Programové vybavení počítačů operační systémy

Instalace a první spuštění Programu Job Abacus Pro

1.2 Operační systémy, aplikace

INSTALACE SOFTWARE A AKTIVACE PRODUKTU NÁVOD

APLIKACE INTERTON UŽIVATELSKÁ PŘÍRUČKA

NÁVOD K POUŽÍVÁNÍ DIGITÁLNÍ PENĚŽENKY MASTERCARD MOBILE

Instalace ThinPrint RDP v počítači klienta s operačním systémem Windows (x86 nebo x64)

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

SCS - Manuál. Obsah. Strana 1 (celkem 14) Verze 1.1

Elektronické učebnice popis systému, základních funkcí a jejich cena

Instalace a od-instalace aplikace Google / Android

SDC aplikace - návod k instalaci. Somfy Digital Control application

Instalační Příručka. Verze 10

Mobilní aplikace BABEL Šifrované SMS

Smartphone kdysi. Na počátku byl. SIMON (IBM, 1992)

OMEZOVAČ ČASU. Uživatelská příručka. PS Media, s.r.o.

SDC aplikace. Zrychlený návod na zprovoznění

OBSAH. Stránka 1 z 11 INSTALACE THINPRINT RDP V POČÍTAČI KLIENTA STAŽENÁ Z WEBU 2

Mobile Security pro Android. Instalační manuál

1. Pořízení dokumentu

VIRTUALBOX INSTALACE OS

MicroStrategy Mobile. Více než BI do kapsy. Petr Zeman softwarový konzultant Spojujeme software, technologie a služby

PROFESIONÁLNÍ ODPOSLECH MOBILNÍHO TELEFONU SPYTEL

Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka

Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka

Seznámení s open source vývojem a open source řešeními pro mobilní zařízení

Vzdálené připojení do sítě ČEZ VPN Cisco AnyConnect

Smart Access Pracovní postup

MATURITNÍ PRÁCE dokumentace

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Připojení mobilních zařízení

FREEWAROVÉ ŘEŠENÍ DICOM SERVERU S NÍZKÝMI NÁROKY NA HARDWAROVÉ VYBAVENÍ

Instalace a připojení čtečky čipových karet v systému CryptoPlus Eval

CTUGuide (XXX-KOS) D1

Software programové vybavení. 1. část

Xtreamer Wonder. Uživatelská příručka CZ

Instalační příručka. Vlastnoruční digitální podpis. Instalace ovladačů a rozšíření na uživatelský počítač nebo tablet

MobileIron Demo. DATUM VYTVOŘENÍ: 8. srpna AUTOR: Daniel Vodrážka

VIZUÁLNÍ PØÍRUÈKA K APLIKACI PRO MOBILNÍ TELEFONY SE SYSTÉMEM ANDROID

Demoprojekt Damocles 2404

Co když zavirování telefonu není nejhorší věc, která se vašemu mobilnímu společníkovi může stát? Filip Chytrý Malware Analyst

2. Nízké systémové nároky

MOBILNÍ ZAŘÍZENÍ (TABLET I NOTEBOOK) V PRÁCI UČITELE (PRO SŠ)

ZÁKLADNÍ POKYNY PRO INSTALACI PROID+ Z INSTALAČNÍHO MÉDIA

ČSOB Business Connector

Základy informatiky. Operační systémy

MapleSim 4.5 instalační příručka

NAS 242 Aplikace AiMaster pro mobilní zařízení

Činnost operačních systémů. Beránek Pavel 1. KŠPA

LINUX - INSTALACE & KONFIGURACE

Virtualizace. Lukáš Krahulec, KRA556

Manuál. k aplikaci WD FileAgent

Instalace. Návod na instalaci a licencování ESI[tronic] Spuštění instalace z DVD ESI[tronic] 2.0 DVD 1 - soubor Setup.exe. 4.

BO:S:S Boccia Score System

Uživatelská příručka. Vlastnoruční digitální podpis

Bezpečnostní kamera Wanscam HW0028 HD 720P

MetaTrader Mobile Uživatelský manuál Operační systém Andorid HIGHSKY.CZ

SDC aplikace - návod k instalaci. Somfy Digital Control application

Maturitní projekt do IVT Pavel Doleček

Certifikační autorita EET Modelové postupy instalace certifikátu

Nastavení Mobilní banky 2 MojeBanka a MojeBanka Business

1. PŘEDSTAVENÍ PLATFORMY ANDROID

TECHNICKÉ POŽADAVKY PRO INSTALACI SW PRO ZÁZNAM VIDEA PRO ZÁZNAM AUDIA (ZVUKU) PRO ZÁZNAM OBRÁZKŮ JAZYKOVÉ MUTACE

Mobilní aplikace. Uživatelský manuál

TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC

AutoCAD Civil 3D 2017

Jak programovat Tinykeyer?

Projekt podnikové mobility

Matematika v programovacích

Úvod do Linuxu SŠSI Tábor 1

VÝZNAM BEZPEČNOSTI MOBILNÍCH PLATFOREM JDE RUKU V RUCE S ROSTOUCÍ POPULARITOU SMARTPHONŮ

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

PB169 Operační systémy a sítě

Desktop systémy Microsoft Windows

Nastavení programu pro práci v síti

Kaspersky ONE. univerzální zabezpečení. Ochrana různých zařízení

Systémy pro tvorbu digitálních knihoven

Virtualizace na Linuxu

Základní informace a nastavení... 3

- PC musí být připojené v lokální síti - je bezpodmínečně nutné, aby aplikace Outlook nebyla aktivní)

Transkript:

Bezpečnost OS Android Bezpečnost instalačních APK balíčků OS Android Zdeněk Říha zriha@fi.muni.cz Fakulta informatiky, Masarykova univerzita

Od jednoduchých zařízení ke smartphonům MOBILNÍ TELEFONY 2 Bezpečnost instalačních APK balíčků OS Android

Mobilní telefony kdysi 3 Bezpečnost instalačních APK balíčků OS Android

Mobilní telefony o něco později 4 Bezpečnost instalačních APK balíčků OS Android Zdroj: http://outloud93.files.wordpress.com/2010/02/dkmb86g_490ft6648cr_b.jpg

Mobilní telefony ještě o něco později 5 Bezpečnost instalačních APK balíčků OS Android Zdroj: http://m.phonegg.com/8/859b.jpg

Mobilní telefony dnes 6 Bezpečnost instalačních APK balíčků OS Android

Podíl OS na trhu smartphonů (Q2 2014) 2,50% 0,50% 0,70% 11,70% Android ios Windows Phone BlackBerry OS Others 84,70% 7 Bezpečnost instalačních APK balíčků OS Android Zdroj: https://developer.android.com/about/dashboards/index.html

Nejrozšířenější mobilní OS ANDROID 8 Bezpečnost instalačních APK balíčků OS Android

Stručná historie Androidu V roce 2003 založeno Android Inc. v Palo Alto Snaha o OS pro digitální foťáky Konkurence pro Symbian a Windows Mobile V roce 2005 Android, Inc. kupuje Google V roce 2007 Open Handset Alliance (Google + výrobci mobilů jako HTC, Sony, Samsung) První verze OS Android k dispozici v roce 2007 První mobil s OS Android (HTC Dream) k dispozici v roce 2008 Android 5.0 (Lollipop) vydán v listopadu 2014 9 Bezpečnost instalačních APK balíčků OS Android

Není Android jako Android 10 Bezpečnost instalačních APK balíčků OS Android

Základní vlastnosti OS Android Založeno na jádře OS Linux Co aplikace to jiné UID (user ID) Aplikace psané v jazyce Java, (Java bytecode) JVM nazývaná Dalvik s JIT kompilací Android Native Development Kit (NDK) Aplikace v C/C++ 11 Bezpečnost instalačních APK balíčků OS Android

Licence OS Android OS Android je vyvíjen společností Google Zdrojový kód zveřejněn až uvolněním nové verze Většina kódu má licenci Apache Licence version 2.0 Jádro si drží licenci GNU GPL v2 Logo Android je licencováno Googlem Google Mobile Services jsou proprietární SW Včetně Google Play Store Hromada dodatečných podmínek (HW kompatibilita) 12 Bezpečnost instalačních APK balíčků OS Android

Kde získat aplikace pro OS Android Google Play (Store, Music, Movies & TV, Books) Vznikla v roce 2012 spojením Google Music a Android Market Alternativní obchody Amazon Appstore SlideME 1Mobile Market Samsung Galaxy Apps Mobile9 13 Bezpečnost instalačních APK balíčků OS Android

Google Play Store 14 Bezpečnost instalačních APK balíčků OS Android

Samsung Galaxy App 15 Bezpečnost instalačních APK balíčků OS Android

Instalace aplikací z alternativních zdrojů 16 Bezpečnost instalačních APK balíčků OS Android

Jiné alternativní zdroje 17 Bezpečnost instalačních APK balíčků OS Android

Proč alternativní zdroje Proč někdy nestačí Google Play Store? Google omezuje a kontroluje obsah obchodu: Malware (kdo by jej chtěl ) Nelegální obsah Pirátské kopie aplikací a jiných typů dat Špionážní aplikace (spying SW) Obsah nevhodný pro Google Např. Google blokuje vše, co odstraňuje reklamu 18 Bezpečnost instalačních APK balíčků OS Android

Modifikace instalačních balíků APK SOUBORY 19 Bezpečnost instalačních APK balíčků OS Android

Instalační APK soubory Umožní nainstalovat aplikaci na OS Android Něco jako: setup.exe nebo *.msi soubory v MS Windows *.rpm soubory v Fedora Linuxu Obsahují programové instrukce a další data ikony obrázky texty zvuky 20 Bezpečnost instalačních APK balíčků OS Android

APK = ZIP soubor 21 Bezpečnost instalačních APK balíčků OS Android

Struktura APK souboru classes.dex zkompilovaný zdrojový kód (bytecode pro Dalvik Virtual Machine) resources.arsc předkompilované zdroje (např. XML soubory) AndroidManifest.xml přehledový metadata soubor celého balíku (verze, práva, vazby) res adresář s nekompilovanými zdroji (obrázky) assets další zdroje lib kompilovaný platformě závislý kód (nativní) META-INF digitální podpis balíku (manifest, certifikát, přehled hashů souborů) 22 Bezpečnost instalačních APK balíčků OS Android

Digitální podpis APK souboru Zajišťuje integritu souborů v balíku Při změně obsahu některého souboru digitální podpis nesedí OS Android toto pozná a instalaci neprovede APK soubor však můžeme podepsat klíčem libovolným!!! A toho lze využít k útokům 23 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru Proč? Protože u digitálního podpisu se nekontroluje, kdo APK soubor podepsal, ale pouze, zda popis, je formálně v pořádku, lze APK soubory modifikovat a výsledek někomu podstrčit Proč? Malware Spyware (umístění, SMS) Botnet klient Jiné ekonomické výhody (např. bitcoin mining) 24 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru Jak? ZIP soubor dekomprimujeme Dekompilujeme classes.dex Získáme tak zdrojový kód ve formátu SMALI ne program v Javě! Zdrojový program ve SMALI modifikujeme Můžeme modifikovat i jiné zdroje Ikonky, texty, atd. Opět assemblujeme SMALI do classes.dex Digitálně podepíšeme a zabalíme ZIPem 25 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru Detaily Nástroj apktool Parametr d (decode) Rozbalí ZIP, dekóduje binární XML, dekóduje classes.dex 26 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru Detaily Modifikace smali zdrojových souborů 27 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru Detaily Modifikujeme AndroidManifest.xml Přidáme odkazy na náš vložený kód Automatické spuštění (neviditelné) služby Nové aktivity (uživatelské rozhraní) Vazba na určité události Např. přijetí SMS zprávy Přidáme oprávnění, je-li třeba Tj. pokud je aplikace již nepoužívá/neuvádí Např. pro komunikaci s Internetem, čtení SMS zpráv 28 Bezpečnost instalačních APK balíčků OS Android

29 Bezpečnost instalačních APK balíčků OS Android

Bezpečnostní prvky OS Android Linuxové jádro je multiuživatelské V OS Android co aplikace to uživatel (UID) Linuxové jádro dobře izoluje jednotlivé procesy Izoluje adresové prostory jednotlivých procesů a izoluje uživatelský proces od (struktur) jádra Další bezpečnostní prvky zajišťuje HW Ochrana paměti Režimy procesoru (CPU) 30 Bezpečnost instalačních APK balíčků OS Android

Bezpečnostní prvky OS Android Izolace procesů je důležitá Stejně důležité je však v určitých případech komunikaci/synchronizaci povolit Systémová volání (jádra) InterProcess Communication (IPC) Semafory Roury Systémové procesy poskytují užitečné služby Pro možnost přístupu k určitým službám je třeba povolení 31 Bezpečnost instalačních APK balíčků OS Android

Oprávnění aplikací (Permissions) Oprávnění, která aplikace potřebuje jsou vypsána v AndroidManifest.xml Při instalaci aplikace se uživateli zobrazí seznam vyžadovaných oprávnění Pokud uživatel souhlasí, pak se aplikace nainstaluje Pokud uživatel nesouhlasí, aplikace se nenainstaluje Při použití povolených oprávnění se nic nezobrazuje Při pokusu o použití nepovoleného oprávnění dojde k chybě a vyvolá se výjimka SecurityException. 32 Bezpečnost instalačních APK balíčků OS Android

Oprávnění aplikací (Permissions) 33 Bezpečnost instalačních APK balíčků OS Android

Oprávnění aplikací (Permissions) 34 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru Detaily (opak.) Modifikujeme AndroidManifest.xml Přidáme odkazy na náš vložený kód Automatické spuštění (neviditelné) služby Nové aktivity (uživatelské rozhraní) Vazba na určité události Např. přijetí SMS zprávy Přidáme oprávnění, je-li třeba Tj. pokud je aplikace již nepoužívá/neuvádí Např. pro komunikaci s Internetem, čtení SMS zpráv 35 Bezpečnost instalačních APK balíčků OS Android

Vytvoření nového APK souboru Nejprve nástroj apktool s parametrem b Vytvoříme nepodepsaný APK soubor Kompilujeme zdroje Kompilujeme smali kód 36 Bezpečnost instalačních APK balíčků OS Android

Podepsání APK souboru Nástroj jarsigner Podepíšeme našim klíčem, vložíme náš certifikát 37 Bezpečnost instalačních APK balíčků OS Android

zipalign Nepovinný krok Zarovnání ZIP souboru, aby data začínala na adresách dělitelných 4 (zarovnání na 32 bitů) Efektivita při instalaci 38 Bezpečnost instalačních APK balíčků OS Android

Výsledek Jako výsledek máme správně podepsaný APK soubor Už stačí jen soubor někomu podstrčit Přímo Nahrajeme na nějaké úložiště (např. ulož.to) Nejlépe udělat hromadně pro mnoho APK souborů Automatizace vložení dodatečného kódu Online modifikace při stahování libovolného APK souboru přes nezabezpečené spojení Tak aby si toho uživatelé nevšimli 39 Bezpečnost instalačních APK balíčků OS Android

Automatizované vkládání kódu do libovolného APK souboru AUTOMATIZACE 40 Bezpečnost instalačních APK balíčků OS Android

Automatizace celého procesu Získáme APK soubor Dekódujeme (apktool d) Modifikujeme Přidáme vlastní zdrojové kódy Modifikujeme existující zdrojové kódy resp. přímo AndroidManifest.xml aby spouštěl náš kód Přidáme případně oprávnění do AndroidManifest.xml (nikdo nesleduje) Kompilujeme (apktool b) Podepisujeme Zarovnáme Máme APK soubor s modifikovanou funkčností 41 PA197 Wireless sensor networks

Automatizace modifikace Celý tento proces je relativně rychlý Na běžném počítači při zcela automatizovaném provedení skriptem asi 30s až 5 minut Nejprve potřebujeme celý originální APK soubor Abychom jej mohli zpracovat apktoolem Pro scénář ukládání řady modifikovaných APK souborů na nějaké úložiště plně dostačující Doba zpracování je víceméně nepodstatná Důležitá je plná automatizace 42 Bezpečnost instalačních APK balíčků OS Android

Automatizace modifikace Implementováno v Javě Využití běžných standardních nástrojů Apktool, jarsigner, zipalign Rychlý vývoj Kompatibilita s většinou APK souborů Vkládaný kód ve smali Není třeba umět programovat ve smali Naprogramujeme v Javě, zkompilujeme a zpět převedeme do smali Provedeme jen jednou na začátku, pak opakovaně vkládáme stejný kód do řady APK souborů 43 Bezpečnost instalačních APK balíčků OS Android

Modifikace APK souboru stahovaného přes nezabezpečené spojení ONLINE MODIFIKACE 44 Bezpečnost instalačních APK balíčků OS Android

Scénář online modifikace APK souboru Man in the middle http http 45 Bezpečnost instalačních APK balíčků OS Android

Reálný scénář Man in the middle např. veřejný WiFi Access Point http http 46 Bezpečnost instalačních APK balíčků OS Android

Reálný scénář v praxi Transparentní http proxy server Všechna spojení otevíraná na port 80 půjdou přes proxy Zajímavé soubory zpracujeme sami zbytek neřešíme Např. přípona.apk Např. typ application/vnd.android.package-archive Proxy získá originální soubor Nechá jej modifikovat Modifikovaný soubor pošle Použili jsme tinyproxy a trochu ji přeprogramovali 47 Bezpečnost instalačních APK balíčků OS Android

Automatizovaný skript Můžeme použít náš automatizovaný skript? Můžeme, ale problém je s časováním Pro běh skriptu potřebujeme kompletní stažený balík Pro apktool Příklad 2 minuty stahujeme 1 minutu modifikujeme Pak pošleme 48 Bezpečnost instalačních APK balíčků OS Android

Pohled uživatele Z hlediska uživatele se 3 minuty nic neděje 0 procent staženo Pak se soubor stáhne vysokou rychlostí To je špatný výsledek Je to podezřelé Je velká šance, že uživatel během 3 minut čekání stahovaní zruší Potřebujeme nenápadnější řešení 49 Bezpečnost instalačních APK balíčků OS Android

Chytřejší modifikace na proxy Využijeme toho, že: struktura APK je běžný ZIP na pořadí souborů v ZIPu nezáleží Digitální podpis neřeší pořadí souborů, typ komprese apod. Jde jen o haše jednotlivých souborů. I kdyby to tak nebylo, uměl bych to řešit (podpis je můj), ale takto je to ještě snazší. Ne všechny soubory v APK chci měnit Typicky budu měnit classes.dex a AndroidMenifest.xml Jestli soubor chci měnit nebo ne vím předem (teoreticky) 50 Bezpečnost instalačních APK balíčků OS Android

Proudový režim práce Již při stahování souboru začnu pracovat v proudovém režimu ZIP postupně dekomprimuji U každého souboru rozhodnu zda jej musím měnit Pokud ano, tak jej zatím neposílám Pokud ne, mohu jej rovnou poslat Až soubor stáhnu celý, provedu klasickou automatickou modifikaci Nakonec z modifikovaného souboru pošlu ty soubory, které jsem ještě neposlal 51 Bezpečnost instalačních APK balíčků OS Android

Uživatelský pohled Stahování začne (téměř) okamžitě Stahování pokračuje (přibližně) do poloviny Potom se stahování zastaví Protože provádíme automatickou off-line modifikaci Potom stahování pokračuje Výsledek je výrazně lepší Na začátku dostaneme nějaká data Ale pořad to ještě není ideální 52 Bezpečnost instalačních APK balíčků OS Android

Stále lépe a lépe Odstranění dlouhé prodlevy uprostřed Snížíme rychlost hned od začátku Stahování tak je pomalé, ale plynulé A to není téměř nijak nápadné ALE abychom viděli prostup v procentech musíme znát přesnou velikost již na začátku stahování Takže ji tipneme (raději více než méně ) Tj. původní velikost + co vkládáme + něco navíc A později, až známe skutečnou velikost, nacpeme nuly do ZIP poznámek 53 Bezpečnost instalačních APK balíčků OS Android

0 60 120 172 219 265 312 359 406 453 500 547 594 640 687 734 781 828 875 922 969 1015 1062 1109 1156 1203 1250 1297 1344 1390 1437 1484 1531 1578 1629 1682 kb Ilustrace stahování bez modifikace 4500 Běžné stažení nemodifikovaného souboru 4000 3500 3000 2500 2000 1500 1000 500 0 Milisekundy 54 Bezpečnost instalačních APK balíčků OS Android

0 540 1026 1448 1870 2292 2713 3135 3662 4202 4742 5282 5822 6362 6902 7442 7982 8522 9062 9602 10142 10682 11222 11762 12302 12842 13382 13922 14462 15002 15542 16082 16622 17162 17702 18242 18711 19177 kb Ilustrace stažení modifikovaného souboru 5000 Stažení souboru modifikovaného online 4500 4000 3500 3000 2500 2000 1500 1000 500 0 Milisekundy 55 Bezpečnost instalačních APK balíčků OS Android

1 136 271 406 541 676 811 946 1081 1216 1351 1486 1621 1756 1891 2026 2161 2296 2431 2566 2701 2836 2971 3106 3241 3376 3511 3646 3781 3916 4051 4186 4321 4456 4591 4726 4861 4996 5131 5266 5401 5536 kb Ilustrace omezení rychlosti stahování 5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0 Stažení modifikovaného souboru s omezením rychlosti stahování Milisekundy 56 Bezpečnost instalačních APK balíčků OS Android

Závěr Otázky? 57 Bezpečnost instalačních APK balíčků OS Android zriha@fi.muni.cz