Architektura OS Android

OS Android je otevřenou platformou, která využívá vyspělý hardware a software, vlastní i sdílená data, a proto je nutné, aby měl systém k dispozici takové prostředí, které zajistí zabezpečení uživatelů, jejich dat, aplikací a sítě. [5] Při vývoji OS Android byl kladen důraz na jednoduchost tvorby aplikací. Vývoj aplikací pro OS Android je pro vývojáře usnadněn flexibilitou bezpečnostních prvků. Pokud vývojář není dostatečně informován v otázce bezpečnosti OS Android, je výchozí nastavení bezpečnosti dostatečně elastické, aby jeho neznalost nebyla překážkou. Aby byla skutečně zajištěna bezpečnost otevřené platformy, je potřeba rozsáhlá bezpečnostní architektura a do detailu vyladěné bezpečnostní zásady. Pro to OS Android disponuje vícevrstvou ochranou, což zajišťuje nejen pružnost platformy, ale i dostatečnou ochranu jejích uživatelů.

Základní uspořádání OS Android

Jádro a operační systém Jádro je nejnižší vrstvou architektury. Je postaveno na upraveném monolitickém jádře Linuxu ve verzi 2.6.X. Platforma postavená na Linuxu zajišťuje výrobcům zařízení získat levně operační systém a vývojáři smí bez problémů pro tato za- řízení vyvíjet. Jádro je zprostředkovatelem komunikace mezi běžícími aplikacemi v různých procesech (IPC20) Ke všem zdrojům zařízení, jako jsou funkce kamery, GPS data, Bluetooth, funkce telefonu, připojení k síti aj., je přístup pomocí operačního systému. Linuxové jádro je již léta používáno v mnoha prostředích citlivých na bezpečnost. Nejednou bylo vývojáři zkoumáno, testováno na bezpečnost. Díky nalezeným a následně opraveným chybám se linuxové jádro stalo bezpečnějším a zís- 20 a Mezi procesy a jádrem vzniká komunikační tok z důvodu koordinace aktivit procesů 8 kalo si tak přízeň mnoha společností, vývojářů a odborníků na bezpečnost. I přesto není linuxové jádro vždy bezpečné. Za všechny bezpečnostní chyby související s linuxovým jádrem je nutno upozornit na jednu z nejaktuálnějších (září 2011), kdy útočník nahrál na oficiální online obchod aplikaci, která vypadala stejně jako jedna z nejstahovanějších her (Angry Birds21). Při instalaci však bez vě- domí uživatele povolila instalaci dalších tří aplikací, které měly přístup ke kontaktům, informaci o poloze a čtení textových zpráv. Všechny takto získané informace mohly být odesílány na vzdálený server a následně zneužity. Tato chyba byla již společností Google odstraněna. Jako základ pro mobilní prostředí poskytuje linuxové jádro v OS Android několik klíčových rysů bezpečností, které obsahují:

Jako operační systém s více uživateli je filozofií linuxového jádra oddělit uživatelské zdroje jeden od druhého. Úkolem Linuxu je:

Android Application Runtime

Aplikace na OS Android jsou nejčastěji psané v programovacím jazyce, který je velice podobný programovacímu jazyku Java23. Liší se pouze stavbou architektury a omezením paměti a procesoru zařízení, na kterých je program vyvíjený v programovacím jazyce Java pro Android spouštěn. Virtuální stroj Dalvik, na kterém jsou spouštěny všechny aplikace OS Android, je abstraktní vrstvou mezi operačním systémem a počítačem a úzce souvisí s virtuálním strojem Javy, rozdíl je pouze v architektuře a v koncovkách souborů, které stroj Dalvik spouští. Ty mají příponu .dex a oproti souborům programovacího jazyka Java odstraňují duplicitní konstanty a části kódu, čímž šetří místo a zajišťují přehlednost kódu.

Mezi další stavební bloky platformy OS Android patří:

Zařízení hardwaru

OS Android je kompatibilní s mnoha přístroji, jako jsou například telefony, tablety, televize nebo set-top-boxy. Android využívá výhod některých hardwarových bezpečnostních funkcí, jako je například ARMv6 eXecute-Never (architektura procesorů).

Nativní knihovny

OS Android se skládá z několika knihoven napsaných v programovacím jazyce C/C++, které využívají různé komponenty systému. Mezi nejznámější nativní knihovny řadíme například:

Rozšíření základu OS Android

Pro rozšíření základu OS Android firma Google poskytuje dva hlavní zdroje – předinstalované aplikace a aplikace instalované uživatelem. K instalaci a šíření aplikací na zařízení s OS Android slouží zabalený ZIP balík, známý jako Android Package, od jehož názvu se odvozuje i jeho koncovka .apk. Jsou to zkomprimované zdrojové soubory (více informací o tomto tématu v kapitole 5.2.5).

