Zpět na seznam článků     Číst komentáře (0)     Verze pro tisk

Právní aspekty XSS útoků

Autor: .cCuMiNn.   
8.2.2012

Patříte-li mezi ty, kteří se domnívají, že útoky typu XSS jsou jen nevinnou hrátkou, na kterou naše legislativa nepomyslela, možná vás obsah tohoto článku překvapí. Společně s JUDr. Jiřím Konečným nakoukneme pod roušku zákonům, které tento typ útoků dokáží poměrně spolehlivě postihovat.


Dobrý den pane doktore,
rád bych Vám položil pár dotazů, které by našim čtenářům přiblížily právní dopady útoků typu Cross-Site Scripting (XSS). Zneužití této zranitelnosti webových aplikací je poměrně různorodé a tak to vezmu postupně od těch nejjednodušších příkladů, až po ty komplikovanější.

XSS představuje zranitelnost webových aplikací, která útočníkům umožňuje vložit kód JavaScriptu do obsahu webové stránky. Ten se následně spustí ve webovém prohlížeči uživatelů, ve chvíli, kdy si stránku s injektovaným skriptem zobrazí.

Budeme předpokládat existenci webového fóra, které je zranitelné na XSS perzistentního typu. Běžně uživatelé vkládají do tohoto fóra příspěvky ve formě prostého textu. Protože je fórum pro vkládání uživatelských příspěvků určeno, nedopustí se útočník zcela jistě žádného porušení zákona, pokud také přidá svůj textový příspěvek. Mám pravdu?

V principu ano, záleží samozřejmě na podmínkách užívání fóra deklarovaných provozovatelem.

Útočník ovšem může kromě vložení textu využít zmíněné zranitelnosti a do fóra může vložit příspěvek, který bude obsahovat také nějaký HTML kód. Ten tak v obsahu útočníkova příspěvku zobrazí například čáru, nebo obrázek. Tvůrce fóra vložení těchto prvků nepředpokládal, ale jsem přesvědčen o tom, že ani v tomto případě útočník žádný ze zákonů neporuší. Mám opět pravdu?

Pokud jde o html určené pro zobrazení/formátování, pak zřejmě ne (viz.předchozí odpověď).

Pojďme se ale posunout k variantě, kdy uživatel zneužije XSS zranitelnosti fóra a namísto obrázku vloží do svého příspěvku kód JavaScriptu. Ten se následně spustí v prohlížeči každému návštěvníkovi, který toto webové fórum navštíví. Zde bude zřejmě situace různá podle toho, jaká bude funkce vloženého skriptu. Opět předpokládám, že pokud by útočník do svého příspěvku vložil pouze prázdný skript <script></script>, nedopustil by se tím porušení žádného ze zákonů. Mám stále pravdu?

Toto už se blíží k hraně. Provozovatel fóra takový postup (naivně) nepředpokládá. Jedná se tedy o využití jeho webu/aplikace způsobem, který se nepředvídá – ale ještě pořád se nezískává přístup ke „skrytým“ datům ani nepřekonává zabezpečení, takže ani toto porušení zákona není. Mohlo by to být jen porušení podmínek užívání, teoreticky.

Říkáte „Jedná se tedy o využití jeho webu/aplikace způsobem, který se nepředvídá“, za neoprávněné vložení dat podle § 230 je tedy považován takový vstup, který provozovatel nepředpokládal?

„Neoprávněný“ znamená, že z ničeho nelze explicitně dovodit právo tak jednat – nestačí tedy, že to není zakázáno. Provozovatel vystaví své fórum na internet veřejnosti a umožní tak zjednodušeně řečeno užívat své vlastnictví, z ničeho ale nelze dovodit, že by chtěl umožnit jeho využití tímto způsobem, naopak je podle mne nutné restriktivně to vykládat tak, že oprávněné je jen takové užívání fóra, ke kterému „zjevně“ slouží (vkládání příspěvků apod.), ostatní užívání je pak nutné brát jako neoprávněné.

