Penetrační testování

Úvod do etického hackingu

První kapitola seznamuje čtenáře se základními pojmy a názvoslovím svázaným s etickým hackingem a penetračním testováním. Následně bude provedena rešerše samotného termínu penetrační testování. Ucelené názvosloví je důležité pro pochopení hlubší problematiky svázané s penetračním testováním.

Obecné základní pojmy

Tato podkapitola čtenáři přiblíží význam základních pojmů svázaných s etickým hackingem. Porozumění těmto pojmům je nezbytné pro další pochopení obsahu této práce.

Zranitelnost

Jedním z řady pojmů, jenž k penetračnímu testování neodmyslitelné patří, je zranitelnost. V anglickém jazyce rovněž označována termínem vulnerability. Jde o vlastnost operačního systému či jiného programového vybavení a její přítomnost je v dané softwarové komponentě nežádoucí. Kimberly Graves ve své publikaci  doslova uvádí, že termín zranitelnost označuje chybu v návrhu softwarové komponenty či v její programové realizaci, která může za jistých okolností vyústit v nestandardní chování a poskytnout tak data či přístup do těch částí softwarového vybavení, kam měl být přístup původně zakázán. Dalším nebezpečním, které při přítomnosti zranitelnosti v systému hrozí, je odepření služby, neboli úmyslné vyřazení dané hardwarové či softwarové komponenty z činnosti.

Jednou z dalších knih zabývajících se počítačovou bezpečností a definující pojmy vztahující se k této problematice, je i publikace Josepha Kizzy zabývající se počítačovou bezpečností . Ta zranitelnost definuje oproti předešlému výkladu poněkud obšírněji. Zranitelnost popisuje jako absenci bezpečnostních mechanismů či politik a v té souvislosti hovoří i o tom, že zranitelnost se může nacházet i v jiné rovině, než je rovina informačních technologií. Kupříkladu v nařízeních, zákonech a směrnicích, které je třeba dodržovat.

Příčiny vzniku zranitelností jsou velmi různorodé. Zevrubně se jimi zabývá výše zmíněná publikace, nicméně pro úplnost je třeba uvést aspoň základní důvody vzniku zranitelností:

• špatné pochopení principů designu software a z toho pramenící chybná implementace software,

• komplexnost a rozsáhlost mnohých softwarových produktů,

• chybné nastavení bezpečnostních mechanismů

Jedním z příkladů zranitelnosti z nedávné doby je MS12-020 postihující stanice a servery s operačním systémem Windows, které mají zapnut vzdálený přístup pomocí protokolu RDP. Tato zranitelnost má za následek, že při přijmutí speciálně upraveného paketu nastane havárie operačního systému, na němž je RDP (remote desktop protocol) aktivováno. Tato havárie vyústí v okamžitý restart operačního systému. Zájemci o zevrubný popis zranitelnosti MS12-020 mohou nahlédnout do dokumentu popisujícího danou zranitelnost, jehož autorem je sám objevitel této bezpečnostní chyby.

Mezi dnešní nástroje každého dobře připraveného penetračního testera patří bezesporu i scannery zranitelností, mnohdy označované anglickým termínem vulnerability scanners. Jejich užití je zpravidla jednoduché a mnohé scannery mají i intuitivní grafická uživatelská rozhraní. Možnost objevit zranitelnosti přítomné v operačním systému či softwarovém produktu již není pouze doménou protřelých, zkušených a ostřílených hackerů a penetračních testerů, ale stává se přístupná i začínajícím bezpečnostním odborníkům právě díky těmto automatizovaným nástrojům určeným k objevování zranitelností. Správci operačních systémů a programátoři se tedy musí mít čím dál více na pozoru, neboť pokud jimi spravovaný či vyvíjený systém obsahuje nějakou zranitelnost, s vysokou mírou pravděpodobnosti bude objevena a zneužita.

Exploit

termínem exploit označují zdrojový kód či program, který využívá zranitelnosti softwarové komponenty a je schopen ovlivnit chování software ku prospěchu útočníka. Kimberly Graves ve své knize Certified ethical hacker  dále dělí exploity do dvou kategorií:

• lokální,

• vzdálené

Lokální exploity jsou takové, které potřebují, aby měl penetrační tester fyzický přístup k počítači či serveru. Oproti tomu vzdálený exploit zneužívá zranitelností softwaru po síti a tudíž není potřeba, aby měl penetrační tester fyzický přístup k počítači či serveru, u něhož se snaží o průnik. Vzdálené exploity využívají zranitelností v síťových službách jako je WWW, IMAP, DNS a další.

V sérii edukačních videí, jejichž autorem je Vivek Ramachandran  – uznávaný světový expert na počítačovou bezpečnost oceněný několika Americkými počítačovými společnostmi jako je Microsoft nebo Cisco, je termín exploit vysvětlován sice stručně, ale za to výstižně: Exploit je dle těchto videí kód, který umožní zneužít zranitelnost na cílovém systému a poskytnout tak útočníkovi či penetračnímu testerovi prostředky, ke kterým neměl mít přístup. Rovněž zde Ramachandran ukazuje analogii se zabezpečením domu. Jako zranitelnost domu si lze představit zámek, který jde odemknout jinými klíči, než jsou klíče vydané k onomu zámku.

V předchozí podkapitole byla popsána zranitelnost MS12-020. Exploitem vázaným k této zranitelnosti je zaslání speciálně upravených packetů na port, na němž poslouchá služba RDP. Tím je způsoben přístup do nealokované paměti a následný restart systému.

Payload

Termín payload má hned několik významů. Jeden z významů spadá do ryze oblasti počítačových sítí a představuje užitečná data nesená datagramem (protokol UDP) či segmentem (protokol TCP). Více informací o protokolech TCP, UDP a o počítačových sítích lze nalézt v knize popisující problematiku počítačových sítí, jejímž autorem je uznávaná odbornice na problematiku počítačových sítí Rita Pužmanová . Jelikož se ale tato práce zabývá penetračním testováním a počítačovou bezpečností obecně, v dalším textu bude slovo payload označovat nikoliv pojem z oblasti počítačových sítí, ale pojem z oblasti počítačové bezpečnosti vysvětlený v následujících odstavcích této podkapitoly.

Pokud je v systému objevena zranitelnost a této zranitelnosti je využito, pak následuje vyvinutí aktivity na napadeném systému. Vivek Ramachandran v sérii videí zaměrených na informační bezpečnost  opět používá analogii s lupičem v domě. Pokud lupič zjistil, že dům má levný a špatně zabezpečený zámek (zranitelnost), dále se lupiči povedlo zámek překonat (exploit), pak následuje vyvinutí aktivity v domě. Touto aktivitou bývá v případě lupiče odnášení věcí.

Vysvětlení, které je blíže světu informačních technologií a je více obsáhlé, nabízí publikace pojednávající o Metasploit frameworku . Payloady doslova popisuje jako „kusy kódu, které jsou spuštěny po úspěšném průniku do systému pomocí exploitu“. Dříve byla nutná detailní znalost cílového OS a assembleru, dnes tato povinnost odpadá, neboť dnes dostupné nástroje obsahují payloady již v základní instalaci. Z podstaty definice je jistě patrné, že takových payloadů existuje široká škála – od vytvoření uživatele na cílovém systému a tím pádem zajištění opakovaného přístupu do systému, přes pořízení snímku obrazovky až po zpřístupnění příkazové řádky cílového systému.

V předchozích odstavcích byla zmíněna zranitelnost s označením MS12-020. Pomocí této zranitelnosti je útočník či penetrační tester schopen docílit pouze odepření služby a tím veškerá aktivita na systému končí, tudíž nelze mluvit v souvislosti s touto chybou o použití payloadu, neboť útočník kromě restartu cílového počítače na systému nevyvíjí žádnou aktivitu. Faktem zůstává, že potenciál této zranitelnosti umožňuje spuštění kódu vzdáleně (což je synonymem pro použití payloadu), ale zatím nebylo zjištěno, jak kód vzdáleně spustit. Existuje ovšem celá plejáda zranitelností, které vzdálené spuštění kódu umožňují.

White hat

Pojem white hat je součástí taxonomie lidí majících co do činění s počítačovou bezpečností. Každý penetrační tester, který zkoumá bezpečnost systému za účelem nápravy bezpečnostních chyb je zároveň i white hat. Cílem white hat není uškodit systému, proti němuž je (simulovaný) útok veden, ale nalézt v něm bezpečnostní slabiny a sjednat nápravu vedoucí k odstranění těchto slabin  .

Black hat

Jak název jistě napovídá, black hat je pravým opakem white hat. Tento typ útočníka či penetračního testera útočí na počítačový systém s cílem získat data, k nimž neměl mít původně přístup či poškodit cílový systém například tak, aby došlo k odepření služby (DoS)  .

White box

Pojem white box se používá v situacích, kdy o cílovém systému a infrastruktuře, v níž je tento systém zasazen, má tester jisté apriorní znalosti, kterých dokáže využít ve svůj prospěch. Test takové infrastruktury je pak označen jako white box test . Pete Herzog ze společnosti ISECOM definuje v metodice OSSTMM  tento pojem s větší mírou detailu. O white box testu se zmiňuje jako o testu, kdy má tester omezené, ale přesto aspoň nějaké znalosti o cíli a jeho obranných mechanismech. Hloubka testu dle metodiky OSSTMM závisí na množství a druhu znalostí, jaké analytik o cíli má a také na jeho schopnostech. Tato publikace pojem white box zaměňuje libovolně za pojem double gray box.

Black box

Podstata tohoto testu spočívá v tom, že útočník či tester nemá o síti či systému žádné informace, na základě kterých by mohl vystavět postup penetračního testu. Jinými slovy, nemá na začátku testu nic, čeho by se takzvaně „chytil“. Tento typ testu lépe vystihuje simulaci nepřátelského útoku na výpočetní infrastrukturu organizace . Metodika OSSTMM  pro termín black box používá synonymum double-gray box a definuje jej jako test připravenosti cíle a schopností testera, přičemž cíl není nijak speciálně na test připraven a analytik nemá o cíli žádné apriorní znalosti.

Etický hacking a penetrační testování

Tato podkapitola přiblíží význam pojmu penetrační testování a uvede jeden příklad penetračního testu, který byl v minulosti proveden na infrastruktuře jedné ze společností ze žebříčku Fortune 500.

Na první pohled se slovni spojení etický hacking může zdát jako oxymorón, neboť lidská mysl zpravidla asociuje slovo hacking se škodlivými aktivitami. Odstavce této podkapitoly si kladou za cíl uvést tento mylný dojem na pravou míru.

Penetrační testování je termín velice příbuzný termínu etický hacking. Na penetrační test lze pohlížet jako na aplikaci etického hackingu na výpočetní infrastrukturu. V odborné literatuře se termíny etický hacking a penetrační testování libovolně zaměňují, a proto tomu v této práci nebude jinak.

Autoři pubikace Hands-on ethical hacking and network defense  definují etický hacking jako činnost prováděnou počítačovými odborníky za účelem zjištění chyb zabezpečení v počítačové síti či operačním systému a následného přezkoumání, zdali jsou dosavadní zabezpečovací mechanismy v souladu s firemními politikami. Výsledek nalezených problémů je reportován kompetentním osobám. Tato kniha rovněž zdůrazňuje fakt, že rozdíl mezi etickým hackerem a čistokrevným hackerem leží v právní rovině. Penetrační tester jedná s výslovným povolením a vědomím společnosti či organizace, vůči níž je penetrační test prováděn a nemá v úmyslu společnost poškodit. Hacker, na druhou stranu, hledá bezpečnostní slabiny sítě či informačního systému za účelem zcizení dat, pozměnění dat či odepeřní služby.

Kolektiv autorů knihy The basics of hacking and penetration testing pojednávající o základech hackingu a penetračního testování  používá takřka totožnou definici termínu etický hacking. Tato kniha etický hacking popisuje jako sérii pokusů o objevení a zneužití slabin v síti za účelem vylepšení dosavadních bezpečnostních mechanismů. Zjednodušeně řečeno, autoři knihy pojednávající o základech etického hackingu  tvrdí, že etický hacking je prováděn za účelem odhalení a odstranění bezpečnostních chyb, což je bezesporu pravda

