Hacking není akční film, ale zdlouhavá manuální práce, říká etický hacker

Další článek

V reakci na častější využití online služeb nabízí ESET kapacity svých penetračních testerů. Někdy se o nich mluví také jako o etických hackerech, protože používají stejné techniky jako kyberzločinci.

Jak tato práce vypadá ve skutečnosti? Zeptali jsme se Tomáše Ležoviče, jednoho z našich etických hackerů.

Co jako penetrační tester přesně děláš?

Naší prací v podstatě je najít zranitelnosti v různých systémech. Většinou jsme zašití někde v bankách nebo jiných institucích. Testujeme také interně naše vlastní produkty a služby.

Vyhledáváme zranitelnosti, tedy slabá místa, která se dají zneužít. Ty nejčastější se opakují už desítky let.

Jak takový test v praxi probíhá?

V rámci penetračního testování existuje víc oblastí, kterým se můžeme věnovat. Nejčastěji jde o sociální inženýrství, webové nebo mobilní aplikace, popřípadě nějaká infrastruktura nebo síť. V nich pak zkoušíme najít slabá místa, která by se dala zneužít.

Můžeš nám tyto oblasti přiblížit? Začneme sociálním inženýrstvím.

V případě sociálního inženýrství se chce zákazník, řekněme nějaká banka, ujistit, že má dobře nastavené procesy. Zaměstnancům například posíláme podvodné e-maily, telefonujeme jim, případně zkoušíme i fyzický průnik, což je ale hodně výjimečné. Nejzábavnější jsou telefonáty. Cílem je přesvědčit zaměstnance, aby s vámi spolupracovali. Může nám dát například přístup do počítače nebo prozradit citlivé údaje. 

Druhou kategorií byly webové a mobilní aplikace. Co testuješ u nich?

Jde o nejčastější skupinu, kam spadají třeba e-shopy. Není to tak dávno, co vstoupilo v platnost nařízení GDPR, takže se firmy chtějí ujistit, že jim nemohou žádné citlivé údaje uživatelů uniknout.

Nedávno se nám z jedné zasedačky podařilo dostat do sítě mezinárodní společnosti z finančního sektoru až na globální úroveň.

Poslední zmíněnou oblastí byla infrastruktura a síť.

Tahle oblast se trochu prolíná se sociálním inženýrstvím a někdy i s fyzickým přístupem. Firmy chtějí zjistit, zda jsou dobře zabezpečené z hlediska infrastruktury. Většinou to vypadá tak, že přijdeme s notebookem k nim do kanceláře, připojíme se do sítě a zkoušíme, kam až se dostaneme. Občas představujeme účastníka pracovního pohovoru, který se připojí do sítě pro návštěvy. Chvíli jsme sami v místnosti, k dispozici máme internetovou zásuvku a zakoušíme, kam se dostaneme.

Nedávno se nám z jedné zasedačky podařilo dostat do sítě mezinárodní společnosti z finančního sektoru až na globální úroveň. Měli jsme přístup i do zahraničních poboček, dostali jsme se k datům, kamerovým záznamům a podobně. Na takovýto útok je potřeba mít nějakou technologickou znalost a také odvahu, protože člověk musí fyzicky sedět v pobočce. 

Jak dlouho trvá penetrační test?

To je hodně individuální, ale zkusím dát alespoň přibližný odhad. V případě běžného e-shopu, který není složitý, je to tak pět až sedm dní, pokud mluvíte o testu webové aplikace. Pokud bychom přidali i sociální inženýrství, tak na přípravu podvodných e-mailů a telefonátů je třeba další tři až čtyři dny, a při testování infrastruktury je to přibližně na dva až tři dny, protože je nutné fyzicky přijít k zadavateli a potom také analyzovat získaná data. 

Jak často jste během testů úspěšní?

To záleží, jak si definujeme cíl. To, že se například přes e-shop dostaneme přímo do administrace systému, se nestává tak často. Je to možná desetina případů. Většinou nacházíme běžnější zranitelnosti, které nejsou až tak závažné, ale útočník by je mohl i tak zneužít. Pokud si nadefinujeme jako cíl infiltraci, tak se přes e-shop snažím získat přístup k nějakému serveru. To se ale podaří zřídka, možná tak v 5 % případů.

Přesto, to není malá úspěšnost. Pokud v 5 % případů dokážeme získat úplnou kontrolu nad serverem, a v jednom z deseti případů získáme nějaká data.