Předinstalované aplikace

OS Android obsahuje sadu předinstalovaných aplikací včetně chytrými telefony a tablety hojně využívaného emailu, kalendáře, webového prohlížeče a kontaktů. Tyto aplikace jsou klíčovými aplikacemi. Mají přístup k hlavním funkcím telefonu. Předinstalované aplikace můžou být součástí samotného OS Android nebo jsou rozšířením výrobce daného zařízení a obvykle je nejde odinstalovat.

Aplikace instalované uživatelem

OS Android poskytuje otevřené vývojové prostředí, které podporuje vývoj aplikací třetích stran. Tzv. Android Market nabízí uživatelům stovky tisíc aplikací od různých firem a vývojářů.

OS Android byl navržen nejen s ohledem na vývojáře, ale hlavně s ohledem na uživatele. Ti mají přehled nad tím, jak aplikace fungují, a které funkce využívají. Předpokládá se totiž, že případný útočník bude využívat běžně známé útoky 11 (např. sociální inženýrství24), aby donutil uživatele nainstalovat si do svého za- řízení byť nechtěně malware (aplikace poškozující zařízení), a také že bude vyu- žívat aplikace třetích stran. Snahou vývojářů OS Android je snížit možnost jakéhokoliv útoku a minimalizoval případné dopady (více o této problematice v kapitole 3.1.), pokud by útok byl úspěšný.

Android Market

Android Market je cloudovou službou.25 Je to online obchod, pomocí něhož uživatel snadno a rychle hledá, kupuje a stahuje aplikace, které si pak může nainstalovat přímo ze svého zařízení s OS Android nebo z webových stránek. Díky Android Marketu mohou uživatelé nacházet aplikace na jednom místě a vývojáři publikovat své aplikace a přiblížit je tak uživatelům – potenciálním zákazníkům. Android Market poskytuje také uživatelské hodnocení aplikací, licenční ověření a bezpečnostní služby. Na Android Marketu může své aplikace uveřejnit každý, kdo si založí vývojářský profil, zaplatí poplatek 25 amerických dolarů a bude souhlasit s tzv. Prodejní dohodou Android Marketu pro vývojáře.Problémem Android Marketu je paradoxně jeho otevřenost. Aplikace nejsou kontrolovány individuálně před zveřejněním (jako třeba v online obchodu App Store firmy Apple), takže sem útočník může kdykoliv nahrát škodlivou aplikaci. Ta může působit například jako oblíbená hra (nejčastější) nebo jiná aplikace, jenomže bude mít povolena práva, která jsou pro její fungování naprosto zbytečná. Každá aplikace v Android Marketu má totiž povolena určitá přístupová práva. Ty definují, ke kterým funkcím telefonu bude mít aplikace pří- stup. Škodlivá aplikace bude mít práva navíc (například tapeta na plochu bude mít povolený přístup k textovým zprávám) a těch pak může zneužívat. V prosinci 2011 Android Market zaznamenal 10 miliard stažených aplikací.

Neznámé zdroje

Aby se předešlo šíření malwaru (například stahováním aplikací z neoficiálních 24 http://www.fi.muni.cz/usr/jkucera/pv109/2003p/xsimek3sociotechnika.htm 25 Pomocí cloudových služeb lze onilne sdílet hardware i software 12 online obchodů), má zařízení s OS Android primárně povoleno instalovat aplikace pouze z Android Marketu. V nastavení telefonu je možno tento zákaz zrušit

Android aktualizace

Aktualizace služeb OS Android mohou probíhat například prostřednictvím internetu nebo skrze mobilní sítě – Over The Air26 (dále jen OTA). Jedná se převážně o aktualizace verzí OS Android, které znamenají nové funkce a lepší zabezpečení zařízení. Společnost Google vydá oficiálně novou verzi OS Android a každý výrobce mobilních zařízení si ji upraví pro jednotlivé modely (z důvodu přizpůsobení každé verze OS Android danému typu zařízení). Výrobci se však více zabývají vývojem nových zařízení než aktualizováním verzí OS Android pro zařízení se starou verzí.

Služby aplikace

Pomocí tzv. frameworků, což jsou nástroje usnadňující programování [37], mají aplikace možnost například zálohovat svá data a nastavení pomocí cloud technologie skrze C2MD (což je například automatické zasílání informací o stavu zboží zákazníkům internetových obchodů, kde není zobrazeno telefonní číslo). Tyto služby nejsou součástí projektu otevřené platformy OS Android, ale jsou důležité pro bezpečnost mnoha zařízení s OS Android.