Zabezpečení běhového prostředí

Běhové prostředí systému iOS zajišťuje bezproblémový chod aplikací. Každá aplikace třetích stran, která projde testovacím prostředím, využívá pro svůj chod běhové prostředí. Právě při chodu v běhovém prostředí jsou aplikace třetích stran nejzranitelnější. Odborné publikace popisují několik způsobů, jak aplikaci úspěšně zabezpečit a předcházet jejímu zneužití ze strany útočníka.

Falešná odezva

V případě odcizení zařízení se systémem iOS je hlavním cílem útočníka průnik do systému a především k uživatelským datům. Hlavní ochranou bariérou je šifrování, které bylo popsáno v předešlých kapitolách. I přes šifrování může útočník využít nástroje k průniku. Nejjednodušší cestou k uživatelským datům je průnik skrz aplikace třetích stran, které mohou být špatně zabezpečené. Útočníci často využívají specializované nástroje, tzv. Debuggery, k získání plné kontroly nad aplikací. Debugger skenuje aplikaci a zjišťuje její celkový stav. Falešná odezva, tzv. Tamper Response, je mechanismus vestavěný do aplikace, který minimalizuje dopady při jejím narušení. Mechanismus zasílá zpětnou odpověď o stavu aplikace a uchovávaných datech, která se liší od skutečnosti. Útočník tak dostává nepravdivé, nebo neúplné informace o stavu aplikace, což mu komplikuje její zneužití.

Ochrana uživatelských dat

Jak bylo zmíněno výše, útočníka zajímají především uživatelská data. Útočníci si v mnoha případech zálohují zašifrovaná data aplikace pro případ, že by se aplikace pokusila o jejich smazání v případě detekce průniku. Jednou z metod ochrany uživatelských dat je zabudování bezpečnostního mechanismu, který v případě pokusu o vypnutí detektoru průniku upraví data do nečitelné podoby. Tento způsob je použitelný v případě, že útočník neprovede zálohu dat před samotným útokem. V opačném případě je nutné využití kvalitního šifrování dat v aplikaci s využitím šifrovacího klíče a hesla. Změněná data v zařízení mohou být obnovena s využitím šifrovacího klíče. Šifrovací klíč nesmí být před použitím k obnově dat poškozen, jinak jsou data v zařízení trvale neobnovitelná. (11 s. 288)

Vypnutí síťového připojení

Aplikace, které mají zabudovaný detektor průniku, považují koncového uživatele v případě narušení za nedůvěryhodného. V případě narušení dojde k přerušení síťového spojení aplikace s koncovými servery. Tento mechanismus zabraňuje zneužití citlivých dat, především čísel platebních karet u aplikací zaměřených na bankovní transakce. V případě detekce narušení aplikace dojde okamžitě k přerušení veškerého spojení a aplikace ohlásí chybu připojení k internetové síti. 

Zpětná vazba

Mechanismus zpětné vazby je využívaný především u podnikových aplikací. Aplikace v případě bezpečnostního incidentu odesílá zprávu na centralizovaný server, kde je zpráva následně vyhodnocena. Součástí zprávy může být popis průniku do aplikace, čas a místo průniku a také IP adresa útočníka, v případě vzdáleného pokusu o proniknutí do aplikace. Útočník může omezit funkci mechanismu zpětné vazby pouze vypnutím síťového připojení, což je velmi složité především z důvodu existence oddělených práv v systému iOS. 

Logování

Implementace logování do aplikace společně s mechanismem zpětné vazby může pomoci zpětně vyhodnotit bezpečnostní incident. Právě logování je důležité pro tvorbu podnikového DRM (Disaster Recovery Management). Záznam všech aktivit v případě 24 bezpečnostního incidentu, např. zasažená data, Wi-Fi připojení, záznam uživatelských aktivit, může zpětně pomoci vyhodnotit pokus o průnik do aplikace a zlepšit tak zabezpečení. 

Sledování procesů

Když útočník využije pro analýzu stavu aplikace nástroj typu Debugger, jádro systému upozorní aplikace. Jen velmi málo vývojářů implementuje do svých aplikací mechanismy pro rozpoznávání zpráv z jádra systému o použití Debuggeru. Včasné upozornění na pokus o skenování aplikace může pomoci vývojářům implementovat různé scénáře. Aplikace může automaticky smazat uživatelská data, upozornit centralizovaný server, odeslat údaje o poloze zařízení, vynutit vypnutí, nebo ukončit proces běhu aplikace. 

Blokování debuggeru

Blokování Debuggeru je další možností, jak zabezpečit aplikace třetích stran. V odborných publikacích se setkáme s množstvím různých technik a návodů, jak aplikaci vylepšit o vlastní mechanismus detekce použití Debuggeru. Ve většině případů k nim autoři přikládají také zdrojové kódy, které mohou vývojáři jednoduše implementovat do svých aplikací. Mechanismus rozpozná, zda byla aplikace skenována a reaguje podle nastaveného scénáře. Většina technik se shoduje ve způsobu reakce na použití debuggeru a to násilným ukončením aplikace, nebo jejím pádem.