To je pravda, ale  z pohledu útočníka není ani tak důležité, na koho útočí, ale jakou zranitelnost přitom použije. Řada e-shopů využívá volně šiřitelné frameworky a pokud se objeví chyba, hackerovi stačí vyhledat si e-shopy s konkrétní verzí daného frameworku. Google mu je jednoduše najde, útočník má ihned k dispozici seznam potenciálních cílů, na které může útočit a bude úspěšný. Reálné útoky se dějí nejčastěji právě takto. 

Stalo se, že nějaký projekt prošel tvým testem jako bezpečný a následně ho někdo "hacknul"?

Nám se to naštěstí ještě nestalo a držíme si v tomto směru čistý štít. Teoreticky to je samozřejmě možné. Z části je to dané i zadáním testu. Když se jedná o tzv. blackbox test, máme v zadání jen URL adresu a nevidíme do nitra systému. Pak je větší šance najít po našem testu zranitelnost, obzvlášť pokud útočník daný systém zná delší dobu i zevnitř.

Jak si vůbec představit tvojí práci? Běžný člověk si asi představí člověka za počítačem, který dokáže z jedné místnosti na počkání hacknout státní instituce jako v akčních filmech.

To je běžná představa, ale dost mimo realitu. Zkusím to ilustrovat na příkladu e-shopu. Většinou dostaneme jen URL adresu obchodu, abychom simulovali chování uživatele. Potom začíná nezajímavá práce, je to strašná „piplačka“. Procházíme zdrojový kód, analyzujeme jednu stránku za druhou, vyplňujeme všechny formuláře a zkoušíme všechny možné funkce tak, jak by neměly jít využít. Není to tak, že si sednu za počítač, začnu psát na klávesnici a vyběhne mi „přístup povolen". Je to zdlouhavá práce. 

Základním zranitelnostem se dá snadno vyvarovat.

Představa, že hacker píše do příkazového řádku příkazy a přitom hlásí, že prošel první či druhou vrstvu, je teda iluze?

Řekl bych, že ano. Toto se děje leda při testu infrastruktur, kdy se snažíme dostat přes nějaké vrstvy, jako firewall a podobně. Připojíme se do dostupné sítě a snažíme se skrze ni dostat do vnitřních systémů, kam bychom přístup mít neměli. Není to však časté a běžných lidí se to moc nedotkne. Základním zranitelnostem se dá vyvarovat snadno.

Zkusme být konkrétnější. Dá se přes jednoduchou podstránku dostat do systému firmy?

Není to tak časté, ale ano. Zrovna teď řešíme případ, kdy se z jediné jednoduché podstránky podařilo dostat do celého serveru. V rámci pravidel etického hackingu bychom se v tomto bodě měli zastavit, protože jsme mimo testovaný předmět (tedy mimo webovou stránku). Kontaktovali jsme však klienta, zda můžeme pokračovat a on nám to dovolil. Zkoušíme se tedy dostat ještě dál. 

Z jednoduché produktové podstránky se dá dostat na server firmy? To je šokující informace! Jsou tvůrci stránek tak nepozorní?

I pro mě to byl šok, když jsem s penetračními testy začínal. Dnes vidím, že je to celkem běžné. Určitě za to může i nepozornost vývojářů, ale podle mě jde hlavně o nevědomost. Firmy si často najímají vývojáře z řad absolventů škol. Ti ale často nemají zkušenosti z bezpečnostního hlediska. Většinou dostanou zadání, aby něco fungovalo určitým způsob, a to splní. Navíc to nadřízení chtějí co nejrychleji a nejlevněji. Neuvědomují si ale, co všechno za tím je.

My vyhledáváme zranitelnosti, tedy slabá místa, která se dají zneužít. Ty nejčastější se opakují už desítky let. Od vzniku iniciativy OWASP vychází každé dva roky žebříček nejčastějších zranitelností a jsou pokaždé ty samé věci. Mění se prakticky jen pořadí. 

Pokud by si vývojář pročetl tento seznam, dokázal by předejít chybám?

Určitě. Minimálně těm základním chybám, které dovolují dostat se k dalším. Ono je to většinou řetězová reakce. Na začátku stačí malá chybička, od které se dostaneme dál. Pokud by vývojáři eliminovali alespoň tyto základní chyby a možná měli pár školení bezpečnosti, určitě by to zvýšilo bezpečnost aplikací a stránek.

Netrpíš profesionální deformací? Když nakupuješ na internetu, hledáš chyby a potom kontaktuješ zákaznický servis daného obchodu?

