3.2
Útoky na hesla
Hesla lze napadnout různými způsoby. Obecně je lze klasifikovat následujícím způsobem:
  • Neelektronické útoky nevyžadují k prolomení hesla hluboké technické dovednosti. Příkladem takových útoků je např. skryté sledování potenciální oběti (tzv. Shoulder Surfing), sociální inženýrství a případně analýza dat z odpadků oběti (tzv Dumpster Diving).
  • Útoky elektronického typu již vyžadují jisté technické dovednosti. Příkladem takových útoků jsou slovníkové útoky (Dictionary Attacks), útoky hrubou silou (Brute-Force Attacks) a útoky pomocí duhových tabulek (Rainbow Table Attacks).
3.2.1
Neelektronické útoky
Definice
Sociální inženýrství je typ útoku, při kterém se útočník snaží zneužít přirozené důvěry lidí vůči ostatním. Zneužitím této důvěry útočník často velmi rychle získá citlivé osobní nebo přímo přihlašovací údaje oběti, které následně využije pro přístup k účtu oběti.
Útoky typu phishing, pharmingwhaling jsou jen některými vybranými příklady. Upozorňujeme, že některé z těchto útoků vyžadují jisté technické dovednosti (např. phishing).
+
11. Proces phishingového útoku
Obr. 11. Proces phishingového útoku
Při útoku založeném na sledování oběti stojí útočník za vámi a pozoruje, jaké zadáváte přihlašovací údaje, které následně zneužije pro přístup k vašemu účtu.
+
12. Příklad útoku založený na sledovaní oběti
Obr. 12. Příklad útoku založený na sledovaní oběti
Při útoku založeném na analýze dat z odpadků oběti se útočník snaží objevit něco cenného, jako je např. heslo nebo PIN k vaší kreditní kartě.
3.2.2
Elektronické útoky
Definice
Slovníkový útok je útok, při kterém se útočník pokouší dostat do systému chráněného heslem pomocí vhodně zvoleného slova ze slovníku s cílem uhodnout heslo pro daný systém.
Tento proces zahrnuje testování všech vytipovaných řetězců z předem připraveného seznamu. Historicky se při těchto útocích používala slovníková slova (odtud výraz slovníkový útok).
+
13. Jak funguje slovníkový útok
Obr. 13. Jak funguje slovníkový útok
Definice
Slovníkový útok zkouší takové výrazy, které se z hlediska úspěchu jeví jako nejpravděpodobnější.
Řada lidí má tendenci volit příliš krátká hesla. Často jde o obyčejná slova nebo běžná hesla, případně varianty získané například přidáním číslice nebo interpunkčního znaménka. A právě proto bývají slovníkové útoky tak často úspěšné.
Vzhledem k tomu, že běžně dostupné slovníky pokrývají většinu typických strategií pro vytváření hesel, je obtížné čelit slovníkovým útokům pomocí nástrojů, které generují vzory umožňující prolomení hesla. Bezpečnějším způsobem je použití nástroje pro správu hesel nebo manuální metody vytvoření delšího hesla (15 a více písmen) nebo víceslovného hesla realizovaného náhodně.
Útoky hrubou silou
Definice
Zjednodušeně řečeno, útok hrubou silou je metoda prolamování hesel, při které útočník zkouší co nejvíce možných kombinací hesel pomocí vytvořené sady parametrů.
Webová stránka může například stanovit omezení, dle kterého musí být heslo dlouhé 8 až 16 znaků. V základní variantě může proces prolomení hesla začínat číslem „00000000“. Pak může vyzkoušet „00000001, 00000010, 00000100“ a tak dále, dokud nevyčerpá všechny možné kombinace znaků.
Hesla tedy mohou obsahovat znaky:
  • malá (anglická) abeceda (26 možností),
  • velká (anglická) abeceda (26 možností),
  • číslice (10 možností od 0 do 9),
  • interpunkční znaménka nebo další speciální znaky (33 možností).
