V tomto příspěvku budu mluvit o tom, jak se stát hackerem, přesněji řečeno jak se učit a s čím začít. Je to osnova hackingu pro začátečníky a nehrajeme si zde na exceletní hackery.

Úvod do terminologie

Podívejme se nejdříve, kdo je hacker a co znamenají označení cracker, etický hacker a penetrační tester.

Hacker a cracker

hacker-2laptopsZa hackera je běžně médii označován člověk, který získá neoprávněný přístup k datům, způsobí nedostupnost služby nebo získá kontrolu nad celým serverem. Správně by média měla používat označení cracker (průnikář), protože slovo hacker má pozitivní význam.

Hacker je člověk s pokročilými technickými znalostmi, kterého baví přemýšlet a objevovat, jak jednotlivé věci fungují. Aby v tom nebyl guláš, tak se v odborných publikacích setkáš s rozdělením hackerů na ty zlé, co nosí černé klobouky (black hats), dále na ty hodné, co nosí bílé klobouky (white hats), no a na ty, co stojí uprostřed a občas přestoupí na temnou stranu (gray hats). Z toho nám vychází, že do skupiny potenciálních útočníků patří black hats, gray hats a script kiddies, tj. mladiství, co si hrajou na hackery.

Etický hacker

Etický hacker je omílané spojení, které vlastně nic neznamená, ale všichni o něm mluví. Intuitivně chápeme, že etický hacker je někdo, kdo má znalosti hackera, ale pomáhá odhalit díry v zabezpečení, tj. nezneužívá svoje znalosti a pomáhá ostatním.

Když se ale nad tímto spojením zamyslíš, tak to zní spíše jako špatný vtip. Jak může být hacker ve svém pravém pozitivním významu ještě etičtější? Nebo z druhé strany. Co je etického na tom, když hacker páchá trestnou činnost? To si jako máme představit Robina Hooda s laptopem, který po drátě okrádá zločince a rozdává jejich peníze chudým lidem? To jistě ne. Etický hacker je prostě buzzword, který je dobře pochopitelný i pro lidi, kteří nerozumí počítačům.

Penetrační tester

Teď bys měl zbystřit, protože penetrační tester je název profese, která ti umožní se hackingu věnovat legálně osm hodin denně. Penetrační tester je zjednodušeně řečeno etický hacker, který se zaměřuje na testování bezpečnosti informačních systémů. Penetrační testování (penetration testing), nebo zkráceně pen testing, tě dovede tam, kam chceš dojít.

Příprava

Bez silné vůle a konceptu se daleko nedostaneš.

Síla vůle

Polož si nejdříve otázku proč se vlastně chceš hackingu věnovat. Hacking je zajímavý, ale není to žádná magie. Pokud chceš dosáhnout uznání, tak tě zklamu, není příliš mnoho lidí, kteří by tvoje dovednosti ocenili. Medaile si budeš muset rozdávat sám. Připrav se na to, že zabiješ mraky času čtením a zkoušením. Vždy budeš objevovat něco, na co ti lidský život nestačí. Stanov si menší a konkrétní cíle.

Budeš potřebovat schopnost obrnit se, když se ti nebude dlouho dařit. Nedělej si nic z toho, pokud něčemu nerozumíš nebo zatím nevidíš souvislosti. Nemá smysl se poměřovat s ostatními, vždy bude existovat někdo bystřejší, komu to půjde rychleji a bude zkušenější. Právě proto bys měl začít s jednoduššími věcmi. Pokud se na něčem zasekneš, požádej někoho o pomoc nebo se k tématu vrať později. Pamatuj si, že nikdy neexistuje hloupá otázka. Každá otázka má svoje opodstatnění a umožní ti potvrdit nebo vyvrátit tvoje úvahy.

Začni přemýšlet o pravidelném sportu nebo pohybové aktivitě. Alespoň jednou týdně si vyčisti hlavu sportem, ber to jako trénink svojí vůle. Po nějaké době se budeš cítit lépe a bude se ti lépe přemýšlet.

Koncept

Neexistuje žádná zaručená strategie, každému vyhovuje něco jiného, ale jisté je, že tvoje příprava bude potřebovat nějaký koncept. Něco pochopit a získat zkušenost jsou dvě různé věci. Pouhým koukáním na videa a čtením knížek se sice něco dozvíš, ale za týden to úspěšně zapomeneš. Bez vlastní zkušenosti ti uteče spousta souvislostí a jako budoucí etický hacker budeš potřebuješ posilovat schopnost učit se a objevovat sám. Vyzkoušej si teorii s rukama na klávesnici na vlastních příkladech. Pro složitější koncepty budeš potřebovat virtuální stroje, které dnes hravě zvládnou i notebooky. Brzy zjistíš, že to je ta největší zábava. Nauč se také šetřit svůj čas, dělej si poznámky a zálohuj.