Deformace tam určitě je, minimálně ty základní řetězce zranitelností si vyzkouším vždy. Na druhé straně s psaním na zákaznický servis je to složité, protože je tam otázka hranice zákona. Pokud bych se skutečně dostal do systému a nahlásil, mohou se k tomu postavit dvěma způsoby. Buď mi poděkují a opraví to, k čemuž slouží i tzv. bug bounty – tedy odměny za nalezení zranitelností. Ale mohou se do toho také zapojit právníci.

Myslím, že v Maďarsku byl případ, kdy se jeden hacker dostal za něco podobného do vězení, přestože zranitelnosti ihned ohlásil. 

Útočil si v rámci penetračního testování i na konkrétního člověka? Například, dostat se do počítače konkrétního CEO?

V rámci sociálního inženýrství máme i cílené útoky. Většinou to není jeden člověk. Obvykle dostaneme seznam například pěti lidí, a na nich zkoušíme techniky sociálního inženýrství. Paradoxně to často nebývá CEO, nebo top management, ale lidé, kteří mají oprávnění v systémech. Nezřídka to bývá HR oddělení, které má přístup k lidem a jejich osobním údajům. Někdy nám je jich až líto, protože jim voláme s tím, že se je pokusíme oklamat. Na druhé straně je lepší, když to uděláme my. Skutečný útočník by data zneužil. 

Jeden případ dopadl tak, že účetní poslala 38 tisíc eur útočníkovi. Spam nebo phishing se týkají všech.

Dokážeš pojmenovat nejčastější způsob útoku? Zmiňoval jsi využití zranitelností. Je nějaká další aktivní taktika, jak se dostat do systému?

Krom zranitelností jde zejména o techniky sociálního inženýrství a úplně nejběžnější je spam nebo někdy složitější phishing. S tím se setkal asi každý, kdo má e-mailovou schránku. Pokud někomu přijde takovýto e-mail, pravděpodobně se zasměje a vůbec si neuvědomí, že jde v podstatě o útok. Měli jsme případ, kdy paní na obecním úřadě reagovala na e-mail v lámané slovenštině, který měl v hlavičce podpis nadřízeného. Vyměnili si pár zpráv a skončilo to tak, že účetní poslala 38 tisíc eur útočníkovi. Spam nebo phishing se týkají fyzických osob, firem i státních institucí, a točí se v nich nemalé peníze. 

O infiltraci do firem už jsme mluvili. Existují nějaká praktická pravidla, která by měl běžný uživatel znát?

V první řadě se vždy zamyslet, zda ten, kdo po mě žádá nějaké údaje, je doopravdy potřebuje. Když například nakupuji v e-shopu, na co by potřebovali rodné číslo? Dalším doporučením je mít do každé služby jiné heslo, protože úniky přístupových údajů jsou opravdu běžné. To opakujeme pravidelně, ačkoli toto patří k nejčastějším problémům. Pokud mám v každé službě stejné přístupové údaje, stačí jediný únik a útočník má přístup do celého mého života.

Dobré je nezveřejňovat zbytečně svou e-mailovou adresu, i když sama o sobě použitelná není, protože pokud ji útočníci neznají, nemohou na ni posílat podvodné e-maily. Je potřeba si dávat pozor i na odesílatele e-mailů. Nestačí se podívat na jméno odesílatele, ale i na e-mailovou adresu a podobně. To jsou nejčastější doporučení. Obecně platí, že je třeba být ostražitý.

Vnímáš pozitivní trend v oblasti bezpečnosti, ať už ve firmách nebo u uživatelů obecně?

Firmy si určitě dávají větší pozor. Čím dál častěji využívají i penetrační testování a záleží jim na bezpečnosti vlastních systémů. Na druhé straně nevidím zlepšení u vývojářů. Tam je to bohužel stále stejné. Určitě se zlepšuje technické zabezpečení jiných stran, které ale lidé nevnímají, například zabezpečení internetových prohlížečů. V minulosti probíhalo hodně útoků právě přes prohlížeč. Dnes vás alespoň upozorní, pokud je nějaká akce potenciálně nebezpečná. Technická stránka se zlepšuje, ale lidé zůstávají lidmi. A s tím je třeba počítat.


Kdo je Tomáš Ležovič?

V minulosti pracoval jako vývojář webových a mobilních aplikací pro mezinárodní leteckou společnost. Právě tam poprvé podlehl kouzlu internetové bezpečnosti. Zaujala ho natolik, že se dnes bezpečnosti věnuje jako penetrační tester v ESETu.