4. února 2009

XSS, XSRF - o bezpečnosti je potřeba neustále mluvit a o webu to platí dvojnásob

A já jsem si toto téma oživil pomocí prezentace Jeffa Williamse publikovanou na InfoQ: Stopping Attacks in a Web 2.0 World. Velmi povedená prezentace zaměřená na XSS a XSRF (nenechme se zmát názvem prezentace, příklady v ní uvedené se nijak nevážou pouze na Web 2.0 aplikace). Velmi podstatnou součástí prezentace jsou příklady použití těchto útoků. Čeho se dá dosáhnout pomocí XSS je až neuvěřitelné (přiznám se, že mi skoro běhal mráz po zádech).

XSRF je novější než XSS, obrana proti němu je relativně náročná (jedinou možností je posílání serverem generovaného tokenu s každým requestem na aplikaci). Zneužití je komplikovanější, protože se útočník nemůže dostat k response, kterou server poslal.

Co se XSS týče, jedná se o velmi starý druh útoku, který se neustále vyvíjí (přicházejí nové a nové nápady, jak útok zamaskovat, aby nebyl odhalen). Podíváme-li se na ha.ckers.org na příklady XSS útoků, pak u řady z nich nechápu, jak se dají použít. Např. útoky pomocí zakódování textu do Base64 vypadají opravdu nevinně. Nebezpečnost XSS je opravdu velmi vysoká. Obrana je opět relativně prostá, validace jakéhokoliv textu, který do aplikace přichází pomocí whitelistu (tj. pomocí povolených znaků). Nejedná se jenom o data z formulářů, ale i o hidden fieldy, cookies i hlavičky HTTP protokolu.

Kdo se chce dozvědět více, především ohledně popisu útoků, pak nechť použije již zmíněný ha.ckers.org, který je velmi vyčerpávající (z hlediska příkladů utoků). Druhým výborným zdrojem je owasp.org, který je (dle mého soudu) lépe přístupný z hledika podání informací jednoduchou a čitelnou formou. Popisy zde poskytují i návrhy ochrany, případně postupy pro review aplikace z pohledu odolnosti oproti útokům.

Žádné komentáře: