Jednou z největších událostí, které rozvířily hladinu světa síťové bezpečnosti, se během několika uplynulých dnů staly zprávy o krádeži databáze hesel populární služby LinkedIn. Různé spekulace se předháněly v prognóze katastrofických scénářů a na provozovatele zmíněného webu jednotlivé články i diskuze snášely někdy až přespříliš kritické reakce. Kompromitace hesel patří mezi nejvážnější témata současného Internetu, a tak se není čemu divit. Čeho se tedy bát nejen dnes, ale i do budoucna?
Pokud vás kauza ukradených hesel LinkedIn z jakéhokoliv důvodu minula, pak doplňme, že podle prvních informací hackeři získali více než šest milionů hesel, samozřejmě však nikoliv přímo v otevřené podobě, ale jen formou odpovídajících otisků v podobě hash kódů. LinkedIn potvrdil, že se jedná o hashe korespondující s hesly uživatelských účtů v rámci této služby, postupně se útočníkům daří prolamovat jednotlivé hash kódy, které jsou součástí této databáze. Ještě doplňme, že útočníci si databázi s potenciálními hesly nenechali pro sebe, ale lze ji na webu získat.
Při vytváření takovýchto otisků v databázích na serverech se využívá několika základních vlastností hash kódů. Tou první je jednosměrnost, kde pro silnou hashovací funkci, s výhodou lze posílat nebo uchovávat heslo v podobě výsledného hash kódu a při autentizaci tento otisk porovnávat s otiskem uživatelova aktuálního vstupu. Na minimum se tak omezí použití nezabezpečené plain-text formy, která sama o sobě svádí ke všem variantám útoku man in the middle.
Hash kódy na serverech LinkedIn a dalších dále těží z bezkoliznosti (odlišit lze různé úrovně), která připřípadné autentizaci porovnáním výsledných hash kódů dokáže zajistit, že heslo bude akceptováno právě tehdy, když je zadáno správně. Správný hash kód totiž díky bezkoliznosti mohl vzniknout pouze ze správného hesla. U hashovacích funkcí navíc musí fungovat takzvaný lavinový efekt, kdy malé změně vstupu odpovídá velká změna výstupu, takže i v případě, že by se dvě náhodně vybraná hesla hodně podobala, nebude možné ze znalosti hash kódu jednoho odvodit otisk toho druhého. Tolik teorie, praxe je samozřejmě, jak tomu již bývá, o něco méně veselá.
Hash kódy jsou nechvalně známé také s ohledem na speciální (extrémně slabou) LM variantu ve Windows XP. Prolomení je možné i pomocí webu
Jak se na hashe útočí?
Díky výše uvedeným parametrům z oblasti teorie hashovacích funkcí je možné analyzovat hlavní problémy uniklé databáze hesel služby LinkedIn. Jedním z nich pohledem moderní bezpečnosti je nepoužití takzvané soli při ukládání do centrální databáze. Obecně totiž může nastat situace, kdy si dva uživatelé zvolí stejné heslo, a tedy také výsledné hashe budou stejné. Tomu se dá snadno zabránit takzvaným solením, při němž se otisky počítají z hesel doplněných o nějakou další hodnotu (tedy právě takzvanou sůl), takže i když dva uživatelé budou mít stejné heslo, odpovídající otisky budou odlišné.
Provozovatelé LinkedIn však podle dostupných informací k takovéto ochraně nepřistoupili, a tak mají útočníci průběžně při louskání ušetřenou práci tím, že mohou odhalit hesla pomocí identických otisků pro stejná hesla. Pokud by šlo o databázi obsahující několik málo záznamů, nemá toto usnadnění příliš velký význam, nicméně v případě položek v řádu milionů, lze již daný princip efektivně využít.
Pro vytvoření hash kódů v databázi hesle LinkedIn byl použit algoritmus SHA-1, tedy zástupce skupiny algoritmů pocházejících z dílen NSA (National Security Agency). První verze byla navržena roku 1993 a oficiálně nesla právě označení SHA. Později se však pro ni vžilo spíše označení SHA-0, aby nedošlo k záměně právě s jejím následníkem SHA-1. Pro běžné uživatele není lámání obecných hash kódů příliš jednoduché, nicméně použití specializovaných nástrojů (typicky se slovníkem pro jednoduchá hesla), lze triviálnější varianty prolomit za poměrně krátký čas.
V rámci profesionálních útoků je možné použít například koncept duhového útoku, k němuž jsou na k dispozici speciální programy a tabulky. Jedná se o doplněk slovníkového či bruteforce útoku, který může značně usnadnit především lámání většího množství hashů. Efektivitu duhových útoků si můžete ověřit pomocí duhových tabulek projektu RainbowCrack. Zvládne rychlé útoky hlavně na často využívané LM, NTLM, MD5 nebo právě SHA-1 hashe.
Generování tabulek pro úspěšné prolomení hash kódů představuje časově velice náročný úkol, a tak se kromě distribuovaných výpočtů procesory využívají také grafické čipy. Výpočetní výkon však značí pouze jednu z více překážek, zpomalení s sebou nese i procházení, čtení/zápis výsledných stovek gigabajtů dat. Útočníci často využívající síťové služby pro profesionální ataky na hash kódy postupem času získaly silnou zbraň v podobě ukládání tabulek na SSD disky, které lámání značně zrychlí.
Na blogu LinkedIn jsou k dispozici průběžné informace, nyní hlavně o daném bezpečnostním incidentu
Varování i do budoucna
Jakmile dojde ke kterémukoliv bezpečnostnímu incidentu, tím spíš v případě natolik rozsáhlé webové služby, kterou je právě LinkedIn, musí být přijata odpovídající opatření a uživatelé dostatečně informováni. Pokud si však nyní jako běžný návštěvník otevřete danou domovskou stránku, tak vás žádné nepřehlédnutelné varování (typicky například o změně hesla) nečeká, homepage má standardní podobu a nabízí registraci nebo přihlášení.
Podobně jako v případě velkého množství podobných služeb zdarma, ukrývají se také zde v podmínkách použití sekce o zřeknutí se jakékoliv odpovědnosti v případě problémů s LinkedIn. To, že s podmínkami je zapotřebí souhlasit během vytváření účtu, snad ani netřeba zmiňovat. Odhaduji, že si maximálně jeden z deseti uživatelů při registraci do libovolné webové služby před odsouhlasením detailně pročte všechny podmínky užívání služby, stejně tak v případě instalace programů zdarma. Lamentovat tedy můžeme, nicméně efektivním řešením se v podobných případech bezpečnostních incidentů stává změna hesla nebo zrušení našeho účtu. Od provozovatelů si nic extra nevypláčeme.
Krádež hesel ze LinkedIn je pouze jedním z případů, jejichž množství může do budoucna narůstat. Samozřejmě platí, že čím populárnější služba je, tím vděčnějším cílem se stává – chcete-li vývoj kauzy sledovat nadále, je k dispozici kanál LinkedIn na Twitteru, případně také blog, který se aktuálně plní hlavně odpovídajícími příspěvky.