Útok odražen, ale jen proto, že je příklad kvůli jednoduchosti psán na použití javascriptu. <b>Všechny komponenty</b> popisovaného útoku lze poměrně snadno realizovat i zcela bez skriptování. NoScript tedy nejenže nepomůže, ale dokonce uškodí, protože ukolébá uživatele ve falešném pocitu bezpečí (jak dokazujete vy i první odpovídající na vás).
Bohužel jde otevřít nové okno bez adresního řádku a běžný BFU adresu nemůže zkontrolovat. Vím že teď nemluvím o tabu ale o novém okně. Na druhé straně, co brání tomu otevřít v tabu správnou adresu a nad prohlížečem otevřít okno s falešným obsahem, které překryje původní obsah :-(
Proč by měl útočník měnit DOM? Pro dosažení takřka stejného efektu mu stačí META HTTP-EQUIV=„refresh“ s rozumně dlouhou dobou do refreshe. Naopak to ještě bude mít výhodu, že browser změněnou stránku zvýrazní, protože se změnila – uživatele to ještě dál přesvědčí o tom, že byl prostě odhlášen po delší době nečinnosti…
Tento „refresh“ sa dá vo Firefoxe jednoducho zakázať. http://i5.photobucket.com/albums/y159/twilight7609/screenshot_1.jpg (tretie zaškrtávatko zhora).
Zjištění historie bez problému? To nejde ani s javascriptem, jde se jen v historii posouvat.
https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
Sakra, v HTML5 půjde javascriptem historii měnit (!!!). Někdo by jim měl vysvětlit, že je to bezpečnostní díra jak prase.
Aha, jo, máš pravdu, zjistit o URL, jestli je v historii, jde requestem na obrázek z CSS. To mě nenapadlo. Není to ale úplně to samé jako kdyby si skript mohl vypsat URL v historii jak jdou za sebou – to by bylo horší; jde prostě (s JS i bez něj) zjistit, jestli mám konkrétní URL někde v historii, nebo ne.
to je hezky, ze mas patent na rozum …
https://addons.mozilla.org/en-US/firefox/addon/722/
v 1.9.9.81
+ Experimental blocking of page refreshes happening inside untrusted
unfocused tabs, should provide protection against Aviv Raff's scriptless
„tabnabbing“ variant. Enabled by default, can be controlled through the
noscript.forbidBGRefresh about:config integer preference:
0 – no blocking
1 – block refreshes on untrusted unfocused tabs
2 – block refreshes on trusted unfocused tabs
3 – block refreshes on both trusted and untrusted unfocused tab
Address patterns matching pages which shouldn't be affected can be
listed in the noscript.forbidBGRefresh.exceptions preference
ok, takže pokud vezmu argumentaci o falešném bezpečí za výchozí, tak vlastně jediná správná odpověď je zavést certifikaci stránek a kontrolní ministerstvo Internetu, které bude ručně ověřovat identitu autora a současně bude mít možnost nebezpečné stránky blokovat
… nebo je to jinak?
Nikoliv. Nikdo přece neříká, že nebezpečí je nutné eliminovat. Stačí o něm šířit osvětu. Již v dětství vás pravděpodobně poučili, že skokem ze střechy si můžete ublížit. Nebo jste zastáncem toho, že je potřeba navrhovat domy tak, aby se při skoku ze střechny nikomu nemohlo nic stát? Já jsem zastáncem osvěty – skok ze střechy může zabít, horké nápoje mohou popálit, řetězová pila řeže dřevo i nohy, soustruh má dost síly nejen na řezání železa, ale i na trhání kusů masa, bez přístupu vzduchu se lidé dusí, páka je úžasná věc a i s malou silou se pak dá ustřihnout prst, spolknutý hřebík může zabíjet,… vyzrazený pin může skončit krádeží peněz, ukradené heslo může skončit ztrátou peněz nebo emailového účtu atd.
Asi jsem divnej, ale nikdy mě nenapadne (s výjimkou vyhledávačů) vyplňovat něco do jiného formuláře, než toho, který jsem právě teď dostal http spojením.
Tedy, pokud bych např. při prohlížení tabů narazil na přihlašovací formulář GMail (jako, že GMail nepoužívám), tak ho automaticky zavřu. A kdybych se zrovna opravdu potřeboval přihlásit, tak ho stejně zavřu a znovu načtu v novém tabu. Dělám to tak už čtrnáct let (tedy, dříve samozřejmě s okny, taby nebyly).
Díky za upozornění.
V rámci omezení recyklace tabů ( s cílem zisku pocitu falešného soukromí ) se snižuje i riziko této novinky.
Asi přepnu otevírání tabů ve FF do stavu co byl v 3.5 (nové taby úplně nakonec)
Pak je jakýkoliv přihlašovací formulář co „přijede z prava“ podezdřelý.
Ta falešná stránka Rootu budu pořád ukazovat Root, dokud se na ni někdo kouká.
Jak to říkala moje babička.. hlídaná květinka nevykvete ? tak nějak,
Je nutno přejit na jiný tab a chvíli na něm počkat, tab s Rootem se změní na Facebook. Asi natvrdo, protože tam jsem nikdy nebyl. :-D
Co se banky a emailu týká – na ně vždy chodím přes oblíbené. I když mě email nebo banka odhlásí a zobrazí znovu výzvu na heslo, vždy rovnou klikám v oblíbených, nebo rovnou zavírám tab a otevírám nový. Navíc mě trochu překvapuje, že někdo s „TabNabbing“ vůbec ztrácí čas, spíš jsem vídal stránky, které nenápadně otevřou další tab s „webmailem“, nebo ukradnou některý existující. Kupříkladu Firefox měl s tímhle před cca 2 roky problém – stránka si zjistila, zda je otevřený tab s gmailem a pokud byl, tak v něm otevřela jiný web, který se tvářil jako přihlašovací stránka gmailu. Rychlé a spolehlivější než „TabNabbing“, protože se podvodná stránka objevila v záložce, kde skutečně předtím byl gmail. Akorát si už dnes nepamatuji, zda to byl problém Firefoxu samotného, nebo nějakého pluginu na správu záložek.
Na eBanking používám záměrně jiný prohlížeč než ten, který používám na vše ostatní. Navíc je to vždy stylem „přihlásit, zadat příkazy, odhlásit, zavřít“. Totéž se týká hlavního soukromého a pracovního e-mailu (tam jde tedy většinou o samostatný mailer, ale pokud už musím využít webové rozhraní, používám jiný prohlížeč). A tam, kde se přihlašuji v „běžném“ prohlížeči, jsou stejně nepodstatné věci jako root.cz, různá zájmová fóra, nějaké dočasné maily sloužící k registraci atd. I kdyby mi tam někdo ukradl identitu, tak ze mne maximálně udělá idiota v diskusích a to se dá přežít – koneckonců každý ho ze sebe udělá občas sám a zcela dobrovolně. ;)
Výše uvedené přitom není dáno nějakým paranoidním přístupem k bezpečnosti, ale prostou zkušeností s vlastní zapomnětlivostí, nedbalostí apod. Důležité věci tedy vždy radši dělám odděleně, soustředím se na ně a mám na ně samostatné nástroje a aplikace.
Myslím si, že by se to dalo vyřešit nějakým „login managerem“. Jak psal v článku pan Malý, Roboform s odhalením velice pomůže. Mohlo by být zajímavé upravit správce hesel v prohlížeči tak, že pokud by detekoval přihlašovací formulář, v záhlaví by zobrazil tlačítko „Login to this page“ i když by neměl heslo ještě uložené (dělá to tak LassPass). Po kliku na tlačítko by se otevřel dialog, tam by uživatel jméno a heslo vyplnil a dialog by zajistil odeslání a přihlášení. Pak by login dialog mohl provádět analýzu:
Pokud by se to uživatelé naučili používat, vyřešilo by to jak tento tabnabbing, tak i klasický phishing.
Nemusí to být nutně jenom přihlášení, útočník může simulovat i jiné části rozhraní webové aplikace. Další vykřičník, u kterého není hned jasné, co znamená, běžný uživatel nepochopí, bohatě stačí že musí tohle řešit u certifikátů. Prostě je potřeba řešit příčinu (stránka se může nepozorovaně změnit a vydávat se za jinou, navštívené URL se dají poznat podle barvy odkazu) a tyhle věci ošetřit.
Certifikáty má dobře vyřešené Chromium: když není cerifikát nainstalovaný, ukazuje se místo http se zeleným zámkem http červeně s červenou lebkou. Od uživatele se nedá čekat, že bude umět spolehlivě rozlišovat ze signalizace víc než zelený zámek – dobré, červená lebka – špatné. Dávat k tomu navíc vykřičník s dvěma možnými významy je pro člověka moc složitá úvaha.
Do banky se přihlašovat jedině na jejím webu (musí tam být zelený zámek) a nechodit tam přes odkazy odjinud. Pak nebude s phishingem problém.
Před dvěma dny se mi stalo něco podobného, když jsem byl přihlášen v AdWords. Používám na Macu Chrome a čuměl sem do adressbaru, tam jiná doména a já si vůl myslel, že jde o nějaký bug :)
Díky panu Malému za napsání tohoto článku. Díky němu jsem si okamžitě změnil všechna důležitá hesla. Stejnak už to bylo potřeba :)
Ještě bych rád podotknul, že se rozhodně nepovažuju za počítačového analfabeta, ale tohle prostě člověka nenapadne. 99 procent čtenářů Rootu asi ano, ale nás smrtelníky ne, proto jej šiřte dál, mezi své méně počítačově gramotné známé.
Ještě jednou díky panu Malému.