Publikace od autorky Kimberly Graves  jde v definici etického hackingu ještě dále. Tvrdí, že etický hacker neboli penetrační tester používá totožné metody a prostředky jako hacker s nekalými úmysly, ale rozdíl je pouze ve výstupu z jejich činnosti. Zatímco u etického hackera je cílem práce odhalit slabiny v síti, nalézt kroky směřující k nápravě a informovat o zjištěných skutečnostech vedení organizace, u hackera s nekalými úmysly musí vše proběhnout v tajnosti a výsledkem z činnosti je zpravidla únik či pozměnění dat a nemalé škody způsobené napadené společnosti. Z předchozích vět vyplývá, že penetrační test má právě takovým škodám - majetkového i nemajetkového charakteru zabránit.

Internetový článek, jehož autorem je James Conrad  – držitel několika uznávaných certifikací z oboru informačních technologií, si klade za cíl vysvětlit roli penetračního testování a etických hackerů v dnešním informačním světě. S autory ostatních publikací se shoduje na tom, že nejlepší obranou bývá zpravidla útok. Jinak řečeno, pokud se chce organizace jakékoliv velikosti ubránit hrozbám číhajícím na internetu, musí zaútočit na vlastní síť za účelem odhalení slabin a odražení skutečných útoků. Toto dle J. Conrada platí pro firmu či organizaci jakékoliv velikosti.

Z informací, které výše uvedené prameny poskytly, je patrné, že termín etický hacking je jasným a dobře vymezeným pojmem, o jehož významu netřeba pochybovat.

Je zřejmé, že firmy či jedinci provádějící penetrační testování se o výsledky své činnosti neradi dělí s kýmkoliv jiným, než je samotný zadavatel. Důvody jsou zcela zřejmé – vyzrazení přítomnosti jakýchkoliv bezpečnostních trhlin v síti třetí straně představuje obrovské riziko. Přesto, v nedávné době, skupina penetračních testerů uveřejnila, jakým způsobem se jim zdařilo proniknout do sítě jedné ze společností žebříčku Fortune 500, která si penetrační test zadala. Narazili na nezabezpečenou ústřednu, kterou upravili tak, že získávali hlasové zprávy původně určené pro technickou podporu uživatelů neboli helpdesk. Jeden z uživatelů si nevěděl rady s připojením se do VPN a tak zavolal na helpdesk. Pak jen stačilo s jistou mírou sociálního inženýrství od uživatele vylákat heslo a získat přístup do sítě. Detailnější popis onoho penetračního testu lze nalézt v elektronickém článku pojednávajícím o reálných penetračních testech .

Nutno zdůraznit, že před samotným započetím penetračního testu musí mít proveditel výslovný a písemný souhlas majitele či správce daného informačního systému. Pokud by tomu tak nebylo, pohybuje se proveditel daleko za hranou zákona. Z toho důvodu by každý, kdo se penetračním testováním zabývá, měl bezpodmínečně být seznámen s právními aspekty celé problematiky. Právní stránku průniku do systému a změny či zcizení informací řeší v případě České republiky §230 až §232 trestního zákoníku .

Z uvedených paragrafů jasně plyne, že je třeba vždy před započetím penetračního testu se zadavatelem do nejmenších detailů dohodnout rozsah testu a hranice, které penetrační tester nemůže za žádných okolností překročit.

Penetrační test bývá zpravidla rozdělen do několika fází, přičemž na výstup z jedné fáze bezprostředně navazuje fáze následující. Existují různé metodiky, které se zabývají penetračním testováním a etickým hackingem. Metodikami nápomocnými pro penetrační testování se zabývá kapitola druhá. Každá z metodik má mírně odlišný pohled na doporučené členění penetračního testu. Obrázek 1 si klade za cíl ilustrovat jedno z možných členění průběhu penetračního testu.

Z výše uvedeného je patrné, že etický hacking a penetrační testování mají mnoho různých a navzájem se překrývajících definic, přičemž z každé z těchto definic je patrná jedna důležitá věc: Penetrační testování si klade za úkol co nejvěrněji simulovat útok hackera se zlými úmysly a odhalit tak nebezpečná místa v zabezpečení ještě dříve, než ke skutečnému útoku dojde.

Metodiky zabývající se penetračním testováním

Cílem této kapitoly je ozřejmit, proč se vyplatí vzít penetračnímu testerovi na pomoc metodiku, jaké informace lze v metodikách najít a v závěru této kapitoly budou srovnány dvě bezpečnostním specialistům dobře známé metodiky OSSTMM a NIST-SP800-115. Metodik určených k penetračnímu testování existuje samozřejmě více. Kolektiv autorů z Univerzity v Bologni publikoval článek , kde jsou představeny, srovnány a zhodnoceny další metodiky. Tentýž kolektiv autorů rovněž vydal článek  pojednávající o zabezpečení elektronických hlasovacích systémů, kde nejprve představují celkovou filosofii a koncept e-hlasování a poté se tito autoři zabývají tím, do jaké míry jsou dnes běžně používané a známé metodiky použitelné pro testování bezpečnosti v oblasti elektronických hlasovacích systémů.

Užitečnost metodik při penetračním testování

IT odborník mající s penetračním testováním malé či žádné zkušenosti zpravidla není schopen provést test na takové úrovni, která by byla dostačující jak z pohledu šířky penetračního testu (test mohl být z důvodu nezkušenosti proveden pouze na části infrastruktury) tak z pohledu úplnosti (mohly být použity pouze některé z nástrojů, které vyzkoušeny být měly a otestována pouze část možných zranitelností). Je tedy velmi vhodné, aby si takový tester vzal na pomoc metodiku, neboť pomůže zvýšit úroveň profesionality daného testu. Dalším důvodem hovořícím ve prospěch metodik je vypovídající hodnota, kterou má opakovaný penetrační test. Pokud tento test bude prováděn pokaždé na základě jedné a té samé metodiky, pak lze velice snadno srovnávat výsledky z jednotlivých testů a tím pádem pozorovat, zdali se zabezpečení infrastruktury od posledního testu zlepšilo. Specialista provádějící penetrační test rovněž získá pomocnou ruku v tom, jak má svůj penetrační test strukturovat, odkud začít, co vše bude potřebovat a v neposlední řadě každá dobrá metodika obsahuje informace o tom, jak má vypadat závěrečná zpráva, respektive její varianty. Podoba jednotlivých variant závěrečných zpráv závisí na tom, pro kterou cílovou skupinu je ta či ona varianta zprávy určená. Je zřejmé, že závěrečná zpráva pro střední a vyšší management musí skutečnosti zjištěné při testování prezentovat jinou formou, než jakou je prezentuje pro IT oddělení organizace.

Předchozí odstavec přiblížil přínos metodik pro penetrační testování. Nebylo by ovšem na místě myslet si, že použití metodik přináší pouze výhody a ulehčuje práci. Problémem, který musí tester řešit je, že každá metodika má jinou šíři záběru, používá jiné názvosloví a má mnohdy různé členění penetračního testu. Každý odborník na penetrační testování by tedy měl znát metodik více a v závislosti na atributech a okolnostech daného penetračního testu by měl vždy z každé metodiky vybrat to, co je vhodné pro danou situaci.

NIST 800-115

z Univerzity v Americkém státě Iowa zaujal k použití této metodiky inovátorský přístup. Tito autoři se ve svém vědeckém článku  se zabývají otázkou, zdali metodiky určené výhradně pro prostředí informačních technologií pokrývají problematiku penetračního testování natolik široce, že by šly použít i pro SCADA2 systémy řídící smart grid sítě. Tuto problematiku s narůstající proliferací smart grid sítí jistě není možno brát na lehkou váhu.

Publikace NIST 800-115 je rozčleněna na celkem 8 kapitol a přílohy A – G. Cílem následujících odstavců je vybrat a prezentovat ty nejdůležitější myšlenky, poznatky a informace v této metodice obsažené.

Metodika člení způsoby posuzování zabezpečení informačního systému do tří kategorií:

• průzkum (examination),

• testování (testing),

• dialogy s odborníky napříč organizací (interviewing)

Metoda průzkumu je nejméně invazivní a spočívá v nastudování interních směrnic organizace týkajících se bezpečnosti, ve studování obsahu logů relevantních prvků infrastruktury (sem mohou patřit IDS/IPS systémy, důležité servery apod.) a v neposlední řadě tato metoda postihuje analýzu konfiguračních souborů daných zařízení infrastruktury, na níž je penetrační test prováděn.

Oproti tomu metoda testování musí být používána s rozvahou. Při této metodě jsou zkoumány přímo cílové systémy, jejichž zranitelnosti a slabiny se zjišťují simulacemi útoku. Problém spočívá především v tom, že některé ze způsobů testování jsou velmi invazivní a mají za následek odstavení a vyřazení testovaného systému z provozu, což v produkčním prostředí může představovat obrovský problém a finanční ztráty.

Metoda dialogů je nejméně invazivní ze všech a představuje proces, při kterém jsou vedeny dialogy se zaměstnanci organizace různých odvětví za účelem pochopení fungování bezpečnostních mechanismů v organizaci, identifikaci důležitých cílů a objevení možných problémů.

Další část metodiky provádí letmý popis různých druhů nástrojů pro identifikaci cílů, jejich softwarového vybavení, identifikaci zranitelností tohoto softwarového vybavení a pozvolna se ubírá k samotnému doporučenému průběhu penetračního testu. Metodika zmiňuje i sadu nástrojů SCAP. Mezi tyto nástroje patří jak jazyk pro výměnu informací o bezpečnostních chybách software a nastavení softwarových produktů postavený na XML, tak velkou sadu šablon obsahujících doporučené konfigurace běžných operačních systémů a softwarových produktů, které jsou optimalizovány za účelem zvýšení bezpečnosti software a dle kterých lze tento systém či softwarový produkt nastavit tak, aby byl v souladu s doporučeními NIST.

Je nutné zdůraznit, aby penetrační tester měl před samotným započetím aktualizované všechny nástroje, neboť mnoho nástrojů je založeno na signaturách a vzorcích. Pokud by nástroje aktualizovány nebyly, může tester získat informace, které jsou do značné míry odlišné od reality. Rovněž stojí za zmínku fakt, že pokud zadavatel požaduje jak test zevnitř organizace, tak test vně organizace, je velmi vhodné začít testem vně organizace. V případě opačného pořadí by test do značné míry ztratil na autenticitě, neboť penetrační tester by měl znalosti o infrastruktuře organizace z pohledu zevnitř, kterými běžný útočník nedisponuje a které poskytují při provádění testu značnou výhodu.

Ostatní části metodiky poskytují cenné rady a informace týkající se organizačních záležitostí a fázování samotného penetračního testu. V kapitole 1.2 byla zmíněna skutečnost, že každá metodika -> V kapitole o etickém hackingu a penetračním testování (kapitola 1.2) byla zmíněna skutečnost, že každá metodika má jiný pohled na to, jak by se měl penetrační test fázovat. Tato metodika na penetrační test nahlíží jako na jednu z fází procesu ověření přítomnosti zranitelností. Následující obrázek znázorňuje fáze penetračního testu dle doporučení NIST.

Poslední kapitoly se zamýšlí nad záležitostmi, které je třeba vyjasnit ještě před samotným započetím penetračního testu. Tester by si měl zodpovědět několik důležitých otázek:

• jaký časový rámec byl pro test vymezen,

• pokud není časový rámec dostatečný, byla prvkům infrastruktury přidělena priorita, na základě níž bude stanoveno pořadí testování,

• je stanovena periodicita testování, 23

• je vhodné, aby byl test proveden na firemní infrastruktuře, nebo je to příliš riskantní a je nutno vytvořit model této infrastruktury, na němž bude test proveden,

• jakým způsobem je zajištěna ochrana přenášených dat v průběhu testu, jejich uchování a případná likvidace,

• mají všichni lidé, jichž se testování týká, potřebné informace

