1 Bezpečnost a mobilní aplikace Jakub Jeřábek jakub.jerabek@ahead-itec.com18. 4. 2018 2 1. Důvěřujete SMS zprávám od své banky? 2. Jak zabezpečit kód aplikace před okopírováním 3. Jak zabezpečit aplikaci před zneužitím 4. Antiviry a útoky na mobilní telefony Co nás dnes čeká 3 Důvěřujete SMS zprávám od své banky? Backend banky Internetové bankovnictví 1. vytvoření platby SMS brána Váš operátor 2. vytvoření ověřovacího kódu 3. požadavek na odeslání SMS 4. zaslání SMS 5. přečtení SMS 6. přepis kódu Útok na SMS v Německu 2017 Hackerům se podařilo zneužít chyby v technologii SS7, kterou používají mobilní sítě ke komunikaci a získali přístup k SMS napadených uživatelů. Ve spojení s e-mailovým phishingem tak byli schopni za posledních několik měsíců v rámci německé mobilní sítě O2 Telefónica získat ověřovací SMS pro přihlášení i provedení platby a doslova vysát peníze z bankovních účtů napadených uživatelů. Kvůli přesměrování neměl daný majitel účtu celou dobu o ničem ani ponětí. Zdroj: https://connect.zive.cz/clanky/hackeri-vyuzili-chyby-vmobilni-siti-o2-telefonica-vybrali-lidem-bankovni-ucty/ sc-320-a-187540/default.aspx 4 5 Jak Android zpracovává příchozí SMS 1. OS Android přijímá SMS zprávu 2. OS Android posílá zprávu všem aplikacím* 3. Aplikace, se samy rozhodují, jak s SMS zprávou naloží *Všem, které mají zaregistrovaný receiver android.provider.telephony.SMS_RECEIVED a oprávnění android.permission.RECEIVE_SMS . 6 Krádež SMS - praktická ukázka Potřebujeme: ● zdánlivě neškodnou aplikaci ● sběrné místo SMS ● oběti Máme: ● SMS jízdenka Zlín ○ http://bit.ly/GPlaySMSJizdenka* ● http://bit.ly/StolenSMS** ● Počet stažení: 1-5 tisíc *verze publikovaná neobsahuje škodlivý kód a nemá právo k přístupu na internet **server pro sběr SMS byl vypnut 7 Potřebujeme oběť +420 *** *** *** :) 8 Oprávnění na Androidu 6 a vyšších ● krok vpřed ● targetSdkVersion 23 ● rozdělení na normal a dangerous ○ https://developer.android.com/guide/topics/permissions/normal-permissions.html ○ https://developer.android.com/guide/topics/permissions/requesting.html#normal-dangerous ● ale... 9 … lze získat oprávnění bez povšimnutí 10 Jak je to možné? Jak zabezpečit kód aplikace před okopírováním 11 12 13 14 Ochrana kódu - proč? ● Softwarové patenty? ○ https://webshop.ffii.org/ ● Flappy Birds ○ 300 klonů, 238 infikovaných ○ posílání SMS, hovory, GPS, adresáře [1] 15 Praktická ukázka Potřebujeme: ● vytáhnout APK z telefonu ● dekompilovat APK ● umět číst v cizím kódu Máme: ● TCMD, APK extractor, ... ● APK Tool [1] ● ??? Pro zájemce: https://www.fi.muni.cz/research/laboratories/crocs.xhtml.cs Pozor na řetězce! 16 Ochrana kódu - jak? ● Obfuskace při buildu [1] ○ SDK/tools/proguard/proguard-android.txt ● Obfuskace při psaní Jak zabezpečit aplikaci před zneužitím 17 18 19 Ochrana aplikace - proč? ● Reputace ● Ochrana klientů / komunity 20 Ochrana aplikace - jak? ● Kontrola certifikátu APK ● Kontrola původu APK ○ Google Play ○ odjinud ● Knihovna: https://github.com/SandroMachado/AndroidTampering Antiviry a útoky na mobilní telefony 21 22 Mobilní vs. desktopový svět ● Možnosti virů ● Možnosti antivirů ● Virus vs. malware Ukázka reálných útoků 23 Zdroje: https://blog.avast.com/new-version-of-mobile-malware-catelites-possibly-linked-to-cron-cyber-gang https://blog.avast.com/mobile-banking-trojan-sneaks-into-google-play-targeting-wells-fargo-chase-and- citibank-customers 24 25 BankBot 26 BankBot - ukázka Děkuji za pozornost Prostor pro vaše dotazy 27