Vzhledem k výše zmíněnému pak lze vypočítat celkový počet možných hesel pro osmimístné heslo: 3 025 989 069 143 040, tedy přibližně 3 kvadriliony, přičemž každé z nich představuje samostatný pokus.
Možná si teď pomyslíte, že někdo vytvoří program, který přejde na webovou stránku, zadá vaše uživatelské jméno a heslo, stiskne tlačítko pro přihlášení a pokusí se uhádnout vaše heslo. Potom stejný proces zopakuje ještě tři kvadriliónkrát. To však není tento případ. Pokud trvá načtení stránky 2 sekundy, znamená to 2 sekundy čekání na každý další pokus o zobrazení stránky s chybným heslem. Jinými slovy, pokud webová stránka sama nezablokuje proces přihlášení po určitém počtu podezřelých pokusů, může to trvat až 9 kvadrilionů sekund, tedy 287,9 milionu let, než by útočník tímto způsobem vaše heslo prolomil. Ve skutečnosti se takový útok provádí pomocí uniklých uživatelských jmen a hesel. Tyto údaje unikly v důsledku krádeže dat (což se stává častěji, než si myslíte). Heslo je pak možné sdělit jedním ze dvou následujících způsobů:
  • Vaše heslo není šifrováno a je uloženo jako prostý text v extrémně málo chráněném prostředí. Útočníkovi pak stačí heslo pouze zkopírovat a vložit (Copy & Paste). Pokud je vaším heslem například „heslo1“, každý, kdo je schopen přečíst obsah uniklých údajů, uvidí „heslo1“. V tomto případě je tedy útok hrubou silou zcela zbytečný, jelikož webová stránka již odevzdala vaše přístupové údaje útočníkovi doslova na stříbrném podnose.
  • Vaše heslo je šifrované a není uloženo jako prostý text v rámci zabezpečeného prostředí. Pokud by webová stránka šifrovala heslo pomocí hashovací funkce SHA-256, zobrazilo by se například „heslo1“ jako 0b14d501a594442a01c6859541bcb3e8164d183d32937b851835442f69d5c94e.
+
14. Útok hrubou silou na hesla
Obr. 14. Útok hrubou silou na hesla
Duhové tabulky jsou speciálním typem útoku hrubou silou umožňující prolomit hesla. Je určen k prolomení hesel uložených v hash formátu. Ve své podstatě jsou duhové tabulky předem vypočítaným seznamem hashů slovníkových výrazů nebo již dříve prolomených hesel. Jsou uloženy v databázi využívající daný hash jako klíč. Existuje zde však jistý kompromis, resp. omezení mezi časem nutným k prolomení hesla a požadovanou velikostí operační paměti. Generování duhové tabulky může trvat dlouho, ale stačí jej provést pouze jednou. Po dokončení výpočtu duhové tabulky můžete vyhledat hash hesla a následně velmi rychle získat příslušné heslo. Abychom si udělali představu o obrovské velikosti těchto databází, některé duhové tabulky mohou mít velikost 7-9 TB.
+
15. Velikosti duhových tabulek z freerainbowtables.com
Obr. 15. Velikosti duhových tabulek z freerainbowtables.com
3.2.3
Nástroje pro odhalování hesel
Nástroje na odhalování hesel jsou v dnešní době stále populárnější, proto si některé z nich projdeme. Nástroje na odhalování hesel se velmi často používají k testování síly hesla nebo přímo ke spuštění nepřátelského útoku. Existuje řada online a off-line nástrojů určených výhradně pro účely odhalování hesel. Cílem online útoků často bývají vzdálená přihlašovací rozhraní, například služby typu SSH (Secure Shell) a RDP (Remote Desktop Protocol). Na opačné straně off-line útoky se objevují po úniku souborů. Poté, co jsou hesla zveřejněna, jsou obratem využita k útoku.
Mezi dostupné nástroje patří například Hashcat, John the Ripper nebo THC Hydra.
Hashcat je multiplatformní program pro obnovu hesel, který pracuje s GPU (Graphics Processing Unit) i CPU (Central Processing Unit). Hashcat byl vytvořen v roce 2009 (distribuován pod licencí MIT (Massachusetts Institute of Technology)) a je uznáván díky podpoře široké škály hashovacích algoritmů, jako jsou LM Hash, NT Hash, MD4 (Message Digest 4), MD5 (Message Digest 5) a mnoho dalších. V době svého vzniku tento program podporoval čtyři různé druhy útoků:
  • Slovníkové útoky: více než 14 milionů hesel, počínaje těmi nejoblíbenějšími a konče těmi nejméně obvyklými. Uhodne heslo, vytvoří jeho hash a porovná hash s heslem, které se snaží prolomit.
  • Kombinované útoky: podobné slovníkovým útokům, ale namísto použití dvojslovných seznamů jako slovníků vytváří nový seznam slov, kde každé slovo je spojené s každým jiným slovem.
  • Maskovací útoky: pokud například víte, že heslo vašeho účtu je dlouhé 9 znaků a končí číslicí, pak víte, že k uhodnutí hesla bude potřeba 52*109 kombinací, což bude trvat přibližně 4 roky. Pokud však víte, že heslo začíná velkým písmenem a končí číslicí, doba se zkrátí na polovinu.
  • Útoky založené na pravidlech: Hashcat dokáže určit, jaký druh hesla má vyzkoušet na základě způsobu, jakým oběť své heslo vytváří.
  • Útoky hrubou silou: Hashcat vyzkouší všechny možnosti, dokud něco nenajde (což obvykle trvá dlouho, protože zkouší všechny možné kombinace).
