Pozor na identifikaci na sociálních sítích

Je lákavé kliknout na bezplatný odkaz slibující iPhone, ale buďte obezřetní. Jediné kliknutí může snadno vést k zneužití a mít katastrofální následky.

Clickjacking, známý také jako manipulace s uživatelským rozhraním, je útočná technika, která spočívá v maskování (nebo překrývání) odkazu neprůhlednou vrstvou. Tímto způsobem je uživatel přinucen provést akci, kterou ve skutečnosti nezamýšlel.

Většina uživatelů sociálních sítí je zvyklá být neustále přihlášena, což je pohodlné, ale útočníci toho mohou snadno využít. Mohou uživatele přimět k lajkování nebo sledování něčeho bez jejich vědomí. Zločinec by mohl na svou webovou stránku umístit atraktivní tlačítko s textem jako „iPhone zdarma – omezená nabídka“ a neviditelně ho překrýt rámem s webovou stránkou sociální sítě. Tímto způsobem se například tlačítko „To se mi líbí“ nebo „Sdílet“ může nacházet nad tlačítkem pro iPhone zdarma.

Tento jednoduchý trik clickjackingu může přimět uživatele Facebooku, aby lajkovali skupiny nebo fanouškovské stránky, aniž by si toho byli vědomi.

Uvedený scénář je poměrně neškodný, protože oběť je pouze přidána do nějaké skupiny na sociální síti. Avšak s trochou větší snahy by stejná technika mohla být použita k ověření, zda je uživatel přihlášen do svého bankovního účtu. Namísto lajkování nebo sdílení na sociálních sítích by mohl být donucen kliknout na tlačítko, které by převedlo peníze na účet útočníka. Nejhorší na tom je, že taková škodlivá akce je těžko vysledovatelná, protože uživatel byl legitimně přihlášen a dobrovolně klikl na tlačítko pro převod.

Vzhledem k tomu, že většina clickjackingových útoků vyžaduje prvky sociálního inženýrství, sociální sítě se stávají ideální platformou pro takové útoky.

Podívejme se, jak se používají.

Clickjacking na Twitteru

Přibližně před deseti lety byl Twitter zasažen masivním útokem, který rychle šířil zprávu, která nutila uživatele kliknout na odkaz z čiré zvědavosti.

Tweety s textem „Neklikat“ a odkazem se rychle rozšířily na tisíce twitterových účtů. Když uživatelé klikli na odkaz a poté na zdánlivě neškodné tlačítko na cílové stránce, byl z jejich účtů odeslán tweet. Tento tweet obsahoval text „Neklikat“ následovaný škodlivým odkazem.

Inženýři Twitteru tento clickjackingový útok opravili krátce po jeho vypuknutí. Samotný útok se ukázal jako neškodný a fungoval jako varování před potenciálními riziky spojenými s clickjackingem na Twitteru. Škodlivý odkaz uživatele přesměroval na webovou stránku se skrytým iframe. Uvnitř rámu bylo neviditelné tlačítko, které odeslalo škodlivý tweet z účtu oběti.

Clickjacking na Facebooku

Uživatelé mobilní aplikace Facebook jsou zranitelní vůči chybě, která umožňuje spamerům publikovat na jejich časové ose klikatelný obsah bez jejich souhlasu. Tuto chybu odhalil bezpečnostní odborník, který analyzoval spamovou kampaň. Všiml si, že mnoho jeho kontaktů publikovalo odkaz na stránku s vtipnými obrázky. Než se uživatelé k obrázkům dostali, byli požádáni, aby klikli na prohlášení o zletilosti.

Nevěděli však, že toto prohlášení se nachází pod neviditelným rámem.

Když uživatelé prohlášení odsouhlasili, byli přesměrováni na stránku s vtipnými obrázky. Nicméně, mezitím byl odkaz publikován na jejich facebookové časové ose. Bylo to možné, protože komponenta webového prohlížeče v aplikaci Facebook pro Android není kompatibilní s hlavičkami Frame Options (vysvětleno níže), což umožňuje škodlivé překrývání rámečků.

Facebook tento problém neoznačil jako chybu, protože nemá přímý dopad na integritu uživatelských účtů. Proto není jisté, zda bude někdy opraven.

Clickjacking na menších sociálních sítích

Nejsou to jen Twitter a Facebook. Další, méně populární sociální sítě a blogovací platformy také mají zranitelnosti, které umožňují clickjacking. Například LinkedIn měl chybu, která útočníkům umožňovala přimět uživatele, aby sdíleli a publikovali odkazy jejich jménem bez jejich vědomí. Než byla tato chyba opravena, útočníci mohli načíst stránku LinkedIn ShareArticle do skrytého rámu a překrýt ho stránkami se zdánlivě neškodnými a atraktivními odkazy nebo tlačítky.

Dalším příkladem je Tumblr, veřejná platforma pro webové blogy. Tato stránka používá kód JavaScript, aby se pokusila zabránit clickjackingu. Tato metoda ochrany se však stává neúčinnou, protože stránky lze izolovat v rámci HTML5, které jim brání spouštět kód JavaScript. Pečlivě sestavená technika, kombinující zmíněnou chybu s pluginem prohlížeče pro správu hesel, by mohla být použita ke krádeži hesel: oklamáním uživatelů, aby zadali falešný text captcha, mohou nevědomky poslat svá hesla na stránky útočníka.

