Domovské stránky Daniela Hrotka

ÚVOD | O MNĚ | O BOHU | ICT | ASTRO | SRANDA | RADIO | Hi-Fi | ODKAZY | KONTAKT

Nessus


2. 4. 2006 Daniel Hrotek

Autoři jednotlivých statí: Katarína Machálková, Michal Krause a David Häring.





Na úvod



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.



Jak Nessus funguje?



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.



Co Nessus umí?



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:


Spuštění




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.



Scan



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.



Report



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.

Operační systémy
 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