Fúze aplikace

Fúze aplikací je způsob testování aplikací a vyhledávání potenciálních zranitelností. Při fúzi dochází k nepřerušenému odesílání upravených dat testované aplikaci. Následně je proces vyhodnocen a ve výsledku je možné odhalit zranitelnosti v aplikaci. Fúze je považována za nejsnadnější způsob odhalení chyb v aplikacích v systému iOS a proto je často využívána útočníky pro přípravu exploitu. Při procesu fúze je možné odhalit, jaká data je aplikace schopná přijmout a jaká data následně posílá zpět. Vývojáři mohou také testovat aplikaci pro rozpoznání případných pádů aplikace. Nejčastěji je s pomocí fúze testováno, tzv. přetížení bufferu, kdy jsou odeslána data např. o velikosti 32 bytů. Pokud vývojáři nezahrnuly při vývoji aplikace kontrolu vstupních dat, může dojít v případě změny velikosti přijatých dat k přetížení. Fúze nedokáže odhalit všechny chyby, které mohou po spuštění aplikace vzniknout. U 25 některých aplikací nemůže být odhalen problém s pamětí, nebo kontrolními součty. Proto by neměla být fúze využívána jako jediný nástroj pro analýzu chyb v aplikaci. Pro úspěšné provedení fúze stačí připravit kompatibilní vstupní data, která může aplikace přijmout.

Tichá fúze

Tichá fúze, tzv. Dumb Fuzzing, je jeden ze způsobů provedení správného otestování aplikace. Tento typ fúze je jednoduchý a zabere pouze několik minut. V prvním kroku je nutné připravit správný vstup pro testovanou aplikaci. Testovanými vstupy mohou být např. soubory .mov, nebo vstup http. Aplikace následně vrací odpověď na platný vstup. V případě neplatného vstupu je odeslána pouze chybová hláška. Vývojáři nemusí v případě použití této fúze znát specifikace formátů a protokolů.

Chytrá fúze

Chytrá fúze, tzv. Smart Fuzzing, je druhý způsob testování vstupů aplikace. Tento způsob je složitější a vyžaduje hlubší znalosti vývojáře. S využitím chytré fúze je možné vytvářet komplexní vstupy, složené z několika formátů, či protokolů. Vývojáři mohou testovat aplikace s větší pravděpodobností odhalení chyb. Nevýhodou této fúze je nutnost znalosti specifikací formátů, nebo protokolů, které vývojáři používají pro testování vstupu.

Analýza výsledků fúze

Při použití fúze k testování aplikací je nutné vyhodnotit výstupy, které testovaná aplikace vrací. Jedním ze spolehlivých způsobů analýzy je použití Debuggeru, který vyhodnocuje vrácené výstupy. Vývojáři mají tak možnost rychle a efektivně opravovat chyby, které fúze odhalila a současně opět testovat nové vstupy. Další výhodou použití Debuggeru je možnost sledování otevřených souborů v aplikaci, aktuální využití paměti a další informace o aplikaci.