John the Ripper vydaný pod obecnou veřejnou licencí GNU GPL (General Public License) v roce 1996 je off-line open-source nástroj na zabezpečení, audit a obnovu hesel, který podporuje stovky typů hashů a šifer. Je k dispozici pro různé platformy, což jej umožňuje použít na libovolné z nich. Jak již bylo uvedeno, tento nástroj podporuje řadu typů hash.
Spuštěním programu na různých platformách se mohou jednotlivé typy hashů lišit. Tento nástroj podporuje mnoho režimů luštění (hesel), včetně:
  • Režim seznamu slov (slovníkový útok): V tomto režime zadáte „textový soubor“ so seznamem slov, který by měl být v ideálním případě setříděný a následně se vybraná slova porovnávají s heslem, které se pokoušíte prolomit. Je možné aplikovat různá pravidla.
  • Single Crack: Jedná se o první způsob, kterým se začínají luštit hesla. Úspěšné nalezené heslo je porovnáno se všemi načtenými hesly, aby se ověřilo, zda některý z uživatelů nepoužívá stejné heslo, což celý proces značně urychluje.
  • Inkrementální režim: nejvýkonnější režim luštění, který vyzkouší všechny možné kombinace, ale vzhledem k velkému počtu možných kombinací je časově velmi náročný.
  • Externí režim: jedná se o funkce napsané v jazyce C, které jsou vytvořené nástrojem při jeho spuštění a výsledný kód se použije na vygenerování vhodných kandidátů na hesla.
+
16. John the Ripper v akci
Obr. 16. John the Ripper v akci
Program THC hydra, který v roce 2001 navrhl Van Hauser, je online crackovací program, který ukazuje, jak jednoduché je získat neoprávněný přístup ke vzdálenému počítači. Tento nástroj podporuje celou řadu různých protokolů včetně FTP (File Transfer Protocol), HTTP (HyperText Transfer Protocol), HTTPS (HyperText Transfer Protocol Secure), dále MySQL (My Structured Query Language), Postgress, atd. a různé platformy včetně UNIX, MacOS, Windows a mobilních zařízení. Program dokáže provést paralelní slovníkový útok, útok hrubou silou nebo hybridní útok, paralelní útok na mnoho serverů a mnoho dalších. THC Hydra je uznávána jako rychlá a účinná, avšak rychlost a účinnost je závislá na protokolu.
Hlavní rozdíl mezi programem THC Hydra a programem John the Ripper spočívá v tom, že THC Hydra je online nástroj na luštění hesel, zatímco John the Ripper je off-line nástroj.
+
17. THC Hydra v akci
Obr. 17. THC Hydra v akci