CDR SecUpdate 41 - Hackeři se srocují a před volbami oťukávají politické weby, co se chystá?
Pomalu se blíží volby a histerie vrcholí. Jelikož se tato událost týká velké většiny obyvatel naší země, přirozeně přitahuje naší pozornost. A protože je internet pro politické kampaně klíčový, strany do online komunikace s voliči investují nemalé peníze. Politické směřování však nemá s technologiemi mnoho společného a to se často odráží na webových prezentacích. Pro hackery-aktivisty jsou tedy politické weby téměř ideálním cílem - denně je během období voleb přečtou mraky lidí a technologická stránka je nevalná.
Nejspíš i na tento problém se snaží poukázat projekt českého bezpečnostního magazínu SOOM s názvem Říjen: Měsíc politických webů. Klade si za cíl poukázat na bezpečnostní nepřipravenost politických stránek a možnost zneužití přítomných zranitelností. Hackeři do vláken přispívají se svými objevy a na pomyslné černé listině se tak ocitla již pěkná řádka webů včetně spoz.cz, karelschwarzenberg.cz, zemanmilos.cz, radekjohn.cz a dalších.
[EDIT 15.10. 19:00: Podle všeho byl napaden právě web spoz.cz, kde se během dneška objevily nemravné obrázky. Údajně byl také na webu volně přístupný seznam blíže nespecifikovaných hesel.]
Co to však znamená? Je web pro uživatele nebezpečný? Pojďme se podívat na typické zneužití takových webových zranitelností.
XSS - Cross Site Scripting
Hojně rozšířená metoda pro vyvolání vývojářem webu ne úplně zamýšlené funkcionality je XSS, volně přeloženo jako skriptování mezi stránkami. Představme si naše vyhledávací políčko na CDRku, pokud do něj zadáte výraz "minipočítač", systém vám vrátí řetězec typu "výsledky pro minipočítač" + výsledky našich článků s tímto klíčovým slovem. Kdyby byl však web náchylný na XSS, mohli byste do políčka zadat např. řetězec <img src=web.cz/obrazek.jpg> a neošetřený systém vrátí "provedené" html, tedy "výsledky pro" + obrázek. Stejně tak to může fungovat se zadanými skripty, zranitelný webový server vámi zadaný skript provede a, jak by řekl klasik, skript zasáhne váš prohlížeč přímo do obličeje.
Nemusíte však zadávat skript přímo natvrdo do políčka na stránce. Pokud jsou proměnné HTTP požadavku posílány metodou GET, můžete specifikovat skript pomocí URI a vytvořit pro oběť útoku URL typu cdr.cz/vyhledavani.php?q=<script>XSS</script>. URL si v tomto příkladě můžete představit jako míček. Hacker vám ho dá přes nějaký komunikační nástroj do ruky a vy s ním hodíte o stěnu webového serveru. Když je v něm bomba (nebezpečný skript), vrátí se a vybouchne vám před nosem, když ne, chytíte ho zpět do ruky. Výše zmiňovaný typ XSS se označuje jako non-persistent - míček na straně serveru nezůstává.
Persistentní XSS je větší problém, protože v tomto případě server míček uloží a hodí jej všem návštěvníkům stránky na uvítanou. Typickým příkladem je webové fórum s příspěvky uživatelů - pokud je náchylné na XSS, útočník odešle do systému příspěvek se skriptem, který se provede všem návštěvníkům daného vlákna.
XSS útoky mají výhodu v tom, že hacker nemusí nutně kompromitovat server - bourat zeď. Může jí však persistentním XSS na nějakou dobu "přemalovat" svými barvami (např. anonymous). Součást obrany nemusí být nutné ověřování vstupních dat, ale důležité je nepustit data od uživatele na výstup - tam je kontrola nutná.
Tímhle krátkým vhledem možnosti XSS rozhodně neprozkoumáváme všechny, na toto téma by se dala napsat klidně celá kniha. To věděl i Roman Kümmel ze SOOMu, jehož knihu Cross-Site Scripting v praxi vřele doporučím i nováčkům v oboru. Zejména je vhodná pro administrátory webových serverů - poukazuje na možná nebezpečí a také radí, jak se bránit. Mimochodem je zdarma.
SQL injection
Další technika napadení webu může být injekce kódu přes neošetřený vstup do databáze, která následně vykoná daný dotaz - SQL injection. Injekci SQL dotazů hacker dosáhne přes neošetřený formulář na stránce nebo mimo jiné i skrz upravenou URL adresu. Speciálně upravený řetězec v překladu do databáze pak totiž provede něco úplně jiného, než bylo původně zamýšleno. Učebnicovým příkladem může být string 1' or '2'='2, který postaví před databázi logickou pravdu (2 je vždy rovno 2).
Tím, že hacker přistupuje přímo k databázi, se stává velkou hrozbou - může za určitých okolností mazat tabulky, vytvářet nové atd.
Závěr
V minulosti jsme byli svědky mnohých útoků na politické weby. Je téměř jisté, že se hackeři připravují i v těchto dnech. Záleží však na důvtipu administrátorů, kteří se o bezpečnost na webových prezentacích starají. Je nutné si pečlivě vypočítat, kolik může případná kompromitace webu stranu stát a jak jí uškodí. Podle toho by měly odpovídat investice do zabezpečení.
Čtete týdenní bezpečnostní bulletin internetového magazínu CDR. Moderní trendy počítačové bezpečnosti a hlídací pes nově objevených kritických chyb ve vašem softwaru na jednom místě.
To je pro dnešek vše, zůstaňte s námi a za týden nashledanou.