PENETRAČNÍ TESTY A ODHALOVÁNÍ ZRANITELNOSTÍ SÍŤOVÝCH PRVKŮ | |||||
| POPIS: |
PENETRAČNÍ TESTY A ODHALOVÁNÍ ZRANITELNOSTÍ SÍŤOVÝCH PRVKŮ
PENETRAČNÍ TESTOVÁNÍ
cílem penetračního testování je ověření úrovně zabezpečení aplikace, systému nebo sítě. Někdy se používá zkrácený výraz pen-test. Provádí se testováním, hledáním slabého místa, a následně pokusy proniknout do infrastruktury a pokud možno získat co nejvyšší oprávnění. Nakonec zbývá interpretace případných nedostatků. Testováno by mělo být vše, u čeho hrozí riziko nežádoucího průniku do systému, odcizení dat nebo způsobení finanční škody. Nejčastěji po útoku vznikají škody typu:
• nedostupnost služby – služba není schopna obsluhovat legitimní uživatele (DoS, DDoS útoky),
• neoprávněný přístup útočníka k systému (počítač, server, databáze), kde může číst či modifikovat data, měnit konfigurace,
• získání důvěrných informací – získání přihlašovacích údajů, adres, informací o financích apod. V rámci této práce bude zmiňována firemní síť, ve skutečnosti se může jednat o jakoukoliv soukromou síť (úřad, organizace, domácnost apod.).
Hledání slabých míst
Anglický pojem vulnerability assessment lze přeložit jako vyhodnocování zranitelností. V českých zdrojích se používají pojmy odhalování zranitelností a hledání slabých míst. Odhalování zranitelností není synonymum pro penetrační testování. Jedná se „pouze“ o hledání bezpečnostních chyb a informací v cílovém systému. Tento proces je součástí penetračního testování. Pokud jsou nalezena nějaká slabá místa, může se naskytnout mož- nost pro napadení systému. Dnešní nástroje pro odhalování zranitelností pracují po zadání vstupních údajů a provedením požadovaného nastavení většinou automaticky. Výčet typických činností těchto nástrojů:
• procházení otevřených portů a služeb v celém bloku IP adres,
• zjištění typu operačního systému a aplikací, jejich verze, nainstalované záplaty,
• zjištění nastavení, zabezpečení, autentizace aplikací nebo služeb,
• některé dovedou i nízkoúrovňové hádání hesel hrubou silou,
• poskytnutí informací o možném řešení problému.
Výsledky testů odhalují základní bezpečnostní nedostatky systému a na testující osobě spočívá úkol vyhodnotit, které problémy představují riziko v kontextu testovaného prostředí. Může se stát, že nebezpečné chyby, označené automatickým softwarem, nemusí v daném prostředí představovat vážné reálné riziko. Naopak malá detekovaná chyba může vést k většímu útoku.
Typy testů
Testy je možné dělit podle různých hledisek. Obecně se penetrační testy často dělí na externí a interní.
Externí testy – jsou prováděny z vnější strany testované sítě a představují vnější hrozby (např. útok hackera z internetu).
Interní testy – jsou prováděny z vnitřní strany testované sítě, které napodobují potencionálního útočníka, který získal nějakým způsobem přístup do vnitřní sítě, nebo také neloajálního zaměstnance.
Podle úrovně znalostí o systému.
Black-box testy – na testovaný systém se pohlíží jako na tzv. černou skříňku, kde jsou známy pouze jeho vstupy a potencionální výstupy. Není známa vnitřní struktura systému. Tato metoda je typická pro hackery, kteří mají jen běžnou veřejnou informaci (např. doménové jméno serveru), kterou podrobuje dalšímu průzkumu.
White-box testy – na rozdíl od black-box testů jsou k dispozici všechny možné znalosti o systému. V případě počítačové sítě, je to například topologie sítě, přítomná zařízení, různé přístupové údaje, nastavení prvků atd. V případě testování aplikací se analyzují zdrojové kódy a hledají se v něm chyby. Detailní informace o systému mohou umožnit odhalení případných nedostatků v kratší době a celkově komplexnější analýzu systému.
Grey-box testy – kombinace předchozích dvou typů testů. Tester má pouze základní znalosti o systému, které se snaží maximálně využít. Samotný test však probíhá z hlediska potencionálního útočníka nebo v případě testování aplikace z hlediska uživatele.
Podle způsobu provedení.
Manuální testy – tester je vykonává manuálně, umožňuje vytvořit testy na míru pro specifické podmínky. Nevýhodou je, že jsou potřeba rozsáhlé znalosti testované oblasti a dovednosti vytvořit testovací proceduru. Další nevýhodou je časová náročnost.
Automatizované testy – nástroje pro automatické testování vytvářejí profesionálové v oboru a testerovi se stačí naučit s nástrojem pracovat a porozumět interpretaci vý- sledků. Výhodou je rychlost aplikace testu, nevýhodou může být nemožnost otestovat některé typy zranitelných míst.
Semiautomatizované testy – kombinace automatických a manuálních testů, snažící se využít výhody obou způsobů.
Existuje také metoda testování, která se nazývá red teaming či red team testing. Ta nabízí zákazníkovi co nejširší a detailní pohled na bezpečnost informací. Úkolem je najít co nejvíce cest do systému. To zahrnuje kromě samotného penetračního testování například kontrolu fyzické bezpečnosti, testování IDS/IPS1 nebo praktiky sociálního inženýrství.
Metodologie testování
Zde budou popsány obecné metodiky pro penetrační testování. Představíme pět základních fází testovací procedury, jejichž posloupnost je znázorněna na obrázku 1.1. Některé zdroje uvádějí více či méně fází, ale prakticky zůstává struktura testů vždy stejná.
Plánování
V této začáteční fázi je potřeba projednat a stanovit všechny organizační záležitosti. Pří- prava a podepsání bezpečné smlouvy, sestavení týmu a vytvoření časového plánu. Určují se detailní cíle, na které budou zaměřeny penetrační testy. Cíle penetračního testování mohou být vymezeny například jen na webové aplikace, bezdrátové sítě, databáze apod. Důležité je vymezit prioritní cíle, jelikož není vždy možné odhalit všechna zranitelná místa. Záleží na přidělených prostředcích (finance, personál, čas), schopnostech testera, a proto je potřeba se primárně zaměřit na místa a chyby, které představují pro firmu největší riziko.
Sběr informací
V další fázi nastává zjišťování co nejvíce informací o cílové síti. Používají se pojmy jako information gathering nebo data mining. Získané informace se použijí jako vstup k další fázi testování. Nejčastěji se jedná o základní informace jako rozsahy IP adres, jmenné servery, kontaktní osoby, otevřené porty, síťové služby a jejich verze, operační systémy síťových prvků. Takové informace je možné získat kombinací zdrojů jako whois a nástrojů určených pro skenování portů. Další technikou v této fázi může být testování pravidel firewallu. K těmto účelům jsou dostupné automatizované nástroje, což je popsáno dále v této práci.
Odhalování zranitelností
Po získání informací z předchozí fáze nastává odhalování zranitelností. Za otevřenými porty se skrývají nějaké síťové služby a operační systémy, na kterých běží, a ty mohou představovat riziko. Při hledání chyb dojde k porovnávání jednotlivých verzí síťových slu- žeb a operačních systémů s databází známých chyb. Také probíhají kontroly určitých chybných konfigurací (misconfigurations). Výsledkem je seznam stanic či služeb, které obsahují zranitelnosti nebo představují riziko. Nejčastěji se pro tento účel používají specializované nástroje, které pracují automaticky. Mnohé tyto nástroje zahrnují i fázi sběru dat. Na tuto a předchozí fázi lze obecně pohlížet stále jako na objevování (discovery).
Zneužití chyb (exploitace)
Tato fáze je samotné zneužívání nalezených zranitelností, tj. pokusy o prolomení bezpeč- nostních mechanizmů. Exploitace je postavena na využívání nedostatků a chyb v aplikacích a systémech. Časem se může objevit problém a neprolomitelný mechanizmus nemusí být neprolomitelný navždy. Pro nejrůznější síťové služby existuje řada exploitů. Po úspěšné exploitaci jedné služby se může otevřít cesta k další službě, která byla před tím nepřístupná. Pak je třeba se vrátit ke sběru dat a hledání zranitelností pro nový cíl (viz obrázek 1.1). Tento cyklus se opakuje pro všechny služby, které jsou v zájmu testování.
Report
Konečná fáze zahrnuje shrnutí a předání výsledků penetračních testů. Cílem je prezentovat zákazníkovi kvalitní závěrečnou zprávu, která povede ke zlepšení bezpečnosti firmy. Jedná- li se o testování firemní sítě, výsledky by měly být prezentovány a prodiskutovány s IT oddělením a vedením firmy.
Metodiky a certifikace
Podle vlastního průzkumu není nikde definováno, jak přesně postupovat a jakých nástrojů používat při penetračním testování. Často se ovšem skloňuje nekomerční metodika Open Source Security Testing Methodology Manual (OSSTMM) institutu ISECOM [23]. Tento dokument o 211 stranách není přímo návodem pro penetrační testování, ale týká se obecně testování zaměstnanců, fyzické bezpečnosti, bezpečnosti bezdrátových, telekomunikačních a datových sítí. V dokumentu se uvádí, že je manuál přizpůsobitelný téměř všem typům auditů jako penetrační testy, analýzy bezpečnosti, odhalování zranitelností, red-teaming atd. Jsou zde popsány jednotlivé kroky a cíle testování, avšak není zde definováno pomocí jakých nástrojů a jejich nastavení používat. V současné době je volně k dispozici OSSTMM verze 3 z roku 2010, pro omezenou komunitu lidí je však dostupná verze OSSTMM 4 Draft.
Některé firmy na českém trhu, které se zabývají penetračním testováním na svých stránkách uvádí, že používají metodiky vycházející z OSSTMM. Jsou jimi například AEC DATA SECURITY, Trustica, Nethemba. Ze zahraničních vyjmenujme například německou firmu Binsec. V článku na webu Ciscopress [11] jsou zmíněny tyto standardy:
• Open Source Security Testing Methodology Manual (OSSTMM),
• Information Systems Security Assessment Framework (ISSAF),
• NIST 800-115 – Technical Guide to Information Security Testing and Assessment (rok 2008),
• Open Web Application Security Project (OWASP).
Za zmínku stojí také stránky projektu Penetration Testing Execution Standard a zejména rozsáhlá sekce PTES Technical Guidelines, kde jsou popsány praktické postupy testování včetně nástrojů a jejich použití – viz http://www.pentest-standard.org. Průvodce však momentálně není úplně dokončený, doplňuje se průběžně.
Pro vykonávání penetračního testování existují i mezinárodní kurzy a certifikace, například:
• Certified Ethical Hacker (CEH),
• Licensed Penetration Tester (LPT),
• Certified Information Systems Security Professional (CISSP),
• OSSTMM Professional Security Tester (OPST).
Nástroje pro testování
Pro penetrační testování se využívá široká škála specializovaných nástrojů. Některé ná- stroje jsou komerční, ale většina je zdarma, protože jsou často vyvíjeny hackerskými komunitami a sdíleny na internetu [6]. Existuje také řada operačních systémů zaměřených na bezpečnostní testování. Typickým příkladem jsou různé distribuce Linuxu, které obsahují širokou škálu ověřených nástrojů různých vývojářů, vyvinutých třeba i pro jeden účel. Zde jsou některé distribuce uvedeny:
• Kali (http://www.kali.org) (viz kapitola 4),
• BackBox (http://www.backbox.org),
• Blackbuntu (http://www.blackbuntu.com),
• Pentoo (http://pentoo.ch),
• CAINE (http://www.caine-live.net),
• Fedora Security Lab (https://spins.fedoraproject.org/cs/security),
• Matriux (http://www.matriux.com),
• NodeZero (http://www.nodezero-linux.org),
• WEAKERTH4N (http://weaknetlabs.com).
Tyto systémy jsou zdarma (licence GPL). V textu následuje několik nástrojů z různých kategorií.
Nástroje specializované na vyhledávaní zranitelností:
• Nessus (http://www.tenable.com) (viz kapitola 3),
• Nexpose (http://www.rapid7.com/products/nexpose) ,
• OpenVAS (http://www.openvas.org) (kapitola 4.3),
• Retina (http://go.beyondtrust.com/),
• Core Impact Pro (http://www.coresecurity.com/),
• GFI LanGuard (http://www.gfi.com/),
• Unified Security Management (USM) (https://www.alienvault.com/),
• Tripwire SecureScan (http://www.tripwire.com/).
Nástroje specializované na zneužívání mnoha zranitelností:
• Metasploit (http://www.metasploit.com),
Core Impact Pro (http://www.coresecurity.com/),
• Immunity CANVAS (http://www.immunityinc.com/).
Nástroje specializované na testování webových aplikací:
• OWASP WTE (https://www.owasp.org),
• Acunetix (www.acunetix.com),
• Samurai web testing framework (http://samurai.inguardians.com),
• w3af (http://w3af.org).
Různé zaměření:
• OSWA-Assistant (http://securitystartshere.org/) – testování bezdrátových sítí,
• CISOfy Lynis (https://cisofy.com/lynis/) – nástroj pro lokální testování zabezpečení systémů založených na UNIXu. Vyskytuje se i v Kali Linux,
• Microsoft Baseline Security Analyzer (http://www.microsoft.com/) – kontroluje zabezpečení, aktualizace a doporučená nastavení produktů společnosti Microsoft.
Mnohé tyto nástroje jsou k dispozici zdarma, nebo alespoň v nějaké verzi pro nekomerční účely. Výjimkou jsou zde Immunity CANVAS, Core Impact Pro a Unified Security Management. Přehled nástrojů vychází ze zdrojů [1, 34, 25] a vyhledávání na internetu pomocí klíčových slov
POŽADAVKY ISO 27000 A PCI DSS
ISO 27000
ISO (International Organization for Standardization) vydává v sérii ISO 27000 normy, které se týkají oblasti bezpečnosti informací. Konkrétně se zabývají obecnou metodologií systému řízení bezpečnosti informací (Information Security Management Systems – ISMS). Smyslem zavedení ISMS je zachování důvěrnosti, integrity a dostupnosti informací. Zainteresované strany pak mají určité záruky, že jsou rizika přiměřeně řízena. Rodina standardů ISMS poskytuje pokyny, jak v organizaci vytvořit strukturu pro řízení bezpečností informací zahrnující například informace o financích, zákaznících, zaměstnancích nebo dů- věrných firemních informacích. Od 1.1.2015 je v ČR v platnosti zákon o kybernetické bezpečnosti [38] a soulad se standardy z rodiny ISO 27000 je možným řešením pro firmy, kterých se zákon týká [19, 28].
Jednotlivé dokumenty norem nejsou šířeny zdarma. Zakoupit je lze z více zdrojů, oficiálním je však www.iso.org. Tyto normy byly přeloženy do češtiny a přijaty i jako ČSN ISO/IEC 27000. Na obrázku 2.1 je zobrazeno, jaké normy rodina ISMS standardů obsahuje a jak jsou rozděleny. Následuje stručný popis vybraných norem vycházející z [9].
Vybrané normy
ISO/IEC 27000
Information technology - Security techniques - Information security management systems - Overview and vocabulary Popisuje základní principy systémů řízení informační bezpečnosti. Obsahuje přehled rodiny standardů, úvod do ISMS, definice pojmů a terminologický slovník. Tento dokument je zdarma ke stažení, odkaz uveden v literatuře [9]
ISO/IEC 27001
Information technology - Security techniques - Information security management systems - Requirements Nejaktuálnější je druhá edice z roku 2013 [10]. Specifikuje požadavky na ustavení, implementování, udržování a neustálé zlepšování systému ISMS v souvislosti obchodními riziky organizace. Zahrnuje také požadavky na posouzení a ošetření rizik bezpečnosti informací, přizpůsobené potřebám organizace. Norma je vhodná pro všechny organizace, bez ohledu na typ, velikost a charakter. Kontrolní cíle a ovládací prvky jsou uvedeny v příloze. Tomuto standardu se více věnuje podkapitola 2.2
ISO/IEC 27002
Information technology — Security techniques — Code of practice for information security controls Norma obsahuje soubor postupů pro konkrétní požadavky normy ISO 27001.
ISO 27032
Information technology – Security techniques – Guidelines for cybersecurity Norma z roku 2012 se zabývá oblastí kybernetické bezpečnosti. Zaměřeno na oblasti informační bezpečnosti, síťové bezpečnosti, internetové bezpečnosti a ochranu kritické informační infrastruktury.
ISO 27033
Information technology – Security techniques – Network security Soubor norem specializovaných na bezpečnost sítí. Normy nahrazují ISO/IEC 18028 a vydávají se po částech [8, 19].
• ISO/IEC 27033-1:2009 – Norma poskytuje základní přehled a definici pojmů v souvislosti s bezpečností sítí. Dále se tu nachází přehled ostatních částí normy ISO 27033.
• ISO/IEC 27033-2:2012 – Průvodce pro návrh, implementaci a dokumentaci bezpečné síťové architektury.
• ISO/IEC 27033-3:2010 – Popisuje hrozby, techniky návrhu a kontrolní mechanizmy pro různé vzorové síťové scénáře.
• ISO/IEC 27033-4:2014 – Zabývá se zabezpečením komunikace mezi sítěmi s využitím bezpečnostních bran, firewallů, IPS systémů apod.
• ISO/IEC 27033-5:2013 – Tato norma je průvodcem pro vytvoření a provozování zabezpečených spojení s využitím virtuální privátní sítě (VPN).
ISO 27001
Hlavní norma pro ISMS, která obsahuje požadavky. Informace jsou čerpány přímo z dokumentu normy [10]. Obecné informace už byly uvedeny v podkapitole 2.1.1. Pokud chce organizace dosáhnout shody s tímto standardem, musí splňovat všechny požadavky kapitol 4 až 10. Následuje stručný popis obsahu této normy v sedmi hlavních bodech, které v dokumentu představují kapitoly.
4. Kontext organizace popisuje několik záležitostí, které je potřeba na úvod stanovit. Tento bod obsahuje pokyny pro porozumění organizaci a jejímu kontextu, potřebám, očekáváním zainteresovaných stran a stanovení rozsahu ISMS.
5. Vůdčí role definuje obecné závazky pro vrcholové vedení organizace. Dále popisuje, jakou politiku bezpečnosti informací musí vedení stanovit a jaké role, odpovědnosti a pravomoci přiřadit.
6. Plánování. Musí být definován a aplikován proces na posuzování a ošetření rizik bezpečnosti informací. V tomto bodě se odkazuje do přílohy dokumentu, kde je seznam úplných cílů jednotlivých opatření.
7. Podpora ve stručnosti definuje, že organizace musí určit a zajistit zdroje pro zavedení, provozování a zlepšování ISMS. Určit nezbytné kompetence pro osoby a zajistit jejich dostatečné povědomí vzhledem k ISMS. Musí určit pravidla pro interní a externí komunikaci (kdo, s kým, o čem, atd.). Dále jsou zde požadavky na dokumentování informací (např. uchovávání, distribuce, přístup, likvidace).
8. Provozování popisuje povinnost organizace plánovat, implementovat a řídit procesy ke splnění požadavků bezpečnosti informací. Odkazuje se zde na implementaci cílů uvedených v 6. kapitole – Plánování. Organizace musí udržovat dokumentaci, aby měla přehled, že procesy byly prováděny podle plánu. Nacházejí se zde pokyny ohledně plánovaných i neúmyslných změn. Rizika bezpečnosti informací musí být posuzovány pravidelně nebo nastanou-li významné změny.
9. Hodnocení výkonnosti má probíhat pomocí monitorování, měření analýzy a hodnocení. Organizace musí v plánovaných intervalech provádět interní audit ISMS. Předchozí opatření tohoto bodu musí pravidelně přezkoumávat i vrcholové vedení organizace.
10. Zlepšování obsahuje pokyny jak postupovat, pokud nastane neshoda – řešení pří- čin a následků. Dalším bodem je nutnost neustále zlepšovat vhodnost, efektivnost a přiměřenost ISMS.
Příloha normy obsahuje tabulku, kde se nachází seznam kontrolních cílů a stručný popis jejich opatření. Přesnější postupy a popisy jsou uvedeny v kapitolách 5 až 18 normy ISO 27002 a musí být použity v kontextu kapitoly 6 normy ISO 27001. Celkem je tabulka rozdělena do 18 kapitol a několika podkapitol, z nichž každá obsahuje několik cílů a opat- ření. Příloha normy popisuje tyto oblasti (kapitoly):
• politiky bezpečnosti informací,
• organizace bezpečnosti informací,
• bezpečnost lidských zdrojů,
• řízení aktiv, • řízení přístupu,
• kryptografie,
• fyzická bezpečnost a bezpečnost prostředí,
• bezpečnost provozu,
• bezpečnost telekomunikací
• akvizice, vývoj a údržba systémů,
• dodavatelské vztahy,
• řízení incidentů bezpečnosti informací,
• aspekty řízení kontinuity činností organizace z hlediska bezp. informací,
• soulad s požadavky.
Například kapitola 12 mimo jiné definuje požadavky na ochranu informací proti malwaru, ochranu proti ztrátě dat zálohováním, omezení instalace softwaru uživatelům a nutnost zaznamenávání událostí pomocí logování. V tomto bodě také norma říká, že musí být včas získávány informace o technických zranitelnostech provozovaných informačních systémů. Musí být vyhodnoceno ohrožení organizace těmito zranitelnostmi, a případně přijato příslušné opatření na zvládnutí rizik.
Standard PCI DSS
Payment Card Industry Data Security Standard (PCI DSS) znamená v překladu standard bezpečnosti dat v odvětví platebních karet. Vznikl z důvodu podpory a posílení bezpečnosti dat držitelů karet a k usnadnění globálního přijetí jednotných opatření k bezpečnosti dat. Dokument PCI DSS poskytuje základní technické a operační požadavky vytvořené k ochraně dat držitelů karet. PCI DSS se vztahuje na všechny složky, které zpracovávají, přenášejí data držitelů karet (obchodníci, zpracovatelé, zpracovatelské banky, apod.). PCI DSS pokrývá minimální požadavky na ochranu dat držitelů karet a mohou být doplněny dodatečnými kontrolami a postupy pro další snížení rizika. Posuzování shody se standardy PCI DSS provádí společnosti schválené PCI Security Standards Council.
Tento dokument lze volně získat na stránkách PCI Security Standards Council [24]. Z tohoto dokumentu jsou čerpány informace v této kapitole. Poslední verze 3.0 byla vydána v listopadu 2013.
Dále bude uveden přehled 12 požadavků PCI DSS. V dokumentu jsou tyto požadavky detailně rozepsány v rozsahu 88 stran. Každý požadavek je dále dělen do několika dal- ších požadavků, který jej detailněji specifikuje. Ke každému tomuto dílčímu požadavku je uveden postup, jak by měl být ověřen, a také stručný teoretický popis. Zde bude vypsán pouze stručný nástin, o co se v daném požadavku přibližně jedná.
Požadavky PCI DSS
Bezpečnostní požadavky PCI DSS platí pro všechny systémové komponenty (všechny sou- části sítě), jenž jsou zahrnuty v prostředí dat držitelů karet. Prostředí dat držitelů karet zahrnuje osoby, procesy a technologie, které uchovávají, zpracovávají, přenášejí data držitelů karet nebo citlivá ověřovací data. PCI DSS doporučuje segmentaci sítě. To znamená izolování prostředí dat držitelů karet od zbytku sítě subjektu. Tato metoda může například zjednodušit kontroly, omezit rozsah hodnocení PCI DSS a s tím spojené finanční náklady.
Vybudování a udržování bezpečné sítě
Požadavek 1: Instalovat a udržovat konfiguraci firewallů k ochraně dat držitelů karet. Popisuje detailní požadavky na umístění a konfigurace firewallů v síti.
Požadavek 2: Nepoužívat výchozí nastavení od dodavatele jako systémová hesla a jiné bezpečnostní parametry. Požadavek definuje mnoho konkrétních doporučení jako měnit výchozí systémová hesla, odstranit nepoužívané uživatelské účty, používat silné autentizační a šifrovací mechanismy, aktivovat nezbytné a dostatečně zabezpečené služby apod.
Ochrana dat držitelů karet
Požadavek 3: Chránit uchovávaná data držitelů karet. Zde jsou uvedeny konkrétní pravidla pro nakládání s daty držitelů karet. Popsány jsou metody ochrany jako například šifrování, zkrácení, maskování a transformace dat (hashing).
Požadavek 4: Zašifrovat přenosy dat držitelů karet skrz otevřené veřejné sítě. Požadavky na konfiguraci technologií používaných během přenosu přes otevřené ve- řejné sítě tak, aby nemohla být data odcizena. Patří sem například užívání odolné kryptografie a bezpečných protokolů (SSL/TLS, IPSec, SSH, apod.).
Udržování programu pro řízení zranitelností
Požadavek 5: Chránit všechny systémy proti malware a pravidelně aktualizovat antivirový software. Antivirové programy by měly být stále aktivní, provádět pravidelné kontroly a generovat logovací soubory. Běžný uživatel by neměl mít práva je vypnout.
Požadavek 6: Rozvíjet a udržovat bezpečné systémy a aplikace. Zde se mimo jiné pojednává o nutnosti hledání bezpečnostních zranitelností pomocí vhodného software. Požadavek také obsahuje doporučení pro vývoj softwarových aplikací odolných vůči známým hrozbám.
Zavedení přísných opatření pro kontrolu přístupů
Požadavek 7: Nastavit přístup jen k takovým datům držitelů karet, které příslušná osoba nejnutněji potřebuje k výkonu práce. Systém pro řízení přístupu by měl mít výchozí nastavení – zakázat vše „deny all“ a povolovat pouze výjimky.
Požadavek 8: Identifikovaný a ověřený přístupu k systémovým komponentám. Požadavek uvádí doporučená pravidla pro identifikaci uživatelů a techniky autentizace k systémům či do sítě.
Požadavek 9: Omezit fyzický přístup k datům držitelů karet. Požadavky se týkají střežení fyzického přístupu k systémům a médiím, která ukládají data držitelů karet.
Pravidelné monitorování a testování sítí
Požadavek 10: Sledovat a monitorovat všechny přístupy k síťovým zdrojům a datům držitelů karet. Doporučení pro automatizované zaznamenávání přístupů k datům a jejich změny. Bez záznamů uživatelských aktivit v systému by bylo těžké odhalit případné narušení.
Požadavek 11: Pravidelně testovat bezpečnostní systémy a procesy. Zde jsou definovány všechny testy, které by měly v síťové infrastruktuře pravidelně prováděny. Mimo jiné jsou zde požadovány penetrační testy z vnitřní i vnější strany sítě, a to minimálně jednou ročně.
Zavedení postupů vedoucích k zabezpečení informací
Požadavek 12: Udržovat pravidla zaměřená na bezpečnost informací pro celý personál. Požadavky na vytvoření, udržování a kontrolování bezpečnostních politik pro zaměstnance společnosti.
NESSUS VULNERABILITY SCANNER
Nessus Vulnerability Scanner je skenerem zranitelností vyvinutý společností Tenable Network Security (dále jen TNS). Vývojáři na svých stránkách [30] uvádí, že je Nessus celosvětově nejrozšířenější skener zranitelností. Při testování probíhá kontrolování konkrétních chyb pomocí jednoduchých programů (pluginů), jejichž rozsáhlé databáze jsou denně aktualizovány. Tento nástroj pracuje na modelu klient-server, čili k serveru je možné se připojit z libovolné klientské stanice v síti, a to pomocí webového prohlížeče. Grafické rozhraní ná- stroje je uživatelsky přívětivé. Informace v této kapitole vycházejí převážně ze stránek TNS [30] a technické dokumentace produktu [31, 32].
Nejnovější verze programu je Nessus 6, vydaná v listopadu 2014. Verze Nessus Home je zdarma pro nekomerční použití, avšak je limitována maximálním počtem 16 IP adres k testování. Dále existují i komerční verze pro IT a bezpečnostní týmy s širšími možnostmi použití. Pro potřeby této práce bude využita verze Nessus Home, pro kterou je také třeba získat aktivační klíč po registraci na webových stránkách TNS.
Nessus je dostupný a podporovaný pro různé operační systémy a platformy a dokáže pracovat i na síti založené na protokolu IPv6.
Instalace
Zde bude popsána instalace na Windows a Kali Linux. Detailní postupy instalace na všechny podporované systémy lze dohledat v dokumentaci [31]. Před instalací Nessusu na Unix či Linux systémy jsou vyžadovány tyto knihovny:
• zlib
• GNU C Library
• Oracle JDK nebo OpenJDK 1 Mnohé distribuce je obsahují standartně. Při zvolené distribuci Kali Linux je není potřeba instalovat zvlášť.
Instalace a ovládání ve Windows
Instalace
Hostitelský operační systém v rámci této práce pro instalaci Nessus Home bude Windows 7 Professional 64bitové verze. Na webových stránkách TNS je potřeba stáhnout instalační soubor pro odpovídající platformu. Jedná se o běžnou instalaci pod systémem Windows, ovšem jsou vyžadována administrátorská práva. Součástí procesu je i instalace ovladače WinPcap2 . Při instalaci tohoto ovladače je doporučeno zatrhnout volbu Automatically start the WinPcap driver at boot time. Po dokončení instalace by se měla spustit ve webovém prohlížeči stránka nabízející počáteční konfiguraci (viz bod 3.2).
Ovládání démona ve Windows
Obvykle se Nessus démon spouští ve Windows automaticky. Ovládat ho je možné pomocí Správce úloh na kartě Služby nebo Příkazového řádku. V příkazovém řádku slouží pro zastavení příkaz:
C:\Windows\system32>net stop "Tenable Nessus"
a pro spuštění služby:
C:\Windows\system32>net start "Tenable Nessus"
Instalace a ovládání v Kali Linux
Instalace
Stejně jako v případě instalace na Windows je potřeba stáhnout správný instalační soubor. V případě Kali Linux se nazývá Nessus-6.1.0-debian6_amd64.deb. Bude-li stažen soubor do domovského adresáře, jeho následné rozbalení a instalaci je možné jednoduše provést příkazem:
root@kali:~# dpkg -i Nessus-6.1.0-debian6_amd64.deb
Ovládání démona v Kali Linux
V systémech založených na UNIXu je potřeba nessusd démona spustit ručně. Spouštění a zastavení démona se v Kali Linux provádí pomocí příkazů:
# /etc/init.d/nessusd start
# /etc/init.d/nessusd stop
Popis rozhraní a používání nástroje
Po instalaci by se měl automaticky otevřít webový prohlížeč, kde Nessus uživatele provede úvodním nastavením. Ve většině případů bude připojení definováno prohlížečem jako nedůvěryhodné, proto bude potřeba přidat výjimku. Běžně se do programu přistupuje přes webový prohlížeč pod adresou ve tvaru: https://[Nessus Server IP]:8834 pří- padně https://localhost:8834. Ve Windows lze klienta spustit také pomocí nabídky: Start>Programy>Tenable Network Security>Nessus>Nessus Web Client.
Po přihlášení do systému se zobrazí hlavní stránka, jejíž náhled je na obrázku 3.1. V horní části jsou trvalé položky:
• Scans,
• Policies,
• název přihlášeného uživatele,
• zvonek indikuje systémová oznámení
Položka Scans je v podstatě výchozí (hlavní) stránka Nessusu. Obsahuje přehled již provedených testů (skenů), které je možné otevřít a prohlížet výsledky. Pod názvem přihlášeného uživatele (zde: tester) se rozbalí nabídka s možnostmi správy uživatelů, nastavením nástroje, nápovědou a odhlášení uživatele.
Vytvoření testu
Nový test se vytvoří pomocí kliknutí na New Scan, nacházejícího se na hlavní stránce. Následuje výběr šablony nebo politiky, podle které bude test probíhat. Nessus nabízí uživateli již několik předdefinovaných šablon. V bezplatné verzi Nessus Home lze využít pouze některé šablony uvedené v tabulce 3.1.
Po výběru šablony následuje nastavení a přizpůsobení šablony pro požadovaný test. Nastavení pro každý test se liší podle výběru šablony. Nejdetailnější nastavení čeká při vý- běru Advanced Scan, zde si může uživatel nastavit test podle svých potřeb v plném rozsahu. Je zde také možné vybrat skupiny pluginů či konkrétní pluginy, které se pro test použijí, a tím pádem vytvořit úzce zaměřený test (např. na CISCO zařízení, firewally, CentOS atd.).
Uživatel si může vytvořit vlastní politiky, což jsou v podstatě výchozí šablony s ulo- ženým uživatelem definovaným nastavením. Odpadá tak nastavování stejných parametrů při opakovaných testech. Vytvářejí se pomocí položky Policies na hlavní stránce nástroje. Cíle testu mohou být zadávány v různých formátech, např. 192.168.0.100, 192.168.0.1/24, 192.168.0.10–100, test.ukazka.cz, fe80::212:17ff:fe57:333b.
Nessus nabízí i automatické spouštění testů pomocí plánovače, a to denně, týdně, měsíčně, ročně.
Credentials
Nastavení pověřovacích údajů (Credentials) pro testy poslouží k autentizaci do určených systémů [33]. Nessus je pak schopen provést širší škálu kontrol, a výsledky testů pak mohou vypovídat více. Hlavní výhodou je, že umožní nástroji zjistit přítomnost důležitých bezpečnostních záplat, nebo detekovat špatnou konfiguraci v systému. Pokud se provádí black-box či grey-box testy bez detailních znalostí o cílovém systému, pověřovací údaje se nevyplňují. V Nessus 6.1 lze zadat pověřovací údaje do různých systémů:
• databáze (Oracle, MySQL, PostgreSQL, SQL Server, MongoDB, DB2),
• přihlašování do Windows v doméně, SSH do unixových systémů,
• „Plaintext authentication“ služby jako FTP, HTTP, POP3,
• a další.
Výsledky testu
Na hlavní stránce mezi provedenými testy se vybráním konkrétního testu zobrazí jeho výsledky.
Detail testu
Náhled na celkové výsledky testu prezentuje ukázkový obrázek 3.2. Vypsány jsou všechny stanice (hosts), které byly nalezeny. Každá stanice je identifikována IP adresou a graficky je u ní znázorněn počet zjištěných zranitelností či informací. Modře se znázorňují zjištěné informace (typicky identifikace operačního systému, MAC adresa, otevřené porty apod.). Zeleně se označují zranitelnosti nízké závažnosti (Low Severity). Žlutá představuje střední závažnost (Medium Severity), oranžová vysokou závažnost (High Severity) a červená kritickou závažnost (Critical Severity). Dále jsou zobrazeny informace o testu a na koláčovém grafu je vyobrazen poměr zá- važností mezi zjištěnými zranitelnostmi.
Detail stanice
Po otevření konkrétní stanice získáme výpis na ní nalezených zranitelností (obr. 3.3). Každá zranitelnost v tomto výpisu obsahuje barevný štítek závažnosti, název a rodinu pluginu, pomocí kterého byla odhalena, a nakonec počet výskytů.
Detail zranitelnosti
Otevřením vybrané zranitelnosti získáme její detail, který poskytuje stručný popis zranitelnosti (v čem spočívá, popř. jak se dá zneužít), možné řešení problému, reference na další zdroj informací, uvede port a adresu stanice, kde byla zranitelnost nalezena. V závislosti na konkrétní zranitelnosti se tu nachází většinou i další informace:
• datum odhalení zranitelnosti, popřípadě poslední úpravy,
• faktor rizika, skóre zranitelnosti podle CVSS,
• odkazy na charakteristiky v databázích CVE, OSVDB, BID, CWE,
• zneužitelnost zranitelnosti, případně konkrétní nástroj.
Export výsledků
Výsledky je možné exportovat pomocí nabídky Export do formátů PDF, HTML, CSV, Nessus, Nessus DB. Formát Nessus a Nessus DB je k určen k prohlížení výsledků v Nessusu.
Mohou sloužit například pro zálohu výsledků testů nebo přenášení mezi jinými servery Nessus. K importování slouží položka Upload na hlavní stránce. Formát Nessus DB je šifrovaný, při exportu vyžaduje po uživateli zadání hesla, pomocí kterého bude při importu dešifrován.
KALI LINUX
Kali Linux je linuxová distribuce určená pro penetrační testování a forenzní analýzy [12] . K těmto účelům obsahuje přes 300 různých nástrojů. Distribuce vznikla jako open source projekt společnosti Offensive Security, navazující na předchozí projekt BackTrack Linux. Ten už v současné době není vyvíjen a podporován, poslední verze 5 R3 byla vydána 13.8.2012 [2]. Kompletním přepsáním BackTracku vznikla distribuce Kali Linux, která je založena na Debianu. Výchozím prostředím je GNOME.
Systém je k dispozici v 32 i 64bitových verzích, a také pro ARM architektury (Raspberry Pi, Samsung Chromebook, Galaxy Note 10.1, apod.). Může být instalován na disk, spouš- těn jako live DVD/USB nebo jako virtuální stroj. Financování Kali Linux umožňují komerční aktivity společnosti Offensive Security, spo- čívající v poskytování služeb penetračního testování, kurzů informační bezpečnosti a certifikace [20].
Instalace
Na adrese http://www.kali.org/downloads/ jsou dostupné oficiální verze Kali Linux. Nejnovější verzí je momentálně 1.0.9a. Ke stažení jsou na výběr obrazy jak pro 32/64bitové systémy, tak i obrazy pro systémy ARMEL či ARMHF. Velikost obrazů se pohybuje od 2 do 2,9 GB. Dokumentace udává následující minimální požadavky k instalaci:
• 512 MB RAM pro architektury i386 a amd64,
• 10 GB prostoru na disku,
• CD-DVD jednotku nebo USB.
V případě, že je systém bootován z vyměnitelného média a používán jako Live systém (bez instalace), výchozí heslo pro uživatele root je toor.
Popis prostředí
Náhled na spuštěný systém Kali Linux s výchozím prostředím je na obrázku 4.1. Zobrazeno je rozbalené menu Applications, kde je vidět, že nástroje a programy jsou rozděleny do kategorií podle využití. Systém je vybaven kromě bezpečnostních a systémových nástrojů i běžnými programy (např. přehrávačem médií, webovým prohlížečem, prohlížečem dokumentů apod.). Kali je tedy distribucí, která nemusí být využívána pouze pro bezpečnostní testy.
Jak už bylo zmíněno, celkově obsahuje Kali přes 300 různých nástrojů. Všechny společně s popisem a ukázkou použití jsou uvedeny na stránkách http://tools.kali.org v sekci Tools Listings.