Odpovědi na některé z výše uvedených otázek lze nalézt v ostatních metodikách, jejichž autorem je opět NIST. Kupříkladu otázku definice priorit u systémů určených k otestování řeší metodika FIPS 199. Použití metodiky FIPS 199 bylo ilustrováno na případové studii společnosti KLC Consulting Inc. při provádění bezpečnostního auditu u jednoho z jejich klientů. Celou případovou studii lze nalézt na webu firmy KLC Consulting . Na metodiku FIPS 199 navazují i jiné metodiky od téže organizace. Jedna z nich je kupříkladu SP800-60, která poskytuje instrukce a know-how seznamující čtenáře s tím, jaké informace a informační systémy zařadit do jaké kategorie z metodiky FIPS 199. Publikaci SP800-60 od organizace NIST mohou zájemci nalézt na webových stránkách instituce NIST . Na jiné otázky dává odpověď sama metodika NIST800-115. Doporučuje, aby byla vytvořena písemná strategie testování, kde budou vyřešeny některé z výše zmíněných otázek a rovněž bude vyřešen právní rámec věci, který definuje, co je testerovi dovoleno a co výslovně zakázáno (například z důvodu nebezpečí narušení chodu výrobního procesu organizace).

Metodika dostatečně zdůrazňuje, že jediným hmatatelným výstupem pro zadavatele testu je závěrečná zpráva neboli report a další souhrny výsledků určené pro vedoucí představitele organizace. Metodika také doporučuje, aby penetrační tester vypracoval zprávu, která popisuje jakým způsobem odstranit či aspoň zmírnit hrozby, jenž penetrační test nalezl.

V závěru metodologie a v jejich přílohách lze nalézt informace ryze praktického charakteru. Kupříkladu příloha A této metodiky uvádí výčet nástrojů určených pro penetrační testování a u každého nástroje zmiňuje, v jaké části penetračního testu jej lze využít. Příloha E této metodiky zase odkazuje na další metodiky, normy a sady doporučení týkající se informační bezpečnosti a u mnohých z nich rovnou poskytuje odkazy na tyto metodiky. Jednou z těchto metodik je i OSSTMM, které se věnuje následující kapitola.

OSSTMM

Autorem metodologie OSSTMM je nezisková organizace ISECOM. Tato organizace, která je původem ze Španělska, má dnes pobočku v New Yorku. Svou činnost ISECOM započal roku 2001, kdy vydal první verzi metodologie OSSTMM. Metodologie prošla několika úpravami a zatím poslední verze s pořadovým číslem 3 pochází ze dne 14. prosince 2010 a aktuální verzi lze získat na webu organizace ISECOMM . Tato metodologie oproti metodologii SP800-115 z předchozí podkapitoly klade větší důraz na teoretickou stránku věci a zpracovává problematiku penetračního testování do větší hloubky, jak uvádí kapitola 3 ve vědeckém článku zabývajícím se porovnáním metodologií z oblasti penetračního testování a bezpečnosti . Kniha popisující open-source nástroje pro penetrační testování  podotýká, že tato metodika je hojně užívána v průmyslu a je s půlroční periodicitou aktualizována. Publikace od autorů Flick a Morehouse zabývající se otázkou zabezpečení smart gridů , konkrétně kapitola kapitola 12 této knihy odkazující se na metodologii OSSTMM pojednává o zabezpečení měřidel v těchto smart grid sítích. Autoři zastávají názor, že měřidla ve smart grid sítích jsou síťová zařízení jako každá jiná a proto není důvod, aby byly jakkoliv opomenuty při řešení otázek zabezpečení smart gridů. V souvislosti s tímto tématem publikace probírá a představuje metodiku OSSTMM a zamýšlí se nad tím, které části metodiky OSSTMM jsou aplikovatelné v rámci zabezpečování smart grid sítí.

Tak jako každá odborná publikace, i tato metodologie v úvodu definuje a vymezuje pojmy z oblasti bezpečnosti, bezpečnostního auditu a penetračního testování. Rovněž je představena celková filosofie, pojetí a chápání termínu bezpečnost a pojmů s ní souvisejících a je představen možný průběh penetračního testu. Tento průběh je společně s fázemi uveden ke konci této podkapitoly.

Jak hrozby a infrastruktura vyžadující ochranu, tak jednotlivé prvky infrastruktury spolu interagují. Metodika OSSTMM chápe zvyšování míry zabezpečení jako zvyšování dohledu a zlepšování kontrolních mechanismů těchto interakcí. Ačkoliv existuje mnoho druhů kontrolních mechanismů, které lze pro zvýšení bezpečnosti nasadit, metodologie člení tyto mechanismy do deseti kategorií. Rovněž OSSTMM definuje mnoho nových pojmů, jejichž pochopení je nezbytné pro další studium metodiky a pro práci s ní. Mezi tyto pojmy patří

• kontrolní mechanismus povolující či zakazující interakce (control),

• směr interakce (vector),

• cesta, kterou by byl případný útok veden - např. e-mail (attack vector),

• část vectoru, kde selhávají kontrolní mechanismy (attack surface),

• omezení funkčnosti kontrolních mechanismů (limitation) - - pod čáru čj ekkvivalent

Dále metodika pokračuje velmi precizní, v sedmi bodech obsaženou, definicí toho, co by měl test úrovně zabezpečení obsahovat a co by mělo být tohoto testu výstupem. Výstupem by měla být identifikace těch částí vektorů, kde selhaly kontrolní mechanismy na různých směrech interakce. Nutno zmínit, že OSSTMM se nespecializuje pouze na prostředí počítačových sítí a systémů, ale úrovně interakce dělí do pěti kategorií:

• fyzická (interakce lidí s prostředím),

• lidský faktor,

• bezdrátová komunikace,

• telekomunikace,

• datové sítě a operační systémy

Cenné informace pro testery, kteří maji s penetračním testováním minimální zkušenosti se nacházejí v kapitole 2.4 – rules of engagement, neboli pravidla kontraktu. Tester zde najde cenné informace a tipy pro celý životní cyklus penetračního testu - od rad jak své služby nabízet (např. „nedoporučuje se, aby byl penetrační test zdarma, pokud se průnik nezdaří“) až po to, co by měla obsahovat závěrečná zpráva a také jak by měla být druhé straně předána. Tyto rady jsou sepsány přehledně ve dvaačtyřiceti bodech.

Kapitola jedenáctá metodiky OSSTMM zabývající se penetračním testováním datových sítí a operačních systémů je rozdělena na sedmnáct podkapitol, přičemž v každé z nich se zabývá jinou oblastí této problematiky. První podkapitoly se zabývají stanovením rámce testu a identifikací klíčových systémů, jenž je třeba testovat a identifikací toho, co vše může být při testech ohroženo. Tyto podkapitoly lze chápat jako přípravu na samotný test. Následující kapitoly již řeší otázky samotného průběhu penetračního testu a zabývají se otázkami jako zdali fungují poplašné mechanismy (například intrusion detection system) či zdali pracuje správně ochrana důležitých dat. Pro případovou studii v páté kapitole, jež se rovněž zabývá penetračním testováním operačních systémů, budou vybrány z jedenácté kapitoly metodiky OSSTMM ty pasáže, které lze aplikovat na tuto případovou studii. Jinak řečeno, pokud se případová studie nezabývá zkoumáním toho, jak uživatelé manipulují s citlivými daty, nebude daná podkapitola z metodiky OSSTMM brána v potaz.

Metodologie OSSTMM pracuje s metrikou zranitelnosti, která svou číselnou hodnotu testerovi sdělí, v jakém stavu je ochrana testované infrastruktury – zdali je poddimenzovaná, v pořádku, či předimenzovaná. Tato metrika je nazývána RAV. Pokud existuje nějaká odchylka oproti stavu „v pořádku“, metodika rovněž testerovi poradí, kde existují slabá místa a na co je třeba se zaměřit. Výpočet konkrétních hodnot RAV je založen na složitém vzorci a proto OSSTMM představuje nástroj pro tento výpočet. Nástrojem je list v tabulkovém procesoru, kde tester zadá požadované vstupy a získá číslo vyjadřující procentuelní úroveň ochrany sítě. Z čísla většího než 100% vyplývá, že úroveň ochrany je naddimenzovaná a tím pádem je zde investováno více prostředků, než je třeba. Analogicky číslo menší než 100% představuje situaci, kdy v síti existují jisté hrozby, které je třeba objevit a eliminovat. Konečně výstup roven 100% představuje situaci, kdy infrastruktura je zabezpečena přesně tak, jak by měla být.

Vstupy do vzorce pro výpočet RAV metriky jsou:

• viditelnost (visibility),

• přístup (access),

• důvěra (trust)

Pod termínem viditelnost si lze představit počet cílů v infrastruktuře, které spadají do rozsahu testu. Například pokud se testuje úroveň zabezpečení serverové infrastruktury ve směru z internetu, pak viditelností je počet těchto serverů, které jsou z internetu dostupné. Přístup představuje číselnou hodnotu, která se počítá v závislosti na úrovni interakce. Například v oblasti datových sítí se přístup vyjádří jako počet otevřených TCP/IP portů na počítačových systémech spadajících do rozsahu testu. Termín důvěra zase představuje situaci, kdy jeden cíl svolí k interakci s jiným cílem. Důvěra v terminologii OSSTMM tedy představuje počet vztahů důvěry mezi jednotlivými cíli v rozsahu testu.

 

Další oblastí, kterou se metodika zabývá je tvorba výsledné zprávy, neboli reporting. S reportingem je u metodiky OSSTMM spjata zkratka STAR, která je tvořena z počátečních písmen slov security test audit and reporting. Jednotlivá slova, z nichž se tato zkratka skládá, jistě napovídají, že se jedná o nástroj pro tvorbu reportů reflektujících stav zabezpečení infrastruktury, který může sloužit rovněž jako tzv. checklist pro provádění penetračního testu. Analytik, jenž test vyplnil, si může správnost svého postupu nechat prověřit přímo u společnosti ISECOM zasláním onoho formuláře. Jistě netřeba zdůrazňovat, že k tomuto kroku musí mít výslovný souhlas vlastníka infrastruktury, jíž se penetrační test týkal.

Každá metodika, která chce svému čtenáři dát představu o tom, jak má postupovat při provádění penetračního testu, by měla obsahovat aspoň rámcové dělení penetračního testu na fáze a rovněž specifikovat, co má která fáze obsahovat. Ani metodika OSSTMM není výjimkou. Dle OSSTMM se dělí penetrační test na čtyři fáze:

• uvedení (induction),

• interakce (interaction),

• vyšetřování (inquest),

• intervence (intervention)

Pro doplnění jsou tyto fáze zobrazeny na následujícím obrázku:

Fáze uvedení má jasně vymezené cíle. Je třeba si uvědomit časový rámec testu, rozsah, právní normy, které je třeba brát v potaz a ujasnit si, které typy testů budou použity. Fáze interakce spočívá ve zjišťování cílů spadajících do rozsahu testu, zjišťování kontrolních mechanismů ochraňujících tyto cíle a zaznamenávání informací. Za fázi vyšetřování, respektive obsah toho, co je náplní této fáze, jistě hovoří její název. Jejím cílem je zjistit co nejvíce informací mnohdy i z veřejných zdrojů (např. RIPE databáze) o cílech spadajících do rozsahu testu a vyhodnocení těchto informací (zdali nebyly odhaleny důvěrné informace, k nimž má mít přístup pouze definovaný okruh lidí apod.). Konečně fáze intervence má za cíl ověřit funkčnost kontrolních mechanismů a také zdali správně zafungovaly poplašné mechanismy.

Shrnutí

Jak lze z předchozích dvou podkapitol vidět, v obou metodologiích je určitý rozdíl. Metodika NIST je co do počtu stran a pokryté problematiky méně rozsáhlá oproti metodice OSSTMM, neboť metodika NIST vůbec neuvažuje například fyzickou bezpečnost či bezpečnost lidského faktoru. Dále metodika OSSTMM zavádí oproti metodice NIST mnoho nových termínů a definicí. Také zavádí možnost měřit míru zabezpečení v konkrétních číslech, čímž vzniká zajímavá možnost srovnávání úrovní zabezpečení. Obecně lze tedy konstatovat, že metodika OSSTMM je rigoróznější a obsáhlejší, problematiku penetračního testování podchycuje s větším důrazem na detail a hodí se pro jak začínající, tak i zkušenější penetrační testery a rozsáhlejší penetrační testy. Metodika od agentury NIST je lépe srozumitelná začínajícím testerům, neboť zavádí oproti OSSTM menší množství nových pojmů a věnuje se pouze zabezpečení informačních technologií. Tak či tak, rozhodně lze usoudit, že prověřená metodika je vhodným a potřebným pomocníkem jak při přípravě tak provádění penetračního testu a při psaní závěrečné zprávy. Pro lepší nadhled nad celou problematikou je účelné nastudovat si metodik více a z každé vybrat ty informace a rady, které budou nápomocné při provádění konkrétního penetračního testu.

Nástroje používané k penetračnímu testování

V této kapitole budou představeny různé nástroje, které penetrační tester může využít ke své práci. Nástroje budou rozděleny do sekcí podle toho, v jaké fázi jsou jejich výstupy použitelné. Jednotlivé fáze, do nichž budou nástroje kategorizovány, byly odvozeny z fází, jež doporučují metodiky NIST a OSSTMM.

Linuxové distribuce zaměřené na penetrační testování

Linuxových distribucí zaměřených na penetrační testování a informační bezpečnost existuje mnoho. Většína z nich ovšem již delší dobu není udržovaná a aktualizovaná, proto jejich použitelnost s časem klesá. Příkladem distribucí, které již nejsou udržovány, mohou být kupříkladu Whax či Knoppix-STD. V následujících dvou podkapitolách budou popsány distribuce, které se neustále vyvíjejí a jsou ve světě informační bezpečnosti hojně používány.

Backtrack

Na stránkách Backtrack projektu3 lze zjistit, že se jedná o distribuci zaměřenou na bezpečnost obsahující velké množství nástrojů pro bezpečnostní audity a pro penetrační testování, za níž stojí společnost Offensive Security. Tato distribuce není přehlížena ani ve vědeckých kruzích. Odborníci z Technické univerzity v Bukurešti vydali článek, v němž se zabývají otázkou edukace odborníků právě pro oblast informační bezpečnosti . Po úvodu do teorie následuje praktický příklad z oblasti penetračního testování, kde je Backtrack použit jako operační systém na počítači útočníka, který se snaží odhalit slabiny v síti, do níž je připojen. Autor článku nazvaného Beat security auditors at their own game  se zabývá úvodem do problematiky penetračního testování a nástrojů s touto problematikou související. Operačním systémem, pomocí něhož tyto nástroje a jejich použití představuje, je Backtrack.

Společnost Offensive security ohlásila vývoj zbrusu nové distrubuce nazvané Kali Linux, která bude založena na distribuci Debian. Jejich záměr je takový, aby Kali Linux s postupem času Backtrack nahradil.

Blackbuntu

Distribuce Blackbuntu je založena na Linuxové distribuci Ubuntu, jak jistě název napovídá. V knize autorů Engbertsona a Broada je zmiňována jako alternativa k nejčastěji užívané distribuci Backtrack . Na stránce projektu4 se uvádí, že Blackbuntu je vyvíjeno a udržováno skupinou nadšenců v oblasti počítačové bezpečnosti a nestojí za ním žádný velký hráč v oboru informační bezpečnosti, jako je tomu u projektu Backtrack, který je zašťiťován společností Offensive Security. O tom, že ve světě informační bezpečnosti hraje Blackbuntu ve srovnání s distribucí Backtrack takříkajíc druhé, housle svědčí i fakt, že termín Blackbuntu je k nalezení v minimu vědeckých článků.

Nástroje pro fázi průzkumu

Tato fáze si klade za úkol zjistit o cíli penetračního testu co nejvíce informací, z nichž lze dále vycházet při dalších fázích penetračního testu. Jedná se zpravidla o rozsah IP adres, emailové adresy, dokumenty, které unikly na internet a mohou obsahovat důležité informace, či adresy důležitých serverů, na které by šlo případně zaútočit. Z důvodu rozsáhlosti a komplikovanosti problematiky penetračního testování nejsou nástroje porovnatelné, neboť každý nástroj poskytuje informace rozdílného druhu a existují i nástroje, jejichž výstup může posloužit jako vstup dalšímu nástroji. Každý z nástrojů tedy k úspěšnému penetračnímu testu přispívá svým dílem.

Shodan

První zmínka o Shodanu se na veřejnosti objevila v roce 2010 na konferenci DEFCON5 pořádané každoročně ve Spojených státech amerických. Michael Schearer demonstroval na praktických příkladech využití tohoto nástroje. Organizátoři konference poskytli dokument shrnující hlavní myšlenky Schearerovy prezentace . Shodan funguje na podobném principu jako internetové vyhledávače procházející webové stránky. Rozdíl je v tom, že Shodan nesbírá data z webových stránek, ale ze zařízení komunikujících po síti, respektive bannerů těchto zařízení. Těmito zařízeními se rozumí například webkamery, síťové prvky jako přepínače nebo směrovače, tiskárny či servery, ale pomocí Shodanu lze nalézt i nezabezpečené systémy používané k řízení světelné signalizace na křižovatkách. Výsledky svého vyhledávání Shodan ukládá do databáze a uživatelům poté pomocí vhodně kladených dotazů dovolí v této databázi vyhledávat.

Akademické články  a  ve svém úvodu představují, k čemu Shodan slouží a vzápětí se zabývají kombinací Shodanu a SCADA systémů připojeních k internetu. Zároveň odkazují na zprávu ICS-CERT6 týmu zabývající se toutéž otázkou. Jak články, tak zpráva ICS-CERT týmu dochází k závěru, že Shodan nalezl a indexuje informace, pomocí nichž lze přistoupit ke SCADA systémům souvisejícím kritickou infrastrukturou Spojených států amerických, a jejichž zabezpečení je minimální či žádné. ICS-CERT tým zároveň ve své zprávě připojuje rady a doporučení, co by měli správci daných kritických systémů podniknout za účelem nápravy situace.

Na stránce projektu Shodan  lze po kliknutí na dvě malé šipky zobrazené na úvodní stránce vidět, kolik zařízení bylo v té či oné oblasti oscanováno. Obrázek 5 znázorňuje toto číslo pro Českou republiku.

Schearer ve své prezentaci  ukazuje některé ze základních filtrů, jimiž lze vyhledávání parametrizovat. Následující odstavce tyto filtry popisují a představují. Lze například jednoduše vyhledat všechna zařízení, která byla naindexována v Pardubicích. Jak takový dotaz položit, znázorňuje následující filtr a obrázek 6 pro doplnění znázorňuje počet zařízení naindexovaných v Pardubicích.

Shodan umožní uživateli používat i operátory. Těmito operátory jsou + (implicitní), -, či uzavření hledaného textu do uvozovek (hledá se přesné slovní spojení, nikoliv kombinace jednotlivých slov). Tato fakta mohou vést k úvaze nad konstrukcemi dotazů, které mohou odhalit informace, jež zcela jistě měly zůstat utajené. Následující odstavec uvede několik příkladů takových dotazů.

cisco-ios last-modified -401

Na výstupu takového dotazu se objeví všechna zařízení vyrobená firmou Cisco, která neobsahují návratový kód 401 (unauthorized) a zároveň obsahují výraz „cisco-ios last-modified“, což je řádek se objevující se v konfiguračním souboru zařízení Cisco a zařízení objevující se ve výsledcích tohoto dotazu mnohdy bývají oproštěna od jakéhokoliv zabezpečení a jsou přístupna bez ověření uživatele.

webcam -401 -SQ-WEBCAM

Takto položený dotaz dotaz vrátí všechny webkamery, které se neohlásily pomocí návratového kódu 401 (unauthorized) a neobsahují řetězec SQ-WEBCAM (tyto kamery takřka ve všech případech požadovaly autentifikaci uživatele).

Rovněž může nastat situace, kdy je třeba vyhledat určitý softwarový produkt (kupříkladu webový server) v určité zemi, neboť infrastruktura cíle, na němž je penetrační test prováděn, tento produkt obsahuje a existuje reálná možnost toho, že se právě daný cíl objeví ve výsledcích vyhledávání, což ušetří část času, kterou by jinak musel penetrační tester věnovat vyhledávání adresního rozsahu cíle a následnému scanování tohoto rozsahu. Následující dotaz zpřístupní všechny IIS servery, které byly pomocí engine Shodan naindexovány, jsou ve verzi 5.0 a nacházejí se v České republice.

iis 5.0 country:cz

Shodan je přistupný zdarma v jeho základní verzi. Tato základní verze má ovšem jistá omezení, která mohou být při rozsáhlém penetračním testu limitující. Mezi tato omezení patří přístup pouze k prvním pěti desítkám výsledků vyhledávání, nezahrnutí služeb pracujících na protokolech HTTPS a Telnet do výsledků vyhledávání a v neposlední řadě nemožnost přístupu k API. Tato omezení lze odstranit zakoupením prémiového přístupu řádově v hodnotě desítek dolarů. Přesná částka je k nalezení na webu projektu .

Maltego

První dohledatelná zmínka o nástroji Maltego existuje v knize zabývající se open-source nástroji pro penetrační testování z roku 2007 . Zde autor popisuje, že Maltego lze získat buď jako desktopovou aplikaci s grafickým uživatelským rozhraním nebo je možno využít Maltego na webové stránce organizace Paterva, která za projektem Maltego stojí. Paterva v dnešní době poskytuje aplikaci pouze jako desktopovou, od udržování webové verze aplikace bylo upuštěno. Maltego představuje nástroj z kategorie OSINT (Open-source inteligence). Tento termín popisuje sadu technik, nástrojů a postupů, kdy z veřejně dostupných informací jako jsou kupříkladu fulltextové vyhledávače, sociální sítě, různé online dostupné archivy či registrátoři domén, probíhá pomocí programového vybavení počítače extrakce a agregace podstatných informací vztahujících se k nějaké entitě (zpravidla emailová adresa, IP adresa, doménové jméno apod.) a modelování relací mezi těmito informacemi. Nástroje tohoto typu šetří úsilí a čas, neboť úsilí, které by musel penetrační tester vyvinout, pokud by informace tohoto druhu chtěl získávat ručně a nikoliv automatizovaně, je nesrovnatelně vyšší, než při použití nástrojů z kategorie OSINT. Rigorózní vysvětlení termínu OSINT a představení nástrojů spadajících do této problematiky přináší, jehož autorem je Danny Bradbury .

Článek autora Dannyho Bradbury popisuje praktický příklad využití Maltega, kdy při demonstraci jeho schopností byla nalezena veřejně dostupná fotka modelky s jejím jménem, a nad tímto jménem byly spuštěny transformy, jenž Maltego nabízí . Po několika chvílích Maltego prezentovalo velmi privátní informace jako telefonní čísla, adresa, fotky bytu či skutečnost, že se daná osoba před časem živila jako profesionální tanečnice. Opora kurzů penetračního testování společnosti Offensive Security  zase na praktickém příkladu ukazuje, jak lze Maltego využít ke zjištění emailových jmen spolupracovníku nějaké osoby na základě její mailové adresy.

V předchozím odstavci bylo řečeno, že Maltego je nástroj disponující grafickým uživatelským rozhraním. To práci s ním do značné míry, narozdíl od nástrojů orientovaných na příkazovou řádku, zjednodušuje. Maltego má dva základní stavební kameny:

• entity,

• transforms

Entitou se rozumí jak kusé informace, které uživatel zadává na vstup a očekává zjištění dodatečných detailů k těmto kusým informacím, tak samotné informace zjištěné nástrojem Maltego pomocí transforms. Pod termínem transforms si lze představit moduly, pomocí nichž lze Maltego rozšiřovat ve smyslu funkcionality, neboť tyto moduly zajišťují vyhledávání informací na základě vstupu od uživatele. Každý z modulů má na starosti hledání jiného druhu informací. Lze tak najít například transform pro zjištění adresního rozsahu, do nějž určitá IP adresa patří, autonomní systém této IP adresy, osobu zodpovědnou za její správu a případně i společnost, které patří a mnohé další informace nejen o IP adresách. Dalším příkladem toho, co Maltego dokáže zjistit, může být například seznam mailových adres vázaných k zadanému jménu společnosti, čímž dostává potenciální útočník do ruky seznam možných přihlašovacích jmen, na nichž lze zkoušet útoky hrubou silou. Představení nástroje Maltego a ukázku použití lze najít například v publikaci organizace Offensive Security  na straně 118.