Posuneme se opět o trochu dále, a já se Vás zeptám na právní výklad útočníkova jednání, pokud vloží do fóra tento kód: <script>alert('Fórum je zranitelné na XSS')</script>. Ten způsobí zobrazení výstražného okna se zprávou "Fórum je náchylné na XSS" v prohlížeči uživatele vždy, když toto fórum navštíví? Stále ještě nedošlo k porušení zákona? Je vůbec nějaký rozdíl mezi vložením obrázku a výstražného okna?

Zde se již dostáváme na hranu, mohlo by to totiž být vyhodnoceno podle § 230 jako „neoprávněné vložení dat do počítačového systému“. Můj osobní názor je ale takový, že tento postup není „společensky škodlivý“ a nebylo by tedy možné ho považovat za trestné jednání.

Výstražné okno s textem, které do fóra vložil útočník, může každý návštěvník fóra jednoduše odkliknout pomocí tlačítka v okně a tím se zobrazení tohoto okna zbaví. Změnila by situaci skutečnost, když by útočník vložil do fóra programovou smyčku, která by po uzavření výstražného okna vyvolala okamžité zobrazení okna nového? Toto by pro návštěvníky fóra mohlo být již poměrně obtěžující. Znemožnilo by jim to plnohodnotnou a nerušenou návštěvu fóra. Porušil by vložením takového skriptu útočník některý ze zákonů?

I postup bez sekvence okének omezuje uživatele (byť minimálně) a jde proti zájmům provozovatele serveru. Postup, který je popsán v tomto případě, již podle mého názoru představuje „neoprávněné vložení dat do počítačového systému“ a je otázka, jestli už je naplněna podmínka společenské škodlivosti. Trestní odpovědnost tedy nelze vyloučit. V každém případě by bylo dáno právo provozovatele domáhat se odstranění takového kódu a případně zadostiučinění ze strany útočníka (pominu-li samozřejmě možnosti provozovatele problémový příspěvek odstranit). Je potřeba si ale také uvědomit, že pokud by útočník tímto typem útoku napadl například e-shop, který poskytuje právnická nebo fyzická osoba, která je podnikatelem, mohlo by dojít k vážné poruše v její činnosti a potom by mohl být tento čin postihován podle § 230 odst.4 písm. e) s poměrně vysokou trestní sazbou.[RK5] Dále je dobré zmínit[JK6], že trestní sazba 1-5 let se kromě toho uplatní mj. i při způsobení škody přes 500.000,- Kč, při škodě nad 5 milionů Kč je pak sazba 3-8 let.

Kromě obtěžujících výstražných oken, může útočník vložit do svého příspěvku také skript, který návštěvníky fóra přesměruje na jiné stránky. Uživatel, který navštíví stránky fóra, tak bude okamžitě přesměrován na jiné stránky bez toho, aby mohl tuto situaci nějak ovlivnit (pokud se sám proti XSS aktivně nechrání). Je zde nějaký rozdíl oproti obtěžujícím výstražným oknům? Změnila by situaci skutečnost, že by útočník pomocí tohoto přesměrování návštěvníků fóra získal nějaký prospěch (například by si tím zvýšil návštěvnost svého webu, nebo získal provizi za návštěvníky, které přivedl na jiný web)? Ovlivní závažnost situace obsah stránek, na které by byli uživatelé přesměrováni? Co kdyby se jednalo o stránky s pornografií nebo nezákonným obsahem?

Zde se již dostáváme prakticky jistě do roviny naplnění skutkové podstaty trestného činu, přesměrování za účelem získání prospěchu vede k vyšší hrozící trestní sazbě, přesměrování na stránky s pornografií či nezákonným obsahem by bylo zřejmě přitěžující okolností.

