Po školení v CZ.NIC se snažím své weby všemožně zabezpečovat proti různým typům penetračních útoků… jeden web ale exceluje ve sběru dat o tom jak se snaží roboti na web útočit, naštěstí je toto oblast kam moc AI nezasahuje a tak se dokola opakují stejné „pokusy“.
Rozhodl jsem se tedy publikovat dotazy v URL, které nejčastěji útočníci používají. Pro ty z vás, kteří se bezpečností webových aplikací zabývají to určitě nebude nic nového.
Va každém příkladu „p=“ reprezentuje GET dotaz v URL, tedy proměnnou. Parametr může být výběr jazykové verze webu, požadovaná stránka nebo ID záznamu, je jedno co se pod ním skrývá. Musím ale poznamenat, že útočníci prakticky vždy útočí na poslední parametr URL – na to se ale určitě nespoléhejte a ošetřujte všechny vstupy včetně těch, které nezadává uživatel.
A teď už samotné příklady…
p=-1422 UNION ALL SELECT 80,80,80,80,80,80,80,80,80,80
p="reálná hodnota" AND 6968=DBMS_PIPE.RECEIVE_MESSAGE(CHR(112)||CHR(83)||CHR(106)||CHR(122),5)-- IVie
p=(SELECT CHAR(113) CHAR(98) CHAR(120) CHAR(120) CHAR(113) (SELECT (CASE WHEN (3954=3954) THEN CHAR(49) ELSE CHAR(48) END)) CHAR(113) CHAR(112) CHAR(107) CHAR(118) CHAR(113))
p=../../../../../../../../etc/passwd
l=">alert(String.fromCharCode(88,83,83))
p="reálná hodnota");SELECT SLEEP(5)
p="reálná hodnota" ) ORDER BY 1-- KNmQ
Z výše uvedených příkladů je jasně znát, že v drtivé většině případů převládá útok typu SQL Injection a Cross-Site-Script. Předpokládám ale, že v případě úspěch těchto „pokusů“ dá systém vědět reálnému útočníkovi, že našel lehce zneužitelnou zranitelnost a ten se jí poté pokusí „vytěžit“ již reálným útokem. Z tohoto důvodu, abych zabil nějaký ten útočníkův čas jsem stanovil v systémech prahovou hodnotu jakéhosi pomyslného skóre útoku, po jejímž překročení banuji nejdříve pokusem přímo útočníka (Cookies, Session, identifikaci prohlížeče, …) a pokud ani po tomto zásahu skóre roste, dávám ban na 24 hodin konkrétní IP adrese.
Jak takový BANánek vypadá? No servíruji útočníkovi co chce získat, BAN ho z webu přesměruje na takový „honeypot“ kde mu zázračně funguje XSS a při pokusu získat z databáze nějaká data se zobrazí veselá tabulka s jmény a hesly… není nad generátor náhodných sad znaků. Vše „důležité“ ohashováno do md5, to kdyby to sbíral nějaký automat tak ať do rozklíčování vloží nějaké to strojové úsilí. Připojím ještě obrázek z banované stránky.

Informace výše nejsou světoborné a neukazují nic nového, jsou asi spíše pro začínajícího vývojáře nebo jen pro někoho kdo se ve webech vrtá jen občas.
Jen ještě drobná statistika… za 14 dní, kdy jsem data z webu vybíral došlo k 193 přesměrování na banovací stránku (z celkové návštěvnosti 3 739). Těchto 193 útoků ale reálně probíhalo z 5 IP adres. Většina útoků používala hlavičku prohlížeče „Mozilla/5.0 (Windows NT 10.0; WOW64; Rv:50.0) Gecko/20100101 Firefox/50.0“, případně „Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.0.9) Gecko/2009042113 Ubuntu/8.10 (intrepid) Firefox/3.0.9“. Velmi ojediněle útočník použil prohlížeč, který hlavičky neodesílá.