Protože témat je v IT bezpečnosti opravdu hodně, budeš často registrovat zajímavé věci bez možnosti si je ihned vyzkoušet. Založ si speciální email nebo si zapisuj odkazy na zajímavé zdroje a témata. Když ti nevyjasněné myšlenky začínají přerůstat přes hlavu, hoď je na papír nebo do myšlenkové mapy. Získáš ucelený pohled z nové perspektivy a při přepisování myšlenky z tvojí mysli na papír můžeš pozorovat zajímavý vedlejší efekt. Držet v paměti nevyřešené otázky a úkoly dává mozku docela zabrat. Přepíšeš-li svoje myšlenky na papír, tak se ti okamžitě uleví. Načerpáš rychleji novou energii a získáš prostor pro další úvahy.

Jazykové dovednosti

Pomineme-li sociální inženýrství a emotivní inteligenci, tak hacking je hlavně o technických znalostech. Nicméně je tady jedna oblast, bez které se k hackingu jako čech nikdy nedostaneš. Musíš zvládnout dobře anglický jazyk. Ze začátku ti bude stačit porozumět čtení technickému textu. Později, zejména v profesním životě, budeš potřebovat anglicky plynule mluvit, tj. být schopen vyjádřit svoji myšlenku.

Technické dovednosti

Jako začátečník se budeš muset seznámit s operačními systémy z hlediska jejich administrace, porozumět sítím, programovacím jazykům a jejich použitím pro webové aplikace. Záleží na tobě, k čemu máš nejblíže a s kterým tématem začneš. Ne vždy se ti podaří jít úplně do hloubky.

Sítě

TCP/IP Porozumět modelu TCP/IP je naprostý základ. Postav si doma síť (ve virtuálech) s linuxovým firewallem založeným na IPtables. Nakonfiguruj si domací síť, která je za NATem a pouští jen provoz iniciovaný z vnitřní sítě. Seznám se s konstrukcí pravidel a stavovým firewallem. Prozkoumej, jak fungují aplikační protokoly a nástroje pro odposlechy síťového provozu. Nakonec se seznam se síťovým skenerem NMAP.

Operační systémy z hlediska administrátora

Předpokládám, že máš základní zkušenost s operačním systém Microsoft Windows. Začni se o tento OS zajímat jako doménový administrátor. Připrav si dvě až tři stanice a jeden doménový řadič (DC – domain controller) se službou Active Directory. Na internetu najdeš videa i pěkně zpracované kurzy zdarma. Není potřeba instalovat hned poslední verzi OS pro server. Většina organizací vzhledem k jejich rozvoji a kompatibilitě s jejich doménou jsou pozadu o jednu až dvě verze. Vytvoř si pár uživatelů a nakonfiguruj základní služby (DNS a DHCP zřejmě už máš), vyzkoušej si sdílení souborů, konfiguraci vzdálené plochy a příprav si web server IIS s nějakou webovou aplikací.

Linux bude trochu oříšek, pokud jej neznáš. Doporučuji si jej hodit na notebook a používat denně. Asi bych vsadil na linuxovou distribuci Ubuntu (Debian derivát). Až to zvládneš, tak si postav linuxový server s Centosem (kopie Red Hat Enterprise Linux). Vyzkoušej si nakonfigurovat různé služby SSH, FTP, DNS a DHCP. Ti odvážnější si mohou koupit VPSku a zkusit si provozovat vlastní webserver a mail server v internetu. Je to dobrá zkušenost, zvláště pokud jde o aktualizace a upgrade nových verzích operačního systému a webových aplikací. Ještě by ti nemělo uniknout, že Linux a obecně unixové systémy používají shell, tj. interpret příkazového řádku. Shell skripty jsou populární jak v samotném linuxu, tak i u administrátorů na zálohování a startování služeb. Prozkoumej nápovědu k shellu BASH a vytvoř si pár skriptů s různými programovými konstrukty.

Programovací jazyky

Tato oblast není jednoduchá pro lidi, kteří se o programování nikdy nezajímali. Když to zjednoduším, tak programovací jazyky mají pro hackera začátečníka tři dimenze. První z nich je vybraný jazyk zvládnout. Tím myslím naučit se syntaxi, programové konstrukty (podmínky, cykly atd.) a získat také praktickou zkušenost s chybami při jejich spouštění. Druhá dimenze je naučit se v jazyku řešit typické problémy, to většinou okoukáš z jiného kódu. Třetí dimenze je použití existujících komponent a knihoven, které se ti budou pro hacking hodit.

Pokud nejsi vyloženě programátopythonr a nekóduješ každý den, není možné se naučit vše do hloubky, ale pokus se o to. Jako budoucí excelentní hacker se budeš zajímat o objektové programování, zavadíš o návrhové vzory a seznámíš se s některými frameworky.