Útočník může pomocí skriptu, který injektuje do fóra, také odcizit obsah cookie návštěvníků (identifikátor, podle kterého server pozná, o kterého přihlášeného uživatele jde). Útočník může tento odcizený identifikátor naimportovat do svého prohlížeče a přistupovat s ním k webové aplikaci pod identitou uživatele, kterému byl skriptem tento identifikátor odcizen. Obdobou může být injektovaný skript, který změní přihlašovací formulář webové aplikace a útočníkovi odesílá údaje, které do něj uživatelé vyplnili. Dochází k porušení zákona už pouhým vložením skriptu, který obsah cookies nebo autentifikační údaje návštěvníků získává a odesílá, nebo je pro porušení zákona nutné, aby útočník takto získaných přístupových údajů zneužil? Zde se bude situace zřejmě různit podle toho, zda útočník s identitou jiného uživatele pouze navštíví webovou aplikaci, nebo zda v ní bude pod touto identitou provádět nějaké akce, které mohou poškodit uživatele, jehož identifikátor byl odcizen.

Již vložením skriptu by zřejmě šlo o trestně postižitelné jednání; zneužití by pak vedlo k vyšší trestní sazbě. Využívání takto získaných cizích dat pak může představovat naplnění dalších skutkových podstat (např. § 181 poškozování cizích práv).

Skript, který útočník vloží prostřednictvím svého příspěvku do fóra, může mít také tu funkci, že změní některé informace uvedené na webové stránce, nebo na stránku nějaké informace přidá, tak aby vypadaly, že jsou nedílnou součástí webové aplikace (tato změna se neděje přímo na serveru, ale až na straně webového prohlížeče uživatelů, který vložený skript spustí). Tímto může útočník uvést návštěvníky fóra v omyl. Jaké zákony během tohoto útoku útočník poruší? Jaký bude rozdíl v tom, pokud vložené informace poškodí poskytovatele webové aplikace, pokud způsobí škodu oklamaným návštěvníkům, nebo pokud díky takto vložené informaci získá útočník nějaký prospěch?

Opět se jedná minimálně o trestný čin podle § 230 TZ, včetně vyšší trestní sazby v případě úmyslu získat prospěch, způsobit škodu apod.

Záleží v uvedených případech na motivaci útočníka? Útočník může svůj útočný skript vložit například jen proto, aby zjistil, že a jak funguje. Svůj kód ale může vložit se záměrem dotáhnout útok do konce.

Jak je uvedeno výše – má význam minimálně pro posouzení společenské škodlivosti, v případě trestnosti jednání pak i pro trestní sazbu.

Bude se situace nějak lišit v případech, kdy je kód vkládán do fóra, které je pro vstupy uživatelů přímo určeno, oproti tomu, kdy je zneužito některé předávané proměnné, jejíž obsah je následně zobrazován například na homepage webové aplikace?

Předpokládám, že posouzení protiprávnosti jako takové by bylo stejné, pouze s ohledem na míru jakési zákeřnosti jednání by asi byla druhá varianta posuzována přísněji.

Bude se závažnost činů lišit podle cílů, na které je útočeno? Na osobních webech nadělají podobné útoky určitě mnohonásobně menší škody než na firemních webech nebo v e-shopech.

Způsobená škoda je podstatná pro stanovení trestní sazby i společenské škodlivosti. Již jsem zmiňoval výše, že pokud by útočník tímto typem útoku napadl aplikaci, kterou poskytuje právnická nebo fyzická osoba, která je podnikatelem, a došlo by jednáním útočníka k vážné poruše v její činnosti, potom by mohl být tento čin postihován podle § 230 odst.4 písm. e) s poměrně vysokou trestní sazbou. Zmínil jsem také, že se uplatní trestní sazba 1-5 let při způsobení škody přes 500.000,- Kč, a sazba 3-8 let při škodě nad 5 milionů Kč.