Maltego veškeré zjištěné informace vykreslí do přehledného grafu entit, v němž se lze snadno pohybovat a v pravém horním okně zobrazí zmenšeninu daného grafu pro snadnější orientaci. Pro doplnění zobrazuje následující obrázek 7, který vzniknul provedením všech dostupných transformů na IP adrese 195.113.124.185.

Z výsledku proběhlých transformů lze lehce vyčíst, že daná IP adresa se nachází v ČR, konkrétně v Pardubicích a patří do adresního rozsahu 195.113.124.0 - 195.113.124.255. Byla zjištěna i doménová jména, jejichž překlad ukazuje právě na onu IP adresu. Těmito jmény jsou:

• upce.cz,

www.upce.cz,

• cms-proxy.upce.cz

Na entitách, které vznikly provedením transformů na původní entitě, lze provádět další samostatné transformy. Zajímají-li penetračního testera například další IP adresy a zajímavé servery v adresním rozsahu této adresy, lze se zaměřit na entitu adresní rozsah, jak ukazuje následující obrázek 8.

 

Maltego existuje ve dvou verzích, a sice ve verzi Community a verzi Commercial. Omezení, se kterými musí uživatel verze Community počítat, spočívají v možnosti ukládání výsledků a počtu provedených transformů za jednotku času. Cena za verzi Commercial je stanovena na řádově stovky dolarů. Více podrobností o rozdílech mezi verzemi se lze dočíst na stránkách projektu Maltego7 a také je možno zde zjistit aktuální cenu za verzi Commercial.

Nástroj Maltego umožňuje nainstalovat rozšíření. Toto rozšíření nese název Sploitego a jak jistě z názvu plyne, Sploitego rozšiřuje schopnosti Maltega v oblasti penetračního testování. Při instalaci Sploitega jsou do Maltega nahrány nové transformy, které se od těch stávajících liší zásadním způsobem. Nevyužívají databáze volně dostupné na internetu, nýbrž software instalovaný lokálně. Tímto lokálním software se rozumí zejména SNMP scannery, síťové scannery jako například NMAP či scannery zranitelností jako například Nessus, jež budou představeny v následujících podkapitolách. Zjištěné výsledky jako například otevřené porty prezentuje Maltego ve srozumitelné a jednoduché formě entit a relací mezi nimi, což je oproti příkazové řádce, kterou používají některé z nástrojů z oblasti penetračního testování, posun k uživatelskému komfortu.

V předchozí podkapitole (podkapitola 3.2.1) byl popsán vyhledávač Shodan. Pracovat s tímto vyhledávačem lze i z pohodlí grafického prostředí nástroje Maltego. Na webu projektu Shodan: Maltego add-on8 lze nastudovat, jakým způsobem je lze nainstalovat do Maltega doplněk pro vyhledávač Shodan.

Nslookup, dig, host

Příkaz nslookup, který je v operačních systémech přítomen již od dob MS-DOS slouží pro interakci se servery DNS. Při penetračním testování napomáhá získávat informace související s překladem adres, se zjišťováním mailových serverů náležících k dané doméně a poskytováním jiných důležitých informací, které je DNS server ochoten poskytnout. V neposlední řadě lze pomocí nslookup odhalit i špatně zabezpečené DNS servery umožňující přenos zón k tazateli, který původně k takto citlivým informacím neměl mít přístup. Organizace ISC, jež spravuje zdrojový kód k programu nslookup a stojí za nejpoužívanějším DNS serverem současnosti, se nechala slyšet, že nslookup již dále nebude vyvíjet a upravovat. Řečené potvrzuje i kniha nazvaná DNS and BIND  v kapitole 12 a jedním dechem dodává, že toto rozhodnutí vzešlo z důvodu přílišné nedokonalosti a množství chyb obsažených v nslookupu. Lze očekávat, že nslookup bude nahrazen nástrojem host či nástrojem dig.

Publikace organizace Offensive Security sloužící jako opora výukových kurzů  v podkapitole nazvané Interakce s DNS serverem provádí stručné představení nslookupu. Dále ukazuje několik praktických příkladů dotazů, které lze pomocí nslookup pokládat a na závěr této podkapitoly je čtenář seznámen s metodami provádění slovníkových útoků na DNS servery. Tyto útoky vedou zpravidla k objevení nových serverů či služeb dostupných na dané doméně, o nichž z počátku neměl penetrační tester tušení. Zjišťování doménových jmen metodou hrubé síly se v této práci podrobněji zabývá podkapitola nazvaná DNSdict.

Ač je nslookup již zastaralý, bude přesto použit v ukázce dolování informací z DNS serveru. Jednak z důvodu kompaktnosti výstupu a jednak z důvodu, že použití host a nslookup se od sebe liší pouze minimálně. Následující příklad předvede, jakým způsobem získat IP adresy poštovních serverů z domény upce.cz:

C:\>nslookup

Vychozi server: mailadmin.moravanet.cz

Address: 95.173.194.1

> set type=mx

> upce.cz

Server: mailadmin.moravanet.cz

Address: 95.173.194.1

Neautorizovana odpoved:

upce.cz MX preference = 20, mail exchanger = mx1.upce.cz

upce.cz MX preference = 10, mail exchanger = mx2.upce.cz

>set type= A

>mx1.upce.cz

Server: mailadmin.moravanet.cz

Address: 95.173.194.1

Jak lze vidět z výstupu z příkazové řádky, adresy mailových serverů pro doménu UPCE jsou následující:

• mx1.upce.cz,

• mx2.upce.cz.

Je nasnadě, že pomocí nástroje nslookup lze o cílové doméně zjistit mnoho informací, které lze poté využít v dalších fázích penetračního testu

Článek  rovněž potvrzuje informaci o tom, že nslookup je v tuto chvíli již neudržovaný projekt a jedním dechem dodává, že nástupci tohoto populárního nástroje se nazývají dig a host. Příkaz host je předurčen k plnění jednodušších úkolů, jako je například reverzní vyhledání doménového jména k IP adrese či vyhledání IP adresy k doménovému jménu, zatímco příkaz dig zvládá totéž co příkaz host a navíc obsahuje ještě podporu skriptování, dokáže zdrojová data, na základě nichž bude klást dotazy DNS serverům, číst ze souboru a rovněž lze definovat, že dotaz má být položen pouze serveru, jenž je pro danou doménu autoritativní. Možnosti, jež dig nabízí, si lze nastudovat v manuálové stránce tohoto příkazu. Více informací o příkazu dig je k nalezení v jeho manuálové stránce, která se zobrazí po zadání následujícího příkazu v příkazové řádce operačního systému Linux.

man dig

Příkaz whois

Whois je již od nepaměti součástí příkazové řádky v operačních systémech Unixového typu, kdežto v operačních systémech od firmy Microsoft je třeba jej doinstalovat jako externí komponentu. S whois se pracuje pomocí příkazové řádky, kde pomocí parametrů a argumentů je uživatel schopen ovlivnit chování tohoto příkazu. Příkaz slouží pro získání informací o doménovém jméně či IP adrese. Je závislý na činnosti tzv. whois serverů, které tyto informace shromažďují a udržují. Mezi organizace provozující tyto servery patří kupříkladu i evropský RIPE, což je registrátor mající na zodpovědnost přidělování rozsahů veřejných IP adres na evropském kontinentu.

Kniha pojednávající o open-source technologiích pro penetrační testování představuje technologii whois a mechanismus práce whois klientů a odpovídajících serverů více do detailu. Je zde rovněž zmíněn fakt, že drtivá většina serverů poskytujících odpovědi na dotazy whois má vestavěnou ochranu proti dolování dat. Jinak řečeno, neumožňují klást větší množství dotazu v krátkých časových úsecích. Publikace společnosti Offensive security  v podkapitole nazvané whois reconnaissance (lze volně přeložit jako průzkum pomocí whois) provádí nejprve představení nástroje whois a poté demonstruje, jak by se výstupy z tohoto nástroje daly použít k útoku vedenému pomocí sociálního inženýrství. Na závěr podkapitoly je zmíněn fakt, že na internetu je k dispozici kompletní whois databáze ve verzi offline, jejíž velikost se přibližuje hranici 600 megabytů.

Lze najít uživatele, kterým může práce v příkazové řádce připadat obtížná, výsledky mohou být špatně čitelné a těžké na pochopení. Takovým uživatelům lze doporučit nástroj Maltego, jenž byl představen v jedné z předchozích podkapitol. Maltego poskytuje totožné výsledky a jeho obsluhu lze provádět pomocí grafického uživatelského rozhraní.

Whois umí pro zadanou IP adresu zjistit adresní rozsah, do kterého daná IP adresa patří, autonomní systém, jehož je daná adresa součástí, osoba zodpovědná za správu dané IP adresy či rozsahu (tento údaj je žádoucí zjistit například v případě, kdy z dané IP adresy je veden nějaký kybernetický útok). Zjištění informací o IP adrese znázorňuje následující ukázka. Výpis byl zkrácen tak, aby obsahoval pouze zajímavé a relevantní informace.

root@bt:~# whois 90.181.109.95

%This is the RIPE Database query service.

% Information related to

'90.181.109.0 - 0.181.109.255'

inetnum: 90.181.109.0 - 90.181.109.255

country: CZ status: ASSIGNED PA

mnt-by: AS5610-MTN

source: RIPE # Filtered

nic-hdl: HVJI1-RIPE

source: RIPE # Filtered

route: 90.180.0.0/14

descr: CZ.CZNET

origin: AS5610

mnt-by: AS5610-MTN

source: RIPE # Filtered

Výše uvedený výpis prozrazuje mnoho cenných informací. Lze vidět již zmiňovaný adresní rozsah, do kterého adresa patří, autonomní systém, do něhož adresa náleží a v neposlední řadě i slovní popisek hovořící o tom, že adresa je umístěna v České republice a registrátorem IP adresy je organizace RIPE. Kontakt na osobu zodpovědnou za daný adresní rozsah byl z výpisu odstraněn.

Podobně jako na IP adresu, lze příkaz whois aplikovat i na doménové jméno a i výstup je obdobný.

 

Z výše uvedeného výpisu je patrné, že daná doména patří organizaci jménem Univerzita Pardubice z České republiky, sídlící na adrese Studentská 95, Pardubice. Rovněž jsou zobrazeny údaje časového charakteru, jako například kdy byla doména registrována a dokdy je zaplacena.

DNSDict6

DNSDict6 je skript, jenž lze nalézt v Linuxové distribuci Backtrack. Pracuje se s ním za pomocí příkazové řádky a nápovědu k tomuto nástroji lze získat následujícím příkazem:

dnsdict -h

Vznik tohoto nástroje byl zapříčiněn vzrůstající mírou zabezpečení DNS serverů. V raných dobách internetu bylo možno z libovolného DNS serveru získat informace o celé zóně, pro niž byl autoritativní. Tím pádem bylo možno lehce zjistit, jaké servery v dané zóně pracují a jakou mají IP adresu. Toto ovšem s postupem času a přibývajícím počtem uživatelů internetu začal být problém, neboť každý, kdo chtěl, mohl získat o síti jakékoliv organizace detailní přehled. Proto byla na DNS servery implementována ochrana přenosu zón, pomocí níž lze nastavit, komu bude umožněn přenos zóny. Tyto bezpečnostní mechanismy vedly ke vzniku řady nástrojů, do níž spadá i DNSDict6. Dle množství nalezené literatury a vědeckých článků lze konstatovat, že DNSDict6 je neznámým a neprobádaným nástrojem, neboť i obsáhlá literatura zabývající se problematikou penetračního testování nechává tento užitečný nástroj bez povšimnutí.

Princip jeho práce je jednoduchý. Ke své činnosti potřebuje slovník obsahující doménová jména potenciálně přítomna na doméně, která byl nástroji DNSDict6 předána jako argument příkazové řádky. Při svém spuštění nástroj vyhledá DNS server autoritativní pro danou doménu a začne tomuto DNS serveru klást dotazy na doménová jména ze slovníku za účelem zjištění IP adresy daného doménového jména. DNS server v případě existence doménového jména odpoví korektní IP adresou a v případě neexistence ohlásí chybu. Odpovědi DNS serveru pak DNSDict6 reportuje uživateli společně s IP adresami, které se zdařilo po interakci se serverem přeložit.