Jistě tě teď napadne, no jo, ale s jakým programovacím jazykem začít. Doporučuji začít s interpretovaným jazykem Python. Pak se vrhni na webové technologie a nauč se dobře HTML, CSS a JavaScript. Nemusíš být webový designer, abys pochopil, jak to funguje. Pokračuj jazykem C a skonči u jazyka symbolických adres, přesněji řečeno u assembleru NASM pro procesory Intel 80×86.

Hacker začátečník

Pokud se pilně dostudoval výše uvedené oblasti, alespoň do půlky, začni se zajímat o bezpečnostní projekty, nástroje a hacking literaturu. Pokud jsi to zvládl do puntíku, tak máš slušný základ.

Projekty OWASP

HTTP HackingHacking webových aplikací ti půjde lépe s projekty neziskové organizace OWASP, která se zaměřuje na bezpečnost webových aplikací. Neměly by ti uniknout publikace OWASP Testing Guide a zpráva OWASP Top Ten. Prohlídni si i ostantí OWASP projekty a nástroje, abys věděl, co existuje. Z OWASP Testing Guide se dozvíš něco o testování zranitelností a dostupných nástrojích.

Nástroje

Začni se seznamovat s linuxovou distribuci pro penetrační testery – Kali Linux. Kali Linux není distribuce pro denní použití (ve smyslu desktopu), je určená pro bezpečnostní testování. Seznam se s připravenými nástroji. Dokumentaci najdeš v manuálových stránkách (man), v online dokumentaci autora nástroje nebo na disku v txt souboru. Použití nástroje můžeš najít i přes vyhledávač. S trochou štěstí najdeš fórum, videotutoriál nebo nějaký blog penetračního testera.

Literatura

Na pultech knihkupců najdeš dvě zajímavé a ucelené knihy. První z nich je Gray Hat Hacking (vyšla i v češtině, ale teď už je na pultech 4 edice) a The Web Application Hacking Handbook (WAHH). Jistě existuje více poutavých titulů, ale pokud se držíš pravidla, zkoušej co to jde, tak by ti další knihy přidělaly jen starosti.

Jak si vybrat hacking školení

Dříve žádné školy pro hackery nebyly a hackeři si s tím evidentně poradili. Dnes se můžeš certifikovat na bezpečnostního profesionála, etického hackera nebo penetračního testera. Sám jsem poskytovatelem hacking kurzů Hackerlab, ale pokusím se zachovat si odstup.

Hacking workshopVýhody školení jsou obecně v tom, že si na ně vyhradíš čas a nikdo tě nevyrušuje. Šéfovi na chodbě připomeneš, že příští týden máš to schválené školení na hacking a je to pro tvou práci důležité. Snažit se o to samé doma po večerech je zákopová válka. Neustále tě někdo vyrušuje, děti chtějí pohádku a pes kňučí, že žlutá na psím semaforu naskočí co by dup.

Školení je pro lidi, kteří se chtějí tématu věnovat přes den, kdy mají prázdnou hlavu a nejvíce energie. Případně sami cítí, že se danou problematiku naučí rychleji pod vedením instruktora a ušetřený čas mohou věnovat dalším aktivitám, které jsou pro ně důležité.

Hacking školení ti umožní správně pochopit a představit si jednotlivé oblasti etického hackingu. To je velmi důležité z hlediska dalšího osobního rozvoje, protože na školení dostaneš odpovědi na svoje otázky. To co pracně odkrýváš několik večerů najednou vidíš v souvislostech. Další výhodou hacking školení jsou certifikační programy zakončené zkouškou. Pokud takovou certifikaci získáš, je to potvrzení tvého úsilí, které ti pomůže získat práci nebo alespoň otevřít dveře k pohovoru. Pokud nemáš pracovní zkušenosti, tak je certifikace to jediné, na čem můžeš zapracovat.

Při výběru kurzu si prohlédni strukturu školení včetně labů (nebo se na to alespoň doptej). Ne všechny kurzy, co mají v názvu hacking nebo etický hacking jsou vyloženě zaměřeny na penetrační testování. Mohlo by se ti stát, že si sice kurz užiješ, ale zas tolik ti ve studiu hackingu nepomůže. Některé kurzy jsou defenzivní, což má znamenat, že rozumíš kyber terminologii, ale moc se nedozvíš, jak se skutečně háčkuje. Musíš si uvědomit, že žádný kurz za jeden den nebo týden nemůže ze studenta udělat etického hackera. Pokud se za jeden den v kurzu střídá více tématů, je to podezřelé a kurz jede jen po povrchu.

Závěr

Každá cesta za svým prvním povoláním etického hackera je bolestivá a nejsi jediný, kdo si ji musí prošlápnout. V dnešní době máš však spoustu výhod, mezi které patří dostupný internet, literatura, virtuální stroje a více IT profesí, které potřebují odborníky. Takové příležitosti na našem pracovním trhu dříve nebyly nebo byly velmi omezené.

To je pro dnešek vše. Zvažujete-li cestu etického hackera od začátku, rád uvidím na hacking kurzech.