Zkusme se ale nyní zaměřit na non-perzistentní typ XSS. K tomuto typu útoku dochází (jednorázově) ve chvíli, kdy kód skriptu odešle (nevědomky) na stranu serveru sám uživatel během svého požadavku. Předaný kód se na straně serveru zakomponuje do obsahu stránky, která je pak uživateli vrácena. Při zobrazení vrácené stránky se tento kód spustí v uživatelově prohlížeči. K uživatelům se takový kód dostává nejčastěji v odkazech, které jsou mu zaslány prostřednictvím e-mailu.

Zde zřejmě může dojít k porušení § 230, pokud bude útočník v emailové zprávě přesvědčovat (a oklamávat) svou oběť, aby na odkaz klikla. Je ovšem něco nelegálního na tom, když si podobný odkaz vloží útočník na své webové stránky a nebude ke kliknutí na odkaz nikoho nabádat?

Obě tyto varianty bych spíše kvalifikoval podle § 231 – zpřístupňování zařízení k neoprávněnému přístupu do sítě elektronických komunikací, k počítačovému systému nebo k jeho části, nebo prostředku, pomocí něhož lze získat přístup k počítačovému systému nebo jeho části. V první variantě je porušení trestního zákona zjevně flagrantnější, neboť obvykle je spojeno s uváděním v omyl (pokud e-mail např. obsahuje nějaké to přesvědčování, proč na link má příjemce kliknout, třeba že vyhraje peníze apod.).

Z Výše uvedených odpovědí JUDr. Konečného vyplynulo, že se v oblasti XSS střetáváme hlavně s § 230, který popisuje a postihuje injektování skriptů bodem "neoprávněné vložení dat do počítačového systému". Zákon přitom u výrazu "počítačový systém" nerozlišuje mezi internetovým serverem a osobním počítačem uživatelů. Z odpovědí také vyplynulo, že během XSS útoku může dojít k naplnění skutkové podstaty § 181 "Poškozování cizích práv", pokud útočník zneužije XSS k oklamání uživatele a tím mu způsobí škodu. Pokud toho navíc využije k získání prospěchu pro sebe nebo někoho jiného, může to být kvalifikováno přísněji – jako podvod podle § 209. Získáním autorizačních údajů uživatele za účelem dalšího postupu, dochází současně také k naplnění skutkové podstaty § 231 "Opatření a přechovávání přístupového zařízení a hesla k počítačovému systému a jiných takových dat". Během konečného zneužití se pak útočník může dopouštět dalších trestných činů, např. § 182 "Porušení tajemství dopravovaných zpráv" v případě útoku na e-mailovou schránku uživatele a případně i porušení § 183 "Porušení tajemství listin a jiných dokumentů uchovávaných v soukromí", pokud data z napadené e-mailové schránky zveřejní.

Samotný § 230 poruší útočník během XSS dokonce hned dvakrát. Poprvé injektováním kódu do obsahu webové stránky, podruhé během jeho neoprávněného spuštění v počítači koncového uživatele. Z pohledu trestního práva by to ale bylo vnímáno jako jediný trestný čin.

Děkuji JUDr. Jiřímu Konečnému za odpovědi, které zcela jistě otevřou oči mnoha našim čtenářům.

Pro obsah tohoto článku jsem zvolil XSS zranitelnost proto, že se útoky tohoto typu mohou zprvu zdát jako nevinné hrátky. Sami ale vidíte, že skutečnost je úplně jiná. V případě komplexnějších útoků se během nich může útočník dopustit naplnění skutkových podstat hned několika trestných činů, čímž si může zadělat na mnoho nepříjemností a případně si vysloužit i několik let odnětí svobody. V případě jiných typů útoků, které zneužívají odlišné typy zranitelností si nyní již lehce odvodíte, jaké právní dopady by jejich zneužití mohlo mít.


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 1.39/31

1  2  3  4  5    
(známkování jako ve škole)