Společnost Mozilla oznámila zahájení rozsáhlého testování v nočních verzích a beta vydáních Firefoxu režimu striktní izolace webů, který se vyvíjel v rámci projektu Fission. Tento režim rozšiřuje využití vícestupňové architektury – místo pevné skupiny procesů se pro každý web vytváří samostatný proces. Řízení zapnutí režimu Fission se provádí prostřednictvím proměnné „fission.autostart=true“ v about:config nebo na stránce about:preferences#experimental.
Připomeňme, že dosud používaný vícestupňový model ve Firefoxu zahrnoval spuštění skupiny procesů-zpracovatelů: ve výchozím nastavení 8 hlavních procesů pro zpracování obsahu, 2 další nepřidělené procesy pro webový obsah a 4 podpůrné procesy pro doplňky, interakci s GPU, síťové operace a dekódování multimediálních dat. Rozdělení záložek mezi procesy probíhalo náhodně, například v jednom procesu mohlo dojít ke zpracování bankovního webu a nedůvěryhodného podezřelého zdroje.
Nový režim odděluje zpracování každého webu do samostatného procesu s rozdělením nikoli podle záložek, ale podle domén, což umožňuje dále izolovat obsah externích skriptů a iframe bloků. Pro oddělené zpracování subdomén typických služeb souvisejících s různými weby se používá rozdělení nikoli podle formálních, ale podle faktických (eTLD) doménami nejvyšší úrovně, označenými v seznamu Public Suffix (tj. weby „a.github.io“ a „b.github.io“ budou odděleny do různých procesů).
Režim striktní izolace umožňuje chránit se před útoky přes cizí kanály, například spojenými s zranitelnostmi třídy Spectre, které vedou k úniku informací v rámci jednoho procesu. Únik důvěrných dat zpracovávaných ve stejném procesu je možný při spuštění nedůvěryhodného externího kódu v JIT enginech a v virtual machines. V kontextu webových prohlížečů může škodlivý JavaScriptový kód z jednoho webu získat informace o heslech, přístupových klíčích a číslech kreditních karet, které byly zadány na jiném webu zpracovávaném ve stejném procesu. Původně, aby se chránili před útoky pomocí vedlejších kanálů, vývojáři prohlížečů omezili přesnost časovače a zablokovali přístup k API SharedArrayBuffer, ale tato opatření pouze ztížila a zpomalila provádění útoků (například byla nedávno navržena metoda extrakce dat z cache CPU, která funguje úplně bez JavaScriptu).
Mezi další výhody režimu přísné izolace patří snížení fragmentace paměti, efektivnější vracení paměti operačnímu systému, minimalizace vlivu garbage collectoru a intenzivních výpočtů na stránky v jiných procesech, zvýšení efektivity rozložení zátěže na různá jádra CPU a zvýšení stability (crash procesu zpracovávajícího iframe nezpůsobí pád hlavního webu a dalších karet).
Mezi známé problémy, které vznikají při používání Fission, se zaznamenává výrazné zvýšení spotřeby paměti, X11 připojení a deskriptorů souborů při otevření velkého počtu karet, stejně jako poruchy některých rozšíření, zmizení obsahu iframe při tisku a vyvolání funkce pro zachycení obrazovky, snížení efektivity cachování dokumentů s iframe a ztráta obsahu vyplněných, ale neodeslaných formulářů při obnovení relace po pádu.
Zdroj: opennet.ru