Falšování požadavků napříč weby

Varianta útoku clickjacking se nazývá Cross-site request forgery (CSRF). S využitím sociálního inženýrství kyberzločinci zaměřují útoky CSRF na koncové uživatele, nutí je provádět nechtěné akce. Útok může probíhat skrze odkaz zaslaný e-mailem nebo chatem.

Útoky CSRF nejsou navrženy tak, aby kradly uživatelská data, protože útočník nevidí odpověď na falešný požadavek. Zaměřují se spíše na požadavky na změnu stavu, jako je například změna hesla nebo převod finančních prostředků. Pokud má oběť administrátorská oprávnění, může útok ohrozit celou webovou aplikaci.

Útoky CSRF mohou být uloženy na zranitelných webech, zejména tam, kde existují takzvané „uložené chyby CSRF“. Toho se dosahuje vložením značek IMG nebo IFRAME do vstupních polí, které se později zobrazí na stránce, například v komentářích nebo na stránce s výsledky vyhledávání.

Prevence útokům rámování

Moderním prohlížečům lze sdělit, zda je povoleno načíst konkrétní zdroj do rámce. Mohou se také rozhodnout načíst zdroj do rámce pouze tehdy, když požadavek pochází ze stejného webu, na kterém se uživatel nachází. Tímto způsobem nemůže být uživatel oklamán klikáním na neviditelné rámečky s obsahem z jiných stránek a jeho kliknutí nemohou být zneužita.

Techniky pro zmírnění útoků na straně klienta se nazývají frame busting nebo frame killing. I když mohou být v některých případech účinné, lze je snadno obejít. Proto nejsou metody na straně klienta považovány za spolehlivé. Bezpečnostní experti místo vylučování rámců doporučují metody na straně serveru, jako je X-Frame-Options (XFO) nebo novější Content Security Policy.

X-Frame-Options je hlavička odpovědi, kterou webové servery vkládají na webové stránky, aby naznačily, zda prohlížeč smí či nesmí zobrazit svůj obsah uvnitř rámu.

Hlavička X-Frame-Options umožňuje tři hodnoty:

  • DENY: zakazuje zobrazit stránku v rámu.
  • SAMEORIGIN: umožňuje zobrazení stránky v rámu, pokud zůstane ve stejné doméně.
  • ALLOW-FROM URI: umožňuje zobrazení stránky v rámu, ale pouze v určeném URI (Uniform Resource Identifier), například pouze v rámci konkrétní webové stránky.

Novější metody ochrany proti clickjackingu zahrnují Content Security Policy (CSP) s direktivou frame-ancestors. Tato možnost se široce používá jako náhrada za XFO. Jednou z hlavních výhod CSP oproti XFO je to, že umožňuje webovému serveru autorizovat více domén k rámování jeho obsahu. Nicméně, není zatím podporován všemi prohlížeči.

Direktiva frame-ancestors CSP akceptuje tři typy hodnot: ‚none‘ pro zabránění jakékoli doméně zobrazovat obsah; ‚self‘ pro povolení zobrazení obsahu v rámu pouze aktuálnímu webu nebo seznamu adres URL se zástupnými znaky, například ‚*.some site.com‘, ‚https://www.example.com/index.html‚, atd., aby bylo rámování povoleno pouze na stránkách, které splňují kritéria ze seznamu.

Jak se chránit proti clickjackingu

Při brouzdání webem je pohodlné zůstat přihlášeni k sociálním sítím, ale pokud tak činíte, měli byste být opatrní při klikání. Také byste měli být opatrní ohledně webů, které navštěvujete, protože ne všechny přijímají nezbytná opatření k zabránění clickjackingu. Pokud si nejste jisti webovou stránkou, kterou navštěvujete, neměli byste klikat na žádné podezřelé odkazy, bez ohledu na to, jak lákavé mohou být.

Další věcí, kterou je třeba věnovat pozornost, je verze vašeho prohlížeče. I když web používá veškeré hlavičky pro prevenci clickjackingu, které byly zmíněny dříve, ne všechny prohlížeče je podporují. Proto se ujistěte, že používáte nejnovější možnou verzi a že podporuje funkce proti clickjackingu.

Zdravý rozum je účinným prostředkem sebeobrany proti clickjackingu. Když vidíte neobvyklý obsah, včetně odkazu zveřejněného přítelem na sociální síti, zeptejte se sami sebe, zda je to typ obsahu, který by váš přítel publikoval. Pokud ne, měli byste svého přítele upozornit, že se mohl stát obětí clickjackingu.

Závěrem, pokud jste influencer nebo máte velký počet sledujících na sociálních sítích, měli byste zdvojnásobit preventivní opatření a chovat se zodpovědně online. Pokud se totiž stanete obětí clickjackingu, útok nakonec ovlivní velké množství lidí.