HTML5 přináší nové výzvy pro bezpečnost

10. 10. 2010

Sdílet

Od aktuálně vyvíjené páté revize jazyka HTML se očekává zejména vylepšení dosavadních možností webu. Experti ovšem důrazně varují, že přinese i nové zranitelnosti, o kterých se zatím v mnoha případech příliš nehovořilo.

Sid Stamm, který je členem bezpečnostního týmu prohlížeče Firefox ve společnosti Mozilla, na Usenix Security sympoziu, které proběhlo v srpnu v New Yorku, prohlásil, že s příchodem HTML5 přestane webový browser definitivně sloužit jen k prohlížení stránek, ale bude fungovat jako platforma pro využívání plnohodnotných aplikací. O podobném posunu začali spekulovat analytici již s uvedením první verze prohlížeče, Chrome, před více než dvěma roky, která se snažila oslovit výrazně rychlejším během webových aplikací využívajících JavaScript. HTML5 má ale umožnit jít ještě dále a větší možnosti pro webové aplikace jsou jen jednou z novinek, nicméně s touto změnou se ovšem otevírá i zcela nový prostor pro útoky, které je potřeba při tak výrazném posunu zvažovat.

Ilustrací těchto obav může být to, že ve stejném týdnu, kdy Stamm upozornil na možná rizika, která jsou spojena s implementací funkcionality HTML5, dala vývojářům konkurenčního prohlížeče Opera poměrně značnou práci oprava zranitelnosti, způsobující přetečení zásobníků, která mohla být exploitována za využití právě nově přidané vlastnosti canvasu pro renderování obrázků.

V praxi je totiž prakticky nevyhnutelné, aby se nová funkcionalita, jakou jsou například nové standardy W3C konsorcia, označované souhrnně pod označením HTML5, obešla i bez toho, aby se objevily dosud neexistující zranitelnosti.

Lavakumar Kuppan, nezávislý výzkumník na poli bezpečnosti, to potvrzuje slovy, že nová síla pro web, která přichází spolu s HTML5, umožní útočníkům využít i druhy útoků, jaké dosud nebyly možné. Kevin Johnson, který se zabývá penetračními testy ve společnosti Secure Ideas, pak říká, že je potřeba v souvislosti s příchodem HTML5 a spouštěním aplikací přímo v browseru znovu přehodnotit náš pohled na bezpečnost webových prohlížečů a brát je primárně jako potenciálně škodlivé prostředí. Tento pohled se stává klíčovým zejména proto, že webové prohlížeče se s nástupem modelu cloud computingu stávají ve firmách prakticky hlavní aplikací pro většinu úkonů prováděných nemanuálními pracovníky.

Revize jazyka HTML5 bývá často nahlížena jako jeden celek, ale ve skutečnosti se jedná o široké spektrum různých standardů spojených dohromady, které přinášejí nové možnosti, například ve formátování stránek, off-line ukládání dat, renderování obrazu a podobně. Často je k těmto standardům připojován i JavaScript, který je široce využíván pro tvorbu webových aplikací. Tyto nové funkce ovšem začínají zkoumat jak bezpečnostní experti, tak i útočníci.

Nové formy útoků
Na začátku letošního léta Kuppan a další bezpečnostní experti zveřejnili způsob, jak lze zneužít off-line aplikační cache, kterou přináší HTML5, a tato funkce byla již implementována v prohlížečích Chrome, Safari, Firefox a Opera. Libovolný web totiž může díky uvedené funkci vytvořit na počítači, a to i bez schválení uživatelem, vlastní cache, do níž lze podsunout prakticky jakýkoliv obsah. Toho útočníci pak mohou využít k vytvoření falešné přihlašovací stránky do nějaké existující služby, například do sociální sítě nebo třeba do internetového bankovnictví, která se nahraje z této cache a pak může být použita k odcizení přihlašovacích údajů uživatele. Právě aplikační cache je jednou z nejvíce kritizovaných novinek HTML5 z hlediska bezpečnosti, dříve s lokálním ukládáním dat experimentoval například doplněk Gears od Googlu, jehož vývoj byl ale v polovině loňského roku zastaven.

