Exploit
Útoky proti systému iOS můžeme rozdělit do dvou kategorií. Malware a Exploit. Malware je obecně software, který dělá v systému něco neočekávaného s úmyslem systém poškodit, nebo zneužít ve prospěch útočníka. V prostředí systému iOS byl zaznamenán výskyt malwaru, který se pokoušel po spuštění získat přístupová práva ke klientu elektronické pošty a rozposílal následně spam. Dále byl zaznamenán výskyt malwaru, který získával vzdálenou kontrolu nad zařízením. V neposlední řadě můžeme ve výčtu útoků zmínit tzv. keylogger, který se snažil zaznamenávat uživatelská hesla. Exploit je software, který hledá zranitelnosti ve zdrojovém kódu, které by následně mohl využít útočník k nahrání vlastního kódu, s jehož pomocí může systém zneužít. Tvorba exploitu je náročný proces, který útočníkovi zabere množství času. K úspěšné tvorbě exploitu potřebuje útočník znát dvě skutečnosti. Musí vyhledat zranitelnou oblast ve zdrojovém kódu a současně její umístění. Následně do této oblasti nahraje vlastní kód. Snahou společnosti Apple je minimalizovat množství nevyužitého zdrojového kódu a současně existující kód zabezpečit. V ideálním případě by neměl být zdrojový kód přístupný útočníkovi, což není vždy proveditelné. Bezpečnostní mechanismy byly popsány v předchozích kapitolách. V následujících kapitolách budou popsány zdokumentované útoky proti systému iOS.
Exploit
Exploit je jeden z typů softwarových útoků, se kterými se systém iOS potýká. Exploit můžeme charakterizovat jako část zdrojového kódu, která vyhledává zranitelné úseky zdrojového kódu aplikací a snaží se je využít k ovládnutí aplikace, nebo systému. (2 s. 185) Společnost Apple po objevení několika nebezpečných exploitů zařadila do svého bezpečnostního modelu mechanismy DEP a ASLR, jejichž cílem je blokovat snahy útočníků o využívání exploitů k ovládnutí systému. Tvorba exploitu se řídí několika pravidly. Celý proces tvorby je naznačen v obrázku (viz Obrázek 4.1). Proces tvorby můžeme shrnout do těchto bodů
Vyhledání zranitelného objektu
Nahrazení zranitelného objektu objektem pod plnou kontrolou útočníka
Použití nového objektu k spuštění upraveného kódu
Ani tyto mechanismy nedokáží systém plně ochránit a útočníci vytváří stále složitější a špatně odhalitelné exploity. V následujících kapitolách jsou popsány exploity s nejčastějším 27 výskytem. V současnosti je většina popsaných exploitů stále aktivní a jejich autoři vyvíjejí novější verze, zaměřené na nové zranitelnosti.
Libtiff
Libtiff je systémová knihovna pro čtení a zápis rastrové grafiky ve formátu TIFF. Knihovna Libtiff byla součástí systému iOS od jeho první verze, tj. verze 1.0. Velmi brzy po uvedení první verze zařízení iPhone se systémem iOS 1.0 se objevil první exploit, který využíval zranitelnosti právě v knihovně Libtiff. Tento exploit získal následně pojmenování právě po knihovně, kterou zneužíval. Exploit umožňoval získat přístup k zařízení skrze infikovanou webovou stránku, zobrazenou přes webový prohlížeč Safari. Útočník tak získal vzdálenou kontrolu nad zařízením, navíc s právy „root“. První verze iOS 1.0 neobsahovala oddělování práv. Chyba v systémové knihovně Libtiff byla opravena s verzí systému iOS 1.1.2. V současnosti útočníci naráží na mechanismus datové prevence DEP a adresní prostor ASLR. Nutností je kromě samotné zranitelnosti v systému vyhledávání zranitelností právě v těchto mechanismech. Současně bojují útočníci s omezením v podobě automaticky přidělených práv „mobile“ a testovacím prostředím.
Fun with SMS
Exploit, známý pod názvem Fun with SMS se objevil v roce 2009 a využíval zranitelnosti funkcionality systému iOS, která analyzuje zprávy SMS. Přesněji šlo o chybně určená systémová práva u programu CommCenter, který je zodpovědný právě za zpracovávání SMS zpráv. Tento program měl přidělená práva „root“. Další výhodou pro útočníky byl fakt, že ve verzi systému iOS 2.0, kterého se exploit FUN with SMS týkal, existoval pouze bezpečnostní mechanismus DEP, nikoliv ASLR, který byl implementován později. Neexistence adresního prostoru umožňovala snadné nalezení kódu, který mohl být zneužit. Exploit nebyl dlouhou dobu odhalen především z důvodu jeho tichého chodu. Běžný uživatel si ani nevšiml skutečnosti, že bylo jeho zařízení infikováno. Útočníkovi postačila pouze znalost telefonního čísla zasaženého zařízení, na které mohl následně poslat infikovanou SMS zprávu. Ochrana zařízení před tímto typem exploitu byla velmi složitá a pouhé vypnutí zařízení nebylo dostačující. Došlé SMS zprávy se řadí do fronty, kterou zařízení okamžitě po svém probuzení zpracovává. Zranitelnost byla opravena s verzí systému iOS 3.0.1. Program CommCenter byl nově zařazen do skupiny _wireless, místo původní „root“. Skupina _wireless má přístup pouze k systémovým programům, které jsou zodpovědné za bezdrátové služby zařízení.
The Ikee Worm
Exploit The Ikee Worm se poprvé objevil po uvedení systému iOS 2.0. Tento exploit je odborníky řazen mezi velmi nebezpečné bezpečnostní hrozby. Hlavním cílem exploitu jsou zařízení, na kterých byl proveden uživatelský Jailbreak, tzn. zásah do systému, při kterém bylo trvale vypnuto podepisování kódu a mechanismus DEP. První verze exploitu The Ikee Worm se zaměřovala na SSH server, který si někteří uživatelé zařízení po zásahu do systému instalovali. Instalovaný SSH server získal po instalaci práva „root“. Snahou útočníka bylo vzdáleně ovládnout zařízení s pomocí výchozího hesla SSH serveru, který si uživatelé ve většině případů neměnili a ponechávali nastavenou výchozí hodnotu. Výchozí hodnota hesla SSH serveru byla všeobecně známá. Útočník následně získával kontrolu nad zasaženým zařízením pouhým připojením k SSH serveru zařízení. Exploit The Ikee Worm se v dalších verzích systému iOS zaměřil na krádež uživatelských dat, uzamčení zařízení, či zneužití zařízení jako součást sítě botnet. Exploit bylo poměrně snadné odhalit. V zasaženém zařízení byla upravena tapeta na uzamčené obrazovce, která byla doplněna o větu: „Ikee is never gonna give you up.“
Pwn2Own
Exploit Pwn2Own se objevil v roce 2010 po uvedení zařízení iPhone 3GS. Využíval zranitelnosti mobilního webového prohlížeče Safari, který v určitých případech umožňoval vzdáleně spouštět kód. Zranitelnost se vyskytovala v systému iOS 3.0, tzn. ve verzi iOS, která neobsahovala mechanismus ASLR. Po vyhledání zranitelného kódu v systému bylo následně možné s využitím ROP otevřít databázi SMS zpráv v zařízení. Tyto zprávy mohly být následně odeslány na vzdálený server. Zranitelnost systému byla ošetřena mechanismem oddělování práv v systému. V případě webového prohlížeče byla následně využívána skupina práv „mobile“, místo původní skupiny „root“.
Star
Star je název exploitu, známého pod názvem Jailbreakme.com 2. Exploit se poprvé vyskytl v roce 2010 a byl určen především pro zařízení iPhone. K přenosu docházelo po návštěvě webové stránky www.jailbreakme.com. Po návštěvě webové stránky bylo zařízení iPhone vystaveno množství skrytých operací, které provedly postupný Jailbreak, tj. zásah do systému. Útočník v prvním kroku nahrál do zařízení skrz mobilní webový prohlížeč Safari kód. Následně docházelo k přetečení modulu IOKit, který zpracovává vstupní a výstupní operace zařízení. V dalším kroku mohl útočník spouštět svůj kód k ovládnutí jádra systému a následnému vypnutí mechanismu pro podepisování kódu. Společnost Apple v reakci na bezpečnostní hrozbu vydala opravný balíček pro systém iOS ve verzi 4.3.3. Webová stránka www.jailbreakme.com je do dnešní doby stále funkční a nabízí uživatelské návody k provedení zásahu do systému.