Hlavní navigace

Bezpečnostní rizika nových webových technologií

Martin Malý

Nové webové technologie, to nejsou jen úžasné možnosti, video a další funkce. Jsou to i bezpečnostní rizika, která jsou o to nebezpečnější, že jsou málo známá.

Dlouhé klidné období hegemonIE

Nevěřte webdesignérům jejich stížnosti na IE6, neberte slova o „nejhorším prohlížeči vůbec“ nijak vážně. Ve skutečnosti zažili webaři s IE6 bezprecedentní období hegemonie jednoho prohlížeče, které trvalo asi osm let, během nichž se majoritní prohlížeč nijak nezměnil. V překotném vývoji celého odvětví to byl ostrůvek stability. U žádného jiného tak rozšířeného programu neměli vývojáři v poslední době tolik let na odhalení jeho chyb a přizpůsobení se jim.

Ano, IE6 je plný chyb, nelogičností a problémů, ale jeho chyby, nelogičnosti a problémy jsou důkladně zdokumentovány, mnohokrát popsány, a co víc: vývojáři se naučili, jak je ošetřit. Takže dnes pro zručného kodéra nepředstavuje graceful degradation pro IE6 velký problém, protože zná podivnosti tohoto prohlížeče a na každou z nich má připravený „hack“.

Ostatní webové prohlížeče, které přidávají co čtvrt roku novou verzi, sice implementují novinky a opravují chyby rychleji, ale nesou s sebou jiné nebezpečí v podobě nových technologií. Nové technologie totiž mají i nové bezpečnostní díry. Zdaleka nejde jen o chyby v implementaci, ty bývají často rychle opraveny. Jde spíš o vlastnosti, které vyplývají z podstaty věci a které mohou být zneužitelné, pokud je vývojář neošetří. Bohužel – vývojáři se rychleji seznamují s novými technologiemi než s jejich možnými riziky. Kombinace nadšení pro nové věci a bohorovné ignorance možných problémů představuje smrtící koktejl, který si uživatel takového webu často nevědomky vypije až do dna.

Za trest napíšeš stokrát „HTML5“!

Ne, HTML5 opravdu není mantra, kterou musí zlobiví novináři tisíckrát napsat, aby jim šéfredaktor odpustil. Rodina technologií HTML5 představuje rozšíření starého dobrého HTML4 o velké množství nových technologií a postupů, které umožňují zlepšit uživatelský prožitek a přiblížit styl práce s webovými aplikacemi tomu, na který jsou lidé zvyklí z desktopů. O HTML4 platí totéž, co zaznělo v předchozí části: Je tu s námi přes deset let (specifikace verze 4.01 je z roku 1999) a za tu dobu už vývojáři většinou znají možné problémy a věci, které je nutno ošetřit.

Samotné HTML jako značkovací jazyk nepředstavuje pro uživatele většinou závažnější bezpečnostní riziko. Asi největším možným problémem je podvržený iframe s falešnou stránkou nebo podvržená adresa, kam se odesílají data z formuláře. Největší nebezpečí (a také nejvíc podceňované) s sebou nese JavaScript, tedy technologie, umožňující provádění nějakých akcí přímo v uživatelově prohlížeči.

