Mendelova univerzita v Brně Provozně ekonomická fakulta
Návrh zabezpečení firemní LAN proti interním a externím síťovým útokům Bakalářská práce
Vedoucí práce: Ing. Ludmila Kunderová
Miroslav Trnka Brno 2014
Touto cestou bych rád poděkoval Ing. Ludmile Kunderové, vedoucí mé bakalářské práce, za její cenné rady a připomínky při zpracování této práce. V neposlední řadě rodině a přátelům za podporu v dosažení vzdělání.
Čestné prohlášení Prohlašuji, že jsem tuto práci: Návrh zabezpečení firemní LAN proti interním a externím síťovým útokům vypracoval/a samostatně a veškeré použité prameny a informace jsou uvedeny v seznamu použité literatury. Souhlasím, aby moje práce byla zveřejněna v souladu s § 47b zákona č. 111/1998 Sb., o vysokých školách ve znění pozdějších předpisů, a v souladu s platnou Směrnicí o zveřejňování vysokoškolských závěrečných prací. Jsem si vědom/a, že se na moji práci vztahuje zákon č. 121/2000 Sb., autorský zákon, a že Mendelova univerzita v Brně má právo na uzavření licenční smlouvy a užití této práce jako školního díla podle § 60 odst. 1 autorského zákona. Dále se zavazuji, že před sepsáním licenční smlouvy o využití díla jinou osobou (subjektem) si vyžádám písemné stanovisko univerzity o tom, že předmětná licenční smlouva není v rozporu s oprávněnými zájmy univerzity, a zavazuji se uhradit případný příspěvek na úhradu nákladů spojených se vznikem díla, a to až do jejich skutečné výše. V Brně dne 20. května 2014
_______________________________
Abstract Trnka, M. Design of securing corporate LAN against internal and external network attacks. Bachelor thesis. Brno: Mendel University, 2014. This paper describes network security elements and penetration testing methodology. There is also tested real corporate LAN and based on results is made a design of securing this network along with the financial evaluation. Keywords Network security, corporate LAN, penetration testing.
Abstrakt Trnka, M. Návrh zabezpečení firemní LAN proti interním a externím síťovým útokům. Brno: Mendelova univerzita v Brně, 2014. V této práci jsou popsány bezpečnostní síťové prvky a metodika penetračního testování. Dále je zde testována reálná firemní LAN a z výsledků je vytvořen návrh zabezpečení spolu s finančním zhodnocením. Klíčová slova Bezpečnost sítí, firemní LAN, penetrační testování.
Obsah
5
Obsah 1
2
Úvod a cíl práce
11
1.1
Úvod....................................................................................................................................... 11
1.2
Cíl práce................................................................................................................................ 11
1.3
Metodika .............................................................................................................................. 11
Teoretická část
12
2.1
Seznam použitých zkratek ............................................................................................ 12
2.2
Bezpečnostní síťové prvky ........................................................................................... 12
2.2.1
Firewall ...................................................................................................................... 12
2.2.2
IDS (Intrusion Detection System) .................................................................... 13
2.2.3
IPS (Intrusion prevention systems) ................................................................ 14
2.3
Schéma zabezpečení firemní LAN .............................................................................. 15
2.3.1
Oddělení firemní LAN od Internetu ................................................................ 15
2.3.2
DMZ (Demilitarized Zone) .................................................................................. 15
2.4
Penetrační testování ....................................................................................................... 18
2.4.1
Obecný průběh penetračního testování ........................................................ 19
2.4.2
Možnosti provedení penetračního testování............................................... 19
2.4.3
Testování podle znalosti sítě ............................................................................. 20
2.4.4
Průběh komerčního testování ........................................................................... 20
2.5
Skenování portů ................................................................................................................ 21
2.5.1
TCP handshake ........................................................................................................ 21
2.5.2
TCP Connect() scan................................................................................................ 22
2.5.3
SYN scan..................................................................................................................... 22
2.5.4
NULL scan.................................................................................................................. 22
2.5.5
FIN scan...................................................................................................................... 23
2.5.6
Xmas-Tree scan ....................................................................................................... 23
2.5.7
ACK scan .................................................................................................................... 24
2.5.8
Idle Scan ..................................................................................................................... 24
2.5.9
UDP Scan .................................................................................................................... 25
Obsah
6
2.5.10
Nástroje pro skenování ........................................................................................ 25
2.5.11
Ochrana před skenování portů ......................................................................... 26
2.6
Detekce síťových služeb ................................................................................................ 26
2.6.1
Well-known porty .................................................................................................. 26
2.6.2
Handshake simulace síťových služeb ............................................................. 26
2.6.3
Detekce pomocí uvítacích bannerů ................................................................. 27
2.6.4
Detekce programu poskytující síťovou službu ........................................... 27
2.6.5
Nástroje pro detekci .............................................................................................. 28
2.6.6
Ochrana před detekcí............................................................................................ 28
2.7
Identifikace operačního systému ............................................................................... 28
2.7.1
Pomocí TCP/UDP protokolu .............................................................................. 28
2.7.2
Pomocí ICMP protokolu ....................................................................................... 28
2.7.3
Odposlouchávání sítě............................................................................................ 28
2.7.4
Nástroje pro identifikaci ...................................................................................... 29
2.7.5
Ochrana před identifikací ................................................................................... 29
2.8
Pasivní odposlech sítě .................................................................................................... 29
2.9
Aktivní odposlech sítě .................................................................................................... 29
2.9.1
ARP cache poisoning ............................................................................................. 29
2.9.2
Zdvojení MAC adresy ............................................................................................ 31
2.9.3
MAC flooding ............................................................................................................ 31
2.9.4
DNS spoofing ............................................................................................................ 32
2.9.5
Nástroje pro aktivní odposlech......................................................................... 32
2.9.6
Ochrana proti aktivnímu odposlechu ............................................................. 32
2.10 Exploitace ............................................................................................................................ 33 2.10.1
Přetečení zásobníku .............................................................................................. 33
2.10.2
Přetečení haldy ....................................................................................................... 33
2.10.3
Útok na formátovací funkce ............................................................................... 33
2.10.4
Obrana před exploitací ......................................................................................... 33
2.10.5
Nástroje pro exploitaci ......................................................................................... 33
2.11 DoS (Denial of Service)................................................................................................... 34 2.11.1
DDoS (Distributed DoS) ....................................................................................... 34
Obsah
3
7
Testování reálné firemní sítě 3.1
35
Programové vybavení ..................................................................................................... 35
3.1.1
Kali linux .................................................................................................................... 35
3.1.2
Použité nástroje ...................................................................................................... 35
3.2
Současný stav sítě ............................................................................................................ 35
3.3
Externí testování .............................................................................................................. 36
3.3.1
Skenování portů a identifikace služeb ........................................................... 36
3.3.2
Skenování firewallu ............................................................................................... 37
3.3.3
Detekce OS ................................................................................................................ 38
3.3.4
Exploitace .................................................................................................................. 38
3.4
Interní testování ............................................................................................................... 38
3.5
Odposlouchávání interní sítě ....................................................................................... 39
3.5.1
ARP cache poisoning ............................................................................................. 39
3.5.2
MAC flooding a DNS Spoofing ............................................................................ 39
3.6
Výsledky testování ........................................................................................................... 40
3.7
Návrh zlepšení bezpečnosti ......................................................................................... 44
3.8
Finanční zhodnocení návrhu ....................................................................................... 46
4
Závěr
47
5
Literatura
48
Seznam obrázků
8
Seznam obrázků Obr. 1
Schéma oddělení pomocí firewallu
15
Obr. 2
DMZ za použití jednoho firewallu
16
Obr. 3
DMZ za použití dvou firewallů
16
Obr. 4
DMZ za použití IPS
17
Obr. 5 Rozdíl mezi Hledáním chyb, Penetračním testováním a Red teamingem
18
Obr. 6
TCP handshake
21
Obr. 7
TCP Connect() scan
22
Obr. 8
SYN scan
22
Obr. 9
NULL scan
23
Obr. 10
FIN scan
23
Obr. 11
Xmas-Tree scan
24
Obr. 12
Idle scan
24
Obr. 13
HTTPS handshake
27
Obr. 14
Pure-FTPd uvítací banner
27
Obr. 15
ARP cache poisoning klient/server – stav před otravou
30
Obr. 16
ARP cache poisoning klient/server – otrava ARP
30
Obr. 17
ARP cache poisoning klient/server – stav po otravě
31
Obr. 18
Topologie síťě
35
Obr. 19
Nmap Xmas scan
36
Obr. 20
Nmap SYN scan
37
Obr. 21
ACK sken
37
Seznam obrázků
9
Obr. 22
Detekce OS
38
Obr. 23
Exploitace serveru Linux2
38
Obr. 24
Podvržení MAC adres
39
Obr. 25
Výpis procházející komunikace
39
Obr. 26
Změna topologie
44
Seznam tabulek
10
Seznam tabulek Tab. 1
Výsledek externího testování
40
Tab. 2
Výsledek interního testování – server Linux1
40
Tab. 3
Výsledek interního testování – server Linux2
41
Tab. 4
Výsledek interního testování – server MS Windows
42
Tab. 5
Výsledek interního testování – klientské PC
43
Tab. 6
Výsledky ostatního testování
43
Tab. 7
Bezpečnostní změny
44
Tab. 8
Finanční zhodnocení
46
Úvod a cíl práce
11
1 Úvod a cíl práce 1.1
Úvod
Využívání výhod firemních LAN se nedá popřít. Sdílení výpočetních prostředků, tiskáren, firemních dat vede k urychlení práce stejně jako vyhledávání informací na Internetu. Připojením privátní firemní LAN sítě do sítě Internet vystavujeme tuto síť desítkám tisíců potencionálních útoků. Z této skutečnosti vyplývá, že je velmi důležité chránit lokální data před neautorizovanými přístupy a taky chránit síťové a výpočetní prostředky dané sítě. Pojmem bezpečnost se tedy nemyslí jen zcizení, zničení či pozměnění dat, ale také je velmi důležité zachovat ve firemní sféře dostupnost služeb, které firemní síť poskytuje. Výpadek jakékoliv služby znamená ztrátu schopnosti vykonávat příslušnou práci, což vede k finančním ztrátám.
1.2 Cíl práce Cílem této bakalářské práce je se seznámit s problematikou informační bezpečnosti v LAN menších firem, s postupy pro testování bezpečnosti sítí tohoto typu, otestovat reálnou firemní LAN a navrhnout způsoby, jak danou síť zabezpečit.
1.3 Metodika V praktické části bude probíhat testování zabezpečení reálné firemní LAN. Prvním krokem bude se seznámit s aktuálním stavem sítě a prozkoumat její nastavení. V dalším kroku bude probíhat simulace externího síťového útoku. Budou se zkoumat porty, identifikovat služby, identifikovat operační systémy a v případě nalezení zranitelných programů budou tyto programy exploitovány. Stejné testování bude probíhat i ve vnitřní síti, kde se bude ještě navíc zkoumat možnost odposlouchávání interní komunikace. Ze získaných dat bude poté utvořen návrh na zlepšení bezpečnostní situace.
Teoretická část
12
2 Teoretická část 2.1 Seznam použitých zkratek ARP - Address Resolution Protocol CAM - Content addressable memory DHCP - Dynamic Host Configuration Protocol DNS - Domain Name System FTP - File Transfer Protocol HTTP - Hypertext Transfer Protocol HTTPS - Hypertext Transfer Protocol Secure ICMP - Internet Control Message Protocol IP - Internet Protocol IPsec - Internet Protocol Security ISN - Initial Sequence Number LAN - Local Area Network RFC - Request for Comments SFTP - SSH file transfer protocol SSH - Secure Shell SSL - Secure Sockets Layer SW - Software TCP - Transmission Control Protocol TTL - Time to live UDP - User Datagram Protocol VPN - Virtual Private Network WAN - Wide Area Network
2.2 Bezpečnostní síťové prvky 2.2.1
Firewall
Jedná se o zařízení či software, který odděluje provoz mezi dvěma sítěmi (nejčastěji mezi Internetem a lokální sítí). Má v sobě definovaná pravidla, která rozhodují, jestli bude nebo nebude propuštěna komunikace dovnitř/ven.
Teoretická část
13
Paketové filtry Jedná se o nejjednodušší formu implementace firewallu. Každý paket prochází sérií pravidel, kde se kontroluje zdrojová/cílová IP adresa, rozhraní, ze kterého paket přišel, zdrojový/cílový port, což značí, že se kontrola provádí na 3. vrstvě referenčního modelu ISO/OSI. Na základě těchto pravidel je posléze daný paket dále propuštěn nebo zahozen. Výhodou této implementace je jeho rychlost a nenáročnost. Nevýhodou je nízká kontrola probíhajících spojení. Stavové paketové filtry Tento druh implementace firewallu pracuje na stejném principu jako paketové filtry s tím rozdílem, že do rozhodování vstupuje i další kritérium, a to kritérium o stavu spojení. Pracuje na 4. vrstvě referenčního modelu ISO/OSI. Firewall sleduje a zaznamenává navázaná síťová spojení, což urychluje rozhodování, zda daný paket náleží do již vytvořeného spojení a nemusí tak znovu projít sérií pravidel pro ověření. Další výhodou je schopnosti dynamicky otevírat porty pro různá řídící a datová spojení složitějších známých protokolů, např. FTP. Aplikační brány Neboli proxy firewally, jsou nejbezpečnější formou implementace firewallu, ovšem za cenu vysokých nákladů na provoz a snížení rychlosti. Proxy firewally jednají jako prostředníci mezi požadavky dovnitř a ven do sítě. Počítač uskuteční spojení na aplikační bránu, která poté zahájí nové spojení na základě jeho požadavků. Tímto je zabráněno přímému spojení a přenosu paketů mezi oběma sítěmi (nejčastěji mezi Internetem a lokální sítí), což ztěžuje útočníkovi zjistit pozici lokální sítě z informací z paketu. Aplikační brána poskytuje počítačům uvnitř sítě přístup k internetu, přičemž kontroluje příchozí a odchozí spojení. Kontrola probíhá na 7. vrstvě referenčního modelu ISO/OSI, kontroluje se komunikace aplikací. 2.2.2
IDS (Intrusion Detection System)
Jedná se o systém, který monitoruje a analyzuje provoz na síti a snaží se v něm nalézt specifické vzory či neobvyklý síťový provoz, které by mohly znamenat možný útok na síť a tak informovat správce sítě ještě před jeho začátkem. IDS pracuje na 3. vrstvě referenčního modelu ISO/OSI a jeho hlavním prvkem je senzor, který je umisťován do regulačních bodů a z nich pasivně sbírá data pro analýzu. Po analyzování dat je vygenerován report (reakce na danou událost), který je poskytnut správci sítě a daný report se poté ukládá. Podle umístění se IDS dělí na: HIDS (Host-based IDS) Je realizován pomocí SW, který je instalován na koncovém výpočetním systému a sleduje veškerý síťový provoz přicházející do tohoto systému. Zaznamenává libovolné události a porovnává jejich podobu s bezpečnostní databází závadných událostí.
Teoretická část
14
NIDS (Network-based IDS) Umisťuje se do sítě, kde analyzuje síťový provoz a vyhodnocuje případná napadení. NIDS lze provozovat i na přepínaných sítí kde se provoz sítě pomocí větvení či zrcadlení portů zpřístupňuje NIDS. 2.2.3
IPS (Intrusion prevention systems)
Stejně jako IDS se jedná o systém, který monitoruje a analyzuje provoz na síti, ovšem s tím rozdílem, že provoz sítě prochází tímto zařízením a toto je schopno zabránit/blokovat nevhodné aktivity na síti podle předem daných pravidel. Přestože se IPS vyvinulo z IDS, jsou ve skutečnosti tyto systémy odlišné co se týče funkcionality a síly. HIPS (Host-based IPS) Podobně jako HIDS, je HIPS realizován pomocí SW na konkrétním výpočetním systému s tím rozdílem, že vzniklé události neporovnává podle toho, jak vypadají, ale podle toho, jak se chovají. V praxi to znamená, že dva různé malwary mají rozlišný kód, který HIPS znát nemusí, ale zato chování tohoto kódu bude stejné či velmi podobné. Jakmile dojde ke zjištění podezřelého chování, HIPS zastaví vykonávání tohoto kódu a učiní protiopatření dle nastavených pravidel. NIPS (Network-based IPS) Umisťuje se přímo do sítě, kde se stává aktivní prvkem a monitoruje celou síť hledajíc podezřelý síťový provoz pomocí analýzy protokolů. WIPS (Wireless intrusion prevention systems) Monitoruje rádiové spektrum Wi-Fi sítí a snaží se tak zabránit vznikům neautorizovaných přístupových bodů.
Teoretická část
15
2.3 Schéma zabezpečení firemní LAN 2.3.1
Oddělení firemní LAN od Internetu
Nejjednodušším způsob jak oddělit privátní síť od internetu je použití firewallu.
Obr. 1
Schéma oddělení pomocí firewallu
Problém u tohoto řešení nastává tehdy, když je potřeba zpřístupnit síti Internet některé prvky privátní LAN, jako je File server, viz obr. 1. Povolením přístupu zvenčí k File serveru vystavujeme vnitřní sít nebezpečí neautorizovaného vniknutí a možného ohrožení citlivých dat. Z tohoto důvodu je vhodnější použít jinou architekturu. 2.3.2
DMZ (Demilitarized Zone)
Demilitarizovaná zóna je fyzicky nebo logicky vytvořená podsíť, která obsahuje prvky, které jsou za nějakým účelem přístupné uživatelům sítě Internet. Smyslem celého opatření je povolit externímu útočníku přístup pouze do této zóny a nepovolit přístup do privátní sítě. Nejčastěji se do DMZ umísťují prvky, které poskytují služby přístupné z Internetu, jako je například web server, mail server, FTP server atd. Architektura DMZ za použití jednoho firewallu V této architektuře rozděluje firewall síť na 3 podsítě: 1. Externí - od Routeru (WAN) k firewallu 2. 3.
DMZ – od firewallu do DMZ Interní – od firewallu do Intranetu
Teoretická část
Obr. 2
16
DMZ za použití jednoho firewallu, (DMZ, 2014)
Firewall se v tomto případě stává jediným možným bodem selhání a musí být schopen zvládat veškerý síťový provoz, jak do interní sítě, tak i do DMZ. Řešením, jak tento problém zmírnit, je umístit DMZ před firewall, což ale znamená, že nemůžeme nijak kontrolovat provoz mířící do DMZ. Architektura DMZ za použití dvou firewallů Bezpečnější architekturou je použití dvou firewallů. První z nich (front-end firewall) kontroluje provoz pouze do DMZ. Druhý (back-end firewall) pak kontroluje provoz mezi interní sítí a DMZ. Při použití této architektury se doporučuje používat firewally od různých výrobců, protože se tak snižuje pravděpodobnost výskytu stejné chyby či selhání.
Obr. 3
DMZ za použití dvou firewallů, (DMZ, 2014)
Teoretická část
17
Případným nasazením IDS nebo IPS do této architektury dostáváme velké možnosti zabezpečení celé sítě a ochrany dat.
Obr. 4
DMZ za použití IPS, (Sanbower, 2010)
Teoretická část
18
2.4 Penetrační testování Penetrační testování, označované také jako etický hacking, slouží k testování bezpečnosti sítě. Jeho hlavním a jediným cílem je kompromitovat síť a poukázat tak na nedostatky v jejím zabezpečení. Na rozdíl od procesu Hledání slabých míst nenechává nalezená místa nepokoji, ale snaží se nalezené slabiny využít a získat tak privilegovaný přístup k co nejvíce systémům. Oproti procesu Read teaming se však zaměřuje pouze na síťovou bezpečnost. Jak je vidět na obr. 5 je jeho podmnožinou. (Harper a kol., 2008)
Obr. 5 Rozdíl mezi Hledáním chyb, Penetračním testováním a Red teamingem, (Harper a kol., 2008; upraveno)
Existuje mnoho firem, které se penetračním testováním zabývají. Tyto firmy jsou poté najímány k provedení penetračního testování firemní sítě. Veškerý obsah a rozsah testování je popsán ve smlouvě, kterou obě dvě strany podepíší a podle které poté testování probíhá.
Teoretická část
2.4.1
19
Obecný průběh penetračního testování
1. Průzkum Prvním krokem penetračního testování je průzkum, ve kterém jde o získání co největšího množství informací o potencionálních cílech. Prohlédnutím záznamů o dané doméně na http://who.is/ lze získat spoustu užitečných informací, např. jméno majitele může být použito jako login. Také vyhledáváním na https://www.google.cz/ lze získat potencionálně využitelné informace. Dalším krokem, který je už invazivnějšího charakteru, je konkrétní skenování sítě a prvků v ní obsažených. Probíhá snaha identifikovat, jaká zařízení jsou v síti aktivní, do jaké hloubky se lze do sítě dostat. Na aktivních zařízeních se určuje, které porty jsou otevřené. Správnými technikami skenování lze zjistit, zda je provoz filtrován firewallem, dokonce kolik firewallů se nachází uvnitř sítě. Stejný průzkum se provádí také pro interní část sítě. (Harper a kol., 2008) 2.
Hledání chyb
Po ukončení průzkumu přichází na řadu hledání chyb. Každý otevřený port většinou značí, že za ním běží některá ze síťových služeb, která může obsahovat chybu. Úkolem této fáze je tedy identifikovat síťové služby běžící za otevřenými porty, snažit se co nejpřesněji určit program a jeho verzi, který tuto síťovou službu utváří. Dalším krokem je identifikace operačního systém běžícího na cílové stanici, spolu s odposlechem autentizačních údajů. Po sesbírání všech potřebných dat probíhá kontrola, zdali spuštěné programy či operační systém neobsahuje zranitelnou chybu/díru, která by se dala využít. (Harper a kol., 2008) 3. Zneužití chyb Pokud dojde ke zjištění, že některý z programů obsahuje bezpečnostní chybu/díru, přechází se do stádia ověření těchto chyb/děr. Snahou je zde proniknout do co největšího počtu systémů a získat co nejvyšší práva. Ne vždy daná chyba/díra umožní získání přístupu do systému. Některých chyb/děr se využívá při Dos nebo DDoS útocích, jiné zase dovolují přístup k některým neveřejným informacím. (Harper a kol., 2008) 4. Report výsledků Poslední fází penetračního testování je vytvoření výsledné zprávy obsahující zjištěné informace. Nereportují se pouze nalezené chyby, ale vytváří se komplexní přehled o bezpečnosti sítě. Klasifikuje se, jakou míru nebezpečnosti mají zjištěné informace a taky se vytvářejí návrhy a doporučení, jak dané nedostatky eliminovat či se jim v budoucnu vyhnout úplně. Členové penetračního týmu často poskytují za účelem zvýšení bezpečnosti školení pro personál firmy. (Harper a kol., 2008) 2.4.2
Možnosti provedení penetračního testování
Manuální testy Testy jsou prováděny přímo testerem za použití různých nástrojů a utilit. Výhodou je, že testování lze adaptovat přímo na dané řešení problému. Toto řešení ovšem
Teoretická část
20
klade velikou náročnost na schopnosti a znalosti testera. Veškerá časová náročnost i kredibilita testů závisí na testerovi. (Selecký, 2012) Automatické testy Automatické testování je prováděno komplexním softwarem vyvíjeným profesionálními firmami v oboru. Pochopitelně si firmy za tento software nechají dobře zaplatit. Tento druh testů má výhodu v rychlosti a usnadnění použití. Také je zde vyšší míra spolehlivosti na výsledky testů a také je jednodušší testy opětovně použít. (Selecký, 2012) Semiautomatické test Jedná se kompromis mezi výše zmíněnými metodami, který se snaží maximálně využít výhod obou dvou metod. (Selecký, 2012) 2.4.3
Testování podle znalosti sítě
Black-box testy Tento druh testu plně simuluje vnější útok na síť. Znalost rozložení vnitřní sítě je nulová. Lze si to představit tak, jako když tester stojí před dveřmi nějakého objektu a má za úkol dostat se dovnitř, aniž by měl klíč a věděl, co ho čeká vevnitř. Při těchto testech je známa pouze veřejná IP adresa přístupná z Internetu a všechny ostatní věci je třeba zjistit, z čehož vyplývá, že pro tuto metodu je nezbytný rozsáhlý průzkum. (Selecký, 2012) White-box testy Jedná se o opak Black-box testu. Tester v tomto případě zná celou architekturu dané sítě, celkový počet síťových prvků, serverů i klientských stanic. V tomto případě nejde ani tak o simulaci útoku, ale o kontrolu a správnost zabezpečení dané sítě. (Selecký, 2012) Grey-box testy Tento druh testování spojuje výše uvedené typy testů. Tester má tedy jistou znalost o uspořádání sítě či o použitých zařízeních. (Selecký, 2012) 2.4.4
Průběh komerčního testování
O tom, jak by mělo být prováděno komerční testování, existuje několik metodik. Většina firem, zabývajících se touto problematikou, si svoje know-how a metody drží v tajnosti nebo je odhalují za finanční prostředky na různých seminářích a školeních. Existují ovšem i open-source metodiky dostupné na Internetu. Jednou z nich je OSSTMM (Open-Source Security Testing Methodology Manual), který byl v době psaní této bakalářské práce ve verzi 3.0 a je zastřešován organizací ISECOM (Institute for Security and Open Methodologies).
Teoretická část
21
2.5 Skenování portů 2.5.1
TCP handshake
Jedná se o způsob navazování TCP spojení. TCP protokol pracuje na 4. vrstvě síťového modelu ISO/OSI. K navázání spojení dochází v případě, kdy jedna strana chce komunikovat s druhou nebo naopak.
Obr. 6
1.
2.
3.
TCP handshake, (Harper a kol., 2008)
V první kroku vyšle klient serveru inicializační paket SYN, nastaví časovač pro opětovné poslání a čeká na návrat odpovědi ze strany serveru po dobu nastavenou časovačem. SYN paket je prázdný TCP segment s příznak SYN v TCP hlavičce. V druhém kroku obdrží serverová strana SYN paket a rozhoduje se, zda daný paket přijmout nebo ne. Jestli je vše v pořádku, proces na straně serveru, který naslouchá na daném portu, odesílá klientovi SYN/ACK paket. Opět nastavuje časovač pro opětovné odeslání, stejně jako první strana. Klient dostává ze strany serveru potvrzení o synchronizaci (SYN/ACK) a posílá serveru potvrzující paket o přijetí potvrzení. Serveru posílá paket pouze s příznakem ACK. Pokud server obdrží tento paket, je ustanoveno spojení a může dojít k přenosu dat.
Teoretická část
2.5.2
22
TCP Connect() scan
Při skenování tímto způsobem dochází ke klasickému navázání spojení provedením TCP handshake. Jestliže se podaří navázat TCP spojení, daný port je otevřen, v opačném případě je port uzavřen a klientovi je odeslán RST paket. Nevýhodou tohoto skenování je, že je příliš nápadné. Jednak se otevírá veliký počet TCP spojení a také při úspěšném vytvoření TCP se často ukládá zdrojová adresa do logovacích souborů. Jedná se o nejjednodušší způsob skenování a většina firewallů a IDS jej dokáže detekovat.
Obr. 7
TCP Connect() scan, (Whitaker, Newman, 2000)
2.5.3
SYN scan
Tento druh skenování funguje stejně jako TCP Connect() scan, tedy vykonává se klasický TCP handshake, s tím rozdílem, že se nikdy neustanoví plné TCP spojení. V poslední fázi klient neodešle serveru ACK paket. Metoda je o něco méně nápadnější než předchozí, většina firewallů ji nedetekuje, ovšem většina IDS má implementovanou obranu proti tomuto druhu skenu.
Obr. 8
SYN scan, (Whitaker, Newman, 2000)
2.5.4
NULL scan
Dalším z používaných skenů je NULL scan. Tento sken patří do rodiny skenů, které posílají na TCP porty serveru neočekávaná data. Neočekávanými daty jsou myšleny všechny ty, které neinicializují TCP handshake. V případě NULL scanu je poslán segment s prázdným (nulovým) příznakem. Všechny systémy implementující RFC 793 by měly takovýto segment zahodit a odpovědět paketem RST. Jak je vidět na obr. 9, v případě uzavřeného portu je odeslán klientovi RST paket. V případě otevřeného portu server ignoruje příchozí paket.
Teoretická část
Obr. 9
23
NULL scan, (Whitaker, Newman, 2000)
Tento druh skenování není použitelný pro systémy Microsoft Windows, jelikož neimplementují RFC 793. V případě odeslání paketu s prázdným příznakem je poslán od systémů Microsoft Windows pokaždé paket RST, nehledě na to, zdali je port otevřen či nikoliv. U všech UNIX-based systémů je tento druh skenu využitelný. Tento typ skenování není tak nápadný proti výše zmíněným typům skenování. 2.5.5
FIN scan
Podobně jako NULL scan se jedná o méně nápadný druh skenování. Odesílá se paket s příznakem FIN, který v TCP indikuje ukončení spojení. Stejně jako v případě NULL skenu, při obdržení RST paketu se jedná o uzavřený port, v případě žádné odpovědi jde o port otevřený. Také platí nevyužitelnost u systémů Microsoft Windows.
Obr. 10
FIN scan, (Whitaker, Newman, 2000)
2.5.6
Xmas-Tree scan
V tomto případě se odesílají pakety s příznaky URG/PUSH/FIN, které by však nikdy v rámci TCP spojení neměly být nastaveny společně. Platí zde stejné výsledky jako u NULL a FIN skenu a také stejná omezení vůči Microsoft Windows.
Teoretická část
Obr. 11
Xmas-Tree scan, (Whitaker, Newman, 2000)
2.5.7
ACK scan
24
Toto skenování neslouží k zjištění otevřenosti/uzavřenosti portů na serveru, ale odhaluje, které porty jsou filtrovány firewallem. Během skenování se odesílá paket s příznakem ACK a s náhodným sekvenčním a potvrzovacím číslem. Server vyhodnotí tento paket jako neočekávaný a odešle klientovi RST paket. Jestliže je port, na který byl ACK paket poslán, filtrovaný firewallem, klientovi se nic nevrátí. 2.5.8
Idle Scan
U Idle scanu je využíváno toho, že každý IP paket obsahuje identifikační číslo (IPID). Každým odeslaným paketem se toto číslo mění v závislosti na operačním systému. Operační systém Linux toto číslo mění náhodně, v případě Microsoft Windows se zvyšuje o konstantu. Dále je potřeba si zajistit prostředníka (zombie) - PC nebo server, jehož bude využíváno během skenování.
Obr. 12
Idle scan, (Haller, 2006; upraveno)
Teoretická část
25
1.
Útočník pošle SYN/ACK paket na prostředníka. Jelikož se jedná o neočekávaný paket, prostředník odešle útočníkovi RST paket s IPID např. IPID=100, které si útočník uloží.
2.
Útočník vyšle SYN paket na port oběti, který chce otestovat. Jedná se o pokus navázat TCP handshake. Tento paket je však upravený a jako zdrojovou IP adresu nese adresu prostředníka.
3.
Jestliže je zkoumaný port na u oběti otevřený, odešle oběť SYN/ACK paket na prostředníka, čímž pokračuje do druhé fáze vytvoření TCP handshake. Prostředník tak obdrží SYN/ACK paket, který je neočekávaný, proto odešle oběti RST paket s IPDI =101. V případě, že je port na cílovém zařízení uzavřen, odešle oběť prostředníkovi RST paket, který prostředník ignoruje. Útočník opakuje první krok, tedy pošle SYN/ACK paket na prostředníka, který mu odpoví RST paketem se zvýšeným IPID. Toto nové IPID útočník porovnává s prvotním získaným IPID. V tomto případě, je-li IPID získané ve čtvrtém kroku rovno 101, cílový port je uzavřen. Jeli ovšem IPID=102, cílový port je otevřen.
4.
Zvyšování IPID se liší v závislosti na operačním systému, takže může být obtížné zjistit inkrementační skok. Dalším problémem je volba správného prostředníka. Ten by měl mít co nejmenší síťový provoz, protože s každým jeho odchozím paketem se zvyšuje hodnota IPID, což může vést ke špatné klasifikaci otevřenosti/uzavřenosti portů. Dále musí prostředník odpovídat na neočekávané SYN/ACK dotazy paketem RST. Použití tohoto skenu má jednu obrovskou výhodu, a to anonymitu útočníka. Oběť se tak nikdy nedozví, z jaké IP adresy pocházel útok. Další výhodou, která se už úplně netýká skenování portů, je to, že pomocí sledování vzrůstajícího IPID lze odhadovat provoz na serveru. 2.5.9
UDP Scan
Jedná se o jediný druh skenování UDP portů. Testování otevřenosti UDP portů se provádí pomocí odesílání prázdných UDP paketů na UDP porty serveru. Pokud na portu neběží žádná služba, klient obdrží ICMP správu o nedostupnosti portu. V opačném případě klient obdrží nějaká UDP data nebo neobdrží nic. Problém je ovšem v tom, že ICMP zprávy jsou většinou filtrovány, proto neobdržení žádných dat nemusí striktně znamenat uzavřenost portu. 2.5.10 Nástroje pro skenování nmap Jde o nejznámější a zřejmě nejpoužívanější nástrojem pro skenování. Jedná se o open source utilitu dostupnou pro Linux, Windows i Mac OS X. Zvládá veškeré výše uvedené druhy skenování. Obsluhování se provádí přes příkazovou řádku, kde se přepínači volí různé druhy skenů. Je pro něj také vytvořená grafická nástavba Zenmap.
Teoretická část
26
Dalé existuje celá řada dalších skenerů, lišících se v možnostech skenování, nebo třeba zda se jedná o desktopovou nebo webovou aplikaci. 2.5.11
Ochrana před skenování portů
změna portů známých služeb běžících na well-know portech, zvyšuje dobu provádění skenu a tak zvyšuje šanci na detekci skenování filtrování ICMP zpráv blokování RST paketů použití NIDS/NIPS použité HIDS/HIPS jako je například: o Snort o Portsentry o TCPLOG
2.6 Detekce síťových služeb Ve většině případů běží za otevřenými porty některá ze síťových služeb realizovaná nějakým programem. Detekce těchto služeb, programu a jeho verze je dalším krokem penetračního testování nebo také reálného útoku. 2.6.1
Well-known porty
Z výsledků skenování se porovnávají zjištěné porty s tabulkou well-known portů, zdali se neshodují. Tento druh detekování je úspěšný většinou tehdy, jsou-li služby na serveru v defaultním nastavení. Spíše než o pravou detekci jde o odhadování. Jednak se čísla portů můžou záměrně měnit, nebo se můžou vytvářet návnady schválně umisťované na well-known porty. 2.6.2
Handshake simulace síťových služeb
Na otevřený port je vytvořeno několik TCP spojení, ve kterých jsou posílány pakety, simulující začátek handshake síťových služeb a snaží se ze serveru dostat smysluplnou odpověď pro detekci služby.
Teoretická část
Obr. 13
27
HTTPS handshake, (Lochgelly, 2012)
Na obr. 13 je vidět celý průběh HTTPS handshake. Při zkoumání síťové služby byl poslán na otevřený port také paket obsahující Client Hello, na což server odpověděl Server Hello. Tímto byla identifikována služba SSL a byl dokončen SSL handshake. Poté byl na server kromě jiného poslán přes už ustanovené SSL spojení HTTP GET požadavek, na který server odpověděl posláním dat, a tím byla úspěšně detekovaná služba HTTPS. 2.6.3
Detekce pomocí uvítacích bannerů
Jedná se o porovnání uvítacích bannerů, tedy zpráv, které jsou zasílány službou při připojení. Tento druh detekce nelze aplikovat pokaždé, protože ne všechny služby poskytují bannery a také se velmi často obsah bannerů mění za účelem maskování a zmatení útočníka.
Obr. 14
Pure-FTPd uvítací banner
2.6.4
Detekce programu poskytující síťovou službu
Po identifikaci služby, která běží na portu, se identifikuje program, který danou službu poskytuje a také jeho verze. Hledají se rozdíly v implementaci daných programů spolu s porovnáváním uvítacích bannerů.
Teoretická část
2.6.5
28
Nástroje pro detekci
amap nmap 2.6.6
Ochrana před detekcí
Samotná detekce je velmi nápadná, jelikož se vytváří mnoho TCP spojení na jeden port. Také spousta služeb si vede logy pro neúspěšné připojení k dané službě. Dobrý postup je také neposkytovat uvítací bannery nebo právě používat bannery patřící jiným službám.
2.7 Identifikace operačního systému 2.7.1
Pomocí TCP/UDP protokolu
Odesílají se na server různé druhy TCP a UDP paketů, které se poté přezkoumávají bit po bitu. Analyzuje se např.: jakým způsobem se zvedá ISN v SYN/ACK paketu v 2. fázi TCP handshake jakým způsobem se zvyšuje IPID počáteční velikost TCP okna počáteční TTL IP paketu maximální velikost segmentu jak daný operační systém generuje sérii čísel a mnoho dalších… 2.7.2
Pomocí ICMP protokolu
Identifikace probíhá posíláním ICMP zpráv různého typu s různými kódy, na které operační systémy odpovídají odlišně. Většinou jde o podivné či nesmyslné ICMP zprávy, které server neočekává. Na rozdíl od identifikace pomocí TCP/UDP, je tato metoda méně nápadná, neposílá žádné poškozené pakety, které jsou snadno detekované pomocí IDS. 2.7.3
Odposlouchávání sítě
Výše zmíněné metody jsou aktivního rázu, tedy k identifikaci musí něco posílat. Další možnost je pasivního rázu, kdy se odposlouchává síť a analyzují se SYN, SYN/ACK a RST pakety, a to v závislosti na tom, zda jde o identifikaci zařízení, na které se klient připojuje, které se připojuje na klienta nebo zařízení, na které se klient připojit nemůže. Je pochopitelné, že pro využití této metody je nutný přístup do interní sítě a nedá se tak provést externě, jak tomu bylo u předešlých způsobů identifikace.
Teoretická část
2.7.4
29
Nástroje pro identifikaci
nmap – využívá TCP/UDP identifikaci. Shromážděná data porovnává se svou databází, která je neustále vyvíjena a aktualizována. xprobe2 – využívá ICMP zprávy tak i TCP/UDP, ale většinou je schopný určit operační systém pouze pomocí ICMP správ p0f – program pro pasivní identifikaci. Program sám o sobě žádná data neposílá, proto je dobré mu pomoci vytvářením provozu na skenované síti a to navazováním různých TCP spojení. 2.7.5
Ochrana před identifikací
Při TCP/UDP sledovat nadměrné vytváření těchto spojení a blokovat je. U ICMP blokovat některé jeho zprávy, které nejsou využívány k provozu interní sítě, případně nastavit filtrování na firewallu.
2.8 Pasivní odposlech sítě Provádí se přepnutím síťové karty do promiskuitního stavu. Pasivní odposlech je možné použít pouze v omezených případech. Je ho možné aplikovat na sítích s hubem, se sběrnicovou topologií a v nepřepínaných sítích.
2.9 Aktivní odposlech sítě V přepínaných sítí vzniká problém s odposlechem, jelikož switch posílá data jen tam, kam doopravdy patří. U aktivního odposlechu jde tedy o to, přimět switch aby odesílal data na zařízení, kde mohou být přečtena. Existuje několik technik, jak tohoto stavu dosáhnout. 2.9.1
ARP cache poisoning
Je realizováno pomocí zasílání bezdůvodných ARP odpovědí. Při připojení PC do sítě odesílá PC ARP dotaz zjišťující, zda je volná IP adresa, kterou hodlá využívat (pokud se nejedná o síť s DHCP serverem). Tomuto dotazu se říká nevyžádaný. Další možností je, že než aby čekal na odpověď, zda je IP adresa volná, může rovnou poslat konkrétním PC ARP odpověď, která se nazývá bezdůvodná. Když jakékoliv PC dostane tuto ARP odpověď, upraví si svou ARP tabulku. Odesláním této ARP odpovědi broadcastově, lze poupravit (otrávit) všechna PC na síti. Dojde-li, k ARP cache poisoningu, je oběť přesvědčena o tom, že cílové IP adresa odpovídá MAC adrese útočníka, a tak skončí všechna data posílaná na PC oběti na PC útočníka. Tímto způsobem se obchází bezpečnostní výhoda přepínaných sítí. Útočník se může lehko vydávat např. za lokální file server a tak odposlechnout nešifrované autentizační údaje. Také lze snadno odposlouchávat i komunikaci typu klient/server.
Teoretická část
Obr. 15
ARP cache poisoning klient/server – stav před otravou, (Harper a kol., 2008)
Obr. 16
ARP cache poisoning klient/server – otrava ARP, (Harper a kol., 2008)
V tomto kroku útočník odesílá ARP odpověď na klienta a server.
30
Teoretická část
Obr. 17
31
ARP cache poisoning klient/server – stav po otravě, (Harper a kol., 2008)
Jak je vidět na obr. 17, ARP tabulka u klienta i serveru obsahuje MAC adresu útočníka. Realizací tohoto ARP cache poisoningu byl proveden útok MITM (Men In The Middle). Komunikace od klienta jde přes počítač útočníka, který ji poté přeposílá serveru a naopak. Další z metod využívající ARP cache poisoning je ta, že se útočníkovo zařízení začne vydávat jako výchozí brána sítě, čímž docílí, že veškerý síťový provoz půjde přes tento počítač, který poté forwarduje dál ze sítě. 2.9.2
Zdvojení MAC adresy
Dalším možnost, jak získat cizí data, je změna MAC adresy na MAC adresu klienta, jehož data chceme dostávat. Switch tak začne posílat data na více jeho portů. Nevýhodou je, že většinu levnějších switchu či routerů plnících i úlohu switche, tato metoda pořádně zmate a pak se tato zařízení chovají iracionálně a z tohoto důvodu se tato metoda moc nepoužívá. 2.9.3
MAC flooding
Tato technika využívá toho, že switche mají omezenou velikost své CAM tabulky a zejména u těch levných se dá velmi rychle tato tabulka zaplnit velikým počtem MAC adres, které způsobí její zahlcení. Jestliže k zahlcení dojde, switch rezignuje na svojí funkci a začne se chovat jako obyčejný hub, tedy posílat všechna data na všechny porty. Poté stačí zapnout svou síťovou kartu do promiskuitního režimu a lze velmi jednoduše odposlouchávat veškerý provoz na síti procházející tímto switchem.
Teoretická část
32
U některých switchů lze stejného efektu docílit posíláním velkého množství ethernetových rámců, které switch v zájmu odlehčení provozu začne posílat na všechny své porty. 2.9.4
DNS spoofing
Pro provedení tohoto útoku je důležité, aby se nacházel útočníkův počítač mezi PC oběti a DNS serverem. PC oběti vyšle dotaz na DNS server, pro překlad doménového jména. Úkolem útočníka je tento dotaz zachytit, a odpovědět oběti dříve než legitimní DNS server. V odpovědi bude uvedeno, že zadané doménové jméno náleží IP adrese počítače, která patří útočníkovi. Oběť poté naváže spojení s tímto počítačem v domnění, že komunikuje se správným PC a útočník je tak schopen odposlechu této komunikace. 2.9.5
Nástroje pro aktivní odposlech
dsniff – balík nástrojů pro ARP cache poisoning, DNS poisoning, identifikaci a získání autentizačních údajů nešifrovaných protokolů, uložení emailů, uložení souborů přenášených přes NFS a další… ettercap – zvládá většinu funkcí jako balík dsniff a k tomu velmi zdatně zvládá MAC flooding, DoS. 2.9.6
Ochrana proti aktivnímu odposlechu
Některé switche nabízejí funkci port security, která povoluje pro fyzické porty switche jen připojení předem nastavené MAC adresy. Také lze pomocí této funkce deaktivovat nevyužívané fyzické porty a tak zabránit neautorizovanému zařízení připojit se do sítě. Používáním statických CAM tabulek, které zabrání veškerým pokusům o ARP poisoning. Toto řešení je velmi náročné na správu, jelikož je nutno zadat pro každý switch na síti vztah mezi IP adresou a MAC adresou. Použitím specializovaného softwaru, který monitoruje provoz na síti, např. ARPWatch. Také nasazením IDS/IPS. DNSSEC (DNS Security Extensions) je rozšíření DNS o asymetrickou kryptografii a digitální podpis DNS zón. Klient podporující DNSSEC si může ověřit pomocí digitálního podpisu autentičnost a integritu DNS odpovědi. Lze tak zabránit DNS spoofingu. Nejúčinnější metodou proti aktivnímu odposlouchávání je šifrování komunikace. Např. pomocí IPsec, kterým je možno zabezpečit jakoukoliv TCP/IP komunikaci.
Teoretická část
33
2.10 Exploitace Jak bylo zmíněno v kapitole 2.4.1, pokud se objeví nějaká bezpečnostní chyba/díra, je dalším krokem snaha tuto zranitelnost využít. Tomuto procesu se říká exploitace. Využívá se k tomu exploitů, což může být speciální program nebo posloupnost příkazů, které vyvolají v daném programu neočekávanou událost, pro kterou nebyl program koncipován. 2.10.1
Přetečení zásobníku
Principem této techniky je zapsat do zásobníku více dat, než kolik se do něho vleze. Výsledkem je poté přepis paměti, která už není alokována pro zásobník. Při správně zvolených datech je možno do paměti, která původně nenáležela zásobníku, zapsat kód programu a tento program posléze spustit. 2.10.2 Přetečení haldy Jedná se o podobný princip jako u přetečení zásobníku, avšak prováděný na jiném druhu paměti – haldě. 2.10.3 Útok na formátovací funkce Využívá chyby při programování v jazyku C, kdy není pro vstupní data určen jejich formát. Zadáním vhodně zvoleného vstupu spolu s některou z formátovacích funkcí, lze číst a zapisovat do paměti, a tak je zde možnost spuštění vlastního kódu. 2.10.4 Obrana před exploitací pokud se jedná o vlastní tvorbu programů, je jednoznačným návodem držet se správných programovacích technik a postupů jednoznačnou obranou je aktualizace programů další možností je sledovat databáze zveřejněných chyb/děr, např. databáze CVE (Common Vulnerabilities and Exposures) dostupná na stránkách: http://cve.mitre.org/ nové chyby v programech se nalézají neustále, takže není nikdy 100% ochrana proti exploitaci 2.10.5 Nástroje pro exploitaci Metaspolit Framework Tento nástroj obsahuje databázi obsahující přes 1000 exploitů pro různé druhy operačních systémů a programů. Jedna z jeho verzí je neustále volně šiřitelná a obsahuje také grafickou nástavbu Armitage. Kromě exploitů obsahuje taky mnoho užitečných nástrojů.
Teoretická část
34
2.11 DoS (Denial of Service) Jedná se o síťové útoky, které mají za účel zabránit přístupu ke službám. Útoky mohou mít celou škálu podob, od útoku jednoho paketu speciálně přizpůsobeného k využití zranitelnosti operačního systému či služby, až po koordinované záplavy paketů způsobující zahlcení sítě, vyčerpávání zdrojů serveru, zabránění legitimnímu přístupu klientům ke službám sítě a můžou vést až ke zhroucení serverů nebo programů běžících na serverech. Jelikož jde o útoky vycházejícího z jednoho místa, může být záplava celkem snadno identifikována a izolována, a to zakázáním IP adresy, ze které je útok veden. (Weber, 2008) 2.11.1
DDoS (Distributed DoS)
Při DDoS útoku používá útočník k zasažení cíle množství počítačů s koordinovaným chováním.Tyto přístroje, známé jako zombies, byly předtím kompromitovány a jsou pod kontrolou útočníků. Posíláním příkazů těmto zombies přes skryté komunikační kanály mohou být zinscenovány rozsáhlé koordinované útoky. Protože útok pochází od velkého množství počítačů rozmístěných po celé světě, jednoduchá identifikace a izolace není možná. V mnoha případech je extrémně obtížné oddělit legitimní provoz od útočného. (Weber, 2008)
Testování reálné firemní sítě
35
3 Testování reálné firemní sítě 3.1 Programové vybavení 3.1.1
Kali linux
Jedná se o speciálně vytvořenou linuxovou distribuci, založenou na distribuci Debian, pro penetrační testování. Je to nástupce distribuce BackTrace. Obsahuje celou sadu nástrojů pro penetrační testování. Distribuce je volně šiřitelná a dostupná i v češtině. Veškeré testování bude prováděno na této platformě. 3.1.2
Použité nástroje
nmap – skenování portů, identifikace služeb, identifikace OS Metasploit - exploitace arpspoof – součást balíku dsniff, slouží k ARP cache poisoningu macof – součást balíku dsniff, slouží k MAC flooding Wireshark – analyzer síťového provozu Všechny tyto nástroje jsou obsaženy v Kali linuxu.
3.2 Současný stav sítě
Obr. 18
Topologie síťě
Testování reálné firemní sítě
36
Jelikož si firma nepřála, aby mohla být identifikována na základě veřejné IP adresy, veškeré veřejné IP adresy budou skryty nebo nahrazeny symbolickou adresou v podobě x.x.x.x. Border router je značky ZyXEL, model ZyWALL 2 Plus. Obsahuje stavový firewall spolu s ochranu proti DoS. Obě dvě tyto služby jsou zapnuty. Dále je možno na routeru nastavit DMZ, VPN, filtrování obsahu atd. Ve firmě se nacházejí 3 servery, každý plnící jinou úlohu. Servery Linux1 a MS Windows jsou přístupné z Internetu a to pomocí portforwardingu z Border routeru. Server Linux2 je přístupný pouze z interní sítě. Symbolicky jsou zobrazena v interní části sítě pouze 3 klientská PC a jedna tiskárna. Reálný počet představuje 18 klientských PC a 4 tiskárny, všechny přes ethernetový kabel připojeny do Switche2. Na všech PC je nainstalován MS Windows XP Professional antivirový program. Není zde zavedena žádná doména nebo active directory. Všechna PC vystupují v síti jako samostatné jednotky.
3.3 Externí testování 3.3.1
Skenování portů a identifikace služeb
První skenování portů bude provedeno pomocí X-mas scanu.
Obr. 19
Nmap Xmas scan
Výsledek skenování pro všechny možné porty je open|filtered, což znamená, že nmap nedokázal určit, zda jsou porty otevřené nebo filtrovány firewallem. Stejně dopadal NULL i FIN scan, takže je tedy třeba zvolit jinou metodu skenování.
Testování reálné firemní sítě
Obr. 20
37
Nmap SYN scan
Použitím SYN scanu bylo odhaleno 13 nefiltrovaných portů. Rozsah skenovaných portů byl zúžen na 8500, jelikož se žádné další služby na vyšších portech nenacházejí a hlavně tak došlo k veliké úspoře času. Kdyby se skenovala neznámá síť, byl by skenován celý rozsah portů. Přepínačem –sV se během skenu identifikují služby, které běží na otevřených portech. Veškeré služby byly naprosto správně identifikované. Lze si všimnout, že port 3400 je doopravdy směrován na MS Windows server, bohužel bližší detekce tohoto serveru není s jedním portem možná. Také je vidět, že port 8123 slouží k přístupu k Border routeru a jedná se o router značky ZyXEL. Identifikací Apache serveru bylo zjištěno, že běží na linuxovém serveru distribuce CentOS. 3.3.2
Skenování firewallu
Obr. 21
ACK sken
Z výsledku ACK scanu vyplývá, že neočekávaná data poslaná na firewall jsou automaticky zahozena.
Testování reálné firemní sítě
3.3.3
Detekce OS
Obr. 22
Detekce OS
38
Nmapu se také povedlo určit i verzi OS a to s 88% možností, že se jedná o Linux s verzí kernelu 2.6.18. 3.3.4
Exploitace
Hledání vhodného exploitu pro služby běžící na těchto serverech úspěšné nebylo. U těchto programů v dané verzi není známa žádná oficiální bezpečnostní chyba/díra. Pátrání po exploitaci Border router také skončilo s nulovým výsledkem. Navíc je pro přístup do rozhraní routeru zvoleno dostatečné dlouhé heslo tvořeno malými, velkým písmeny, čísly i znaky, takže útok pomocí hrubé síly k prolomení hesla se šplhá k astronomickým časovým údajům. Bezpečnostním rizikem ovšem je to, že se využívá nešifrovaného HTTP spojení.
3.4 Interní testování Stejný postup jako u externího testování, byl proveden také u interní sítě, a to na všechny 3 servery. U serveru Linux2 byla zjištěna bezpečnostní chyba u programu Samba. Použitím programu Metasploit framework a exploitu v jeho databázi jsem byl schopen získat přístup s právy root. Využit byl exploit usermapy_script s metodou dodání reverse_tcp.
Obr. 23
Exploitace serveru Linux2
Testování reálné firemní sítě
39
3.5 Odposlouchávání interní sítě 3.5.1
ARP cache poisoning
Ještě před samotným začátkem procesu podvržení MAC bylo nutné na mém PC nastavit forwarding ip paketů. Toho se docílilo pomocí příkazu: echo 1 > /proc/sys/net/ipv4/ip_forward
Obr. 24
Podvržení MAC adres
Jak je vidět na obr. 23, nástroj arpspoof začal posílat nevyžádané ARP dotazy na IP adresy klientského PC a serveru Linux1. V obou dvou případech je uvedena MAC adresa mého PC. Na obr. 24 je poté vidět, že veškerá komunikace prochází přes můj PC a velmi jednoduše jsem byl schopen zachytit HTTP autentizaci na server Linux1.
Obr. 25
Výpis procházející komunikace
3.5.2
MAC flooding a DNS Spoofing
Pokus o aktivní odposlech pomocí MAC flooding byl neúspěšný, jelikož se nepodařilo zaplnit CAM tabulku switche natolik, aby začal rozposílat veškerou komunikaci na všechny porty. Také DNS spoofing nebylo možno provést, jelikož možnost dostat se mezi DNS server a klientské PC není realizovatelná.
Testování reálné firemní sítě
40
3.6 Výsledky testování Tab. 1
Výsledek externího testování
Externí testování PORT STATE SERVICE VERSION Pure-FTPd 20/tcp open ftp Pure-FTPd 21/tcp open ftp Postfix smtpd 25/tcp open smtp Apache http 2.2.3 ((CentOS)) 80/tcp open http Dovecot imapd 143/tcp open imap Apache httpd 2.2.3 ((CentOS)) 443/tcp open ssl/http 465/tcp open ssl/smtp Postfix smtpd OpenSSH 4.3 (protocol 2.0) 732/tcp open ssh 993/tcp open ssl/imap Dovecot imapd monit httpd 5.5 2812/tcp open ssl/http ms-wbtMicrosoft Terminal Service 3400/tcp open server Apache http 2.2.3 ((CentOS)) 8080/tcp open ssl/http Allegro RomPager 07 UPnP/1.0 8123/tcp open http (ZyXEL ZyWALL 2) OS: Unix, Windows Tab. 2
Exploit × × × × × × × × × ×
Riziko střední střední střední nízké střední nízké nízké nízké nízké nízké
×
nízké
×
nízké
×
střední
×
Výsledek interního testování – server Linux1
PORT 20/tcp 21/tcp 22/tcp 25/tcp 53/tcp 80/tcp
STATE closed open closed open open open
SERVICE ftp-data ftp ssh smtp domain http
110/tcp 143/tcp 443/tcp
open open open
pop3 imap ssl/http
465/tcp 631/tcp
open closed
ssl/smtp ipp
server Linux1 VERSION
Exploit
Riziko
Pure-FTPd
×
střední
Postfix smtpd dnsmasq 2.4.5 Apache httpd 2.2.3 ((CentOS)) Dovecot pop3d Dovecot imapd Apache httpd 2.2.3 ((CentOS)) Postfix smtpd
× ×
střední nízké
×
nízké
× ×
nízké nízké
×
nízké
×
nízké
Testování reálné firemní sítě
server Linux1 PORT STATE SERVICE VERSION 732/tcp open ssh OpenSSH 4.3 (protocol 2.0) 993/tcp open ssl/imap Dovecot imapd 995/tcp open ssl/pop3 Dovecot pop3d 2812/tcp open ssl/http monit httpd 5.5 8080/tcp open ssl/http Apache httpd 2.2.3 ((CentOS)) OS guesses: Linux 2.6.18 (98%) Tab. 3
41
Exploit × × × ×
Riziko nízké nízké nízké nízké
×
nízké
×
Výsledek interního testování – server Linux2
server Linux2 PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.2.3 ((CentOS)) 111/tcp open rpcbind 2 (RPC #100000) 139/tcp open netbios- Samba smbd 3.X ssn (workgroup: XXX ) 443/tcp open ssl/http Apache httpd 2.2.3 ((CentOS)) 445/tcp open netbios- Samba smbd 3.X ssn (workgroup: XXX ) 631/tcp open ipp CUPS 1.2 675/tcp open status 1 (RPC #100024) 3050/tcp open firebird Firebird RDBMS Protocol version 10 3306/tcp open mysql MySQL (unauthorized) 3551/tcp open apcupsd apcupsd Running: Linux 2.6.XOS -> Linux 2.6.9 - 2.6.30
Exploit
Riziko
×
nízké
×
nízké
×
nízké
×
nízké
CVE 2007kritické 2447 × nízké × nízké ×
nízké
× ×
nízké nízké
×
Testování reálné firemní sítě Tab. 4
42
Výsledek interního testování – server MS Windows
135/tcp
server MS Windows STATE SERVICE VERSION open http Miktotik Dude network monitor open msrpc Microsoft Windows RPC
443/tcp
open
ssl/http
445/tcp
open
1433/tcp
open
2222/tcp
open
netbiosssn ms-sql-s Microsoft SQL Server 2008 R2 10.50.2500 SP1 EtherNet /IP-1?
2224/tcp
open
efi-mg?
2301/tcp
open
http
CompaqHTTPServer 9.9 (HP System Management)
×
nízké
3050/tcp
open
firebird
Firebird RDBMS Protocol version 10
×
nízké
3400/tcp
open
ms-wbt- Microsoft Terminal Service server
×
nízké
4949/tcp
open
munin
Munin
×
nízké
5357/tcp
open
http
×
nízké
5989/tcp
open
ssl/http
Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) Web-Based Enterprise Management CIM serverOpenPegasus WBEM httpd
×
nízké
PORT 80/tcp
OS: Windows Server 2008
Miktotik Dude network monitor
Exploit
Riziko
×
nízké
×
nízké
×
nízké
neúspěšný
nízké
×
nízké
×
nízké
×
nízké
×
Testování reálné firemní sítě Tab. 5
43
Výsledek interního testování – klientské PC
PORT 139/tcp 445/tcp
STATE SERVICE open netbios-ssn open microsoftds 5800/tcp open vnc-http 5900/tcp open vnc
Klientské PC VERSION Microsoft Windows XP microsoft-ds TightVNC VNC (protocol 3.8)
Exploit Riziko x nízké neúspěšný nízké
OS guesses: Microsoft Windows XP SP2 or SP3 (99%) Tab. 6
x x x
nízké nízké střední
Výsledky ostatního testování
Testování
Výsledek
Riziko
DoS
opatření na Border routeru
Nízké
Odpsolouchávání interní sítě
úspěšně provedeno
Kritické
Veškeré posuzování závažnosti rizik nebo vyhledávání možných exploitů bylo prováděno mojí osobou, přičemž jsem vycházel ze znalostí a vědomostí získaných během studia oboru, znalostí získaných praxí nebo samostudiem, nebo z informací dostupných na Internetu např. prohledáváním CVE, prohledáváním stránek zabývající se problematikou penetračního testování, stránek zabývající se exploitací.
Testování reálné firemní sítě
44
3.7 Návrh zlepšení bezpečnosti
Obr. 26
Změna topologie
V následující tabulce jsou vypsány všechny navrhované změny. Tab. 7
Bezpečnostní změny
Kde Co topologie vytvoření DMZ sítě
Border router
nastavení LAN s vlastním DHCP serverem nastavení DMZ s vlastním DHCP serverem
Důvod viz. kapitola 2.3 oddělení síťového provozu; pouze do interní části sítě oddělení síťového provozu; pouze do DMZ
Testování reálné firemní sítě
Nastavení firewallových pravidel pro provoz mezi sítěmi zavedení HTTPS pro přístup k webovému rozhraní konfigurace VPN
45
zabezpečení provozu znemožnění odposlechu autentizačních údajů v případě nutnosti přístupu k zařízením v interní síti
zrušení přístupu z Internetu
není vyloženě nutné mít přístup z Internetu není vyloženě nutné mít přístup z MS přesun do interní části sítě Internetu Windows přidání druhé síťové karty síťový interface pro program Snort instalace programu Snort realizace NIDS pro interní síť
Switch2
zavést statickou CAM tabulku povolit pro jeden port jednu MAC adresu nevyužívané porty zamknout zrcadlení portu pro server MS Windows
zabránění neautorizovanému zařízení připojit se do sítě a odposlechu zabránění neautorizovanému zařízení připojit se do sítě poskytování síťového provozu pro analýzu
program Snort
realizace HIDS
program fail2ban
blokuje IP adresy při vícenásobném neúspěšném připojení ke službám jako SSH, FTP, dovecot
nepoužívat FTP; zavedení SFTP nepoužívat pro email non-ssl připojení
FTP využívá plain taxt autentizaci; možnost odposlechu využívá plain taxt autentizaci; možnost odposlechu
upgrade Samby přesun do interní sítě
znemožnění exploitace není potřeba přístupu z Internetu
Linux1
Linux2
obrana pro ARP cache poisoningu
klientské instalace Windows 8.1 PC
ukončení podpory Windows XP
Testování reálné firemní sítě
46
Z důvodu dostatečně výkonného Border routeru a jeho možnostem nastavení jsem zvolil architekturu DMZ za použitím pouze jednoho firewallu. Router by měl dostatečně zvládat správné dělení síťového provozu spolu se správnou bezpečnostní politikou. Do návrhu jsem také záměrně nezařadil redundanci klíčových síťových prvků a to z toho důvodu, že firma, ve které jsem zaměstnán a která zajišťuje správu této sítě, má vypracovaný havarijní plán, který v případě výpadku některého z prvků zajistí znovuzprovoznění sítě použitím náhradních prvků. Rozdělení sítě na interní část a DMZ lze velmi jednoduše vytvořit v nastavení routeru, stejně tak jako pravidla určující provoz mezi těmito sítěmi. Základní obranu proti DoS a DDoS poskytuje funkce implementovaná v routeru. Žádné další protiopatření jsem nenavrhoval vzhledem k tomu, že je podle mého názoru cílený útok na tuto firmu velmi nepravděpodobný a případná nedostupnost je řešena ve výše zmíněném havarijním plánu. U modelu a verze firmwaru připojeného KVM není znám žádný exploit a je použito bezpečné heslo, z čehož jsem usoudil, že zde nehrozí žádné bezpečnostní riziko.
3.8 Finanční zhodnocení návrhu Většina věcí, ke zlepšení bezpečnosti je realizována SW nastavením nebo pomocí open source programů. Čemu se ale vyhnout nejde, je nákup síťové karty a zakoupení licencí produktu Windows 8.1 Pro. Tab. 8
Finanční zhodnocení
Produkt
Cena v Kč
Intel PRO/1000 CT Desktop Adapter Windows 8.1 Pro OEM pro 18 PC
850 50 000
Případná kabeláž
max. 500
Vedení firmy si uvědomuje, že finanční náklady spojené s návrhem jsou v zájmu zlepšení bezpečnosti únosné, proto odsouhlasila výše uvedené změny.
Závěr
47
4 Závěr Cílem této práce bylo nejprve seznámit se s problematikou informační bezpečnosti firemních LAN, s postupy pro testování tohoto typu sítí, otestovat reálnou firemní LAN a navrhnout způsoby, jak danou síť zabezpečit. Důvodem výběru této bakalářské práce bylo to, že jsem se nedávno stal správcem počítačové sítě v dané firmě a chtěl jsem si otestovat její zabezpečení. V teoretické části jsem se zabýval bezpečnostními prvky sítě a správným návrhem topologie sítě, vedoucí k zajištění bezpečného provozu. Ke správnému provedení testování bezpečnosti sítě bylo nutné nastudovat metodiku penetračního testování a podrobně se seznámit s jeho prvky. Získané vědomosti jsem poté využil při testování dané sítě a také v návrhu ke zlepšení bezpečnosti. Kali linux se ukázal jako nesmírně silná platforma pro penetrační testování, obsahující velké množství nástrojů, které testování velmi usnadňují. Také možnosti nmapu a jeho neustálý vývoj posunují tento program na špici skenovacích nástrojů. Co se týče externího testování, nedopadla síť vůbec špatně. Nepodařilo se získat neoprávněný přístup ani k jednomu ze serverů. Otevřené porty byly zúženy jen na potřebné, a to ke správnému vykonávání funkce serveru. Interní testování dopadlo podstatně hůře. Jednak se povedlo exploitovat server Linux2 a získat root práva, tak se povedlo velmi jednoduchým způsobem odposlouchávat interní komunikaci. Zde bylo uplatnění navrhnutých zlepšení silně doporučeno. Celkově byl vypracován návrh obsahující 21 bodů ke zlepšení stávající situace od opravy zásadních chyb, zavedení nového uspořádání sítě, zabezpečení externího přístupu k síti až po zavedení monitorovacích systémů, které by budoucí možné útoky byly schopny detekovat a zároveň vytvářet povědomí o provozu na síti. Po dohodě s vedením firmy proběhne začátkem června zakoupení síťové karty a licencí produktu Windows 8.1 Pro, a to s plánem, že všechny návrhy by měly být aplikovány do konce června, a to mojí osobou. Firma také oceňuje přínos této bakalářské práce, protože testování a navrhnutá zlepšení jsou v jejím zájmu.
Literatura
48
5 Literatura DMZ (computing) [obrázek]. In: Wikipedia: the free encyclopedia [online]. 2008. vyd. San Francisco (CA): Wikimedia Foundation, 2001-2014 [cit. 2014-05-18]. Dostupné z: http://en.wikipedia.org/wiki/Demilitarized_zone_%28computing%29 HALLER, MARTIN. Skenování portů: techniky [obrázek]. In: Lupa.cz [online]. 2006 [cit. 2014-05-18]. Dostupné z: http://www.lupa.cz/clanky/skenovani-portutechniky/#ic=serial-box&icc=text-title HARPER, ALLEN, SHON HARRIS, CHRIS EAGLE, JONATHAN NESS A MICHAEL LESTER. Hacking: manuál hackera. 1. vyd. Praha: Grada, 2008, 399 s. ISBN 978-80-2471346-5. LOCHGELLY. Protecting User Privacy through SSL Encryption [obrázek]. In: Lochgelly | Loch of Shining Waters [online]. 2012 [cit. 2014-05-19]. Dostupné z: https://lochgelly.org.uk/2012/12/protecting-user-privacy-through-sslencryption/ SANBOWER, JAMIE. Intrusion Prevention Best Practice - IPS Placement [obrázek]. In: CAYSEC: Cisco Security Blog [online]. 2010 [cit. 2014-05-18]. Dostupné z: http://ciscoise.blogspot.cz/2010/09/intrusion-prevention-best-practiceips.html SELECKÝ, MATÚŠ. Penetrační testy a exploitace. 1. vyd. Brno: Computer Press, 2012, 303 s. ISBN 978-80-251-3752-9. WEBER, FILIP. DoS a DDoS útoky a ochrana proti nim (1). In: Svět sítí [online]. 2008 [cit. 2014-05-19]. Dostupné z: http://www.svetsiti.cz/clanek.asp?cid=DoS-aDDoS-utoky-a-ochrana-proti-nim-1-742008 WHITAKER, ANDREW A DANIEL P NEWMAN. Penetration testing and network defense [obrázek]. Indianapolis, IN: Cisco Press, c2006, xxvii, 598 s. ISBN 15-8705208-3.