Autor: .cCuMiNn. | 6.12.2012 |
Důvodem, proč své heslo do vstupního pole nezadáte, bude zřejmě to, že jste si vědomi faktu, že vložené heslo předáváte někomu dalšímu - někomu, koho vůbec neznáte a komu tedy nemůžete důvěřovat. Jak byste se ovšem zachovali v situaci, když by vám někdo poskytnul soubor uniklých hesel v podobě prostého textu a řekl vám, ať se podíváte, zda se mezi nimi nachází to vaše? Dokonce by po Vás dotyčný ani nechtěl znát odpověď, zda seznam vaše heslo obsahuje nebo ne. Podívali byste se?
Toto už je trochu jiná káva, než ohraný trik z úvodu článku. Dovolím si tvrdit, že v tomto případě bych se nejspíš do seznamu podíval i já sám. A proč také ne? Může mě snad nahlédnutí na seznam několika hesel v něčem ohrozit? Budete se divit, ale odpověď zní ano. I prosté prohlédnutí seznamu vás skutečně může o vaše heslo připravit.
Před pár dny se na blogu h43z.blogspot.com objevil příspěvek s názvem „Co je reálné a co nikoliv“, který techniku s prohledáváním databáze hesel posunul do zcela jiné dimenze.
Představte si, že navštívíte webovou stránku, která obsahuje databázi hesel, čísel kreditních karet, nebo čehokoliv jiného a vy se budete chtít podívat, zda se na stránce nevyskytuje i vaše heslo, nebo jiný údaj. Můžete to pak udělat jako moje přítelkyně (na které jsem si účinnost této metody zkoušel), tedy tak, že budete všechny záznamy od shora dolů pročítat, dokud nenarazíte až na konec seznamu. Hmmm… dobré, ale takto asi raději ne. Každý, kdo je v IT alespoň trochu zběhlý, ví, že stačí stisknout klávesovou zkratku CTRL+F a objeví se vyhledávací pole prohlížeče, s jehož pomocí lze najít hledaný řetězec daleko dříve, než by se nám to podařilo postupným procházením seznamu.
No, a to už se dostáváme k jádru pudla. Jste si jisti, že vyhledávací pole, které se objeví po stisku kláves CTRL+F náleží skutečně webovému prohlížeči? Nemůže být toto pole součástí samotné webové aplikace, která je pod dohledem útočníka? Napadlo Vás někdy, že všechny stisknuté klávesy, včetně klávesových zkratek, lze zachytit pomocí JavaScriptu a nadefinovat na ně uživatelské ovladače událostí, které přehluší ty implicitní? Přesně na tomto je totiž útok popsaný ve zmíněném blogu postaven a my si ho blíže představíme.
Začneme popisem kódu JavaScriptu, pomocí kterého je možné stisky kláves odchytit a zabránit vykonání výchozích akcí.
V uvedeném kódu si povšimněte hlavně metody preventDafault(), která je zodpovědná za to, že se neprovedou defaultní akce přidružené konkrétním klávesovým zkratkám. Namísto ní se provede kód, který je uveden na místě komentáře /* definovaná akce */. V námi probíraném příkladu s vyhledáváním hesel je tedy touto definovanou akcí zobrazení vyhledávacího pole, které bude pomocí CSS nastylováno tak, aby se jeho vzhled co nejvíce blížil vzhledu standardního vyhledávacího pole prohlížeče. JavaScript může samozřejmě také zjistit, jaký prohlížeč je právě používán a vzhled tlačítka mu přizpůsobit.
Aby byl uživatel, na kterého je útočeno, nucen zapsat celé heslo a nevyhledával pouze jeho úvodní část, je příklad, na kterém autor blogu tuto metodu demonstruje, doplněn o funkci, která do seznamu přidává záznamy obsahující právě uživatelem vyhledávaný text. Při vyhledávání se pak zdá, že hesel, která obsahují hledaný řetězec je v databázi několik desítek a je proto nutné své hledání více upřesnit vložením dalších znaků. Na metodu onChange() vstupního pole podvrženého vyhledávání pak lze již snadno navázat skript, který bude obsah pole odesílat útočníkovi.
Možná v tuto chvíli namítnete, že sice útočník během kampaně obdrží mnoho různých vyhledávaných hesel, ale nebude mít tušení, k jakým účtům tato hesla patří. To může být sice pravda, ale nemusí přeci jít hned o masový útok. Co když útočník bude cílit pouze na konkrétního uživatele? Pak provede cílený útok zaměřený jen na něj. Může také celou kampaň pojmout tak, že rozešle phishingové e-maily, které budou obsahovat odkaz na stránku s hesly s jedinečnou hodnotou proměnné v URL. K ní může být pevně přidružena e-mailová adresa, na kterou ten který e-mail odešel a útočník lehce spojí adresy a k nim náležející hesla. Fantazii se zde skutečně meze nekladou.
Autor blogu vytvořil jednoduchou demonstraci, na které si můžete popsanou metodu otestovat. Vzhled vyhledávacího pole je v ukázce přizpůsoben prohlížeči Google Chrome a ještě poznamenám, že demo není funkční v Internet Exploreru.
Aktualizace (26.2.2014): Vzhledem k tomu, že odkazovaný web již není funkční, nahrál jsem na tento server svou ukázku pro FireFox
Tak co, nechali byste se nachytat? Osobně této metodě dávám zhruba 80% šanci na získání uživatelského hesla a možná, že se v brzké době začneme střetávat i s dalšími obměnami této sociotechnické metody. Ta totiž může být cílena i na jiné klávesové zkratky. Jedna z variant útoku by pak mohla být navázána například na zktatku CTRL+S sloužící pro uložení obsahu do souboru. Po jejím stisknutí si aplikace v převlečení za hlášku operačního systému může sprostě vyžádat autorizaci uživatele a vložené údaje předá útočníkovi. Oběť ovšem nesmí být stejné BFU jako moje přítelkyně a používání klávesových zkratek jí nesmí být cizí.