Google hacking database

Vyhledávač Google jistě netřeba dlouze představovat. Zabývá se procházením webových stránek a indexováním jejich obsahu. Tyto stránky zpřístupňuje právě vyhledáváním v předem vytvořené databázi indexů obsahujících informace o navštívených stránkách. Vedlejším efektem indexování internetových stránek je ovšem fakt, že jsou mnohdy indexovány stránky, které nikdy být indexovány neměly. Alespoň to jejich správci a tvůrci nezamýšleli. A tak lze pomocí Google vyhledávače lze nalézat špatně zabezpečené servery, servery mající určitou verzi nějakého software disponující známou zranitelností, konfigurační soubory, přístup do administračních nástrojů k databázím, soubory s nešifrovanými hesly, ovládací rozhraní webových kamer společně se snímaným obrazem, soubory vytvořené v tabulkových procesorech obsahující citlivé údaje a mnohé další informace, které měly zůstat utajeny.

Na webu Sciencedirect9 lze nalézt článek uvádějící čtenáře do problematiky činnosti zvané Google hacking. Článek uvádí konkrétní příklady toho, co vše lze objevit ve výsledcích vyhledávání a co vše mělo zůstat světu utajeno Například se jedná o chybové notifikace prozrazující množství detailů o hardwarové i softwarové konfiguraci systému, jenž je původcem dané notifikace či soubory v nijak nechráněných naindexovaných adresářích. Mnohdy tyto soubory obsahují cenná data. Článek seznamuje čtenáře rovněž se základy dotazování se pomocí operátorů a ukazuje, jak jednoduše najít citlivá data či servery, na nichž je přítomen zranitelný software.

Publikace nazvaná Google hacking for penetration testers předsatvuje obsáhlý zdroj podrobných informací na téma Google hackingu. Její nesporná výhoda oproti ostatním zdrojům představujícím tematiku spočívá v tom, že jejím autorem je samotný Johhny Long, což je zakladatel tohoto odvětví počítačové bezpečnosti a průkopník v problematice Google hackingu. Prvních 11 kapitol knihy je věnováno úvodu do pokročilého vyhledávání pomoci Google a vyhledávání různých druhů citlivých informací, počínaje nezabezpečenými adresáři s daty přístupnými z internetu, nezabezpečené prvky síťové infrastruktury a konče seznamy uživatelských jmen a k nim náležících hesel.

Johnny Long stojí za projektem databáze10 obsahující značné množství dotazů pro vyhledávač google a k mnohým z nich je k dispozici i popis toho, co daný dotaz nalezne a pokud se jedná o odkaz na zranitelný software dostupný přes internet, je mnohdy k dispozici i odkaz s exploitem. Tuto databázi tvoří a udržují kromě samotného J.Longa i nadšenci, kteří se neváhají podělit o zajímavé vyhledávací dotazy, na které sami při bádání narazí. Někteří z těchto nadšenců ostatním mnohdy zpřístupní i samotné citlivé údaje, které se jím pomocí Google hackingu podařilo najít11 .

Jedním z mnoha příkladů Google hackingu může být následující dotaz.

intitle:"[EasyPHP] - Administration"

Tento dotaz vyhledá všechny webové servery pracující na platformě EasyPHP a zároveň mající nezabezpečený přístup do administračního rozhraní. Výsledek tohoto dotazu ilustruje následující obrázek.

Z obrázku 9 lze jistě vyčíst, že těchto serverů má Google naindexováno něco přes tisícovku.

allinurl:forcedownload.php?file="

Tento příkaz má za následek zobrazení webových stránek obsahujících skript s názvem forcedownload.php. Tento skript byl z počátku používán v redakčním systému wordpress a sloužil ke stahování souborů, jenž web uživatelům nabízel. Jeho slabina spočívala v tom, že ke stažení nabídl jakýkoliv soubor, jehož název mu byl předán jako argument. Bylo tedy možné získat například zdrojové kódy daného webu a tím pádem i přístup k databázi, což představuje bezpečnostní hrozbu, neboť databáze mnohdy obsahuje citlivé informace. Obrázek 10 ukazuje výsledek takového vyhledávání. Google našel cca šedesát tisíc stránek s tímto skriptem.

 

Google hacking lze považovat za nástroj, který penetračnímu testerovi takřka bezpracně zpřístupní obrovské množství informací, které neměly být nikdy zveřejněny. Administrátorský přístup ke správě databáze přes rozhraní EasyPHP je toho jasným důkazem. Odborníci zabývající se bezpečností a penetračním testováním jistě znalosti pokročilého vyhledávání pomocí Google využijí, tudíž je vhodné, aby se seznámili alespoň se základními operátory a výrazy pro pokročilé vyhledávání.

Nástroje pro fázi scanování - komplexní nástroj NMAP a ostatní nástroje

Publikace autorů Engbertsona a Broada uvádějící čtenáře do problematiky penetračního testování představuje fázi scanování jako přechod od fáze průzkumu, kde jsou zjištěny počítače pracující v síti, do stavu, kdy penetrační tester zná druhy služeb, které na těchto počítačích pracují, verze software poskytující tyto služby a zpravidla i operační systém těchto počítačů . Tato publikace do fáze scanování zahrnuje i proces zjišťování zranitelností, který bude popsán v následující podkapitole.

Kapitola 3 knihy Penetration tester's open-source toolkit  se scanováním počítačových sítí a portů zabývá oproti knize autorů Simpsona, Backmana a Corleyho  detailněji. Jednak představuje právní aspekt věci, přehledně v bodech uvádí výčet náležitostí, které je třeba mít splněno po formální stránce před započetím samotného testu. Lze říci, že výčet těchto náležitostí je takřka totožný s těmi, které uvádí metodiky OSSTMM a NIST přestavené v předchozích kapitolách této práce. Rovněž kniha  uvádí motivaci pro provádění scanování a obsahuje i úvod do problematiky scanování v rovině počítačových sítí. Motivací pro scanování je dle této knihy získání dodatečných informací o infrastruktuře sítě a počítačích, které jsou do této sítě připojeny. Tyto kroky se pak mnohonásobně vyplácí při práci v dalších fázích penetračního testu, neboť poskytují cenné informace, z nichž lze následně vycházet při určování dalšího směru, kterým se má penetrační test ubírat.

Nástrojů pro provádění scanování existuje celá řada. Cílem následujících odstavců je některé z těchto nástrojů představit a srovnat. Poté bude zdůvodněno, proč byl pro detailní představení vybrán nástroj Nmap. Obsáhlý srovnávací test nástrojů určených pro scanování počítačových sítí založený na komparaci 15 kritérií provádí článek autorů Daimiho a El-Nazeera . Tento článek obsahuje stručné shrnutí výsledků testu a hodnotí nástroj Nmap jako nástroj, který svoje soupeře předčil množstvím možností využití, jenž svým uživatelům nabízí.

Unicornscan

Unicornscan je jeden z mnoha programů určených pro scanování sítě a je dostupný například v operačním systému Backtrack BT5R3. Nástroj disponuje rozhraním ovládaným přes příkazovou řádku, kdy uživatel pomocí množství voleb ovlivňuje chování nástroje.

Kniha Hands-on Ethical hacking and network defense  představuje Unicornscan jako nástroj, který ve srovnání s ostatními nástroji určenými pro scanování sítě nabízí pokročilé možnosti. Mezi tyto pokročilé možnosti patří:

• regulace množství paketů odeslaných za sekundu,

• podvrhnutí informací o odesílaných paketech (IP adresa či zdrojové porty),

• zápis protokolu činnosti do souboru,

• přibližný odhad toho, zdali se na trase spojení nachází firewall

• možnost volby verze scanu (TCP SYN scan, UDP scan a ARP scan).

Možnosti nabízené programem Unicornscan lze do detailu prostudovat v manuálové stránce tohoto programu. Do manuálové stránky je možno vstoupit následujícím příkazem.

root@bt:~# man unicornscan

Dle manuálu programu Unicornscan se zatím jedná o vývojovou fázi. Důkazem pro toto tvrzení je kupříkladu popis k volbám –c či –F. U volby –c je v nápovědě napsán následující popis:

[-c, --covertness Level]

Numeric option that currently does nothing, except look cool.

Volně přeloženo do českého jazyka je u volby --c napsáno, že tato volba v současné době nedělá nic, pouze vypadá dobře. U volby --F není situace o mnoho lepší:

[-F, --try-frags ]

It is likely that this option doesn't work, don't bother using it until it is fixed.

Zde nápověda informuje čtenáře o tom, že volba --F v současné době nefunguje, a tudíž by se neměl obtěžovat ji používat do doby, než bude opravena.

Autoscan

Program Autoscan je dalším z plejády nástrojů pro scanování počítačových sítí a zařízení připojených do těchto sítí, který je dostupný v linuxové distribuci Backtrack. Oproti nástroji Unicornscan představeném v předchozí kapitole disponuje grafickým uživatelským rozhraním a několika schopnostmi navíc. Faktem ovšem zůstává, že verze Autoscanu, která je dostupná v posledním vydání Backtrack linuxu, pochází z roku 2010.

Publikace představuje v kapitole 5.2 zabývající se zjišťováním informací o cílové síti program Autoscan jako jednoduchý a snadno použitelný nástroj pro scanování počítačových sítí. Je zde vyzdvižen fakt, že grafické rozhraní, jímž Autoscan disponuje, lze chápat jako nadstavbu nad agentem, který se sám o sobě stará o průběh scanu sítě. Tohoto agenta je možno dle knihy umístit do cílové sítě, již odděluje od internetu NAT a tuto síť s minimálním úsilím podrobit scanu.

Stránka programu12 uvádí výčet vlastností, kterými Autoscan disponuje. Ty zásadní a důležité schopnosti programu Autoscan uvádí následující seznam:

• detekce operačního systému zařízení v síti,

• možnost paralelního scanování více sítí,

• inventarizace detekovaných zařízení a jejich uložení do XML,

• možnost detekce vetřelců v síti (detekce nového zařízení oproti již zjištěným zařízením z dřívějších scanů)

• schopnost běžet paralelně ve více vláknech a tím pádem rychlejší průběh scanu

Obrázek 11 představuje grafické uživatelské rozhraní nástroje Autoscan. V levé části obrazovky lze vidět počítače, které byly v síti zjištěny a v pravé části obrazovky jsou uvedeny podrobnosti ke každému uzlu sítě. Konkrétně IP a MAC adresu uzlu, služby a otevřené porty, které byly na daném uzlu identifikovány a rovněž provádí i odhad toho, který uzel je na daném síťovém segmentu výchozí bránou. Tuto domněnku poté Autoscan zobrazí v podrobnostech u konkrétního uzlu.

Hlavní výhoda programu Autoscan spočívá v jednoduchosti jeho použití díky grafickému uživatelskému rozhraní. Je tedy vhodný pro začínající penetrační testery, kteří zpravidla mají minimální zkušenosti s příkazovou řádkou.

Nmap

Název tohoto síťového scanneru vznikl spojením slov network a mapper. Jeho historie sahá do druhé poloviny 90. let minulého století, kdy byl do světa uveden jako jednoduchý nástroj určený pro scanování portů, přičemž další vývoj tohoto nástroje nebyl zpočátku naplánován. Nicméně jeho popularita rostla a do Nmap projektu se přidali lidé, kteří měli zájem na tom, aby projekt pokračoval. Od té doby prošel Nmap bouřlivým vývojem až do dnešního stavu, kdy obsahuje velké množství voleb, pomocí nichž lze scan ovlivnit, podporu pro skriptování a automatizaci úloh a také grafickou nadstavbu pro uživatele, kterým činí problém orientovat se v příkazové řádce.

Na oficiálním webu nástroje Nmap, v sekci věnované představení Nmapu13 je možno nahlédnout do historie tohoto nástroje a získat přehled o tom, co je do budoucna s tímto nástroje zamýšleno. Nmap je jediný ze síťových scannerů, který má takto jasnou vizi vývoje v budoucnu.

V literatuře je Nmap hodnocen jako nejlepší nástroj, jenž je k dispozici mezí síťovými scannery. Autoří Engbertson a Broad jsou ve své publikaci  jsou, že kdyby si měli vybrat z plejády síťových scannerů pouze jeden jediný, byl by to s jistotou právě Nmap.

