Rubriky: Firefox

Mozilla vylepšila bezpečnost kódu samotného Firefoxu

Na blogu věnovaném bezpečnosti vyšel zajímavý článek věnovaný na první pohled možná drobné, ale ve skutečnosti velmi zajímavé změně v kódu Firefoxu. Odstraňování volání funkce eval().

Firefox nezobrazuje jenom stránky stažené z internetu, ale i stránky, které jsou jeho nedílnou součástí. Označují se jako about: stránky a příkladem může být about:config nebo i výchozí domovská stránka na novém panelu nebo stránka s nastavením Firefoxu. Tyto stránky mají přístup k interním součástem Firefoxu, ale protože jsou napsané v HTML a JavaScriptu, mohou být cílem podobných útoků jako webové stránky v prohlížeči (např. vložení cizího kódu nebo obsahu), jen s potenciálně závažnějším dopadem.

Pokud by se někomu skutečně povedlo kód do nějaké about: stránky vložit, nejjednodušším způsobem pro nadělání škody je použít funkci eval() či jí podobnou pro provedení jakéhokoliv příkazu. Inženýři v Mozille proto refaktorovali (přepsali) about: stránky bez použití funkce eval() a podobných, aby mohli aplikovat silná pravidla Content Security Policy, která použití eval() ani spuštění vloženého kódu vůbec nedovolí (ani jim, ale hlavně ani útočníkovi).

Takovéto technice, kdy se neopravují přímo bezpečností chyby (např. proto, že nejsou známé), ale omezuje se jejich případný dopad, až je někdo najde a zneužije, se říká defence in depth. Podobné kroky budou ještě následovat pro zbytek rozhraní Firefoxu (nástrojové lišty apod.), ale až po definitivním odstranění podpory XBL a XUL, která to zatím neumožňuje.

Zdroje: Mozilla Security Blog, firefox-dev mailinglist