MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Zabezpečení dat v mobilních telefonech BAKALÁŘSKÁ PRÁCE
Lukáš Tesař
Brno, jaro 2013
Prohlášení Prohlašuji, ţe tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování pouţíval nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
V Brně 1. dubna 2013 Lukáš Tesař
Vedoucí práce: Mgr. et Mgr. Jan Krhovják, Ph.D.
Poděkování Na tomto místě bych rád poděkoval vedoucímu mé bakalářské práce Mgr. et Mgr. Janu Krhovjákovi, Ph.D. za vedení a podmětné připomínky týkající se mé práce. Zároveň bych rád poděkoval své rodině, přítelkyni a přátelům za jejich podporu a trpělivost.
Shrnutí Práce se zabývá problematikou zabezpečení dat a jiných citlivých informací v soudobých mobilních telefonech na platformě iOS, Android, BlackBerry a Symbian. Dále popisuje praktické experimenty s nejrůznějšími rootkity pro mobilní zařízení a obsahuje sadu doporučení vedoucích ke zvýšení bezpečnosti dat na daných mobilních platformách.
Klíčová slova Bezpečnost, data, iOS, Android, BlackBerry, Symbian.
Obsah 1.
ÚVOD .................................................................................................................................................... 8
2.
ZÁKLADNÍ BEZPEČNOSTNÍ VLASTNOSTI SOUDOBÝCH MOBILNÍCH TELEFONŮ ... 10
3.
ZABEZPEČENÍ MOBILNÍCH TELEFONŮ DLE PLATFORMY.............................................. 12
3.1. IOS – BEZPEČNOSTNÍ VLASTNOSTI .................................................................................................... 12 3.1.1. Řízení přístupu .................................................................................................................... 12 3.1.2. Autenticita a nepopiratelnost .............................................................................................. 13 3.1.3. Sandboxing.......................................................................................................................... 13 3.1.4. Bezpečnostní konfigurace a profily ..................................................................................... 15 3.1.5. Ochrana dat ........................................................................................................................ 15 3.1.6. Bezpečnost síťové komunikace ............................................................................................ 16 3.1.7. Šifrování .............................................................................................................................. 16 3.1.8. Šifrování souborového systému ........................................................................................... 17 3.2. IOS - PRAKTICKÉ PŘÍKLADY BEZPEČNOSTNÍCH CHYB A JEJICH VYUŢITÍ ............................................ 17 3.2.1. Jailbreak ............................................................................................................................. 18 3.2.2. SSH ..................................................................................................................................... 18 3.2.3. Facebook & Dropbox ......................................................................................................... 19 3.2.4. Lock screen exploit ............................................................................................................. 20 3.3. IOS - SADA DOPORUČENÍ PRO ZVÝŠENÍ BEZPEČNOSTI DAT ................................................................ 20 3.4. ANDROID – BEZPEČNOSTNÍ VLASTNOSTI ........................................................................................... 23 3.4.1. Řízení přístupu .................................................................................................................... 24 3.4.2. Sandboxing.......................................................................................................................... 24 3.4.3. Řízení přístupu na základě oprávnění ................................................................................. 25 3.4.4. Nepopiratelnost ................................................................................................................... 27 3.4.5. Ověřování aplikací .............................................................................................................. 27 3.4.6. Šifrování .............................................................................................................................. 28 3.5. ANDROID - PRAKTICKÉ PŘÍKLADY BEZPEČNOSTNÍCH CHYB A JEJICH VYUŢITÍ ................................... 28 3.5.1. Root ..................................................................................................................................... 28 3.5.2. USSD kódy .......................................................................................................................... 29 3.5.3. Frost .................................................................................................................................... 30 3.6. ANDROID - SADA DOPORUČENÍ PRO ZVÝŠENÍ BEZPEČNOSTI DAT ....................................................... 31 3.7. BLACKBERRY – BEZPEČNOSTNÍ VLASTNOSTI .................................................................................... 33 3.7.1. BlackBerry Enterprise Server ............................................................................................. 33 3.7.2. BlackBerry šifrovací klíče ................................................................................................... 34 3.7.3. Master Encryption Keys ...................................................................................................... 34 3.7.4. Message keys....................................................................................................................... 35 3.7.5. Content protection keys....................................................................................................... 35 3.7.6. Grand Master Keys ............................................................................................................. 35 3.7.7. Algoritmy symetrického šifrování ....................................................................................... 36 3.7.8. Standardní BlackBerry šifrování zpráv (SBE) .................................................................... 37 3.7.9. Proces SBE ......................................................................................................................... 37 3.7.10. Zabezpečení bezdrátového zasílání zpráv........................................................................... 38 3.7.11. Rozšířené zabezpečení BlackBerry ..................................................................................... 39 3.8. BLACKBERRY - PRAKTICKÉ PŘÍKLADY BEZPEČNOSTNÍCH CHYB A JEJICH VYUŢITÍ ............................ 39 3.8.1. Premium Rate Scam ............................................................................................................ 39 3.8.2. SMS Interception ................................................................................................................. 39
3.8.3. SMS Backdoor..................................................................................................................... 40 3.8.4. HTTP................................................................................................................................... 40 3.8.5. BACKDOOR ....................................................................................................................... 40 3.8.6. Prolomení uživatelského hesla ............................................................................................ 41 3.9. BLACKBERRY - SADA DOPORUČENÍ PRO ZVÝŠENÍ BEZPEČNOSTI DAT ................................................. 42 3.10. SYMBIAN – BEZPEČNOSTNÍ VLASTNOSTI............................................................................................ 43 3.10.1. Trusted Computing model .................................................................................................. 44 3.10.2. Trusted Computing Base (TCB).......................................................................................... 44 3.10.3. Trusted Computing Environment (TCE) ............................................................................. 45 3.10.4. Aplikace .............................................................................................................................. 45 3.10.5. Oprávnění ........................................................................................................................... 45 3.10.6. Přístupový systém ............................................................................................................... 46 3.10.7. Instalátor softwaru ............................................................................................................. 47 3.10.8. Identifikátory ...................................................................................................................... 47 3.10.9. SIS soubory ......................................................................................................................... 48 3.10.10. Symbian Signed Model ....................................................................................................... 49 3.11. SYMBIAN - PRAKTICKÉ PŘÍKLADY BEZPEČNOSTNÍCH CHYB A JEJICH VYUŢITÍ ................................... 49 3.11.1. Norton Security Hack ......................................................................................................... 49 3.11.2. PNHT / JAV ........................................................................................................................ 50 3.12. SYMBIAN - SADA DOPORUČENÍ PRO ZVÝŠENÍ BEZPEČNOSTI DAT ....................................................... 50 4.
ZÁVĚR................................................................................................................................................ 52
5.
PŘÍLOHY ........................................................................................................................................... 55
5.1. PŘÍLOHA A ........................................................................................................................................ 55
1. Úvod Svět bez mobilních zařízení dnes uţ není dost dobře představitelný, zejména díky jejich přenositelnosti a snadnému přístupu k informacím. Mimo to se mobilní zařízení stala součástí našeho kaţdodenního ţivota hlavně díky moţnosti komunikace s ostatními a dalšími činnostmi, které zastává osobní počítač. Vzhledem k historickému vývoji mobilních telefonů, je dobré znát význam tohoto, krom mnoha jiných vynálezů. První mobilní síť byla zavedena v USA v roce 1946 pro vojenské účely, a aţ po roce 1973 vynalezla Motorola první mobilní telefon. Od té doby se mobilní telefony staly fenoménem a obrovským finančním kolosem. Nicméně v posledních desetiletích nebylo součástí mobilních telefonů mnoho technologických funkcí, které byly v té době k dispozici, jako například moţnost mobilního připojení k internetu tak, jak jej známe z dnešních smartphonů a chytrých telefonů. V roce 2007 přišla firma Apple Inc. na trh s působivým telefonem jménem „iPhone“ s dotykovou obrazovkou a webovým prohlíţečem. Byl to milník, který odstartoval obrovský závod v soutěţení, jaká firma uvede na trh lepší smartphone. Po iPhonu přišel Google se svým G1 telefonem zaloţeným na platformě Android. Google začal s vývojem mobilních telefonů uţ v roce 2005 a tento vývoj byl završen právě výše jmenovaným G-1. V roce 2008 byl pak uveden na trh se jménem T- Mobile G1. Po roce 2008 začala na trh pronikat firma HTC a její velmi povedené smartphony a samozřejmě nesmí zůstat stranou ani Samsung a jeho nejznámější řada Galaxy (mimo jiných), běţící společně s telefony od HTC na platformě Android. Následující obrázek ilustruje historický vývoj mobilních telefonů do roku 2008.
Obr. 1: Historie vývoje mobilních telefonů
Jak doba pokročila a mobilní telefony měly čím dál větší moţnosti přístupu k citlivým informacím, bylo/ je nesmírně důleţité i tyto data v mobilních telefonech zabezpečit. S příchodem nových a dokonalejších mobilních telefonů a operačních systémů, se paradoxně objevují stále nové bezpečnostní chyby, které umoţňují útočníkovi získat kontrolu nad vašimi daty.
8
Jedním z cílů mé práce je zmapování aktuální situace na poli mobilních telefonů, analýza potenciálních bezpečnostních rizik a vytvoření sad doporučení, vedoucích ke zvýšení bezpečnosti smartphonů, zaloţených na platformě Symbian OS, Android OS, Apple iOS a mobilních telefonů BlackBerry. V následující kapitole jsou popsány základní bezpečnostní vlastnosti soudobých mobilních telefonů. V dalších kapitolách postupně analyzuji bezpečnostní vlastnosti a rizika kaţdé z výše uvedených mobilních platforem. Stranou nezůstává ani praktická část, ve které nabízím pohled na problematiku zabezpečení dat z „druhé strany“, kdy jsou popsány praktické experimenty s nasazením nejrůznějších rootkitů1 nebo exploitů2 a tudíţ získáním kontroly nad mobilním telefonem nebo nad citlivými daty, ke kterým má mobilní telefon přístup. Vzhledem k jednomu z cílů této práce, jsou u kaţdé z testovaných platforem sepsány sady doporučení pro zvýšení bezpečnosti citlivých dat a sníţení rizika jejich zneuţití.
1
Rootkit je sada programů a technologií, které masují přítomnost škodlivého softwaru v napadeném zařízení
2
Exploit je program (skript), který vyuţívá chybu v softwaru. Nasazením exploitu můţe útočník získat data, proniknout hlouběji do systému apod.
9
2. Základní bezpečnostní vlastnosti soudobých mobilních telefonů Bezpečnost a zabezpečení dat jsou pojmy, pod kterými si nejčastěji představíme ochranu počítačových systémů a dat, jeţ jsou zde uchovávány, zpracovávány a přenášeny, ale co tyto pojmy opravdu znamenají? Zabezpečení dat je mnoţina mechanismů a pravidel pro zajištění jejich důvěrnosti, integrity a dostupnosti. Samotné zabezpečení si můţeme rozdělit do tří vrstev: fyzická (hw a zálohování dat), logická (autentizace/autorizace) a organizační (doplňková snaha o ochranu systému)[18]. Zákon federálního řízení informační bezpečnosti [1] vydaný americkým ministerstvem obrany v roce 2002 vymezuje 3 cíle pro zabezpečení dat a 3 nutné podmínky pro jejich splnění. 1. Zajištění důvěrnosti dat (secrecy): Tato podmínka znamená, ţe systém zajišťuje oprávnění konkrétní osoby k přístupu do informačního systému a dále ochranu před neoprávněným vstupem. 2. Zajištění integrity dat (integrity): Integrita dat v počítačové bezpečnosti znamená, ţe k datům mohou přistupovat a měnit je jen oprávnění uţivatelé. Integrita bývá zajištěna nejčastěji kontrolními součty, hašovacími funkcemi atd. 3. Zajištění dostupnosti dat (availibility): Dostupnost dat znamená, ţe autorizovaným uţivatelům nebude odmítnut přístup. Dalším z důleţitých pojmů týkajících se bezpečnosti je kryptografie. Toto slovo pochází z řečtiny: kryptós (skrytý) a gráphein (psát). Účelem kryptografie je zajištění výše popsané důvěrnosti, integrity a autentičnosti datových zdrojů. Jedním z hlavních důvodů, proč jsou útočníci úspěšní je, ţe získaná data jsou v podobě, ve kterých je mohou číst a pochopit. Pokud vezmeme v úvahu miliony elektronických zpráv procházející internetem, je snadné vidět, jak dobře umístěný sniffer3 můţe zachytit velké mnoţství informací, které by měly být utajené. Jedním z řešení tohoto problému je právě kryptografie a šifrování. Šifrování je proces převodu informací z jeho původní podoby (tzn. plaintext) do jeho kódované, nesrozumitelné podoby (tzn. ciphertext). Dešifrování se odkazuje na proces příjmání šifrované zprávy a její překládání do původní podoby. Kaţdý typ dat můţe být šifrován, včetně digitalizovaného zvuku a obrazu. Kryptografie zabezpečuje informace tím, ţe chrání jejich důvěrnost. Kryptografie můţe být dále pouţita pro ochranu informací jako jejich integritu a autenticitu. Například kontrolní součet se často pouţívá k ověření integrity bloku informací. Součet, který je vypočítán z obsahu souboru / bloku, můţe být pouţit ke kontrole, zda-li jsou data správná. S pojmem šifrování nesmíme opomenout symetrické a asymetrické šifrování. Symetrická šifra neboli symetrické kódování je šifrovací algoritmus, který pro šifrování i dešifrování pouţívá pouze jeden klíč (tím se liší od asymetrického kódování). Hlavní výhodou 3
Sniffer je program, nebo kus počítačového hadrwaru, který je schopný analyzovat síťový provoz.
10
symetrických šifer je jejich nízká výpočetní náročnost. Symetrické šifry lze rozdělit na proudové a blokové. Ty proudové zpracovávají data po bitech a blokové rozdělí data na bloky stejné velikosti (poslední blok doplní na vhodnou velikost tzv. padding). Mezi proudové šifry patří např. RC4 a mezi blokové AES, DES, 3DES aj.
Obr. 2: Princip symetrické kryptografie
Asymetrické šifrování neboli kryptografie s veřejným klíčem jsou kryptografické metody, kde se pro šifrování a dešifrování pouţívají odlišné klíče (soukromý a veřejný). Asymetrické šifrování se pouţívá nejen pro utajení komunikace, ale i pro elektronické podpisy apod. Princip asymetrického kódování spočívá ve vyuţívání dvou klíčů. Šifrovací klíč je veřejný a kdokoli díky tomuto veřejnému klíči můţe šifrovat majiteli tohoto klíče určené zprávy. Dešifrovací klíč je naopak tajný a majitel veřejného (i soukromého) klíče můţe šifrované zprávy snadno dešifrovat. Jedním z nejduleţitějších pojmů v šifrování jsou jednocestné funkce, které tvoří jádro fungování výše popsaných kryptosystémů. Jednocestné funkce jsou operace, které jsou snadno proveditelné pouze v jednom směru. Ze vstupu lze snadno vyčíst výstup, naopak z výstupu je velmi obtíţné vyčíst vstup. Jedním z nejznámějších příkladů těchto operací je operace násobení. Samotné násobení dvou velmi velkých čísel je jednoduché, ovšem rozklad součinu na činitele (faktorizace) je velmi obtíţné. Tento pricnip vyuţívá algoritmus RSA.
11
3. Zabezpečení mobilních telefonů dle platformy Oblast informační bezpečnosti a tím i oblast dat, které potřebujeme chránit, se v posledních letech značně rozrostla hlavně díky rozvoji mobilních zařízení. Z tohoto důvodu se nyní podívejme na zabezpečení mobilních telefonů dle platformy.
3.1.
iOS – bezpečnostní vlastnosti
Apple iOS (iPhone OS) je mobilní operační systém primárně vyvíjený na iPhone a později také na iPad, iPod Touch a zařízení Apple TV. Na ţádná jiná zařízení Apple neposkytuje licenci. Do světa byl vypuštěn zároveň s prvním iPhone 29. 6. 2007. Od té doby prošel významnými změnami a s uvedením nejnovějšího iPhone 5 byl uveden i nejnovější iOS 6, který přináší řadu novinek oproti svým předchůdcům. Bezpečnostní model systému iOS je zaloţen na kontrole přístupu, šifrování, nepopiratelnosti a izolaci (sandboxing). Dále se podíváme na iOS, na některé z těchto 4 uvedených pilířů bezpečnosti a další prvky tohoto systému.
3.1.1. Řízení přístupu IOS nabízí tradiční přístup k moţnostem řízení bezpečnosti, včetně moţnosti nastavení hesla. Aplikace SpringBoard je zodpovědná za prezentaci zámku na obrazovce a za přijetí/odmítnutí zadaného hesla. Heslo je ověřeno tím, ţe projde přes MobileKeyBag framework a AppleKeyStoreUserClient - KeyBagUnlock metody. V jádře pak existuje tzv. AppleKeyStore rozšíření, kde se uchovává uţivatelské heslo, zašifrované pomocí PBKDF2 klíče. PBKDF2 (Password-Based Key Derivation Function) popsaná v [2] je funkce pro odvození klíče (KDF), patřící do rodiny RSA Laboratories' Public-Key Cryptography Standards (PKCS4), konkrétně PKCS #5 v2.0, také publikován jako Internet Engineering Task Force's RFC 2898. PBKDF2 aplikuje pseudonáhodné funkce (hash, HMAC apod.) na vstupní hesla spolu s určitou hodnotou soli. Tento proces následně několikrát opakuje a produkuje tak odvozené kryptografické klíče, které mohou být dále pouţity. Tento klíč je výsledkem pouţití AES algoritmu a UID zařízení jako pseudonáhodné funkce. Pokud bude zadáno špatné heslo, KeyBagUnlock upozorní systém, ţe heslo je nesprávné. Poté, co jsou několikrát po sobě zadána špatná hesla, aplikace SpringBoard začne inkrementovat tzv. back-off zpoţdění (exponenciální), které zabraňuje náhodnému uhodnutí hesla. Krom toho můţe být zařízení nakonfigurováno tak, aby se po určitém špatném pokusu zadání hesla samo vymazalo. Tato ochrana ale není implementována v jádře iOS. Je to pouze moţnost aplikace Springboard. Tudíţ s odemknutým zařízením lze jak back-off zpoţdění, tak moţnost nuceného
4
http://www.rsa.com/rsalabs/node.asp?id=2124
12
vymazání vypnout. S touto konfigurací a iPhonem 4 se dá hádat heslo rychlostí 9,18 odhadů / s. Tím získáme jednoduché čtyřmístné heslo za ne déle neţ 18 minut.
3.1.2. Autenticita a nepopiratelnost Před tím, neţ se rozhodnete koupit drahé umělecké dílo v galerii, si ověřte pravost a původ těchto děl. To vám dá jistotu, ţe je dílo originální a nebylo nikým změněno. Apple podobný model implementuje do svého systému ověření aplikací, které umístí do AppStore. Tento systém se nazývá iOS Developer Program a Enterprise iOS Developer Program. Předtím, neţ vývojáři softwaru mohou uvolnit software pro iPhone, iPad nebo iPod uţivatelům, musí projít registračním procesem Apple a zaplatit roční licenční poplatek ve výši 99 $. Tento certifikační proces trvá zpravidla 1-2 týdny a zejména pro neamerické vývojáře je menším problémem díky zahraniční politice této firmy. Vývojáři pak musí digitálně podepsat kaţdou aplikaci pomocí certifikátu vydaného firmou Apple. Tento proces podepisování vloţí identitu vývojáře přímo do Apple Approved Developer System a zároveň zaručuje, ţe vývojář této aplikace patří do Apple Developer Programu, a jako takový má i certifikát na vydávání aplikací. Tento systém je z hlediska bezpečnosti velmi účinný hlavně v omezení malware. Dosud nebyla objevena skutečná malware neţ na iOS zařízení, která jsou jailbreaknutá5. Proč tomu tak je? Tvůrci malware neútočí na iOS zařízení z několika jednoduchých důvodů. Jedním z těch hlavních je nutnost platit za moţnost vývoje a vydání aplikací. Druhým je skutečnost, ţe za zaplacení získají i digitální certifikát vývojáře, který zvyšuje pravděpodobnost, ţe budou útočníci identifikování a stíháni za provádění nebezpečných činností. Navíc, kaţdá aplikace je ještě před uvedením do AppStore velmi důkladně testována právě proto, aby neobsahovala škodlivý kód. Nakonec Apple podpisem kódu zabraňuje manipulaci s publikovanými aplikacemi. Proto není zatím ţádný způsob, jak útočník můţe úmyslně změnit jiné aplikace (např. přidáním spyware) bez porušení „pečeti“, kterou tvoří digitální podpis. Jailbreaknutá zařízení tyto moţnosti zabezpečení neposkytují (kdokoli si do nich můţe nahrát aplikaci, která neprošla schvalovacím procesem) a nejen to, proto většina útoků cílí právě na tyto „odemknuté“ stroje.
3.1.3. Sandboxing Operační systém iOS izoluje jednotlivé aplikace od všech ostatních aplikací v systému. Ţádné aplikaci není dovoleno prohlíţet a ani jinak upravovat data, logiku ostatních programů apod. Dokonce není ani moţné, aby některá aplikace zjistila přítomnost jiné. Stejně tak aplikace nemohou přistupovat k jádru sytému iOS, instalovat privilegované ovladače, vyuţívat privátní API nebo získat práva administrátora. Tento systém izolace zajišťuje vysoký stupeň separace navzájem mezi aplikacemi a systémem.
5
Jailbreak je softwarová úprava zařízení s operačním systémem iOS, slouţící nejčastěji k jeho odemčení a umoţnění instalace neoficiálních aplikací.
13
Všechny aplikace třetích stran běţící na iOS pracuje se stejnou úrovní zabezpečení. Např. kaţdá aplikace můţe být ukončena, kdyţ systém bude mít nedostatek paměti. Veškerým aplikacím třetích stran je také zakázáno odesílání SMS zpráv bez účasti uţivatelů nebo přijímání/odmítání hovorů. Na druhé straně mohou iOS aplikace volně přistupovat k následujícím úrovním systému bez výslovného udělení souhlasu uţivatele [3]: komunikace s libovolným počítačem přes Wi-Fi přístup k adresáři (kontakty), včetně emailové adresy a ke všem detailům, které mohou být v adresáři zadány přístup k záznamům v kalendáři přístup k jedinečnému identifikátoru přístroje (vydává Apple kaţdému zařízení) přístup k telefonnímu číslu (můţe být zakázáno uţivatelem) přístup k audio/video souborům a fotogalerii přístup k historii ve webovém prohlíţeči Safari a aplikaci YouTube přístup k Wi-Fi přístup k mikrofonu a videokameře (přední i zadní); aplikace třetích stran, které vyuţívají mikrofon nebo videokameru, ale nemají oprávnění přijímat hovory nebo videohovory. To mají jen aplikace Phone a FaceTime, které jsou jiţ integrovány do systému (nativní aplikace) Sandboxing má tak pozitivní dopad na různé potenciální útoky, včetně těch webových a síťových, coţ omezuje dopad malwaru, předchází ztrátě dat apod. Kaţdé aplikaci na iOS je na vlastní ţádost přidělen její vlastní domovský adresář nebo kontejner v souborovém systému. Tyto kontejnery jsou uloţeny v adresáři /var/mobile/Applications/UUID a aplikaci je UUID náhodně generováno při instalaci na zařízení. Pokud je aplikace odinstalována, smaţe se veškerý prostor, který byl aplikaci přidělen. Po opětovné instalaci se zase vygeneruje nové UUID. V tabulce 1a jsou popsány předdefinované podadresáře určené aplikaci dle dokumentu [4].
Podadresář
Popis
.app/
Uchovává aplikační data a kód
Documents/
Library/
Data konkrétní aplikace, která uţivatel vytvořil za běhu aplikace. Tyto data je moţné i sdílet. Knihovní data aplikace
14
Library/preferences
Předvolby aplikace
Library/Caches
Data aplikace, která nemusí být zálohována
tmp/
Dočasné soubory Tabulka 1
3.1.4. Bezpečnostní konfigurace a profily Konfigurační profily jsou XML soubory, které obsahují zásady zabezpečení zařízení a omezení, informace o konfiguraci VPN, Wi-Fi nastavení, nastavení emailu, účtů kalendářů a ověřování práv, umoţňující práci s podnikovými systémy. Konfigurační profily mohu být podepsané a šifrované. Podpis konfiguračního profilu zajišťuje, ţe nastavení, které profil prosazuje, nemůţe být ţádným způsobem změněno. Šifrování konfiguračního profilu chrání jeho obsah a umoţňuje jeho instalaci pouze na zařízení, pro které byl vytvořen. Konfigurační profily jsou šifrovány pomocí CMS (Cryptographic Message Syntax, RFC 3852), který podporuje 3DES a AES 128.
3.1.5. Ochrana dat Ochrana dat uloţených na zařízeních s iOS je důleţitá pro kaţdé prostředí, kde se vyskytují citlivé informace. Kromě šifrování dat při přenosu, iOS nabízí i hardwarové šifrování dat uloţených v zařízení. Pokud dojde ke ztrátě či odcizení zařízení, je důleţité tyto citlivá data znepřístupnit. Velmi dobrou bezpečnostní politikou je smazání obsahu po určitém počtu neúspěšného zadání hesla. Jak bylo uvedeno výše, iOS nabízí moţnost hardwarového šifrování. Toto šifrování pouţívá AES 256 a chrání tak veškerá data uloţená v zařízení. Kromě toho v případě zálohy dat v počítači přes iTunes jsou tyto data také šifrována a navíc i vývojáři mají přístup k API, které jim dovoluje šifrovat data aplikace. iOS dále nabízí dva přístupy k ochraně citlivých dat popsané v [5]: Remote Wipe: Pokud dojde ke ztrátě zařízení, je moţné zadat příkaz vzdáleného vymazání, který odstraní veškerá data a vypne přístroj. Local Wipe: Přístroj můţe být také nastaven tak, aby se automaticky zablokoval po určitém počtu neúspěšných zadání hesla. Toto je hlavně odstrašující prostředek pro různé útoky hrubou silou (brute force) apod. Ve výchozím nastavení se data vymaţou po 10 za sebou neúspěšných pokusech. Toto číslo lze samozřejmě změnit přes konfigurační profil.
15
3.1.6. Bezpečnost síťové komunikace Mobilní uţivatelé musí mít přístup k informacím na kaţdém místě z celého světa, ale je také důleţité zajistit ochranu těchto dat během přenosu. iOS nabízí osvědčené technologie k dosaţení tohoto bezpečnostního cíle pro Wi-Fi a mobilní datové připojení k síti (Edge a 3G / 4G). VPN: Mnoho podnikových prostředí má nějakou formu privátní sítě. Tyto bezpečné síťové sluţby jsou jiţ zapojeny a obvykle vyţadují minimální reţii od uţivatele iOS zařízení. iOS integruje celou řadu běţně pouţívaných technologií VPN jako Cisco IPSec, L2TP, PPTP [5] apod. Podpora těchto protokolů zajišťuje nejvyšší úroveň šifrování pro přenos citlivých informací. iOS podporuje proxy, stejně jako rozdělení IP tunelování. Kromě toho umoţňuje přístup k existujícím VPN prostředím. iOS nabízí osvědčené metody pro ověřování uţivatelů. Autentizace pomocí digitálního certifikátů X.509 není výjimkou, k tomu je tu moţnost vyuţívání VPN On Demand, coţ dělá proces ověření transparentní a přitom poskytuje silný a ověřený přístup k síťovým sluţbám. SSL/TLS: iOS podporuje SSL v3 a Transport Layer Security (TLS v1), příští generace bezpečnostní normy pro internetový prohlíţeč Safari. Aplikace Kalendář a Mail tyto mechanismy také vyuţívají. WPA/WPA2: iOS nabízí WPA2 jako ověřený přístup k síťi. WPA2 pouţívá algoritmus AES s klíči o délce 128 bitů.
iPhone 3GS a novější pouţívají vestavěné šifrovací akcelerátory na blokové šifrování jak na úrovni systémové, tak na úrovni datových oddílů [7]. Tento systém je určen převáţně k podpoře Remote Wipe ochrany dat popsané výše. V dřívějších verzích iOS by vzdálené vymazání vedlo k přepsání kaţdého bloku dat, coţ by trvalo hodiny. Nyní je celý souborový systém chráněn.
3.1.7. Šifrování iOS umoţňuje bezpečné šifrování digitálních identit, uţivatelských jmen a hesel. Přihlašovací údaje jsou rozděleny tak, aby tyto údaje uloţené aplikací třetí strany nepřišly do kontaktu s dalšími údaji z jiné aplikace. To poskytuje mechanismus pro zajištění ověřování v celé řadě aplikací a sluţeb. Data mohou být symetricky šifrována pomocí algoritmů jako AES, RC4 nebo 3DES. Kromě toho poskytuje hardwarovou akceleraci pro AES šifrování a SHA1. iPhone 3G a novější podporuje hardwarový AES šifrovací akcelerátor. Tento akcelerátor se pouţívá k šifrování souborového systému v reálném čase a pro různé další úkoly. Hardwarové urychlení AES pracuje s unikátním klíčem (UID klíč) a globálně sdíleným klíčem (GID klíč) [6], které jsou přístupné pro CPU. Tyto klíče mohou být pouţity pouze pro šifrování a dešifrování pomocí AES. GID klíč se primárně pouţívá pro dešifrování obrazu operačního systému iOS. UID zase pro odvození ostatních klíčů, které algoritmus AES potřebuje. Novější iPhone, iPad a iPod Touch zařízení (tj. ty, které vyuţívají operační systém iOS 5 a dále) pouţívají hybridní model šifrování. Jak jsem uvedl výše, iOS vyuţívá hardwarovou
16
akceleraci šifrování AES-256 všech dat uloţených v paměti flash zařízení a zároveň iOS chrání zvláštní dodatečné datové poloţky, jako jsou e-maily, pouţitím další vrstvy šifrování. Na první pohled by se mohlo zdát, ţe iOS nabízí vysoký stupeň ochrany. Nicméně, tento systém má háček. Vzhledem k tomu, ţe iOS běţí na pozadí aplikace, kdyţ uţivatel není přihlášen do svého přístroje a protoţe tyto aplikace na pozadí potřebují mít přístup k souborovému systému, iOS musí uchovávat kopii dešifrovacího klíče po celou dobu běhu, takţe je moţné dešifrovat data uloţená v iPhone a poskytnout je aplikacím běţícím na pozadí. Jinými slovy je většina údajů o kaţdém zařízení zašifrována tak, ţe mohou být dešifrovány bez nutnosti vloţení uţivatelského hesla. To znamená, ţe útočník můţe s fyzickým přístupem k zařízení se systémem iOS pouţít funkční „jailbreak“ a získat tak přístup k veškerým informacím, které jsou uloţeny v paměti. Kromě hardwarového šifrování je malá část dat iOS kódována na druhém místě tak, ţe mohou být zpřístupněny pouze v případě, ţe je zařízení odemknuto pomocí uţivatelského hesla. Jestliţe tedy útočník nemá přístup k heslu, ochrana je téměř 100%. Hlavním cílem šifrování je, aby se zabránilo ztrátě dat v důsledku odcizení nebo ztráty přístroje. Samozřejmě je tu cesta jailbreaku, kdy útočník, který má fyzický přístup k zařízení a funkční jailbreak, můţe získat potenciálně více informací. V únoru 2011 vydali vědci z Fraunhofer Institute zprávu, která ukázala, ţe při čase ne delším neţ 6 minut mohli obejít hardwarové šifrování, ochranu heslem, a získat tak hesla a přihlašovací informace k většině webových sluţeb, VPN hesla, hesla k emailům apod. [19]
3.1.8. Šifrování souborového systému Šifrovacím klíčem (Key File System). Tato úroveň šifrování souborového systému nebrání obnovení dat ze ztraceného zařízení. Pokud příkaz vzdáleného vymazání neobdrţí, můţe útočník pomocí vlastní RAM sám dešifrovat jiţ šifrované oblasti. To bylo demonstrováno na iPhone 3G běţícím na iOS 3 pomocí iPhone, jailbreaku a exploitu, který vyuţívá bezpečnostní slabinu Boot ROM. Tento exploit umoţňuje spuštění vlastního RAM disku a otevření vzdáleného přístupu přes SSH. Tento styl útoku je moţný aplikovat i na zařízení s iOS 4. Nicméně na iOS 4 se takto útočník nedostane k souborům chráněným pomocí NSProtectionNone třídy ochrany.
3.2.
iOS - praktické příklady bezpečnostních chyb a jejich vyuţití
V této částí bakalářské práce se budu věnovat praktickým příkladům bezpečnostních chyb systému iOS. Největším bezpečnostním problémem (aniţ by si to mnozí uvědomovali) je jailbreak. Paradoxně je to “hack”, který si do systému s vlastním vědomím nainstalují ve většině případů sami uţivatelé, za cílem moţnosti větší volnosti při úpravě systému nebo moţnosti instalování aplikací třetích stran apod.
17
3.2.1. Jailbreak Slovo Jailbreak můţeme chápat jako “prolomení klece”, zejména díky tomu, ţe se jím otevírá souborový systém iOS. Největší nebezpečí jailbreaku tkví právě v tom, ţe uţivatel po jeho aplikování získává rootovská práva. Jeden z prvních jailbreaků, konkrétně ten, který upravoval iPhony s firmwarem verze 1.1.1 byl zaloţený na zranitelnosti ve webovém prohlíţeči v důsledku špatného zacházení se soubory TIFF (konkrétně v knihovně libtiff verze 3.8.1 nebo starší). Tato chyba je označena jako CVE2006-3459 a popsána v Common Vulnerabilities and Exposures6, coţ je databáze pro sledování zranitelností různých systémů. Tato zranitelnost vyuţívá několika chyb. Jednou z nich je moţnost vytvoření TIFF souboru, do kterého lze přenést nebezpečný kód, a při následném otevření tohoto souboru přes mobilní prohlíţeč Safari (s vyuţitím dané verze knihovny libtiff) dochází k přetečení zásobníku prohlíţeče a vykonání nebezpečného kódu vloţeného do TIFF souboru. Chyba se nachází v metodě TIFFetchShortPair v tif_dirread.c souboru. Jak jiţ název napovídá, funkce načítá pár bajtů, ovšem pokud by počet bajtů, které se měli načíst, byl větší neţ 2, poţadavek měl skončit chybovým hlášením. Bohuţel se takto nestalo, a počet bajtů k načtení je libovolný. Tato chyba je opravena jiţ od verze 3.8.2 a zdrojové kódy libtiff jsou k dispozici na stránce MapTools.org. V příloze jsou uvedeny ukázky zdrojového kódu funkce TIFFetchShortPair ve verzi 3.8.1 a dále ve verzi 3.8.2
3.2.2. SSH S rootovskými právy nejvíce souvisí jiţ pár let známý, bohuţel stále aktuální bezpečnostní problém. Největší “chybou” jsou aplikace, které umoţňují komunikaci přes port SSH. U většiny uţivatelů těchto aplikací dochází k situaci, kdy po vlastním uţití (kopírování aplikací třetích stran apod.) zapomenou uzavřít komunikaci na tomto portu a kdokoli se tak přes něj můţe na zařízení připojit. Ve většině případů zde nefunguje ani ochrana uţivatelským jménem a heslem, jelikoţ jsou dobře známy parametry továrního nastavení. U velké části přístrojů je uţivatelské jméno nastaveno na “alpine” a heslo na “passwd”. Uţivatel si je samozřejmě můţe kdykoli změnit, bohuţel, valná většina tak nečiní a jejich telefony jsou tak volně přístupné. Útočník si následně můţe zkopírovat veškerá data, která jsou uloţena na zařízení (např. pomocí programu WinSCP). Například kontakty jsou uloţeny v několika tabulkách: /Library/AddressBook/AddressBook.sqlite. Tabulka ABPerson obsahuje seznam lidí, jak je patrné na obrázku. Telefonní čísla jsou pak uloţena v tabulce ABMultiValue.
6
http://cve.mitre.org
18
Obr. 3: Ukázka databáze ABPerson
3.2.3. Facebook & Dropbox Další bezpečnostní riziko neobsahuje přímo systém iOS, nýbrţ dvě z nejpouţivanějších a nejstahovanějších aplikací na AppStore, oficiální klient sociální sítě Facebook a klient populární sluţby na synchronizování a zálohu dat Dropbox. Chyba spočívá v ukládání dat o současném uţivateli (posledním přihlášeném) ve formě čistého textu do souboru com.getdropbox.Dropbox.plist. Pokud se útočník dostane k zařízení, kde je jedna z těchto aplikací nainstalována, můţe si kdykoli daný plist soubor zkopírovat a nahrát do svého zařízení. V případě, ţe uţivatel, kterému byl “unesen” plist soubor, neměl povoleno ověření heslem, stačí spustit danou aplikaci a automaticky bude nahrán odcizený účet. Tento postup funguje díky špatnému přístupu aplikací i na iOS zařízení, kde nebyl pouţit jailbreak. Pro kopírování a nahrání daného souboru lze pouţít volně dostupný program iExplorer
Obr. 4: Rozhraní softwaru iExplorer
19
Obr. 5: Rozhraní aplikace Dropbox
3.2.4. Lock screen exploit V nejnovější verzi iOS (6.1.2 a 6.1.3) díky zranitelnosti ve vytáčení hlasem dokáţe útočník získat kontakty i obsah galerie. Pro vyuţití této chyby je potřeba následovat postup sestávající z několika kroků, jako vysunutí SIM karty během procesu vytáčení hlasem apod. Výsledkem je návrat do nativní aplikace Volání a tím i přístup ke všem kontaktům v adresáři a kompletní galerii.
3.3.
iOS - sada doporučení pro zvýšení bezpečnosti dat 1. Pouţívat kódový zámek: Ačkoli je to ta nejzákladnější moţnost, případnému útočníkovi se tímto velmi znesnadní útok. Je silně doporučeno s aktivací kódového zámku nastavit i uzamčení po co nejkratší časový interval (1 min). Samozřejmostí je zvolení silného hesla. Další velmi doporučenou vlastností je aktivace moţnosti smazání veškerých dat po 10 neúspěšných pokusech po zadání kódu. 2. Deaktivace vytáčení hlasem: Ve výchozím nastavení je moţné hlasové vytáčení, i kdyţ je zařízení uzamčeno. Tato funkce můţe být pouţita pro volání někoho ze seznamu kontaktů, ovládání skladeb aj. 3. Mezipaměť a klávesnice: Všechny “úhozy” na klávesnici se mohou ukládat v cache po dobu aţ 12-ti měsíců v /var/mobile/library/keyboard/dynamic-text.dat souboru. Úhozy
20
jsou ukládány pro potřeby autokorekce. Je ovšem důleţité poznamenat, ţe se neukádají hesla. (potenciální čísla účtů apod. ano). Proto je doporučováno tuto mezipaměť průběţně promazávat. 4. Automatizované screenshoty: Pokaţdé, kdyţ uţivatel zmáčkne tlačítko Home, okno otevřené aplikace se zmenší a zmizí. Tento efekt je docílen díky pořizování screenshotu. Screenshoty pro konkrétní aplikaci jsou uloţeny v ~/Library/Application Support/iPhone/6.1.3/Applications/744F3613-A728-4BD7-A490A95A6E6029F7/Library/Caches/Snapshots/com.appCompany.appName. Tyto screenshoty jsou sice ze zařízení následně smazána, ovšem toto smazání neodstraní data úplně. Ve většině případů je moţné je obnovit. 5. Smazání dat před vrácením, opravením nebo prodáním zařízení: Většina uţivatelů by zvolila moţnost obnovení do továrního nastavení, při kterém se data smaţou. Bohuţel tato volba nepouţívá bezpečné mazání dat, a tudíţ díky vhodným forenzním nástrojům jsou smazaná data obnovitelná. Veškerá data, která jsou v zařízení uloţena, zůstávají v nealokovaných blocích NAND paměti. Proto se doporučuje resetování celého přístroje a jeho sluţeb, následné vymazání obsahu a na závěr provedení obnovení do továrního nastavení pomocí iTunes. Další moţností je pouţití aplikace iErase od forenzního experta Jonathana Zdiarskiho. Tato aplikace provede přepsání veškerého volného místa v iOS zařízení a tím docílí bezpečného smazání předchozích dat. 6. Jailbreak: Jak jsem jiţ výše uváděl, Jailbreak je způsob, jak obejít omezení nastavená Applem. Umoţňuje uţivatelům instalaci aplikací, které nejsou umístěny na AppStore, odblokování operátora aj. Jailbreak je hodně kontroverzní téma a má mnoho svých zastánců, ale určitě není pro kaţdého. Pokud jste začátečník s omezenými znalostmi ohledně bezpečnosti, Jailbreak rozhodně nedoporučuji. 7. Safari: Prohlíţeč Safari poskytuje určité základní nastavení bezpečnosti. Jedním z nich je blokování pop-upů. Tapnutím na pop-up uţivatel vystavuje zařízení nebezpeční v podobě malware. Proto je vhodné mít tuto funkci aktivovanou. Dalším doporučením je průběţné promázání historie, cookies a cache prohlíţeče. 8. Bezpečné pouţívání Wi-Fi, Emailu a Bluetooth: Určité aplikace umístěné na AppStore vyuţívají Bluetooth ke sdílení souborů a dat (výsledky her apod.). Útočník pak můţe tyto citlivá data krást pomocí útoků jako BlueJacking17 a BlueSnarfing. Bohuţel iOS neumoţňuje vypnutí módu Discovery a proto jediným opatřením je vypínat Bluetooth v době, kdy není pouţíván. To samé platí o Wi-Fi. Pokud je vypnuta, iOS se připojí na internet prostřednictvím mobilní datové sítě (pokud je k dispozici). Vypnutím Wi-Fi se jednak sníţí nárok na baterii, ale hlavně se eliminuje odposlech datové komunikace (sniffing). Ohledně emailu je velmi doporučeno zapnutí SSL v případě přístupu na Hotmail či Gmail. Pokud SSL není povoleno, zprávy pak nejsou přenášeny bezpečně. 9. Find My Phone: Apple tuto aplikaci / sluţbu vypustil na trh s příchodem iOS 4.2. Tato aplikace vyuţívá GPS a pomáhá sledovat odcizené zařízení. Aby vše fungovalo, musí být na daném zařízení aplikace nainstalována a správně nastavena. Kromě sledování
21
zařízení můţe uţivatel zobrazit zprávu, přehrát zvuk či vzdáleně vymazat data. K pouţití Find My Phone je velmi vhodné pouţití kódového zámku. Pokud přístroj není chráněn, zloděj můţe tuto aplikaci/sluţbu deaktivovat.
22
3.4.
Android – bezpečnostní vlastnosti
Android je velice rozsáhlá open source platforma cílená na mobilní zařízení (smartphony, tablety apod.) Android je zaloţen na jádru Linuxu (konkrétně 2. 6.) a byl nejdříve vyvíjen společností Google, která ovšem celou platformu předala konsorciu Open Handset Alliance 7(OHA), jíţ je také členem. Platforma Android byla ohlášena 5. listopadu 2007 a současně s tím bylo zaloţeno i OHA, které dnes sdruţuje nejrůznější výrobce software, hardware a telekomunikační společnosti.
Obr. 6: Architektura systému Android
7
http://www.openhandsetalliance.com
23
Android se skládá z různých systémových komponent jako je aplikační framework, virtuální stroj Dalvik, coţ je Java Virtual Machine optimalizovaná pro mobilní zařízení, dále integrovaný webový prohlíţeč zaloţený na jádru WebKit, SQLite apod. viz. [8]. Kaţdá Android aplikace běţí v rámci své vlastní JVM a kaţdý virtuální stroj je izolován v jeho vlastním procesu. Tudíţ ţádný proces/aplikace nebude mít přístup k datům jiného procesu/aplikace. Zatímco JVM byla navrţena tak, aby vyuţíval přednosti zapouzdření, Android se na tento systém v takové míře nespoléhá. Místo toho všechna bezpečnostní opatření provádí přímo Android. Bezpečnostní systém Androidu je na rozdíl od iOS zaloţen na třech z pěti pilířů bezpečnosti: kontrola přístupu, sandboxing a bezpečnostní model oprávnění. Je však důleţité poznamenat, ţe bezpečnost Androidu není jen o implementaci systému. Google uvolňuje zdrojové kódy celého projektu Android, coţ umoţňuje kontrolu širší bezpečnostní komunity. Google tvrdí, ţe tato otevřenost pomáhá odhalovat chyby a vede ke zlepšení bezpečnostní úrovně celého systému.
3.4.1. Řízení přístupu Android poskytuje základní moţnosti nastavení hesla, včetně moţnosti určit, za jaký čas se má telefon automaticky uzamčít a také maximální počet neúspěšných pokusů. Navíc Android od verze 3.0 zavádí pojem vypršení hesla, coţ můţe být pro některé uţivatele velice nepříjemné. Tento systém je samozřejmě účinný proti náhodným útokům, nicméně aktuální verze systému Android nepodporuje šifrování dat uloţených na vyjímatelné paměťové kartě (SD). Útočník s fyzickým přístupem k telefonu se systémem Android pak můţe jednoduše vyjmout SD kartu a získat její obsah během několika sekund, aniţ by musel obcházet nějaké bezpečnostní prvky. Navíc, z těchto karet lze běţně dostupnými prostředky obnovit i jiţ smazaná data.
3.4.2. Sandboxing Stejně jako iOS, Android pouţívá stejný systém izolace, který zajistí, ţe aplikace má přístup jen do svého předem vyhrazeného místa. Navíc je zakázáno, aby aplikace mohla přistupovat k jádru operačního systému, coţ zajistí, aby škodlivé aplikace nemohli získat oprávnění ke kontrole zařízení. Výchozí systém izolace zpravidla zakazuje přístup prakticky kaţdého subsystému a zařízení s těmito výjimkami: Aplikace můţe získat seznam aplikací nainstalovaných v zařízení. Aplikace můţe číst (ne zapisovat) obsah SD karty, ať uţ na ni jsou jakékoli informace bez ohledu, která aplikace tato data vytvořila. Aplikace mají moţnost spouštět další aplikace v systému, jako je např. internetový prohlíţeč, mapy apod.
24
Nyní se podívejme na internetový prohlíţeč. Tyto aplikace jsou zdaleka nejčastějším cílem útoků, protoţe útočníci vědí, ţe webové prohlíţeče mají často bezpečnostní nedostatky, které lze snadno zneuţít pomocí správně vytvořené webové stránky se škodlivým kódem. Představte si, ţe útočník tyto stránky vytvoří a bude moci pomocí nich vyuţívat bezpečnostní díru ve webovém prohlíţeči. Pokud nic netušící uţivatel otevře tuto stránku, škodlivý kód sám sebe vloţí (injection) do prohlíţeče. Ovšem je tento běţící proces hrozbou? Ano i ne. Android svým systémem izolace zajišťuje, aby se škodlivý kód nemohl rozšířit mimo prohlíţeč, např. k dalším aplikacím nebo k jádru systému. Nicméně, pořád je tu moţnost, kdy má prohlíţeč udělena veškerá oprávnění přístupu k datům. Například, pokud má prohlíţeč povolen zápis dat na SD kartu, útočník můţe škodlivým kódem v prohlíţeči tyto data poškodit nebo zničit. Kromě toho můţe škodlivý kód v rámci procesu napadnout i samotná data, která procesem protékají. V případě webového prohlíţeče můţe útočník snadno získat přihlašovací jména a hesla, čísla kreditních karet, bezpečnostní kódy platebních karet (jako např. CVV), historii prohlíţení apod. Dále uvaţujme schopnost izolace operačního systému Android jako ochranu před škodlivým softwarem, jako jsou trojské koně, spyware apod. Vzhledem k tomu, ţe Android je navrţen tak, aby izoloval jednotlivé aplikace od jiných aplikací a od systému/subsystému, zdálo by se, ţe je tato ochrana „neprůstřelná“. Android ale poskytuje jednu funkcionalitu, která je v rozporu s tím, co jsem popsal výše. Existuje zde moţnost, aby si kaţdá aplikace mohla zaţádat o povolení k přístupu k různým subsystémům, jako jsou emailové schránky, GPS, přístup k síti apod. Tato zranitelnost je ve špatných rukou opravdu kritická a zároveň je to nejslabší článek bezpečnosti v systému izolace operačního systému Android.
3.4.3. Řízení přístupu na základě oprávnění Výchozí nastavení Androidu je takové, ţe většina Android aplikací toho umí velmi málo bez udělení povolení k přístupu k dalším subsystémům, datům apod. Například, pokud chce nějaká aplikace komunikovat přes internet, musí výslovně poţádat o svolení uţivatele. Kaţdá Android aplikace proto obsahuje seznam potřebných oprávnění, která potřebuje k tomu, aby mohla bezproblémově fungovat. Tento seznam je k dispozici uţivateli v době, kdy je aplikace instalována na mobilní zařízení. Uţivatel se pak můţe rozhodnout na základě potřebných povolení, zda si aplikaci chce opravdu nainstalovat. Pokud se rozhodne, ţe ji nechce, instalace se jednoduše přeruší. Aplikace třetích stran mohou poţádat o povolení k přístupu k následujícím subsystémům viz.[3]: Síťové subsystémy: Aplikace mohou navázat síťové připojení přes Wi-Fi nebo Edge/3G.
25
Identifikátory zařízení: Aplikace můţe získat ID zařízení (IMEI), telefonní číslo, ID účastníka (IMSI) a číslo SIM karty. Tyto kódy mohou být pouţity k páchání trestné činnosti při podvodu s mobilním telefonem. Zpracování zpráv: Aplikace můţe mít přístup k emailům a přílohám ve sloţce Doručená pošta, pošta k odeslání a zprávám v SMS subsystému. Aplikace tak můţe iniciovat přenos odchozích emailů a SMS zpráv, aniţ by o tom uţivatel věděl a navíc můţe zachytit příchozí emaily a SMS zprávy. Kalendář a adresář: Aplikace můţe přidávat, číst, upravovat a mazat poloţky z těchto aplikací. Multimédia: aplikace mohou přistupovat k obrázkům, hudbě, videu apod. Externí zařízení: Aplikace můţe ukládat změnit či odstranit jiţ existující data na externím úloţišti (paměťové karty). Data v těchto externích úloţištích nejsou nijak šifrována. Global Positioning Systém (GPS): Aplikace se můţe dotázat, kde se zařízení nachází. Telefonní systém: Aplikace můţe iniciovat a případně ukončit telefonní hovory bez souhlasu uţivatele. Záznamy v historii telefonu: Aplikace můţe přistupovat k historii hovorů, protokolu chyb apod.
Na první pohled se tento systém zdá být bezpečný a stabilní, coţ umoţňuje vývojářům stanovit minimální poţadavky pro běh aplikace. Problém tohoto přístupu ovšem je, ţe vše nakonec záleţí na uţivateli a na jeho rozhodnutí, coţ není ta nejlepší cesta k bezpečnému systému. Bohuţel, většinou uţivatelé nejsou tak technicky vybaveni, aby byli schopni vidět moţné nepříjemné následky svého rozhodnutí při udělení oprávnění určité aplikaci. Apple iOS na rozdíl od Androidu odmítá přidělení oprávnění pro přístup aplikací do některých subsystémů. Tím se zvyšuje bezpečnost systému a vynechává uţivatele z celého rozhodovacího procesu. Nicméně tato omezení nejsou pro kaţdého, jelikoţ se tím omezuje funkčnost některých iOS aplikací. Vezměme v úvahu například hry, které zaţádají o povolení k přístupu na internet a také k přístupu do subsystému s identifikačními čísly. Pro neznalého uţivatele je velmi těţké rozhodnout, zda by tím pro něj a pro jeho bezpečnost vzniklo nějaké bezpečnostní riziko. Scénář je velmi často takový, ţe aplikace pouţívá unikátní ID pro vyhledání uţivatele a umístění jeho skóre ze hry na server. Přesto toto unikátní ID spadá do subsystému, ve kterém je i IMSI a IMEI. Útočník si tedy tyto čísla můţe exportovat a zneuţít je k páchání trestné činnosti. Vyţádáním určitého oprávnění pro škodlivou aplikaci můţe zahájit sérii útoků na dané zařízení (posílat velké mnoţství SPAMu nebo zahájit DDoS (Distributed Denial of Service Attack) apod.).
26
3.4.4. Nepopiratelnost Zatímco Apple iOS platforma je postavena na ověřování původu kaţdé aplikace, neţ se začne prodávat v App Store, Android jde trochu jinou cestou digitálního podepisování aplikací. Bohuţel, v případě Androidu jde i o daleko méně bezpečnou cestu. Konečným cílem digitálního podpisu aplikace je zajistit, aby s aplikací nebylo manipulováno, a aby uţivatel aplikace byl schopný určit totoţnost autora aplikace. Stejně jako Apple, operační systém Android pouze nainstaluje a spustí aplikace, které byly řádně podepsány digitálním certifikátem. Nicméně na rozdíl od Applu, vývojáři softwaru nemusí platit za certifikát ţádný poplatek. Místo toho mohou vývojáři vytvářet podpisové certifikáty tak často, jak jen chtějí. Navíc informace v tomto certifikátu, mohou být zcela smyšlené. Výsledek je, ţe autor můţe zcela bez problémů vytvořit malware díky anonymnímu certifikátu, a šance, ţe by byl někdo schopný vystopovat skutečného autora, je téměř nulová. K tomu, aby vývojář mohl prodat své aplikace na Android Market, musí zaplatit poplatek 25 dolarů prostřednictvím kreditní karty. To umoţňuje připojit účet vývojáře k certifikátu a tento certifikát tak pouţít k digitálnímu podepsání aplikace. Zdá se, ţe to by mohlo slouţit jako odstrašující prostředek proti tvůrcům malware. Chybou ovšem je, ţe tvůrci mohou tyto aplikace distribuovat z jakékoli webové stránky a ne jenom z Android Market. Malware tak můţe být distribuován v anonymitě bez jakékoli bezpečnostní prověrky. Tento přístup má dvě úskalí. Prvním z nich je, ţe autoři malware apod. nemají skoro ţádný problém distribuovat své škodlivé aplikace a druhým problémem je, ţe útočníci mohou přidat do jiţ existujících a podepsaných aplikací trojské koně. Útočník můţe získat aplikace, přidat škodlivý kód a pak znovu podepsat anonymním certifikátem tuto aktualizovanou verzi aplikace a zveřejnit na internetu.
3.4.5. Ověřování aplikací Zatímco Apple prosazuje jeden ověřovací a jeden distribuční kanál pro všechny iOS aplikace, Android si vybral mnohem otevřenější model. Vývojáři mají vedle moţnosti distribuovat své aplikace na Android Market, i moţnost distribuce na jakýchkoli webových stránkách. (U uţivatelů, kteří chtějí takto distribuované aplikace stahovat, je nutný zásah do operačního systému Android, a toto nastavení povolit). Historie nám ukazuje, ţe platformy, které umoţňují vývojářům softwaru distribuovat své aplikace anonymně, zaţily větší mnoţství škodlivého softwaru neţ platformy, které vyţadují, aby kaţdá aplikace byla digitálně podepsána certifikátem, který obsahuje pravou totoţnost vývojáře. V průběhu roku 2010 a 2011 byli uţivatelé svědky několika útoků, jako jsou Android.Pjjaps a Android.Bgserv. Oba vyuţívaly slabiny v ověřování původu aplikací. Útočník si přivlastnil jiţ existující digitálně podepsanou aplikaci, odstranil podpis, vloţil škodlivý kód, znovu podepsal (ovšem jiţ pod anonymním certifikátem) a zveřejnil je buď na Android Market, nebo na webových stránkách. Vţdy tyto útoky ohrozily stovky tisíc uţivatelů platformy Android.
27
3.4.6. Šifrování Jak je uvedeno v dokumentu [9], od verze 3.0 Android podporuje hardwarové šifrování na ochranu dat. Bohuţel Google stále neodhalil, jak toto šifrování funguje. Tudíţ je velmi těţké odhalit jeho silné a slabé stránky. Nicméně zařízení se staršími verzemi systému Android se spoléhají na sandboxing, hesla apod. To znamená, ţe pokud je útočník schopen provést jailbreak nebo získat účet s právy administrátora, můţe číst nebo měnit kaţdý byte dat v zařízení, včetně všech hesel, přihlašovacích údajů apod. v několika případech ovšem Android vyuţívá tzv. autentizační tokeny jako prevenci vůči ztrátě původního hesla. Tyto autentizační tokeny jsou číselné hodnoty odvozené od původního hesla pomocí jednosměrné hashovací funkce, coţ znemoţňuje získat původní heslo a zároveň se někam přihlásit. Stejně jako u iOS, aplikace třetích stran mohou vyuţívat standardní šifrovací algoritmy. V případě, ţe aplikace tyto šifrovací algoritmy bude chtít vyuţívat, vývojář musí explicitně přidat tuto „logiku“ do aplikace. V opačném případě budou veškerá data vytvořená aplikací uloţena v nezašifrované podobě.
3.5.
Android - praktické příklady bezpečnostních chyb a jejich vyuţití
3.5.1. Root V poslední době se často skloňuje operační systém Android s pojmem “root”, který je znám jako pojmenování pro systémového superuţivatele, tedy toho, který má nejvyšší oprávnění. Kaţdá aplikace, která je spuštěna v normálním reţimu, má jen omezené moţnosti díky výše popsanému sandboxingu. Aplikace tak nemá práva měnit data na systémovém oddílu apod. V případě, ţe se na zařízení provede tzv. root, uţivatel získá moţnost spustit aplikace se systémovými právy (root). Většina aplikací této moţnosti vyuţít nedokáţe, a tak ani uţivatel nepozná, ţe tato aplikace běţí v reţimu root. Existují ovšem i aplikace, které to vyuţít dokáţí a dávají tak uţivateli a zároveň i vývojářům dané aplikace další moţnosti. Velké nebezpečí tak vzniká pro uţivatele, kteří si aplikace stahují z jiných zdrojů neţ z oficiálního Google Play apod., v těchto aplikacích tak můţe být ukrytý nebezpečný kód, který v případě zařízení, na kterém byl proveden root, můţe ukrást data uţivatele a odeslat je vývojářům / útočníkovi. Pro kontrolu aplikací, které mohou pracovat v root módu si můţe uţivatel nainstalovat aplikaci Root Explorer a získat tak alespoň částečné zabezpečení svých dat. Na kaţdém zařízení se systémem Android je moţné provést root, a existuje k tomu mnoho utilit a různých programů od těch sloţitějších, aţ po jednoduché “one-click” řešení. Většina těchto utilit je vytvořena pro konkrétní zařízení, pro konkrétního výrobce nebo pro konkrétní verzi softwaru, a není moţno je aplikovat v globálnějším měřítku. Jsou ovšem i komplexnější řešení, jako aplikace Unlock root, kterou lze pouţít na většinu zařízení, od smartphonů značky Samsung, HTC apod. aţ po LG nebo HUAWEI. K dnešnímu dni byl Unlock Root pouţit úspěšně uţ více neţ 7 000 000 krát.
28
Obr. 7: Prostředí aplikace Unlock Root
3.5.2. USSD kódy Unstructured Supplementary Service Data neboli Nestrukturovaná data doplňkové sluţby (USSD) je standardizovaný komunikační protokol pouţívaný v sítích GSM. V součastnosti se pouţívají hlavně ke komunikaci mezi telefonem a aplikačním serverem v síti. USSD vyuţívá po celém světě řada známých sluţeb a technologií, jako Facebook, Twitter, mobilní bankovnictví apod. USSD kódy jsou sestavené z různých sekvencí čísel a znaků, po jejichţ zadání je uţivatel schopen získat informace, které by standardní cestou získat neměl (diagnostika, nedostupné nastavení apod.) Např. pro zobrazení některých informací o telefonu se pouţívá univerzální USSD kód “*#06#”. Důleţité je, ţe kaţdý výrobce si můţe definovat vlastní kódy a tudíţ ne všechny vţdy fungují na různých zařízeních. Nebezpečí u těchto USSD kódů spočívá v tom, ţe mohou být ukryty kdekoli, na webu ve formě odkazu, v QR kódu aj. Jeden z nejznámějších bezpečnostních problémů spjatých s USSD byla chyba, kterou prezentoval Ravi Borgaonkar, spočívá v tom, jak telefony zpracovávají řetězce “tel:”. Obdobou tohoto řetězce je řetězec “mailto:”, který funguje pro hypertextové odkazy, které mají být otevřeny v nativním emailovém klientovi. V případě řetězce “tel:”, povaţují webové prohlíţeče tento řetězec za telefonní číslo, které otevírají v nativní aplikaci pro vytáčení a právě zde se nachází bezpečnostní chyba. Jestliţe aplikace přímo vytočí dané “číslo” (coţ můţe být ve skutečnosti USSD řetězec pro obnovu továrního nastavení), místo toho, aby se zeptala uţivatele na potvrzení, uţivatel příjde o veškerá data ze zařízení.
29
Další ze známých bezpečnostních chyb pochází z konce minulého roku, kde se jednalo o chybu v rozhraní TouchWiz. V tomto případě stačilo kliknout na html odkaz, který spustil aplikaci pro vytáčení čísel, skrze kterou je pak vykonán reset do továrního nastavení (v tomto případě se pouţíval USSD kód “*767*3855#”), nebo např. zablokování SIM karty.
Příklad implementace automatického vytočení USSD kódu: String encodedHash = Uri.encode("#"); String ussd = "*" + encodedHash + "123" + encodedHash; startActivityForResult(new Intent("android.intent.action.CALL", Uri.parse("tel:" + ussd)), 1);
Samozřejmě tyto “útoky” lze spustit i dalšími způsoby jako načtení přes technologii NFC, nebo výše jmenované načtení QR kódu.
3.5.3. Frost Poslední dobou a zvlášť v zimním období se mluví o tzv. cold boot útocích, které jsou vyuţitelné při teplotách okolo -10 °C a méně. Android má zabudované plné šifrování disku (FDE - full disk encryption) od verze 4.0 (téţ známá jako “Ice Scream Sandwitch”). Tato vlastnost je implicitně vypnuta, ovšem od okamţiku, kdy ji uţivatel povolí, není moţné k datům přistupovat bez zadání hesla, a právě pomocí cold boot útoků jsou útočníci schopni dostat se k těmto datům i v případě, ţe je FDE aktivováno. Technicky řečeno, cold boot útoky se tak nazývají proto, ţe vyuţívají tzv. studeného startu zařízení, coţ znamená, ţe uţivatel ukončí činnost systému, aniţ by systém řádně dokončil všechny své operace (podobně jako u vytáhnutí zástrčky). Je všeobecně známo, ţe pokud se něco takového stane, veškerý obsah paměťi RAM se smaţe. U pamětí typu SRAM a DRAM existuje vlastnost zvaná “remanence”, coţ znamená, ţe její obsah nemizí okamţitě, nýbrţ postupně slábne. A pokud je útočník schopen dostat se k telefonu dříve, neţ se obsah paměti úplně vymaţe, je schopen rekonstruovat data, která se tam nacházela. A právě smysl cold boot útoků tkví v tom, ţe se rychlost “slábnutí dat” v RAM sniţuje s teplotou okolí. Jedním z nejnovějších cold boot útoků je útok zvaný “Frost”, který vyuţívá speciální recovery obraz Android zvaný “Frost”. Kdy se při studeném startu pomocí tzv. Fastboot reţimu nabootuje výše popsaný Frost modul. Frost můţe být pouţit k extrakci dat třemi různými způsoby. Prvním z nich je hledání AES šifrovacích klíčů v paměti RAM, jejich následné obnovení a moţnost dešifrování veškerých dat v zařízení. Další moţností je brute-force útok na uţivatelův PIN. Tyto útoky však nepatří mezi
30
nejůčinnější způsoby, jak obejít ochranu systému. Poslední moţností je stáhnutí kompletního obrazu paměti do PC, a tam s ním dále pracovat.
3.6.
Android - sada doporučení pro zvýšení bezpečnosti dat 1. Pozor na to, co stahujete: Obchody s aplikacemi na platformu Android jako je Google Play nemají skoro ţádný systém na kontrolu aplikací. Ačkoli se Google snaţil implementovat do svého Google Play určitý bezpečnostní mechanismus, hackeři jsou stále schopni publikovat malware přestrojený za známou aplikaci jako Angry Birds apod. Mnoho škodlivých aplikací je umístěno mimo známé zdroje jako Google Play nebo MarketPlace Amazon, takţe je vhodné se ujistit, ţe je aplikace stahována z důvěryhodného zdroje. 2. Pravidelné aktualizace OS a aplikací: Mnoho uţivatelů se ptá, proč by mělo svá zařízení updatovat na nejnovější verzi OS. Odpověď je jednoduchá. Udrţováním nejnovější verze OS sniţujeme (ve většině případů) riziko úspěšného útoku. Samotné Android zařízení upozorní uţivatele, ţe je k dispozici nová aktualizace sw. Většina aktualizací jsou prováděny tzv. “over the air”, proto je důleţité být připojen do Wi-Fi nebo mobilní datové sítě. 3. Zálohování a vzdálený přístup: v případě ztraceného nebo odcizeného zařízení určitě uţivatel nechce, aby si kdokoli mohl prohlíţet jeho soukromé fotografie apod. Přidáním funkce vzdáleného přístupu se můţe zamezit přístupu k citlivým datům. Narozdíl od iOS, kde je moţné pouţít nativní aplikaci Find My Phone, Android ţádnou podobnou nativní aplikaci nemá. Na trhu ovšem existují aplikace třetích stran, které tuto funkcionalitu poskytují. Mezi ně patří např. aplikace SeekDroid8 nebo Lookout Mobile Security9. Aplikace SeekDroid AntiTheft je určená proti krádeţi zařízení a poskytuje funkci vzdáleného přístupu. V případě ztráty se stačí přihlásit na webové stránky SeekDroid a vystopovat odcizený přístroj. Navíc je zde moţnost odposlouchávání hovorů ze zařízení. SeekDroid AntiTheft je k dispozici v obchodě Google Play za cenu 56 Kč. Lookout Mobile Security poskytuje moţnost vzdáleného uzamčení, zálohování a funkci antiviru. Jeho základní verze je zdarma. 4. Šifrování: v operačním systému Android je z hlediska bezpečnosti velmi důleţitá funkce šifrování obsahu disku. Povolením této moţnosti je pro potenciální útočníky velmi obtíţné ze zařízení dostat čitelné informace. Kromě toho jsou k dispozici i další aplikace na šifrování konkrétního obsahu jako Droid Crypt 10(50 Kč) nebo AnDisk
8
https://play.google.com/store/apps/details?id=org.gtmedia.seekdroid&hl=cs
9
https://play.google.com/store/apps/details?id=com.lookout&hl=cs
10
https://play.google.com/store/apps/details?id=de.atm.android.security.encryption.full&hl=cs
31
Encryption 11(75 Kč). Tyto aplikace umoţňují uţivatelům šifrovat svoje soubory pomocí 128-bitového AES šifrování. Dalším důleţitým tématem je šifrování telefonních hovorů a zpráv. Pro tyto účely slouţí aplikace RedPhone 12 a TextSecure13. 5. Kódový zámek: Nastavení přístupového hesla se určitě řadí mezi ty nejduleţitější prvky ochrany dat. Pro většinu útočníků, kteří se snaţí získat přístup k citlivým datům, je to první ochranná bariéra, se kterou se setkávají. Proto je velmi důleţité jej mít aktivovaný a s tím i vybrané silné heslo, nejlépe kombinaci alfanumerických a speciálních znaků, je-li to moţné. S tím souvisí i moţnost smazání dat po několika neúspěšných pokusech zadání hesla.
11
https://play.google.com/store/apps/details?id=com.digitaljoyride.andisk.encryption&hl=cs
12
https://play.google.com/store/apps/details?id=org.thoughtcrime.redphone
13
https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&hl=cs
32
3.7.
BlackBerry – bezpečnostní vlastnosti
BlackBerry je hardware, je to operační systém, je to systém sluţeb, jako mobilní email, přístup na sociální síť Facebook a Twitter, jinak vyvíjený kanadskou společností Research In Motion (RIM) od roku 1999. V nabídce telefonů BlackBerry najdeme hlavně smartphony, které mají za cíl zastoupit vašeho osobního asistenta, hudebního přehrávače, internetového prohlíţeče, herní zařízení apod. To největší „know how“ společnosti RIM a systému BlackBerry tkví ovšem ve schopnosti posílat a přijímat nejen emailové zprávy tak, aby zůstala zachována velmi vysoká úroveň bezpečnosti.
3.7.1. BlackBerry Enterprise Server Zařízení BlackBerry mohou být integrovány do emailového systému s názvem BlackBerry Enterprise Server (BES). Verze BES jsou k dispozici pro Microsoft Exchange Server, Lotus Domino a Novell GroupWise. Ovšem ani Google nezůstal stranou, a proto vytvořil Google Connector, který umoţňuje systému BES vyuţívat Google Apps. I kdyţ jednotliví uţivatelé jsou schopni vyuţívat i jiné poskytovatele emailových sluţeb bez nutnosti instalace BES, různé organizace s více uţivateli sluţeb BES vyuţívá [10]. BES funguje jako emailový systém pro firemní účty, tudíţ kaţdý uţivatel má přístup ke svému emailu. Tento software monitoruje uţivatelovu lokální sloţku doporučené pošty, a kdyţ příjde nová zpráva, vyzvedne ji, a předá síti společnosti RIM Operations Center (NOC). Tam jsou zprávy předány uţivatelskému poskytovateli bezdrátových sluţeb. Veškeré emaily, kontakty, úkoly, záznamy a záznamy v kalendáři jsou stahovány do BlackBerry automaticky a okamţitě. Součástí funkce nových modelů BlackBerry je moţnost sledování aktuální polohy pomocí tzv. trilaterace bez pouţití GPS, čímţ se šetří baterie a čas. Bohuţel trilaterace není tak přesná, jako zjištění polohy pomocí GPS. BES také poskytuje pro kapesní počítače vyuţívající protokol TCP/IP přístup přes tzv. MDS (Mobile Data System). Tento systém připojuje bezdrátové aplikace na zařízení BlackBerry s aplikací umístěnou na některém z aplikačních nebo webových serverů. Jakmile je aplikace vyuţívající bezdrátové připojení nainstalována na zařízení s BlackBerry, můţe okamţitě přijímat data z aplikací, které jsou umístěny na vzdálených serverech. To celé umoţňuje vývoj uţivatelských aplikací pomocí datových proudů na BlackBerry zařízení, zaloţeném na platformě Sun Microsystems Java ME. Kromě toho, BES poskytuje zabezpečení ve formě Triple DES nebo AES, šifrováním všech dat (emailu i MDS), které cestují mezi BlackBerry zařízením a BlackBerry Enterprise Server. Většina poskytovatelů (Vodafone, T-Mobile, O2 apod.) nabízí paušální měsíční ceny za neomezená data mezi BlackBerry a BES.
33
Nyní se podívejme na samotnou bezpečnost BES a na to, jak jsou zprávy a emaily uţivatele chráněny.
3.7.2. BlackBerry šifrovací klíče Jak popisuje dokument [11], ve výchozím nastavení BES vytváří hlavní šifrovací klíč a klíč zprávy, které se pouţívají k šifrování veškerého provozu mezi zařízením a BlackBerry serverem. Administrátor BES také dokáţe povolit BlackBerry zařízení moţnost generování hlavního šifrovacího klíče na ochranu dat uloţených v zařízení.
Obr. 8: Vztahy mezi šifrovacími klíči na Blackberry zařízení [11]
3.7.3. Master Encryption Keys Tyto klíče jsou unikátní pro kaţdé zařízení. Vyuţívají se v situacích, kdy chce uţivatel odesílat a přijímat zprávy. Tento hlavní šifrovací klíč musí být uloţen jak na serveru BlackBerry (BES), tak na koncovém zařízení. Neshodují-li se klíče, zpráva nelze dešifrovat a zahodí se viz. [11]. Šifrovací klíče jsou uloţeny v konfigurační databázi BlackBerry, na serveru starajícím se o zasílání zpráv a ve flash paměti pro šifrovací klíče v BlackBerry zařízení, kde je uloţen aktuální hlavní šifrovací klíč.
34
Platforma serveru starajícího se o zprávy
Úloţiště serveru
Úloţiště BlackBerry zařízení
Úloţiště BES
IBM Lotus Domino
BlackBerry uţivatelská databáze
Databáze určená pro Konfigurační klíče ve flash paměti databáze BlackBerry
Microsoft Exchange
Emailová schránka uţivatele
Databáze určená pro Konfigurační klíče ve flash paměti databáze BlackBerry
Novell GroupWise
Není uloţen
Databáze určená pro Konfigurační klíče ve flash paměti databáze BlackBerry Tabulka 2
3.7.4. Message keys BES a zařízení BlackBerry vygeneruje jeden nebo více klíčů zpráv, které jsou určeny k ochraně integrity dat, jako jsou krátké klíče, nebo velké zprávy, pro kaţdou zprávu, kterou pošlou. Pokud zpráva obsahuje několik datagramů a přesahuje 2 kB, BES a zařízení BlackBerry vygeneruje jedinečný klíč pro kaţdý datagram. Kaţdá zpráva se skládá z náhodných informací, coţ je pro útočníka, který chce dešifrovat zprávu a tím se dostat k původním datům, velmi obtíţné.
3.7.5. Content protection keys Kdyţ BES a správce systému nebo v zařízení BlackBerry uţivatel zapne moţnost ochrany dat na zařízení, BlackBerry vygeneruje šifrovací klíče, včetně klíče pro ochranu obsahu, které jsou navrţeny na šifrování uţivatelských dat v telefonu, kdyţ je zablokován. Během procesu šifrování, který začíná, kdyţ je přístroj zamknutý, BlackBerry uvolňuje paměť, která ho spojuje s klíčem pro ochranu obsahu a s ECC (Elliptic Curve Cryptography) soukromým klíčem, který se ukládá do paměti RAM. Zařízení BlackBerry pak pouţívá ECC veřejný klíč jako asymetrický klíč pro šifrování dat, které obdrţí. Je-li zařízení odemknuto, BlackBerry dešifruje chráněný obsah soukromým ECC klíčem, uloţeným ve flash paměti.
3.7.6. Grand Master Keys Pokud správce BES zapne ochranu obsahu hlavních šifrovacích klíčů, Blackberry zařízení bude pouţívat Grand Master Key k zašifrování hlavního klíče, který je uloţen ve flash paměti. I kdyţ přístroj obdrţí data zašifrovaná hlavním klíčem, Grand Master klíč se pouţije k dešifrování hlavního klíče, ten dešifruje data a ty se přijmou.
35
3.7.7. Algoritmy symetrického šifrování Symetrický klíč šifrovacího algoritmu je navrţen tak, aby byly schopni dešifrovanou zprávu rozšifrovat pouze strany, které znají tento tajný klíč. BES řešení pouţívá symetrický šifrovací algoritmus pro ochranu všech dat, které zařízení přijímá a odesílá (jsou mezi zařízením a BlackBerry Enterprise Server). Tento systém zaručuje, ţe je zpráva chráněna, neţ ji obdrţí BES, nebo BlackBerry zařízení. BlackBerry Enterprise Server vyuţívá buď Triple Des, nebo AES algoritmus pro standardní BlackBerry šifrování. Šifrovací algoritmus Triple DES
Popis Řešení BlackBerry Enterprise pouţívá tři iterace algoritmu DES se dvěma 56 - bitovými klíči ve vnějším CBC reţimu pro celkovou délku klíče 112 bitů. První z dvou 56 - bitových klíčů data šifruje a druhý dešifruje, a ve třetí iteraci první klíč zase šifruje. Klíče zprávy a hlavní šifrovací klíč v BES vytváří pomocí Triple DES 112 bitový klíč a 16bitovou paritu, které jsou uloţeny v 128 bitovém binárním řetězci. Kaţdý paritní bit je uloţen v posledním bitu kaţdého z 8 bajtů klíče.
AES
Ze soutěţe, která měla za cíl objevit lepší šifrovací algoritmus z hlediska bezpečnosti a výkonu neţ Triple DES a DES, vyšel jako vítěz algoritmus Rijndael, který byl později standardizován jako AES. Ten nabízí delší klíč neţ DES a TDES a navíc zajišťuje větší odolnost vůči brute-force útokům. BES pouţívá AES s 256 bitovými klíči v CBC módu. Zařízení BlackBerry v reţimu AES provádí elektromagnetickou analýzu jako protiopatření proti útokům na uhodnutí klíče. Implementace AES vyuţívá maskování skutečných operací odehrávajících se na zařízení BlackBerry tak, aby pomocí měření výkonu nebo analýzy elektromagnetického záření nebylo moţné zjistit informace o klíči [11].
Tabulka 3
36
3.7.8. Standardní BlackBerry šifrování zpráv (SBE) Standardní BlackBerry šifrování je vytvářeno jako šifrování zpráv, které BlackBerry zařízení odešle, nebo BlackBerry Enterprise Server přepošle na zařízení uţivatele. Šifrování probíhá celou dobu, co je zpráva „na cestě“. od doby, co uţivatel odešle zprávu ze svého smartphonu a neţ zpráva dorazí do BlackBerry Enterprise Server. Od doby, co BES příjme zprávu, odešle ji uţivateli a ten ji přečte na svém BlackBerry zařízení.
3.7.9. Proces SBE Jakmile uţivatel odešle zprávu ze zařízení, BlackBerry a BES pouţije symetrický klíč k zašifrování a dešifrování zprávy pomocí následujících kroků: BlackBerry zařízení komprimuje zprávu BlackBerry zařízení zašifruje zprávu pomocí klíče zprávy BlackBerry zařízení zašifruje klíč zprávy pomocí hlavního klíče, který je unikátní pro kaţdé BlackBerry zařízení BlackBerry zařízení odešle zašifrovanou zprávu a zašifrovaný klíč zprávy BES přijme zprávu a klíč od zařízení BES dešifruje klíč zprávy pomocí hlavního klíče BlackBerry zařízení BES dešifruje zprávu pomocí klíče zprávy BES dekomprimuje zprávu a přepošle ji tomu, komu je určena
Kdyţ BlackBerry zařízení příjme zprávu: BES příjme zprávu BES komprimuje zprávu BES zašifruje zprávu pomocí klíče zprávy BES zašifruje kláč zprávy pomocí hlavního šifrovacího klíče BlackBerry zařízení BES odešle šifrovanou zprávu a šifrovaný klíč na BlackBerry zařízení BlackBerry zařízení příjme zprávu a klíč BlackBerry zařízení dešifruje klíč zprávy pomocí hlavního klíče BlackBerry zařízení dešifruje zprávu pomocí klíče zprávy BlackBerry zařízení dekomprimuje zprávu tak, aby byla čitelná pro uţivatele
37
3.7.10. Zabezpečení bezdrátového zasílání zpráv BlackBerry Enterprise Solution je navrţen s pokročilými funkcemi tak, aby byl schopen bezproblémově pracovat se stávajícími sítěmi, a zároveň umoţňuje uţivatelům BlackBerry bezpečně odesílat a přijímat emailové zprávy, které zůstávají šifrovány po celou dobu, neţ se dostanou tam, kam mají.
Obr. 9: Odesílání zprávy z počítače na BlackBerry zařízení [11]
Alice odešle Bobovi zprávu z jejího počítače Server zpráv obdrţí email a upozorní BlackBerry Enterprise Server, ţe ji uţ má. Server zpráv doručí email na Bobův počítač BlackBerry Enterprise Server načte zprávu ze serveru zpráv BlackBerry Enterprise Server se dotáţe serveru zpráv, zdali má zprávu doručit i na Bobovo BlackBerry zařízení BlackBerry Enterprise Server komprimuje a šifruje zprávu BlackBerry Enterprise Server umístí zprávu do fronty Bezdrátová síť doručí zašifrovanou zprávu na Bobovo zařízení Bobovo zařízení obdrţí zašifrovanou zprávu, tu dešifruje a zobrazí ji na displeji.
Obr. 10: Odesílání emailu ze zařízení BlackBerry[11]
38
Bob reaguje na zprávu od Alice novým emailem. Kdyţ Bob odešle email, zařízení BlackBerry zprávu komprimuje, zašifruje a poté odešle. Veškeré zprávy vytvořené na BlackBerry obsahují nezbytné směrovací informace, které slouţí k identifikaci správného BlackBerry Enterprise Serveru. BlackBerry Enterprise Server obdrţí Bobovu zprávu BlackBerry Enterprise Server dešifruje, dekomprimuje a odešle zprávu serveru zpráv Server zpráv doručí zprávu na Alicin počítač.
3.7.11. Rozšířené zabezpečení BlackBerry Kromě standardního šifrování můţe BlackBerry Enterprise Server správce povolit S/MIME nebo PGP technologie, které nabízí další vrstvu zabezpečení mezi příjemcem a odesílatelem emailu nebo zprávy PIN. Pouţitím jedné z těchto technologií umoţňuje autentizaci odesílatele příjemci a pomáhá udrţovat integritu dat.
3.8.
BlackBerry - praktické příklady bezpečnostních chyb a jejich vyuţití
3.8.1. Premium Rate Scam Premium SMS jsou SMS zprávy, jejichţ cena se liší od běţné zprávy účtobvané zákazníkovi mobilním operátorem. Jsou účtované tzv. prémiovou cenou, které se v ČR pohybuje od 2 – 99 Kč. Nejčastěji se Premium SMS pouţívají pro marketingové nástroje, hlasování, autentifikace bankovní sluţby apod. V případě systému BlackBerry lze vyuţít tyto PR SMS tak, aniţ by o tom uţivatel věděl. Schéma můţe být následující: uţivatel stáhne a spustí aplikaci (např. hru s moţností zpřístupnění výsledku online) pokud je aplikace nepodepsána, uţivatel obdrţí ţádost o povolení přístupu na internet uţivatel souhlasí (v domnění, ţe tím povoluje zpřístupnění svého výsledku online) aplikace na pozadí zasílá Premium SMS zprávy… samozřejmě, dokud uţivatel neobdrţí účet za telefonní sluţby Pokud by aplikace byla podepsána, ţádná výzva se uţivateli nezobrazí, a vše záleţí na nastaveném oprávnění a zapnutém, případně vypnutém firewallu.
3.8.2. SMS Interception Jedním z velkých bezpečnostních problému je ten, ţe nepodepsané aplikace mohou přijímat a odesílat SMS zprávy. Schéma můţe být následující:
39
uţivatel stáhne a spustí aplikaci (např. hru s moţností spřístupnění výsledku online) pokud je aplikace nepodepsána, uţivatel obdrţí ţádost o povolení přístupu na internet uţivatel souhlasí (v domnění, ţe tím povoluje zpřístupnění svého výsledku online) uţivatel aplikaci ukončí, ale aplikace stále běţí tiše na pozadí aplikace odešle SMS útočníkovi všechny příchozí SMS jsou odesílány útočníkovi útočník můţe odesílat SMS zprávy přes “infikované” zařízení Pokud by aplikace byla podepsána, ţádná výzva se uţivateli nezobrazí, a vše záleţí na nastaveném oprávnění a zapnutém, nebo vypnutém firewallu.
3.8.3. SMS Backdoor Podepsaná aplikace můţe pouţít SMS jako příkaz a tím řídit případná “zadní vrátka”. Tato aplikace pak můţe příjmat a odesílat zprávy, krást nebo měnit citlivá data a otevírat TCP/IP spojení. Příchozí SMS zprávy mohou být monitorovány, zda-li neobsahují konkrétní klíčová slova, nebo zda-li odesílatel nemá konkrétní telefonní číslo. Tyto zprávy pak mohou být vykládány jako příkazy k provádění různých akcí jménem útočníka. Tyto akce podléhají nadále stejným omezením jako akce způsobené samotnou aplikací. Proto je uţivatel klasicky tázán o přístup k různým zdrojům v případě nepodepsané aplikace. U podepsané záleţí na nastavených právech a firewallu.
3.8.4. HTTP Blackberry zařízení podporují HTTP přes J2ME 14API javax.microedition.io. Podepsané i nepodepsané aplikace mohou vytvářet nová HTTP spojení a přijímat nebo odesílat data přes OutputStream a InputStream objekty. Pokud uţivatel stáhne “škodlivou” aplikaci, aplikace můţe ukrást uţivatelovy data přes HTTP GET poţadavek, který můţe mít následující tvar např. http://www.attackersite.com/upload?&PIN=1234567890&SMS=1&FROM=098 7654321&MSG=USERS+SECRET+DATA
3.8.5. BACKDOOR HTTP lze samozřejmě pouţít i pro zadní vrátka. Díky HTTP můţe útočník řídit zadní vrátka a tím ovládat infikované zařízení. Schéma můţe být následující:
14
J2ME (Java ME) je jedna ze základních platforem javy. Jedná se o podmnoţinu platformy Java SE, která nabízí API pro malá zařízení jako smartphony apod.
40
aplikace odešle: http://www.attackersite.com/whatnow? útočníkův server vrátí: COMMAND=DELETE_ALL EMAIL COMMAND=FORWARD_ALL SMS TO 1234567890 aplikace odešle: http://www.attackersite.com/whatnow?Status=Email+Deleted &Status=SMS+FORWARDING+ON
3.8.6. Prolomení uživatelského hesla Platforma Blackberry je z hlediska bezpečnosti velmi silným protivníkem. Ovšem díky ruské společnosti Elcomsoft, která se specializuje na vývoj softwaru na obnovení hesel apod., vznikl software, který zneuţívá dva z největších bezpečnostních problémů této platformy. Jeden z nich vyuţívá překvapivě dvě aplikace, které jsou zpravidla součástí systému a druhý zneuţívá chybu v ukládání dat na paměťové kartě. První exploit vyuţíval chyby v aplikacích Blackberry Password Keeper a Blackberry Wallet. Je ironické, ţe zrovna aplikace, u kterých se předpokládá, ţe budou chránit data, jsou prostředkem k získání uţivatelského hesla. Klíčem k jejich zneuţití je záloha. Password Keeper a databáze Blackberry Wallet jsou vţdy zahrnuty do zálohy, kterou vykonává Desktop Software Blackberry. Problém ovšem je, ţe tyto zálohy jsou šifrovány, a tak jsou bez šifrovacího klíče bezcenné. Samozřejmě pomocí slovníkového útoku lze na toto heslo přijít. Další exploit vyuţívá paměťovou kartu umístěnou v zařízení. U tohoto typu útoku se předpokládá, ţe má uţivatel aktivované šifrování obsahu paměťové karty. Software z dílny firmy Elcomsoft (Elcomsoft Phone Password Breaker15 )vyuţívá dodatečná data uloţená na kartě k prolomení hesla, konkrétně soubor info.mkf. Na tento soubor pak spouští slovníkový útok. Díky tomu, ţe se oba útoky provádí mimo Blackberry, s počtem neúspěšných pokusů se data nesmaţou. V případě, ţe by se slovníkové útoky prováděly přímo v zařízení, systém smaţe data po 10-ti neúspěšných pokusech.
15
http://www.elcomsoft.com/eppb.html
41
3.9.
Blackberry - sada doporučení pro zvýšení bezpečnosti dat 1. Bluetooth: Samotné pouţívání technologie bluetooth zvyšuje riziko napadení zařízení a přístupu třetí strany k citlivým datům. Proto je doporučeno vypínat bluetooth v případě, ţe je nepouţíván. Další důleţitou připomínkou je vypnutí “DIscover” módu. 2. Účty a hesla: Je velmi doporučeno pouţívat vestavěnou aplikaci Password Keeper Utility, která ukládá a chrání uţivatelské účty a jejich hesla. Tato volba je mnohem bezpečnější neţ ukládání přihlašovacích údajů přes internetový prohlíţeč, kde je pro externí zdroje přístup jednodušší. 3. Šifrování dat: Operační systém Blackberry obsahuje funkci “Content Protection”, kterou lze aktivovat přes Options and Security Settings. Tato funkce chrání adresář kontakty a omezuje access.obn. 4. Ochrana heslem: Heslo se nastavuje přes Options -> Passwords. Kromě výběru silného hesla lze aktivovat další nastavení jako časový limit platnosti hesla, počet pokusů o zadání hesla apod. 5. Přenos a stahování souborů: Pokud uţivatel stahuje data z webových stránek nebo z jiného zařízení, vţdy je důleţité ujištění, ţe data pochází z důvěryhodného zdroje. Poškozené soubory, viry apod., přenášené prostřednictvím fotografií, hlasových poznámek, Blackberry kontaktů a dalších aplikací, můţe velmi váţně ohrozit citlivá data v zařízení. 6. Paměť: Čištění paměti je jeden z nejvíce přehlíţených nástrojů na ochranu dat. Jakmile je tato moţnsot aktivována, uţivatel můţe vymazáním paměti odstranit důvěrné údaje, jako šifrované dokumenty, emaily, SMS zprávy, cache internetového prohlíţeče, protokoly hovorů apod.
Na trhu je mnoho komplexních aplikací, které mají za úkol chránit data. Tyto aplikace poskytují sluţby antiviru, firewallu, umoţňují vzdálený přístup do zařízení apod.. Mezi ty nejznámější na platformě Blackberry patří Kaspersky Mobile Security16, Lookout Mobile Security, WaveSecure for Blackberry17 a konečně také aplikace přímo od Research In Motion, Blackberry Protect18.
16
http://www.kaspersky.com/protect-smartphone
17
https://www.wavesecure.com/products/blackberry.aspx
18
http://worldwide.blackberry.com/ap/protect/
42
3.10. Symbian – bezpečnostní vlastnosti Symbian je mobilní operační systém určený pro chytré telefony. V současné době je vyvíjen firmou Accenture Inc. Jedna z posledních verzí systému, Symbian 3, byla oficiálně uvedena ve 4. čtvrtletí roku 2010 a byla pouţita u mobilních telefonů Nokia N8. V březnu 2011 Symbian Anna a konečně poslední, Symbian Bella, přišel v srpnu 2011 [12]. Symbian OS byl dříve vyvíjen firmou Symbian Ltd., a je následovníkem systému EPOC, který se pouţíval v kapesních počítačích Psion. 11. února 2011 Nokia oznámila, ţe opouští platformu Symbian jakoţto svůj primární operační systém, nasazovaný do nových smartphonů a svá nová zařízení bude cílit na Windows Phone 7. V létě 2011 Nokia uzavřela dohodu s výše jmenovanou společností Accenture, ţe bude dále vyvíjet a podporovat systém Symbian. K Accenture v té době přešlo od Nokie více neţ 2800 zaměstnanců.
Obr. 11: Struktura operačního systému Symbian
43
3.10.1. Trusted Computing model Prvním nejdůleţitějším klíčovým slovem v bezpečnostním modelu Symbianu je tříúrovňový model důvěry znázorněný na tomto obrázku [13]:
Obr. 12: Koncept bezpečnostního systému Symbian
Tento obrázek znázorňuje Trusted Computing platformu, zahrnující Trusted Computing Base a Trusted Computing Environment.
3.10.2. Trusted Computing Base (TCB) Srdce pravého důvěryhodného počítačového systému a hlavně systému Symbian je právě TCB, který obsahuje všechny prvky systému odpovědné za bezpečnostní politiku, izolaci objektů (kódu a dat), na kterých je bezpečnost zaloţena. TCB je nejdůvěryhodnější část operačního systému Symbian. TCB má tři části: jádro OS, souborový server a instalátor softwaru. Jádro má za úkol řízení všech procesů a přiřazení příslušného oprávnění, souborový server slouţí k načtení kódu pro spuštění procesu a instalátor slouţí k instalaci softwaru z balíku souborů. Poslední jmenovaný je také odpovědný za kontrolu digitálních podpisů balíčků, kvůli ověření oprávnění, poţadovaných pro běh procesu.
44
3.10.3. Trusted Computing Environment (TCE) Další vrstva je TCE, coţ je sada systémů serverů, běţících pod různými právy. TCE se skládá ze softwaru mobilního telefonu Symbian. TCE se obvykle zavádí jako systém serveru procesu a zavádí se také s omezenými právy k výkonu vymezených funkcí. Díky této konstrukci můţe Symbian zajistit, aby porucha jednoho systému serveru neohroţovala celý systém.
3.10.4. Aplikace Aplikace třetích stran jsou na posledním stupňi v tomto Trusted Computing modelu a jako takové, jsou velmi nedůvěryhodné, a proto se jim poskytuje minimální oprávnění přístupu ke sluţbám, které ve většině případů nepředstavují bezpečnostní riziko a zároveň nemají přístup ani ke kritickým low-level operacím, které z hlediska bezpečnosti kritické jsou. V Symbianu existují dva druhy aplikací, podepsané a nepodepsané. V případě, ţe podepsaná aplikace chce vyuţít některé ze sluţeb poskytované v TCE, musí jej poţádat, aby sluţbu spustilo jejím jménem. TCE pak akceptuje pouze ţádosti, kterým byla poskytnuta dostatečná oprávnění. Nepodepsané aplikace mohou pouţívat jen ty operace, které nevyţadují ţádné oprávnění, nebo operace, které mohou být povoleny uţivatelem. Uţivatel můţe dovolit některé operaci, aby se provedla i v případě, ţe si ji vyţádá nepodepsaná aplikace (toho můţe docílit přes příkazovou řádku). TCB je tedy nejdůvěryhodnější část systému a řídí přístup ke všem citlivým nízko úrovňovým procesům. TCB zajišťuje, ţe pouze privilegované TCE komponenty jsou schopny provádět tyto operace. TCE pak poskytuje systémové sluţby, jako je telefonní server apod. dalším aplikacím. To je jediný způsob pro ostatní aplikace, jak tyto nízko-úrovňové operace provádět.
3.10.5. Oprávnění Druhým nejzákladnějším klíčovým prvkem v bezpečnostním modelu operačního systému Symbian je model určení oprávnění.
Obr. 13: Kontrola přístupu na základě oprávnění
45
Obr. 14: Přístup ke službám TCE
Dokument [14] uvádí, ţe kaţdý proces v OS Symbian běţí se seznamem funkcí, a právě tyto funkce mají určit, zda daný zdroj můţe mít přístup k procesu, jak je znázorněno na obrázku kontroly přístupu na základě oprávnění. Proces X (s funkcemi A, B a C) má přístup ke zdroji Y, který vyţaduje funkci B, ale nemůţe získat přístup ke zdroji Z, protoţe vyţaduje funkci D, která v seznamu procesu X není. Symbian vyuţívá schopnosti reprezentovat přístupová práva dalším vrstvám systému. Kaţdý ţivý proces a jeho funkce jsou uvedeny v seznamu a jsou sledovány jádrem systému. Obrázek přístupu ke sluţbám (TCE) ukazuje, jak aplikace třetí strany přistupuje k telefonnímu serveru (jedna z komponent TCE). Za prvé, proces X pošle poţadavek na komunikaci mezi procesy (IPC – část jádra), který pak tento poţadavek přenáší na zpracování telefonnímu serveru. Sluţba vytáčení vyţaduje funkce Network services a zároveň jádro systému si udrţuje informaci o seznamu schopností (v tomto případě si udrţuje informace o funkcích procesu X). Telefonní server pak zkontroluje seznam funkcí procesu X a hledá funkce Network services, dovolující přístup procesu X ke sluţbě vytáčení.
3.10.6. Přístupový systém Jednou z posledních důleţitých bezpečnostních principů platformy OS Symbian je přístupový systém. Ten je určen k ochraně integrity a důvěrnosti důleţitých souborů. Konkrétní řešení se nazývá „data caging“ nebo „file caging“. Původní myšlenka „data caging“ je jednoduchá: dát nejdůleţitější poklady do truhly a prosazovat přísnou kontrolu přístupu k této truhle, aby se k ní nikdo jiný nemohl snadno dostat. V Symbianu byl tento mechanismus dosaţen pomocí speciálních adresářů, které jsou uchovávány v soukromých oblastech. Tento mechanismus je to nejjednodušší, protoţe záleţí pouze na místě, kde je soubor schovaný a nevyţaduje ţádné jiné systémové prostředky. Pokud se blíţe podíváme na tuto funkcionalitu, zjistíme, ţe s „data caging“ úzce souvisí dvě oprávnění, TCB a AllFiles
46
(ten zajištuje přístup ke čtení celého systému a zápis do \private adresářů jiných procesů). Pokud jsou poskytovány systémem, budou platit pro jeho veškeré soubory. Tím vzniká určité bezpečnostní riziko, a jeho řešení spočívá v poskytování několika různých systémových sluţeb s více různými omezeními práv, jako jsou např. ReadUserData, WriteUserData apod. Data Caging [15] v Symbian OS vyuţívá několik různých cest: \sys, \resources a \private. Všechny jejich podadresáře mají také omezený přístup. Pouze procesy s TCB a AllFilles oprávněním mají přístup k těmto adresářům. \sys: Zde existují dva důleţité podadresáře: \sys\bin a \sys\hash. Ta první je standardní cesta, kde jsou uloţeny všechny binární soubory. Předinstalované binárky jsou uloţeny v z:\sys\bin, coţ je cesta k ROM. V Symbian OS jsou dvě pravidla předdefinovaná pro toto umístění. První z nich říká, ţe TCB sem můţe zapisovat nové spustitelné soubory (přes SWInstall) nebo spouštět binární soubory z tohoto umístění (přes F3219). Druhé pravidlo říká, ţe binární soubory jsou spustitelné pouze v rámci tohoto umístění. Všechny ostatní cesty budou ignorovány loaderem. Tím je zajištěna bezpečnost a integrita systému, protoţe pouze procesy s TCB a ne např. malware, můţe vytvářet nový proces. \sys\hash se pouţívá ke kontrole, zda můţe být binární soubor spuštěn z vyměnitelných médií. \resources: Podobně jako \sys, \resources existuje jak v ROM, tak v úloţišti pro data. Soubory v \resources jsou určeny pouze pro čtení většině aplikací. \private: v Symbianu je kaţdému EXE souboru přiřazen i další podadresář v \private. Tento podadresář je otevřen jeho vlastnímu procesu, ale je nepřístupný dalším procesům. Zvláště, jsouli dva procesy načteny ze stejného EXE souboru a sdílejí stejný podadresář. Podadresář v \private je výchozí cesta k uloţení dat z procesu, ale vývojář se můţe rozhodnout ukládat tyto data ve veřejném adresáři.
3.10.7. Instalátor softwaru Instalace softwaru hraje důleţitou roli v Symbianu a v jeho bezpečnostním modelu, jelikoţ je to jeden z pomyslných „vrátných“ systému. Je zodpovědný za to, ţe doplněk nativního softwaru je nainstalován do mobilního telefonu se správnou sadou atributů zabezpečení. Existují zde tři hlavní úkoly instalátoru: první z nich je ověření a nainstalování softwaru (soubory SIS) v mobilním zařízení. Druhým je potvrzení přeinstalovaného softwaru na výměnná média. a konečně, třetím úkolem je aktualizace a odstranění zbytečných nástrojů správy balíčků sluţeb pro zbytek systému.
3.10.8. Identifikátory Identifikátory jsou pouţívány serverem i identifikaci procesů. Existuje několik různých druhů identifikátorů v operačním systému Symbian, které jsou důleţité pro instalaci softwaru:
19
F32: souborový server odpovědný za nahrání dat z vnější paměti
47
Secure Identifier (SID), Vendor Identifier (VID) a balíček UID (PUID). SID se pouţívá k identifikaci binárních souborů. VID se pouţívá k odlišení původu spustitelného souboru. Pokud aplikace potřebuje VID, musí být podepsán. PUID je identifikátor souboru nebo sady souborů. Například, jestliţe chceme stáhnout do svého telefonu balíček her z webového serveru Electronic Arts (EA), PUID je číslo tohoto balíčku, VID je identifikátor EA a SID je identifikátor spustitelného binárního souboru hry po instalaci. Identifikátory jsou rozděleny na chráněné a nechráněné rozsahy [16].
3.10.9. SIS soubory SIS (Software Installation Script) soubory se v Symbianu vyuţívají k doručování balíků softwaru do mobilních telefonů pro instalaci. Lze je stáhnout prostřednictvím internetového prohlíţeče apod. Kdyţ instalátor softwaru ověřuje SIS soubory, kontroluje spoustu parametrů. Za prvé, kontroluje, zda je software podepsán a za druhé, zda lze řetězec certifikátů sledovat zpět ke kořeni a pak se kontroluje, zda byl certifikát odvolán. Po úspěšné autorizaci instalátor porovnává funkce poţadované instalačním balíčkem s těmi, které kořenový certifikát můţe udělit.
Obr. 15: Instalační proces podepsaného balíčku [14]
Kromě instalace souborů ze SIS, můţe být software nainstalován z vyměnitelného média. Nejdůleţitější bezpečnostním problémem je, aby se zabránilo v manipulaci s binárními soubory nainstalovanými na toto vyměnitelné médium. Toho je dosaţeno pomocí instalátoru softwaru, který vypočítává a ukládá (do \sys) odkaz hashu programu na instalaci, který je přepočítán a porovnán, kdykoli se má program spustit. Neexistuje- li odkaz na tento hash, nebo dva hashe si neodpovídají, program se nespustí [17].
48
3.10.10.
Symbian Signed Model
Cílem tohoto modelu je umoţnit přístup třetích osob k chráněným API, a dát uţivatelům základ pro důvěru aplikacím třetích stran. Má-li nějaký objekt zabezpečení např. firewall schopnost zabránit komukoli v přístupu do systému, pak Symbian Signed Model je mechanismus, který umoţňuje vývojářům vyjednávat přístup do systému právě přes tento firewall. K dispozici jsou tři různé přístupy pro podepisování.[14]: Open Signed, Express Signed (online i offline) a Certified Signed. Open Signed můţe udělit uţivatelské a systémové funkce aplikaci. Open Signed se nejčastěji pouţívá pro podepsání aplikace pro jedno IMEI, takţe nejčastěji pro osobní uţití nebo za účelem testování. Express Signed je určen pro všeobecnější pouţití. K pouţití tohoto typu podpisu je nutné vlastnit tzv. Publisher ID, které je ovšem placené. U tohoto typu se aplikace můţe testovat, ale pokud k testování nedojde, a aplikace nesplňuje nutná kritéria, můţe dojít k revokování certifikátu. A poslední Certified Signed je určena pro velké projekty. Dovoluje pouţít veškerá oprávnění aţ na AllFiles, TCB a DRM. Aplikace, která je podepsána tímto typem, musí být nezávisle testována a v případě, ţe uspěje v tomto testování, smí pouţívat logo Symbian.
3.11. Symbian - praktické příklady bezpečnostních chyb a jejich vyuţití Díky tomu, ţe Symbian patřil a stále patří mezi nejvíce rozšířené mobilní operační systémy, vzniklo postupem času mnoho různých útoků na tento systém. Většina těchto útoků nebo hacků spočívá ve zpřístupnění systémových sloţek, konkrétně C(D,E,F): /private/, /resource/ a /sys/. Díky tomuto přístupu můţeme pracovat se systémem na niţší úrovni, neţ jsou schopni normální uţivatelé, můţeme vykonávat potřebné úkony pro instalaci nepodepsaných aplikací a konečně můţeme vyuţívat výhod “patchování” systému. Jedním z nejduleţitějších nástrojů, které se při těchto útocích pouţívají je aplikace ROMPatcher, coţ je aplikace, která umoţní jednoduše a bezpečně patchovat ROM telefonu. ROMPatcher je schopný namapovat ROM do paměti RAM, a následně ji upravit. Díky tomu, ţe se vše provádí v RAM, není tato změna trvalá (nejedná se o přímý zásah do firmwaru zařízení) a po restartu se vše vrátí do původního stavu.
3.11.1. Norton Security Hack Ačkoli se to zdá velice zvláštní, k provedení tohoto typu útoku je potřeba mít v zařízení nainstalovaný antivir Norton Security20. Daší potřebnou aplikací k nainstalování (a následnému odinstalování) je Symantec Symbian Hack, která je volně dostupná na internetu. Pro úspěšný útok je potřeba v aplikaci Norton Security obnovit tzv. Quarantine list a dále přes nějakého správce souborů, např. aplikaci X-plore, smazat sloţku umístěnou v C:/shared/20000bc0/ a soubor umístěný v C:/data/0810040397.hps. Následně uţ stačí jen nainstalovat výše
20
http://norton-smartphone-security.en.softonic.com/pocketpc
49
jmenovanou aplikaci ROMPatcher. Díky aplikaci patchů jako je Open4All a InstallServerRP+ je pak moţno instalovat nepodepsané aplikace.
Obr. 16: Prostředí aplikace ROMPatcher+
3.11.2. PNHT / JAV Při útoku touto metodou se do zařízení nahrává předem upravený firmware, který jiţ obsahuje aplikaci ROMPatcher.
3.12. Symbian - sada doporučení pro zvýšení bezpečnosti dat 1. Jako u kaţdého OS pro smartphony (a nejen pro ně) je jeden z nejzákladnějích doporučení nastavení PINu nebo hesla. Ovšem i tak by nemělo být konkrétní zařízení necháváno bez dozoru. 2. Samozřejmostí by ve výbavě smartphonu měla být i aplikace pro vzdálený přístup. Jedním z nejlepších řešení pro platformu Symbian je aplikace NQ Mobile Security, která zajištuje kompletní ochranu smartphonu. Samotná aplikace obsahuje funkce antiviru při zachování optimální rychlosti systému. Dále výše uvedený vzdálený přístup s notifikací, pokud je na cílovém zařízení manipulováno se SIM kartou. Další výhodou je i automatická záloha kontaktů na servery Netqin. V aplikaci nechybí ani firewall s širokou moţností nastavení. Dalším vhodným řešením je aplikace BullGuard Mobile Security. Jeho pouţitím uţivatel získá účet s vzdáleným přístupem ke svému zařízení přes webové rozhraní. Pokud dojde ke krádeţi či ztrátě, uţivatel můţe vzdáleně smazat veškerá data. Aplikace rovněţ poskytuje funkci rodičovské kontroly, takţe děti uţívající smartphone nebudou mít přístup ke všem jeho funkcím. Aplikace dále poskytuje funkce antiviru, firewallu, spamového filteru aj. Na trhu jsou ovšem
50
i další vhodné komplexní řešení jako F-Secure, Kaspersky, Norton Mobile Security a další. 3. V zařízení s platformou Symbian by určitě neměla chybět aplikace zajišťující šifrování veškerého obsahu. Jedním z takových řešení je aplikace Touch Crypto, která k šifrování obsahu vyuţívá 128 – bitový AES algoritmus.
51
4. Závěr Jak jsem uváděl jiţ výše, bezpečnost a samotné zabezpečení dat jsou v této době velmi důleţité a často skloňované pojmy, stejně jako platformy iOS, Android, BlackBerry a Symbian, které patří mezi ty nejpouţivanější operační systémy ve smartphonech. Jejich bezpečností vlastnosti, které bakalářská práce popisovala, byly srovnávány z hlediska uţitečnosti, přidané hodnoty, uţivatelského komfortu a celkového dopadu na funkčnost systému. Kaţdý z výše popsaných systémů má svá pro a proti, např. iOS, který je tak často kritizovaný za svoji uzavřenost nebo Android, kritizovaný paradoxně za svoji otevřenost. U kaţdého z nich mě jako vývojáře napadá mnoţství aplikací, které na trhu nejsou, a které by daný trh mohly oţivit, jako moţnost zjištění přítomnosti jiných aplikací u iOS nebo přístup k datům jiných aplikací, coţ jsou prvky, které by jistě přivítalo mnoţství vývojářů, ale bohuţel s tím i mnoţství potenciálních útočníků. Díky bezpečnostním prvkům konkrétního systému je tak vývoj podobných aplikací zatím těţce realizovatelný, ne-li nemoţný (hlavně u platformy iOS). Na druhé straně, u jiných platforem, naopak existuje velká otevřenost, dá se říci i benevolence pro vývojáře, kteří si se zařízením a uţivatelskými daty mohou dělat prakticky co chtějí, např. zasílat zprávy bez vědomí uţivatele, přijímat a odmítat hovory apod.. Zde je naopak prostor pro omezení jejich práv a také omezení toho, jak s citlivými daty mohou nakládat. V některých případech ale nemusí jít přímo o bezpečnostní funkci systému, která dělá systém otevřenější, nebo uzavřenější. Můţe jít např. o kontrolu obsahu a funkčnosti aplikací, které jsou distribuovány přes oficiální distribuční kanál. Jedná se tedy o funkcionalitu, kterou neobsahuje samotný OS, ale o určitou bezpečnostní politiku, nastavenou samotnými autory. Pro útočníka, který se zajímá o platformu iOS je velice obtíţné aţ téměř nemoţné “propašovat” škodlivý kód v aplikaci na AppStore, právě díky velmi striktním pravidlům podepisování aplikací danou certifikační autoritou a distribučním profilem, kdeţto pro někoho, jehoţ zájmem je operační systém Android, je vytvoření a distribuce aplikace se škodlivým kódem velice jednoduché. V kaţdém případě, s otevřeností systému se sice zvětšuje prostor a trh pro nová řešení, nápady nebo aplikace, ale zvětšuje se také prostor pro manipulaci a odcizení citlivých dat. Je tedy velmi důleţité stanovit, jaká hranice otevřenosti je pro uţivatele přípustná. Další kapitoly bakalářské práce byly věnovány praktickým příkladům bezpečnostních chyb kaţdé výše jmenované platformy, dále nasazení softwaru třetích stran a samozřejmě moţným dopadům těchto útoků na odcizení citlivých dat. A konečně, hlavním výstupem je vytvořená sada doporučení, vedoucí ke zvýšení bezpečnosti soukromých dat v mobilních zařízeních. Mnoho doporučení, jeţ jsou uvedeny v těchto sadách, jsou pro různé OS společné, ovšem kaţdý systém je jedinečný, a proto je pro kaţdou srovnávanou platformu vytvořena jiná sada doporučení. Je nutné si uvědomit, ţe samotné rady či doporučení nezabrání odcizení dat na 100 %. To nejduleţitější je lidský faktor. Tato práce by mohla do budoucna slouţit jako základ pro detailnější zkoumání bezpečnostních vlastností daných platforem nebo pohled na to, jak se operační systémy a jejich bezpečnostní prvky během několika posledních let vyvinuly. Dále je tu prostor pro zapracování bezpečnostních vlastností dalších operačních systémů, jako Windows Phone, který si poslední dobou stále více upevňuje svoje místo na trhu mobilních operačních systémů.
52
Literatura [1]
NIST. Federal Information Security Management Act of 2002. In: [online]. 2002. vyd. [cit. 2013-04-04]. Dostupné z: http://csrc.nist.gov/drivers/documents/FISMA-final.pdf
[2]
KALISKI, B. PKCS #5: Password-Based Cryptography Specification Version 2.0. In: [online]. 2000. vyd. [cit. 2013-04-04]. Dostupné z: http://tools.ietf.org/html/rfc2898
[3]
NACHENBERG, Carey. a Window into Mobile Device Security. In: [online]. 2011. vyd. [cit. 2013-04-04]. Dostupné z: http://www.tomsitpro.com/articles/mobile_securitymobile_management,2-64-5.html
[4] DAI ZOVI, Dino A. Apple iOS 4 Security Evaluation. In: [online]. 2011. vyd. [cit. 201304-04]. Dostupné z: http://www.trailofbits.com/resources/ios4_security_evaluatio n_paper.pdf [5]
APPLE. Deploying iPhone and iPad: Security Introduction. In: [online]. 2012. vyd. [cit. 2013-04-04]. Dostupné z: http://images.apple.com/ipad/business/docs/iOS_Security_Intr oduction_Mar12.pdf
[6]
BELENKO, Andrey a Dmitry SKLYAROV. Evolution of iOS Data Protection and iPhone Forensics: from iPhone OS to iOS 5. In: [online]. 2012. vyd. [cit. 2013-04-04]. Dostupné z: https://media.blackhat.com/bh-ad-11/Belenko/bh-ad-11Belenko-iOS_Data_Protection.pdf
[7] CHELL, Dominic. IOS Application (In)Security. In: [online]. 2012. vyd. [cit. 2013-04-04]. Dostupné z: http://www.mdsec.co.uk/research/iOS_Application_Insecurity_w p_v1.0_final.pdf [8]
MEDAYIL VIJAYAMMA, Sunitha. a Security Overview in Google’s Open Source Android Phone. In: [online]. 2011. vyd. [cit. 2013-04-04]. Dostupné z: http://www.scribd.com/doc/25036401/A-Security-Overview-inGoogle-s-Android-Phone
[9] ANDROID. Android Security Overview. In: [online]. 2011. vyd. [cit. 2013-04-04]. Dostupné z: http://source.android.com/tech/security/index.html [10] BLACKBERRY. BlackBerry Security: The cornerstone of the BlackBerry solution. In: [online]. 2012. vyd. [cit. 2013-04-04]. Dostupné z: http://uk.blackberry.com/ataglance/security/features.jsp#tab _tab_stored_data
53
[11] BLACKBERRY. BlackBerry Enterprise Solution: Security Technical Overview. In: [online]. 2009. vyd. [cit. 2013-04-04]. Dostupné z: http://docs.blackberry.com/en/admin/deliverables/4133/BB_Ent _Soln_Security_4.1.6_STO.pdf [12] History of the Cellular (Cell/Mobile) Phone - Technology - Symbian Operating System (OS). In: [online]. 2011. vyd. [cit. 2013-04-04]. Dostupné z: http://www.historyofthecellphone.com/technology/symbian.php [13] BANSAL, Kunal. Security in Symbian Operating System: Mobile and Wireless Devices. In: [online]. 2010. vyd. [cit. 2013-04-04]. Dostupné z: http://www.slideshare.net/Garry54/security-in-symbianoperating-system [14] LI, Bo, Elena RESHETOVA a Tuomas AURA. Symbian OS Platform Security Model. In: [online]. 2010. vyd. [cit. 2013-04-04]. Dostupné z: http://c59951.r51.cf2.rackcdn.com/5678-73507-li.pdf [15] Symbian Platform Security Model. In: [online]. 2012. vyd. [cit. 2013-04-04]. Dostupné z: https://www.developer.nokia.com/Community/Wiki/Symbian_Platf orm_Security_Model [16] UID Q&As (Symbian Signed). In: [online]. 2012. vyd. [cit. 2013-04-04]. Dostupné z: http://www.developer.nokia.com/Community/Wiki/UID_Q%26As_(Sy mbian_Signed) [17] Testing And Signing With Symbian Platform Security. In: [online]. 2005. vyd. [cit. 201304-04]. Dostupné z: http://www.developer.nokia.com/Community/Wiki/images/0/04/Te sting_And_Signing_With_Symbian_Security_Model_v1_0_Beta_en.p df?20080604093141 [18] KNOPOVÁ, Martina. Bezpečnost dat v informačních systémech. In: [online]. 2011. vyd. [cit. 2013-04-04]. Dostupné z: http://www.ikaros.cz/bezpecnost-dat-v-informacnichsystemech Dostupné z: https://www.sit.fraunhofer.de/en/Images/sc_iPhone%20Password s_tcm502-80443.pdf [19] MENEZES, Alfred J. Handbook of applied cryptography. Vyd. 1. Boca Raton: CRC Press, 1997, 780 s. ISBN 08-493-8523-7. [20] D WIVEDI, Himanshu, Chris CLARK a David v THIEL. Mobile application security. Vyd. 1. New York: McGraw-Hill, c2010, xxii, 408 p. ISBN 00-716-3356-1.
54
5. Přílohy 5.1.
Příloha A
Zdroj: www.maptools.org //TIFFFetchShortPair - libtiff verze 3.8.1 static int TIFFFetchShortPair(TIFF* tif, TIFFDirEntry* dir) { switch (dir->tdir_type) { case TIFF_BYTE: case TIFF_SBYTE: { uint8 v[4]; return TIFFFetchByteArray(tif, dir, v)&& TIFFSetField(tif, dir>tdir_tag,v[0], v[1]); } case TIFF_SHORT: case TIFF_SSHORT: { uint16 v[2]; return TIFFFetchShortArray(tif, dir, v)&& TIFFSetField(tif, dir->tdir_tag, v[0], v[1]); } default: return 0; } } //TIFFFetchShortPair - libtiff verze 3.8.2 static int TIFFFetchShortPair(TIFF* tif, TIFFDirEntry* dir) { // //
Kontrola počtu bajtů k načtení, jejíž absence způsobila původní zranitelnost
if (dir->tdir_count > 2) { TIFFWarningExt(tif->tif_clientdata, tif->tif_name, "unexpected count for field \"%s\", %lu, expected 2; ignored",_TIFFFieldWithTag(tif, dir->tdir_tag)>field_name,dir->tdir_count); return 0; } switch (dir->tdir_type) { case TIFF_BYTE: case TIFF_SBYTE: { uint8 v[4]; return TIFFFetchByteArray(tif, dir, v) && TIFFSetField(tif, dir->tdir_tag, v[0], v[1]); } case TIFF_SHORT: case TIFF_SSHORT: { uint16 v[2]; return TIFFFetchShortArray(tif, dir, v) && TIFFSetField(tif, dir->tdir_tag, v[0], v[1]); } default: return 0; } }
55