Svůj výběr zdůvodňují nepřeberným množstvím možností a způsobů použití Nmapu. Kolektiv autorů výukových podpor ke kurzu zaměřenému na penetrační testování  je totožného názoru, navíc tvrdí, že pro Nmap hovoří i možnost skriptování v jazyce Lua a tím pádem možnost rozšíření a automatizace Nmapu. Publikace  zase zastává názor, že ve prospěch NMAPu hovoří jeho multiplatformnost a možnost dostupných voleb. Nejobsáhlejším a nejpodrobnějším zdrojem informací k síťovému scanneru je přiručka, jejímž autorem je přímo samotný autor nástroje Nmap Gordon Lyon .

Na předchozí stránce této práce byl uveden odkaz na oficiální stránky Nmap projektu. Na těchto stránkách je uveden detailní výčet schopností, kterými Nmap disponuje. Následující seznam uvádí podmnožinu těch nejvýznamnějších schopností:

• pokročilé způsoby zápisu adres určených k proscanování (např. 192.168.1-10.0/24),

• osm způsobů jak zjistit, zdali je zařízení zapnuté a dostupné či vypnuté:

o TCP SYN/ACK host discovery scan,

o UDP host discovery scan,

o SCTP host discovery scan,

o ICMP echo host discovery scan,

o ICMP timestamp host discovery scan,

o ICMP netmask host discovery scan,

o protocol ping host discovery scan,

o arp ping host discovery scan.

• desítku technik jak scanovat dané zařízení a najít dostupné služby,

o TCP SYN connect scan,

o TCP connect scan,

o ACK scan,

o Maimon scan,

o UDP scan,

o null scan,

o xmas scan,

o idle scan,

o protokol scan.

• detekce operačního systému a verzí programu poskytujících služby na otevřených portech díky databázi otisků,

