2. 4. 2006 Daniel Hrotek
Autoři jednotlivých statí: Katarína Machálková, Michal Krause a David Häring.
Nessus je bezpečnostní scanner, kterým se dají vzdáleně provádět bezpečnostní audity jednotlivých počítačů i celých počítačových sítí. Zjišťuje, jaký operační systém a jaké síťové služby na daném počítači běží včetně jejich verzí. V závěrečné zprávě, která je výsledkem každého takového scanu upozorňuje na existující bezpečnostní díry (jejich databáze je denně aktualizována) a jejich závažnost, případně možnost jejich odstranění. Projekt Nessus funguje na architektuře klient-server. T.j. server provádí jednotlivé testy, klient se připojuje k serveru a umožňuje nastavení parametrů auditu.
Jednodušeji řečeno - Nessus je remote security scanner, tedy nástroj pro “oťukání“ vzdáleného počítače a nalezení potenciálních bezpečnostních děr. Je jasné, že nástroj tohoto typu mohou použít jak hodní hoši (tj. administrátoři), tak i gauneři (tedy útočníci). Přesto je existence programů tohoto typu přínosem, neboť hackeři (v tom špatném slova smyslu) podobnými aplikacemi jistě již disponují, ovšem narozdíl od projetku Nessus a jemu podobných, je však nemívají k dispozici i administrátoři. Situace se tím tak trochu vyrovnává a zůstává tak již jenom otázka, kdo chybu odhalí dřív.
Nessus se skládá ze dvou částí. Tou první je démon nessusd, který realizuje všechny bezpečnostní testy, druhou je pak X11 rozhraní, pomocí kterého se Nessus konfiguruje, spouští se scan a také slouží k prohlížení výsledků. Toto rozdělení má svoje výhody. Pokud by byl například počítač, který testy provádí, za firewallem, nebylo by možné provést některé z těchto testů (něco přes firewall zkrátka neprojde). Rozdělení programu na dvě části umožní testy spustit například z jiného internetového serveru (a tím nezatěžovat svou linku), ale zároveň se nepřipravíte o pohodlné uživatelské rozhraní (Xka na serveru obvykle nebývají).
Démon a klientská aplikace spolu samozřejmě komunikují. Klient říká, jaké testy se mají vykonat a démon mu vrací výsledky. Komunikace mezi oběma částmi může být šifrována (tato možnost se zapíná při kompilaci a její použití je samozřejmě důrazně doporučováno). Navíc je možné omezit připojení k běžícímu démonovi pomocí jména a hesla, což je opět velice vhodné. Já osobně navíc preferuji ukončení démona, pokud jej zrovna nechcete použít. Ušetříte si tak problémy, které by mohly nastat, kdyby čirou náhodou někdo dokázal zneužít váš stroj ke scanningu jiných počítačů.
Nessus je napsán modulárně a tak není problém jeho možnosti rozšiřovat o další bezpečnostní testy. Moduly mohou být napsány buď jako sdílené knihovny v jazyce C a nebo v interním skriptovacím jazyce NASL (Nessus Attack Scripting Language). Druhá uvedená metoda je autory programu preferovaná a k psaní modulů v C doporučují přistoupit pouze v případě, že NASL nebude pro daný účel postačovat. O tom, jak hodně je NASL protěžován, svědčí i prohlášení autorů, že do oficiální distribuce nebudou zařazovány pluginy napsané v C, které by bylo možné realizovat pomocí tohoto jazyku.
A co vlastně všechno Nessus dokáže testovat? Nebudeme zde vypisovat vše, neboť by to bylo na samostatný článek, ale základní kategorie jsou:
Nessus může být spuštěn trvale - bude se spouštět po každém startu operačního systému. Můžete tak učinit v /etc/rc.conf těmito řádky:
nessusd_enable=“YES“
nessusd_flags=“-D“.
Lépe by však asi bylo, kdyby se Vám Nessus nespouštěl automaticky, ale běžel jen v tu dobu, kdy jej opravdu potřebujete. Bylo by nepříjemné, aby Vám trvale spuštěný Nessus někdo “zneužil“.
Rozumnější řešení - spuštění Nessus server pro jedno sezení:
/usr/local/etc/rc.d/nessusd.sh start (stop)
Když se mrknete do tohoto skriptu, budete vidět, že se Nessus spouští tímto příkazem i s parametry -D a -q. To je vše, co jsme pro jedno sezení potřebovali :)
Ještě si překontrolujte, zda-li má Nessus nastaveno vše tak, jak si přejete - například automatický update: auto_update = yes v umístění: /usr/local/nessus/etc/nessus/nessus.conf
Nessus musíte zaregistrovat, abyste mohli stahovat nejnovější plug-iny ke scanningu. Myslím, že je tato možnost omezena pouze na 7 dnů. Pro plnou podporu musíte zaplatit cca 1200 USD. Pro zaslání registračního čísla navštivte http://www.nessus.org/register. S registračním číslem Vám bude na Váš E-mail zaslán i postup, který Vás provede úspěšnou registrací. Po zaregistrování bude Nessus automaticky po svém spuštění kontrolovat databasi plug-inů ze svého portálu. Pakliže Nessus nezaregistrujete, budou užity jen starší plug-iny, kterých je však několik tisíc.
Rozumnou věcí je také vytvoření vlastního certifikátu: /usr/local/nessus/sbin/nessus-mkcert.
Nessus také dokáže skenovat více strojů najednou, umí si stáhnout zónu z nameserveru a zkontrolovat i všechny stroje ve stejné doméně. Pracuje multithreadově, samozřejmostí je možnost nastavit maximální počet vláken. Když k tomu všemu přidáte ještě existenci klientské části pro UNIX, Windows a Javu, je myslím jasné, že Nessus je program, který rozhodně stojí za vyzkoušení. Jo, a málem bych zapomněl. Nessus je pochopitelně k dispozici zdarma pod licencí GPL.
Skenování na pozadí, nepřetržitý monitoring (detached scanning): Scan, obvzvláště pokud je skupina cílových systémů větší může trvat poměrně dlouho, takže se může hodit možnost provádět scan na pozadí. V tom případě (v GUI klientovi) v záložce “Scan options“ zatrhneme volbu Detached scan a v záložce “Target selection“ zapneme volbu “Save this session“. Při pozdějším připojení k Nessus serveru zpřístupníme výsledky ze seznamu předchozích sezení “Previous sessions“.
Pokud bychom chtěli provádět audit v pravidelných intervalech, opět k tomu použijeme výše zmíněné volby a přidáme ještě položku “Continuous scanning“, kde také máme možnost zadat interval, v jakém se bude scan spouštět. Tyto možnosti jsou detailně popsány v dokumentaci.
Monitoring změn v síti (differential scanning): Zajímavou vlastností je monitorování změn v síti, v tom případě není výsledkem kompletní zpráva, report pak obsahuje pouze změny, ke kterým došlo od předchozího scanu. Pro spuštění skenování v tomto režimu zapneme v záložce “KB“ volby “Enable KB saving“ (Nnarozdíl od Nessuse a jemu essus si bude data o jednotlivých hostitelích ukládat) a dále volby “Reuse knowledge bases“ a “Only show differences“. Tyto možnosti jsou také popsány zde.
Po skončení scanu klient nabídne prohlídku výsledného reportu, kde jsou popsány všechny zjištěné síťové služby na cílových systémech. Problémové služby jsou pak zvýrazněné. K většině služeb je pak k dispozici komentář, ze kterého je jasné, v čem je problém - v komentářích jsou obvykle uvedeny identifikátory do databáze CVE (cve.mitre.org), případně odkazy na CERT či bugtraq, podle kterých lze rychle dohledat popis chyb.
Výsledky testů jsou prezentovány v celkem sympatickém uspořádání do stromové struktury. Problémy jsou děleny podle závažnosti na upozornění a bezpečnostní “díry“. U každého problému naleznete jeho popis, rizikovost a řešení, případně i další doplňkové informace (například se dozvíte, čím může být ten či onen problém způsoben a jak si jej případně ověřit na sto procent).
Report je možné uložit pro pozdější použití ve formátu NBE, starším formátu NSR, nebo exportovat pro zpracování externími nástroji do formátů XML, HTML, ASCII, PDF a také pro zpracování v LaTeXu.
• povídání o FreeBSD
• začínáme s FreeBSD
• FreeBSD - základní kroky
• Sun Solaris - základní kroky
• Linux - základní kroky
• Windows - základní kroky
Hrátky s operačními systémy
• FreeBSD router
• FreeBSD ve firmě
• FreeBSD porty - jak na ně?
• vytváření FreeBSD balíčku
• instalace NetBSD
Počítačové sítě
• StarHill
• esej o bezdrátových sítích
• pasivní restranslace
• tvorba sítí typu ethernet
• Pure-FTPd + SSL + VA
• Samba a její nastavení
• Apache SSL - htaccess - PHP
• DHCP server
• Nessus
Lokalizace
• manuály FreeBSD
• RONJA
• Pure-FTPd
• nastavení Pure-FTPd
Software
• Visual Basic
• Acrobat Reader 5 a FreeBSD
• logovací démon - syslogd
Jednočipy
• programátor PIC
Různé
• mé konfigurační soubory