Lukáš Hurych z Twista: Jak jsem pomocí hackingu a sociálního inženýrství získal hesla 70 % mých kolegů
Lukáš Hurych, Chief Portfolio Officer v Twistu
Představte si, že je krásné sobotní ráno a na veřejnost právě unikla kompletní databáze vašich zákazníků. Pořádná noční můra (a nejen z hlediska GDPR)! A ještě dodejme, že se něco takového přihodilo na základě jednoho jediného e-mailu a dvou kliků myší od člena vašeho týmu. Během posledních let se mi už několikrát podařilo získat přístup k soukromým účtům na Facebooku, LastPassu, Googlu, Slacku a mnoha dalších. A dodnes mě děsí, jak moc to bylo jednoduché.
Během té doby jsem si také na vlastním týmu ověřoval, jestli umí čelit skutečnému phishingu, různým druhům sociálního inženýrství, podezřelým USB klíčenkám z ulice a řadě dalších útoků, které si asi sami umíte dobře představit. Dívat se na animovaný dokument o phishingu a pak ho zažít na vlastní kůži je docela rozdíl (i když musím říct, že videa od bank jsou roztomilá). Proto se snažím o těchto hrozbách budovat širší povědomí – a rád bych se podělil o pár příběhů, které by mohly pomoci i vám.
Budu upřímný, hacking a sociální inženýrství mě lákaly vždycky – představa pobytu za mřížemi už mě ale brala mnohem méně. Narušování systémů, které někdo navrhl, mě fascinuje odmala – ať už hledání lidských, nebo technických zranitelností, které systémy mají. Proto jsem brzy začal experimentovat s kolegy. Chtěl jsem prostě jen vidět, jak se nám v této oblasti daří a jak budeme praktickým útokům odolávat. Pokaždé jsem přitom vystupoval jako outsider a nikdy nezneužil osobní informace a příběhy, které o svých kolezích vím.
My geekové se často necháváme unést dojmem, že nás zachrání technologie (šifrování naprosto všeho za pomoci prvotřídních algoritmů). A přitom snadno zapomínáme, že nejjednodušším způsobem, jak někoho hacknout, je využít jeho lidskou zranitelnost.
Příběhy
Podívejme se tedy na pár drsných příkladů. Jen tak, pro ukázku. Rozhodně to neberte jako příručku, jak někoho hackovat – sám se považuji za etického hackera, jehož jediným cílem je rozšiřovat mezi lidmi povědomí o bezpečnosti.
Příběh č. 1: Jak získat přístup k účtu na Facebooku?
Tady to vlastně celé začalo. Napadlo mě, jakou by to asi dalo práci? Vytvořil jsem si falešný e-mail pod příjmením jednoho ze svých kolegů a jména společnosti (něco jako novak.twisto@seznam.cz) a rozeslal jsem e-mail, ve kterém byl odkaz na video o „DJs dnešní doby“ umístěné na Facebooku. Vlastně nic špatného… Až na to, že Facebook nebyl Facebook, ale moje falešná doména „faceboo-k.cz“, která akorát předstírala, že je Facebook – a přitom ukradla veškeré přihlašovací údaje nic netušících kolegů. A to jsem ani nepoužil HTTPS, abych získal „zelený zámek“, který byl v té době v Chromu.
A jakou měl experiment úspěšnost? Přihlašovací údaje k účtu na Facebooku mi dobrovolně odevzdalo přes 70 % kolegů. To byla chvíle, kdy jsem se opravdu vyděsil. A rozhodl se, že chci začít lidi upozorňovat na varovné signály a pomáhat jim vyhnout se podobným útokům, nebo alespoň snížit tuto pravděpodobnost na minimum.
Příběh č. 2: Vyšší level – získejte přístup k LastPass
Pokud jste ještě neslyšeli o LastPass nebo 1Password: jsou to jednoduché nástroje pro správu hesel, které umožňují vygenerovat náhodné heslo pro každou službu, kterou používáte. Což je podle mě ten nejlepší způsob, jak hesla spravovat. Pokud by se náhodou stalo, že některé ze služeb v budoucnu uniknou vaše data, nemusíte nikde hesla měnit, protože se jednoduše nikde neshodují.
Jednou ze skvělých funkcí správce hesel je také to, že můžete svá hesla bezpečně sdílet s kolegy. Představte si, že vám jednoho dne přijde e-mail od vašeho CEO, ve kterém s vámi sdílí heslo, vy kliknete na „přijmout“ a ocitnete se na stránce, kde stojí váš předvyplněný mail. Nic vám nepřijde divné, protože takhle v podstatě LastPass funguje – je potřeba se pokaždé nově přihlásit, abyste mohli pozvání přijmout nebo si třeba prohlédnout svá hesla. Stačí vyplnit heslo – a jste tam.
Jenže co když to není váš účet na LastPass? Co když jste někomu zrovna prozradili své nejdůležitější heslo, to, které chrání a šifruje všechna vaše ostatní hesla, údaje ke kreditce a tak dále? Pokud nemáte žádný jiný stupeň zabezpečení jako třeba ověření přes telefon, jste v koncích. Protože útočník teď zná naprosto veškerá hesla, která kde máte.
O tom byl přesně můj další experiment. Otázka byla jasná: dokážu z lidí vyloudit jejich nejdůležitější hesla? Použil jsem podobnou taktiku jako u Facebooku, tentokrát jsem ji ale ještě o něco vylepšil: předstíral jsem, že jsem CEO Twista a že jsem manuálně předvyplnil e-mail pro každého kolegu, abych mu usnadnil práci. A také jsem konečně začal používat HTTPS kvůli znaku zabezpečení.
Mimochodem, použití zabezpečené komunikace automaticky neznamená, že komunikujete se správnou stránkou. Vždy byste měli dávat pozor zejména na URL, zda je to skutečně web, kterému důvěřujete (a případně zda obsahuje certifikát s rozšířeným ověřením a obsahuje název společnosti, jako tomu je např. u Twista nebo u bank a dalších velkých společností).
Jak jsem dopadl? Napálil jsem desítku lidí. Desítku! Co to znamená?
- deset hlavních hesel k LastPass účtu
- 210 hesel k jejich online službám
- 7 přístupů k internetovému bankovnictví
- 10 kreditek
Počítám, že asi není nutné zdůrazňovat závažnost takového úniku. A to ani nešlo o nic sofistikovaného, bylo to strašně jednoduché.
Ano, vím o tom, že banky se poctivě snaží veřejnost o hackingu a phishingu informovat, ale bohužel to nestačí. Je opravdu něco jiného dívat se na animované video a ten útok skutečně zažít. Tetelil jsem se radostí, když ke mně po jednom z mých experimentů přišel kolega a řekl: „Fakt jsem si myslel, že mám přehled a všem popisovaným online útokům se dokážu bránit, přece nejsem hlupák. Ale evidentně nemám, díky, žes mi to objasnil.“
S velmi podobným setupem (více či méně sofistikovaným) se mi podařilo získat přístupy do dalších služeb jako Slack, Google Drive, GitHub nebo Zendesk.
Požadavky na heslo ≠ bezpečné heslo
Známe to všichni:
- délka 8 znaků
- 1 velké písmeno
- 1 číslice nebo speciální symbol
S takovými pravidly máte asi 3 026 000 000 000 000 000 různých kombinací hesel. Znamená to, že je vaše heslo bezpečné? To záleží. Co když má uživatel nějaké oblíbené slovo jako „weapon“ a vy mu řeknete, že heslo musí obsahovat jedno velké písmeno? V 90 % případů z něj bude „Weapon“. A když mu povíte, že musí obsahovat číslo? Znova – v 90 % případů to bude na konci, takže Weapon90. Připomíná to nějaké heslo, které jste už někdy použili nebo pořád užíváte? V takovém případě byste ho měli co nejdřív změnit. Pokud postupujete podle stejného mechanismu, jaký jsem výše popsal, už se ocitáte na 80 000 000 000 kombinacích. A to už není s hrstkou pronajatých grafických karet (GPU grid) z Amazonu žádný oříšek.
Chcete zjistit, jestli některé z vašich hesel někdy uniklo na internet? Vřele doporučuji zkusit službu have i been pwned? Přihlásíte se k notifikacím, a pokud se někdy stanete obětí úniku dat, dostanete upozornění. Samotného mě překvapilo, kolikrát jsem už to upozornění obdržel.
Měli bychom vždy myslet na to, že zabezpečení systému nebo heslo nejsou všechno. V mnoha případech je nejslabší složkou zabezpečení samotný uživatel, a toho umí porazit i ta nejjednodušší metoda.
Příběh č. 3: Hacknutí online obchodu s příjmy více než 300 milionů a přístup ke všem zákaznickým datům
Mám jednoho kamaráda. Ten kamarád vlastní online obchod s příjmy více než 300 milionů korun, což z něj dělá velkého hráče na českém trhu. Jednoho dne jsem mu zavolal a zeptal se ho, jestli si můžu s jeho e-shopem pohrát a zjistit, jestli nemá nějaké mezery v zabezpečení. Byl si naprosto jistý, že mají bezpečí dat pod palcem, ale dal mi zelenou, že prý to mám zkusit.
O den později jsem měl administrátorský přístup ke všemu: osobním datům zákazníků, objednávkám, maržím, produktům, zásobám, prostě ke všemu. Celou story si nechám někdy na později, protože bych musel zacházet do technických detailů – každopádně mi to zabralo méně než tři hodiny. Na tomto příkladu jsem jen chtěl ukázat, že ne vždy jde o phishing nebo sociální inženýrství, ale i o pár maličkostí, chybiček, které se mohou objevit v každém systému. Ale o těch si více povíme někdy jindy.
Anatomie útoku
Při všech svých „útocích“ se držím jasného postupu:
- Začínám na konci (definuji, jaký je můj cíl, a pracuji odzadu).
- Dělám si rešerši (možné kanály útoku, jednotliví lidé apod.).
- Vybírám vhodné nástroje.
- Vyvíjím a testuji funkcionalitu.
- Spustím experiment + učím se na datech (co funguje a nefunguje) + průběžně pokus aktualizuji.
To je mimochodem příklad, jak by se mělo vše ideálně vyvíjet. Sleduju datovou analytiku, a když vidím, že uživatelé nereagují, snažím se upravit „zákaznickou zkušenost“ tak, aby byl proces jednodušší. Tento postup jsem si přinesl ze svého marketérského a produktového působení. Snažíme se neustále zlepšovat konverzi a hledáme hypotézy, jak toho dosáhnout nebo jaký obsah můžeme nabídnout svému publiku, aby s ním rezonoval.
Pokaždé myslím na to, aby měl zákazník tu nejlepší možnou zkušenost. Kombinace technologií, UX a marketingu je něco, čemu říkám ideální hackerský mindset.
Ve Twistu se na UX zaměřujeme pokaždé, když tvoříme něco nového. Nejsme perfektní – ale vždy se ze sebe snažíme dostat maximum.
Počítejte s tím, že útočník nemusí být žádný sofistikovaný hardcore hacker. Ti dnešní nejsou takoví, jaké znáte ze starých filmů (nesedí u obrovských černých obrazovek plných zeleného textu někde ve sklepě). Může to být úplně obyčejný kluk, který vysedává ve Starbucks.
Poučení pro příště
Kdybych měl vybrat pět věcí, které si můžete z tohoto textu odnést, byly by to následující:
Největším přítelem je selský rozum
Když zvětříte něco podezřelého, buďte opatrní. Ve většině případů jde jen o selský rozum. Proč by měl najednou Facebook chtít vaše heslo, když jste přihlášení skoro nonstop? Proč s vámi chce něco důležitého sdílet kolega, se kterým téměř nejste v kontaktu?
Bdělost je vaše největší zbraň
Je extrémně důležité informovat o hrozbách vaše kolegy a přátele. Ukažte jim, co se může stát, jak drsná je realita.
Vy si musíte být jistí vždycky, ale útočník jen jednou
Nejhorší je, že útočníkovi stačí, když jeden člověk uklouzne, a tím tak prozradí vše, co je k úniku dat třeba. Z pohledu firmy je ale zapotřebí být ve střehu neustále. Nemůžete si dovolit ani jednu jedinou chybu.
Bavte se
Zjistil jsem, že přicházet s novými způsoby útoků a testovat je v realitě, je vlastně docela zábava. Pokud získáte souhlas kolegů, mohu to jen doporučit. A pokud to myslíte vážně, doporučuji najmout si externí testovací firmu.
Nabídněte 100% uživatelskou zkušenost (a využijte ji pro dobro)
To je něco, čemu fakt věřím. Proč by měl někdo udělat jeden klik navíc, když nemusí? Vždycky myslím na to, aby konverze byla pokud možno stoprocentní. A proto musí být uživatelská zkušenost co nejjednodušší.
A nezapomeňte, že nejde jen o bezpečný kód, ale také o lidi. Na jejich informovanost je zapotřebí se zaměřit především.