I když je JavaScript prováděn v „sandboxu“, tedy pouze v prostoru prohlížeče, může představovat velké bezpečnostní riziko. Díky sandboxu nemůže skript na webové stránce přímo přistupovat k souborům ve vašem systému, ale přesto může napáchat poměrně výrazné škody – od poškození dat na webu přes krádež přihlašovacích údajů kamkoli až po odcizení účtů, identit nebo provedení bankovních operací. Přitom škodlivý kód může být vložen na neškodné a důvěryhodné stránce; už zdaleka neplatí, že je třeba lovit v kalných vodách warez a porna, aby člověk vystavil svůj prohlížeč riziku. (Hezká ukázka je například TabNabbing – jako stvořený pro všechny ty uživatele, co si „otevřou ráno zajímavé odkazy do panelů a ty pak procházejí“.

Nejčastější typ útoku se nazývá Cross-Site Scripting a označuje se XSS. Tato zkratka označuje způsoby, jakými lze do důvěryhodné stránky vložit škodlivý skript. Tedy něco podobného, jako vložené skripty nejrůznějších služeb, od počítadel přes analytické nástroje po „like button“, jenomže o nich návštěvník (a často ani správce) neví. Pokud neošetří tvůrce webu možné díry, kudy může útočník provést XSS útok, jsou návštěvníci jeho webu v ohrožení.

Problém mezi židlí a editorem

Opět se vracíme k tomu, co bylo už vyřčeno: Vývojáři se naučili obstojně ošetřovat nejčastější bezpečnostní rizika dosavadních technologií a prohlížečů. Lze říct, že průměrný vývojář ví, co je XSS, uvědomuje si možné riziko, zná nejčastější způsoby útoku a proti nim se brání. Ti lepší si uvědomují, že neznají všechny způsoby, a proto jsou raději opatrnější. Ti horší pak sebevědomě uvěří tomu, že ošetřili všechny způsoby co znají a jiné způsoby nejsou. Bohužel. Rozhodně není výjimkou potkat vývojáře, přesvědčeného o tom, že mu bezpečnostní technika z roku 2004 pomůže proti všem rizikům dnešním i budoucím, a sebejistě věřícího, že žádná jemu neznámá rizika neexistují.

Zeptejte se vývojáře webových aplikací, kolik zná způsobů, jak lze do webové stránky vložit JavaScript. Pokud jich vyjmenuje deset, poohlédněte se po aplikaci od nějakého jiného tvůrce.

Nové webové technologie z rodiny HTML5 přinášejí několik desítek nových způsobů, jak do stránky vložit skript. Nově mohou být skripty v místech, kde dříve nebývaly. Objevily se celé nové technologie, které na první pohled vypadají důvěryhodně a neškodně, ale ve skutečnosti mohou být velmi nebezpečné, pokud je s nimi zacházeno lehkomyslně (např. pokud autor webu považuje SVG za „neškodný vektorový obrázek“ a povolí jeho načítání z cizího webu). Staré existující značky dostaly někdy nové funkce (které mohou být využity pro útok). Přibyly nové značky – například oblíbený tag VIDEO – a pokud povolí autor jejich vkládání bez opravdu důkladné kontroly toho, co v nich je, riskuje bezpečnostní problém…

Jak se bránit?

Nové technologie jsou už zde. Stejně tak i nové prohlížeče, které je podporují, získávají majoritu na trhu. Nejhorší možný postoj, jaký k této změně mohou vývojáři webových aplikací zaujmout (a bohužel také často zaujímají) je ten, že změnu ignorují a věří, že pokud nové technologie oni sami nepoužívají, tak jsou proti jejich rizikům chráněni a v bezpečí. Že když se naučili vyhazovat tag SCRIPT a znaky < a >, tak si s tím vystačí. Podobný pocit je ale smrtelně nebezpečný, protože je to falešný pocit bezpečí. Útočník může zadat například vyhledávací řetězec, který by byl v IE6 či HTML4 bezpečný a který projde „bezpečnostním filtrem“ – ovšem v novém prohlížeči s podporou nových technologií už dotyčný řetězec bezpečný nebude. Výsledkem je kompromitovaná stránka a admin, který je přesvědčený, že k žádné kompromitaci jeho stránek dojít nemůže. Takových je, bohužel, stále víc než dost.

Největším bezpečnostním rizikem je a stále bude sebejistý vývojář. Druhým největším pak sebejistý uživatel.

Pravděpodobně jediným relativně spolehlivým způsobem, jak se může uživatel bránit, je blokování JavaScriptu podle whitelistu – taková obdoba firewallu. 

NoScript pro FireFox

NoScript plugin pro FireFox

Takovou funkci nabízí např. plugin NoScript pro Firefox. Po vstupu na stránku musíte říct, zda chcete té stránce povolit spouštět skripty nebo ne, a pokud ano, tak jestli vždy nebo pouze jednorázově. Po nějakém čase používání získáte seznam „důvěryhodných webů“, takže při běžné práci ani nepoznáte, že takový doplněk v prohlížeči máte. Poznáte jej při vstupu na neznámou stránku – a leckdy se až podivíte,co všechno jste si dřív do prohlížeče pustili. Až přijdete na nenápadnou stránku, třeba nějakého hudebního festivalu, a NoScript vám zahlásí, že zablokoval skript z domény 1174quz.ru a zakázal podezřelé přesměrování, nebo že jste klikli na tlačítko, které ve skutečnosti nebylo tlačítko a pod ním byl skrytý odkaz na paypal.com/payment, tak vám ta trocha nepohodlí s povolováním nebude připadat tak nesnesitelná.

Není potřeba hystericky zahazovat nové prohlížeče a proklínat nové technologie; důležité je nepodlehnout falešnému pocitu bezpečí, plynoucímu z víry, že „žádná neznámá rizika nejsou“.

Našli jste v článku chybu?

19. 11. 2010 10:00

Miloš Endrle (neregistrovaný)

Další článek co jen straší lidi a nepřináší žádná řešení. Řešení se zablokováním javascriptu vypovídá o" ztechnologizovaném" a naivním pohledu autora. Je přeci jedno jestli nová technologie přináší 10, 100 nebo 1000 nových způsobů jak script vložit, důležité je jak ochránit data uživatelů od zneužití těmito scripty. A na to máme docela osvědčené řešení s iframe v jiné doméně a komunikaci prostřednictvím window.postMessage. Prosím přicházejme s články co vývojářům pomáhají postavit bezpečné strán…

19. 11. 2010 11:32

No a pak si nějaký takový neškodný web načítá reklamu z reklamního systému do iframe, ten reklamní systém někdo hackne, šoupne tam k reklamě neviditelný iframe 1 x 1 bod s embedovaným PDF, Adobe Reader to zobrazí (neviditelně pro uživatele), v Readeru je chyba a šup ho - vir je zabydlen a ani o tom nevíte.

Třeba už ho dokonce máte, ale nijak to neumíte zjistit. :)

NoScript jen znefunkčňuje weby a přináší falešný pocit bezpečí.

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

DigiZone.cz: Kanál TA3 HD zahájil vysílání

Kanál TA3 HD zahájil vysílání

Root.cz: Mirai má nový cíl 5 milionů routerů

Mirai má nový cíl 5 milionů routerů

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Podnikatel.cz: 3, 2, 1..EET startuje. Na co nezapomenout?

3, 2, 1..EET startuje. Na co nezapomenout?

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

120na80.cz: Stoná vaše dítě často? Upravte mu jídelníček

Stoná vaše dítě často? Upravte mu jídelníček

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

120na80.cz: Popraskané rty? Některé balzámy stav zhoršují

Popraskané rty? Některé balzámy stav zhoršují

Root.cz: Kamery Sony se dají ovládnout na dálku

Kamery Sony se dají ovládnout na dálku

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?