• poskytnutí výstupu v mnoha způsobech (XML dokument, výstup do databáze či textového souboru či výstup snadno zpracovatelný příkazem grep,

• jsou k dispozici dvě stovky skriptů pro plnění nejrůznějších úloh (např. lze otestovat, zdali je cílový počítač ovlivněn postižen konkrétní zranitelností),

• definice agresivity scanu (počet odeslaných paketů za časovou jednotku),

• pokročilé možnosti oklamání Firewallů a IDS systémů,

• integrovanou sadu nástrojů pro benchmarking sítě, porovnávání výsledků různých scanů.

Při srovnání výčtu těch nejdůležitějších schopností Nmapu se schopnostmi scannerů představených v kapitolách 3.3.1 a 3.3.2 je evidentní, že Nmap nejen zvládá totéž co jeho konkurence, ale i ještě několik věcí navíc. To zároveň vysvětluje fakt, proč odborná literatura, pokud hovoří o technikách scanování sítí a zařízení do těchto sítí připojených, představuje tyto techniky za pomoci nástroje Nmap.

Publikace autorky Kimberly Graves  a metodiky NIST SP 800-115 a OSSTMM hovoří o scanování jako o činnosti, kterou je třeba pečlivě si naplánovat a rozdělit si ji na fáze. V každé fázi pak provádět dílčí úkony, které vedou k získání co nejvěrnějšího obrazu zařízení v síti a služeb, které na těchto zařízeních pracují. Tato představí praktické ukázky práce s Nmapem rovněž v jednotlivých fázích a to z důvodu přehlednosti. Fáze, na nichž bude program Nmap představen jsou přímo odvozeny z fází uvedených v knize Certified ethical hacker autorky Kimberly Graves a charakterizuje je následující obrázek 12.

Prvním cílem každého penetračního testu je vždy najít na síti systémy a zařízení, která reagují na síťovou komunikaci a tudíž jsou pro penetračního testera perspektivní v dalších fázích penetračního testu, neboť mohou obsahovat software mající zranitelnost. Pro plnění tohoto úkolu obsahuje Nmap hned několik voleb a přepínačů, pomocí kterých lze získat detailní přehled zařízení, jež pracují na daném síťovém segmentu. Samozřejmostí je ping scan, který prověřuje stav IP adresy pomocí protokolu ICMP. Další technika, pomocí které lze získat cenné informace o síťovém segmentu, se nazývá ACK ping. Využívá chování TCP/IP stacků operačních systémů, které jsou naprogramovány v souladu s normou RFC 793. Tato norma specifikuje, že odpovědí na TCP segment, který není součástí existujícího spojení a má v hlavičce nastaven ACK bit, má vždy být segment s nastaveným RST bitem. Lze takto otestovat, zdali systémy, které mají zakázáno komunikovat protokolem ICMP, jsou v provozu. Faktem ovšem zůstává, že stavové firewally znemožní tento způsob testování zařízení, neboť poznají, že segment není součástí žádného z existujících spojení a tento segment v tichosti zahodí. V programu Nmap je ACK ping vyvolán volbou –PA. Kniha autora nástroje Nmap  o této technice podrobně pojednává. Další z technik, jenž lze nalézt v téže knize zahrnují UDP ping, který je vyvolán parametrem –PU. Cílem této techniky je, stejně jako u ACK ping, pomocí protokolu UDP zjistit, zdali daná IP adresa reaguje na podněty a tím pádem zda na této adrese pracuje nějaké zařízení. Je využívána zpravidla tehdy, pokud techniky scanování založené na TCP protokolu neuspějí. Vychází z faktu, že zařízení při přijetí UDP paketu na uzavřený port odpovídá zprávou icmp – port unreachable, čímž na sebe fakticky prozradí svoji existenci.

Další technikou je protocol ping. Ten používá v IP hlavičce odesílaného paketu různá čísla protokolů a jako odpověď očekává zprávu ICMP – protocol unreachable či odpověď ve stejném protokolu, v jakém byl odeslán paket směrem ke scanovanému zařízení. Tak či tak, Nmap pozná, zdali je daná IP adresa v provozu a informuje uživatele. Protokol ping je vyvolán pomocí volby –PO, přičemž lze specifikovat typ protokolu, jenž má být zapsán do hlavičky paketu. Tak jako u předchozího druhu scanu, i u tohoto scanu se lze dočíst potřebné informace v knize, jejímž autorem je autor programu Nmap .

Poté, co jsou zjištěna zařízení pracující na daném síťovém segmentu, je možno přikročit k prohlubování znalostí o těchto zařízeních. V souladu s obrázkem 12 znázorňujícím fáze průběhu scanování lze tuto fázi nazvat jako hledání otevřených portů. Stejně tak jako pro zjišťování zařízení na síti, tak i pro scanování těchto zařízení nabízí Nmap nepřeberné množství voleb.

První možností, jak zjistit, které porty jsou na cílovém systému otevřené, je TCP connect scan. Tento proces zjišťování otevřených portů vychází z principu fungování TCP protokolu. Na každém z portů se snaží navázat spojení pomocí techniky zvané 3-way handshake a v závislosti na tom, zdali protistrana odpoví segmentem s bity ACK a SYN či RST, Nmap usoudí, zdali je port otevřen či uzavřen. V příkazové řádce je vyvolán volbou -sT. Kniha Gordona Fyodora – autora programu Nmap  zodpoví čtenáři případné dotazy k tomuto druhu scanu.

TCP SYN scan je druhou možností jak zjisti otevřené porty. Vychází se scanu popsaného v předchozím odstavci, ale liší se v tom, že nedokončí navázání spojení na právě zkoumaném portu a tudíž je pro systémy zabývající se ochranou sítě méně nápadný. Argument –sS sdělí Nmapu, aby použil právě SYN scan. Autor nástroje Nmap ve své knize  tuto techniku představuje podrobně.

UDP scan zkoumá, zdali na určených portech poslouchají služby pracující na protokolu UDP. Mezi tyto služby patří například agenti a manažeři protokolu SNMP či DNS server. Některé DNS servery byly v minulosti známy svým špatným zabezpečením a tudíž se těšily velké oblibě v řadách útočníků. Z tohoto důvodu je vhodné při scanování neopomenout otestovat přítomnost služeb pracujících na aplikačním protokolu DNS. UDP scan je logicky vyvolán argumentem –sU. Podrobnosti lze případně dohledat v knize Gordona Fyodora, autora nástroje Nmap .

Významnou technikou scanování, která Nmap významně odlišuje od konkurenčních produktů, je idle scan. Pokud by měly být scanovací techniky hodnoceny dle míry nenápadnosti a utajení, idle scan se umístí na první příčce. A to z toho důvodu, že systém, jenž je scanován, nemá nejmenší šanci dopátrat se přesné totožnosti zařízení, jež je původcem scanu. Je založen na zkoumání identifikačního čísla fragmentů TCP segmentů. Z řečeného vyplývá, že pomocí idle scanu lze zjišťovat pouze stav služeb pracujících na protokolu TCP. Nutnou součástí při provádění idle scanu je tzv. zombie host. Ze scanneru je totiž jeho jménem odesílána komunikace zjišťující stav portů na zkoumaném systému. Tento zkoumaný systém poté komunikuje se zombie hostem. Původce scanování před započetím zkoumání každého portu a rovněž po jeho zkoumání je schopen z identifikačních čísel fragmentů usoudit, zdali je port uzavřen či otevřen. Nmap a MSF, který je popsán v další kapitole, obsahují nástroje určené ke zjištění toho, zdali je konkrétní zařízení vhodným kandidátem na roli zombie hosta. Z příkazové řádky je idle scan vyvolán volbou –sI.

Nmap disponuje dalšími zajímavými volbami, které sice neovlivňují použitou techniku zkoumání cílového systému, ale přesto mají zásadní vliv na průběh testování. Tento odstavec představí tři nejdůležitější z nich. Volba –f příkazové řádky instruuje nmap k rozdělení TCP hlavičky na malé fragmenty. Tato volba zkomplikuje IDS/IPS systémům orientaci v síťovém provozu, neboť zpravidla nejsou schopny vysledovat souvislost mezi jednotlivými fragmenty TCP hlavičky. Úkolem volby –D je rovněž zmást systémy pro kontrolu síťového provozu. Tato volba umožňuje definovat tzv. decoys (návnady) pomocí IP adres. Při spuštění scanu je pak provoz veden jak korektně z IP adresy zařízení provádějícího scan, tak fiktivně z virtuálních IP adres, jež byly definovány jako argument v příkazové řádce. Pro bezpečnostního analytika zkoumajícího výstrahy IDS systémů je pak obtížnější zorientovat se, odkud scanování vzešlo.

Z pohledu rozšiřitelnosti nabízí Nmap hned několik možností, jak vylepšit jeho funkcionalitu. První možností je NSE. Tato zkratka je tvořena počátečními písmeny slov Nmap scripting engine. Jak již název napovídá, jedná se o součást Nmapu, která umožní tvorbu skriptů, s nimiž Nmap následně pracuje. Skripty pro Nmap jsou tvořeny v jazyce Lua, což je programovací jazyk určený právě pro rozšíření programů o možnosti skriptování. Autoři Nmapu jej do svého nástroje zabudovali hlavně z toho důvodu, že některé úkoly bylo obtížné plnit pomocí příkazové řádky. Kniha autora nástroje Nmap  seznamující čtenáře s nástrojem Nmap uvádí hned několik příkladů použití skriptovaciho engine. Prvním z nich je například detekce verze Skype, kdy by v příkazové řádce bylo třeba zapsat několik na sebe navazujících volání příkazu zjišťujících verzi Skype. Pomocí skriptu lze toto automatizovat. Důležitost tohoto rozšíření pouze dokresluje příklad uvedený v téže publikaci. V dobách, kdy na sítě útočil červ MyDoom, tak několik hodin po jeho objevení byl k dispozici skript pro Nmap testující, zdali je cílový systém tímto červem infikován. Odborná publikace od autorů nástroje Nmap uvádí další příklady skriptů, které mohou testerovi výrazně napomoci při bezpečnostním auditu sítě. Namátkou lze jmenovat skripty útočící hrubou silou na nějaký druh sluzby (například FTP či SNMP) a také skripty, které otestují, zdali je cílový systém postižen určitou zranitelností.

Ač drtivá většina literatury, kupříkladu , ,  či , popisuje Nmap jako nástroj příkazové řádky, je třeba říct, že Nmap disponuje i grafickou nadstavbou, která umožní práci s tímto programem i uživatelům, jež jsou méně zdatní v prostředí příkazové řádky. Tato nadstavba se nazývá Zenmap a je implicitně dostupná v distribuci Linux Backtrack. Zenmap nabízí několik předpřipravených profilů scanu, které se liší hlavně kontrolovanými protokoly a časovým hlediskem průběhu scanu. Profily k dispozici lze zobrazit z roletkového menu v pravé horní části programu, což je znázorněno na obrázku 13.

Zenmap je rovněž nutno vyzdvihnout pro svoji názornost. Umožňuje prezentovat výsledky své činnosti graficky a uživateli zobrazit podrobnosti o každém zařízení, které bylo v síti nalezeno. Grafický výstup z programu Zenmap znázorňuje obrázek 14.

Nástroje pro fázi zjišťování zranitelností – Nessus a OpenVAS

Do kategorie nástrojů určených ke scanování cílových systémů a zjišťování zranitelností těchto systémů patří nástroj Nessus a jeho open-source alternativa nazvaná OpenVAS.

Kniha The basics of hacking and penetration testing zabývající se základy etického hackingu  hovoří existenci zranitelností jako o následku chybějících aktualizací programového vybavení počítače. Jedním dechem dodává, že některé zranitelnosti jako například MS03-026 umožní vzdálené spuštění a Nessus slouží k tomu, aby tyto zranitelnosti odhalil. Dále aby poskytl odkaz na podrobnější informace o možnosti zneužití dané zranitelnosti a o detailních technických informacích vztahujících se k této zranitelnosti. Ve světě informačních technologií existuje již od roku 1998 a za svou dobu existence prošel bouřlivým vývojem. O jeho architektuře lze říci, že je modulární, neboť existuje možnost obohacení Nessusu o schopnost detekovat nové bezpečnostní problémy pomocí zásuvných modulů, jak tvrdí kniha Cyber warfare techniques . Nessus klasifikuje své zásuvné moduly do různých skupin, přičemž každá skupina je předurčena ke hledání zranitelností v určité oblasti. Lze tak nalézt zásuvné moduly pro operační systémy, počítačové sítě, databáze či SCADA systémy.

Praktické použití nástroje Nessus je intuitivní. Je třeba přihlásit se do webového rozhraní, zde zadat seznam cílů, jež mají být testovány na přítomnost zranitelností a bezpečnostních trhlin, test odstartovat a počkat na jeho výsledek. Praktická ukázka práce s nástrojem Nessus je uvedena v knize Cyber warfare techniques  a rovněž je k nalezení v kapitole 6 této práce, která pojednává o případové studii.

Rozšířit nástroj Nessus o nové funkcionality lze dvěma způsoby. První možnost je investovat do profesionální edice tohoto nástroje v hodnotě řádově tísíců dolarů ročně, kdy uživatel získá pokročilé možnosti jako plánování scanů, dodatečné zásuvné moduly pro SCADA systémy, možnost kontroly, zdali je cílový systém v souladu s normami vydávanými normalizačními institucemi, jako je například NIST přestavený v kapitole 3.2, kde byla rovněž představena metodika vydaná tímto normalizačním institutem. Další cestou, jak lze rozšířit funkcionalitu nástroje Nessus, je použití skriptovacího jazyka NASL. Ten představuje platformu pro tvorbu vlastních zásuvných modulů, pomocí nichž lze testovat cílové systémy na nově objevené zranitelnosti.

OpenVAS slouží k totožnému účelu jako Nesssus. Jde rovněž o nástroj, pomocí něhož lze na cílovém systému objevit zranitelnosti a chybějící aktualizace. Publikace autorů Andresse a Winterfelda  představuje OpenVAS jako open-source alternativu k nástroji Nmap, která je na něm postavena a tudíž tyto nástroje sdílejí mnoho společných vlastností. Kniha Hands-on ethical hacking and network defense  uvádí, že OpenVAS se začal vyvíjet po roce 2005 a sdílí základ s nástrojem Nessus ve verzi 2.2, kdy při vydání Nessusu verze 2.2 bylo ohlášeno, že příští verze nástroje Nessus bude již komerčním produktem bez dostupného zdrojového kódu. Tatáž publikace ukazuje praktické použití nástroje OpenVAS.

Fáze vedení útoku

Metasploit framework

Metaspolit framework je z důvodu jeho rozsáhlosti a komplexnosti věnována odpovídající část práce a je tedy podrobně představen v samostatné páté kapitole.

Irpas

Nástroj IRPAS od Německé společnosti Pheonelit je určen výhradně k útokům na síťovou infrastrukturu. Jedná se o nástroj, který byl vytvořen počátkem tohoto milénia, ale i přesto má své místo v sadě nástrojů penetračního testera, neboť síťové protokoly zůstávají zpravidla neměnné. Tento nástroj zneužívá bezpečnostních slabin v mnohých síťových protokolech, s nimiž routery pracují. Problémem zpravidla bývá fakt, že pokud se pro komunikaci daným protokolem explicitně nezapne autentifikace, důvěřuje router příchozím zprávám daného protokolu od kohokoliv. Příklady takových protokolů mohou být CDP, EIGRP, HSRP, OSPF, RIP a další.

Kniha představující open-source nástroje pro penetrační testování  představuje praktický příklad použití tohoto nástroje, kdy v síti, v níž hlavní router měl zapnut protokol HSRP prost jakékoliv autentifikace, byl tento router zbaven funkce hlavního routeru a veškerý provoz začal proudit přes útočníkovo zařízení a to proto, neboť dokázal podvrhnutými HSRP pakety přesvědčit hlavní router, aby se své funkce vzdal. Jelikož neměl útočník vyřešeno routování, celá síť ztratila konektivitu. Kniha s příznačným názvem Hacking exposed  představuje IRPAS v roli manipulátora CDP tabulek síťových zařízení na lokálním segmentu počítačové sítě. Upravená struktura informací CDP paketu vysílaných tímto programem může mít za následek nestabilní chování staršího síťového zařízení od firmy Cisco.

Faktem zůstává, že pro síťovou infrastrukturu zabezpečenou dle zásad a nejlepších praktik nemůže tento nástroj představovat vážnější nebezpečí. Na druhou stranu lze pomocí něj prověřit právě míru zabezpečení síťové infrastruktury a nad ní pracujících protokolů. Stinnou stránkou takového testování ovšem mnohdy bývá fakt, že může nastat situace, při níž síťová infrastruktura přestane pracovat a zařízení k ní připojená ztratí přístup k síti. Proto je třeba takový test plánovat s rozmyslem.

Social engineering toolkit

Název Social engineering toolkit (SET) označuje sadu nástrojů dostupnou v Linuxové distribuci Backtrack. Tato sada nástrojů cílí na slabiny lidského faktoru a zneužívá bezpečnostních zranitelností aplikací nainstalovaných na koncových stanicích uživatelů. Na celé situaci je nejvíce znepokojující ten fakt, že k napadení koncových stanic zpravidla dochází za přímé asistence jejich uživatelů. Je zřejmé, že softwarové i hardwarové zabezpečení prochází vývojem a jde s dobou kupředu. Na druhou stranu, lidský faktor má stále tytéž slabiny, mezi něž patří především nízká míra ostražitosti a ignorace zavedených bezpečnostních pravidel.

Kniha zabývající se penetračním testováním ve velmi střežených prostředích  v kapitole 6, pasáži nazvané Social engineering toolkit, provádí základní představení SET a ukazuje podstatu jeho využití. V uvedeném příkladě je na počítači útočníka nastaven webový server s appletem v jazyce Java. Aby byl útok úspěšný, měl by se nic netušící uživatel připojit k onomu serveru a odsouhlasit na svém počítači spuštění Java appletu. Kniha autora Hadnagyho příznačně nazvaná Social engineering: the art of human hacking  na straně 347 ukazuje čtenáři využití SET oproti knize  s větší mírou detailu. Jsou zde popsány možnosti tvorby přenosného média, které po vložení do počítače okamžitě spouští proces, jehož součástí je i meterpreter shell (bude popsáno podrobně v kapitole 5) či způsob napadení klientské stanice pomocí upravených příloh mailové zprávy. Tyto přílohy mají zpravidla formát PDF a zneužívají zranitelností v aplikaci Adobe Acrobat Reader.

Obsluha SET probíhá pomocí příkazové řádky, konkrétně pomocí dialogů relaizovaných v této příkazové řádce Uživatel si z menu volí druhy útoků a poté je nástrojem SET dotazován na upřesňující volby týkající se konkrétního druhu útoku.

Po úspěšném zneužití zranitelnosti je penetračnímu testerovi zpravidla nabídnut meterpreter shell, neboť SET je velmi úzce spjat s MSF, který je podrobně popsán v v následující kapitole této práce. Praktická ukázka nástroje SET bude předvedena v kapitole 5, jež se zabývá případovou studií.

Ettercap

Nástroj Ettercap je určen k manipulaci síťového provozu a jeho následnému odposlechu. Je vybaven množstvím zásuvných modulů a rovněž disponje grafickým rozhraním vhodným pro uživatele, kteří mají s prací v příkazové řádce potíže. V sítích, na nichž v době penetračního testu probíhá

Kniha Hacking exposed  popisuje nástroj Ettercap jako prostředek, pomocí něhož lze počítačovou síť postavenou na switchích donutit k zásadní změně chování. Tato zásadní změna chování spočívá v tom, že se síť z pohledu útočníka jeví, jako kdyby jejím centrálním prvkem nebyl switch, ale hub. Je ovšem nutno podotknout, že tento cíl plní tak, že ovlivňuje chování samotných klientských stanic a nikoliv aktivních prvků sítě, konkrétně switchů. Technika, kterou tohoto chování klientských stanic dosahuje, se nazývá ARP spoofing. Spočívá v rozesílání podvržených nevyžádaných rámců ARP protokolu, které zaplaví příjemce mylnými kombinacemi IP adres a MAC adres k těmto IP adresám náležejícím. Následkem toho odesílá postižený počítač rámce jinam, než zamýšlel. Kniha pojednávající o open-source nástrojích z oblasti penetračního testování  jmenuje u Ettercapu tytéž vlastnosti zdůrazňuje jeho schopnosti provádět odposlech dat na navázaných spojeních.

Ettercap je schopen používat zásuvné moduly a poskytuje tak možnost rozšíření funkcionality. Lze se setkat s moduly podnikajícími útoky na transportní vrstvě ISO/OSI modelu jako je například SYN flood attack a také jsou dostupné moduly pro prohledávání sítě a spojení existujících na této sítí. V případové studii práce bude představen modul, který je schopen podvrhovat DNS odpovědi. Nese příznačný název dns_spoof. Tento zásuvný modul bude použit v případové studii v kombinaci s nástrojem SET popsaným v předchozí podkapitole, kdy po zmanipulování síťového provozu bude následně podvrhnut DNS dotaz a uživatel přistoupí na webovou stránku na počítačí útočníka. Tato stránka bude obsahovat škodlivý kód a budou zkoumány následky zanechané na uživatelských stanicích.

Obsáhlou nápovědu k nástroji Ettercap lze získat v příkazové řádce zadáním příkazu man 8 ettercap.

Metasploit framework

Tato kapitola nejprve objasní, proč je vhodné použít při penetračním testu framework a jaké problémy za penetračního testera řeší. Následně bude podrobně představen zástupce frameworků, konkrétně Metasploit framework. Praktické použití tohoto nástroje bude ukázáno v případové studii, kterou se zabývá následující kapitola.

Využití frameworku při penetračním testování

Ve světě informačních technologií se nachází mnoho druhů a typů informačních, komunikačních a počítačových systémů. Každý systém je do jisté míry náchylný na chyby, mnohdy bezpečnostní, které do něj programátoři zpravidla neúmyslně zanesli. Není v silách lidské mysli, aby si pamatovala informace o všech chybách dostupných v dnes běžně používaném software. Aby byla práce s takovým množstvím informací udržitelná, existují frameworky pro penetrační testování. Tyto frameworky testerovi výrazně usnadňují život a dělají penetrační testování jednodušším.