Twitter odhalil ve svém systému závažnou bezpečnostní chybu – někdy totiž ukládal kopie nešifrovaných hesel svých uživatelů. Ano, čtete správně, hesla byla na disk ukládána v textové podobě.
Každý, kdo se alespoň trochu zajímá o bezpečnost na internetu ví, že ukládání nešifrovaných hesel ve formě prostého textu se zásadně nedoporučuje. Se surovou podobou hesla by měl systém pracovat pouze na úrovni operační paměti, a to jen v případě vytváření či změny uživatele nebo během ověřování v rámci přihlašovacího procesu.
Textová podoba hesla by neměla být ukládána ani do dočasných souborů, které jsou později smazány. Ještě před korektním smazáním totiž může dojít k chybě v programu, k odpojení disku nebo k jiným neočekávaným stavům a soubor s heslem či hesly na disku zůstane.
Hesla by neměla být uchovávána ani ve virtuální paměti, protože se velmi snadno mohou ocitnou v odkládacím souboru na disku. V operačním systému Windows v tomto případě pomůže funkce VirtualLock(), která zajistí „uzamčení“ příslušných bloků paměti ve fyzické RAM – a ty tak neskončí v odkládacím souboru (swapfile).
Opravdu je nutné vyvarovat se jakékoli činnosti, která by vedla k trvalému uložení hesel v prosté textové podobě. A součástí příslušných opatření musí být i jasné NE ukládání hesel do souborů s protokoly. Bohužel přesně toto pravidlo Twitter porušil.
Dobrou zprávou je, že samotná databáze obsahující hesla byla v případě Twitteru naimplementována bezpečně. Twitter využívá hashovací algoritmus bcrypt, který pro zvýšení bezpečnosti i znesnadnění útoků hrubou silou používá opakované pře-hashování s využitím saltů (náhodných posloupností znaků). Díky hashovacím mechanismům, jako je právě bcrypt, je možné do databáze ukládat místo hesel jejich vypočítané hashe a přihlašovací údaje ověřovat právě proti těmto otiskům. Z hashe však nelze získat původní textovou podobu hesla.
Kybernetickým zločincům dokonce příliš nepomůže ani to, pokud se jim soubor nebo databázi s hashovanými hesly podaří ukrást. Musí totiž spočítat hashe pro každé možné heslo (nebo použít slovníky pravděpodobných hesel), výsledky porovnávat se zcizenými otisky a doufat ve štěstí, že takto hesla „uhodnou“ alespoň u některých uživatelů.
Špatnou zprávou v případě Twitteru je, že vysoká míra bezpečnosti poskytovaná funkcí bcrypt byla degradovaná zapisováním původní textové podoby hesel do systémových logů. A pokud se útočníci podívali místo do databáze s hesly do souborů s těmito protokoly, nemuseli nic dešifrovat ani provádět „slovníkové útoky.“
Co s tím?
Twitter tvrdí, že chyba je již opravena a že nic nenasvědčuje tomu, že by došlo k nějakému zneužití nebo narušení dat. Doporučuje pouze, aby uživatelé „změnu svého hesla zvážili.“ Nicméně společnost Sophos je konzervativnější a vyzývá k okamžité změně hesla – ostatně i z toho důvodu, že Twitter nesdělil žádné informace o délce trvání popisovaného bezpečnostního problému, ani o počtu takto omylem shromážděných hesel. Nelze tedy nijak posoudit, kolika hesel se mohl případný únik týkat. Svoji bezpečnost na Twitteru můžete zvýšit používáním tzv. dvoufaktorové autentizace, kterou možná znáte i pod označením ověřené přihlášení. Pro úspěšné přihlášení je nutné zadat i speciální kód na jedno použití, který je zasílán na mobilní telefon uživatele, případně jen tento ověřovací kód na mobilním či jiném zařízení vypočítán. Jinými slovy, samotné heslo pro úspěšné přihlášení nestačí.
Možná se teď ptáte: mám přestat Twitter kvůli této neopatrnosti používat? Takové rozhodnutí je na vás. My si ale myslíme, že okamžitá změna hesla je dostačující.
Zdroj: Paul Ducklin, Naked Security