I když jde o nový typ útoků, někteří bezpečnostní experti zpochybňují hodnotu výše uvedeného zjištění. Chris Evans, tvůrce softwaru VSFTP server (Very Secure File Transfer Protocol Server), dokonce říká, že možnosti zneužití aplikační cache jsou sice zajímavé, ale nepřinášejí prakticky nic nového, čeho by útočníci nemohli dosáhnout již existujícími způsoby. Dan Kaminsky, vedoucí výzkumník v bezpečnostní společnosti Recursion Ventures, pak dodává, že se jedná vlastně o pokračování dřívější podoby útoků v nové formě, a podle něj je potřeba si osvojit fakt, že webové browsery už nefungují jen tak, že požádají internetové servery o nějaký obsah, ten zobrazí a pak jej zahodí, ale že tento obsah také uloží pro budoucí použití. Kuppanův objev tak víceméně primárně ukazuje na možnost, jak lze i starý trik využít v inovovaném prostředí.

Možnosti se otevírají
Kevin Johnson pak v souvislosti s množstvím nových funkcí jazyka HTML5 varuje před širokou podobou útoků, k jakým mohou být zneužity. Podle něj se v uplynulých letech zaměřoval výzkum v oblasti bezpečnosti hlavně na přetékání zásobníků či napadení databázové vrstvy vsunutím kódu (SQL injection), které byly postupně opravovány, ale funkce HTML5 mohou být zneužity samy o sobě k útoku na uživatele, což je značný posun v bezpečnostním paradigmatu. Johnson uvádí jako příklad Gmail od Googlu, který patřil mezi jedny z prvních webových aplikací, jež začaly využívat funkcionalitu HTML5 pro lokální ukládání dat. Dříve útočník musel ukrást pro získání přihlašovacích údajů uživatele cookie z jeho počítače a dekódovat jej. Nyní mu ale stačí, aby získal přístup k off-line kopii e-mailové schránky, která je uložena lokálně na PC.

Lokální ukládání, které umožní útočníkům číst data z počítače nebo vkládat zde jakákoliv jiná bez vědomí uživatele, je jen jednou z mnoha možností zneužití nových funkcí HTML5, i když podle expertů to bude právě ona, kdo si vyžádá největší investice do zabezpečení. Při využití geolokace například může hacker zjistit polohu uživatele bez jeho vědomí, nová verze CSS (Cascading Style Sheets) umožní útočníkům ovládat, které elementy CSS se na stránce zobrazí a které nikoliv. Funkce WebSocket, jež vytváří komunikační spojení mezi webovou aplikací a serverem, v jehož rámci mohou být v reálném čase vyměňovány informace, pak může být zneužita pro neautorizovanou komunikaci atd. Johnson tyto možnosti označuje doslova jako děsivé a uživatelé je nebudou moci prakticky nijak ovlivnit.

Hledání řešení
Přichází tedy otázka, jak tyto problémy řešit. W3C konsorcium sice dodává nové standardy, ale již ne způsoby, jakými je ošetřit proti zneužití, a tento krok pak zůstává na jednotlivých výrobcích webových prohlížečů, kteří musí hledat způsoby, jak uživatele ochránit. Sid Stamm na sympoziu například potvrdil, že jeden z úkolů jeho týmu je právě snažit se nalézat způsoby, jak zmírnit škody, které technologie HTML5 přinášejí.

Jednou z ukázek toho, jak by bylo možné vrátit kontrolu zpět do rukou uživatele, je alternativní platforma pro doplňky prohlížeče, vyvíjená Mozillou, označovaná jako JetPack, která má uživatelům umožnit lepší kontrolu nad tím, co chtějí jednotlivé doplňky prohlížeče vykonat, a pokud se chtějí například připojit na určitou adresu, je vyžadován souhlas uživatele. Další variantou v JetPacku je model, kdy doplněk musí nahlásit webovému prohlížeči každou akci, kterou chce uskutečnit, a ty musí být v rámci předem stanovených parametrů. Podobné principy by pak mohlo být možné aplikovat i na funkce HTML5.

Kevin Johnson pak varuje firmy, aby důkladně zvážily nasazení nových webových prohlížečů s podporou páté revize jazyka HTML ve svém prostředí, a to právě z hlediska rizik, která mohou představovat. Před jejich instalací by si firmy měly položit otázku, zda jsou na nové hrozby dostatečně připraveny, a pokud nikoliv, přechod na nové technologie raději odložit.