Hlavní navigace

Nessus, lovec bezpečnostních děr

3. 11. 1999
Doba čtení: 3 minuty

Sdílet

Člověk je tvor omylný a navíc jeho paměťové možnosti jsou omezené, takže je docela problém nakonfigurovat server tak, aby nebyl zranitelný. A právě proto existuje Nessus.
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 Nessuse 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í).

Nessus, obr. 1
Prostředí Nessusu, volba cíle testů

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? Nebudu zde vypisovat vše, neboť by to bylo na samostatný článek, ale základní kategorie jsou:

  • získání shellu
  • zranitelnost CGI
  • backdoors (např. notoricky známý BackOrifice)
  • vzdálený přístup k souborům
  • Denial of Service útoky (DoS)
  • nadbytečné síťové služby
  • NIS
  • finger
  • firewally
  • FTP
  • získání rootovského shellu
  • chyby v nastavení SMTP démona
  • skenování portů
  • RPC
  • ostatní

Nessus, obr. 2
Prostředí Nessusu, nastavení bezpečnostních testů

Nessus momentálně obsahuje již více než 200 modulů, což ho podle mě řadí k nejlepším programům tohoto typu. Navíc je okolo programu stále vidět nějaké dění – objevují se nové verze a další moduly, zkrátka je zřejmé, že projekt nespí, ale naopak se pěkně rozvíjí. Zároveň Nessus existuje již dost dlouho na to, aby jej bylo možné považovat za dobře odladěný a vyspělý produkt – zanedlouho bude slavit již druhé narozeniny.
Za zmínku stojí i rychlost, s jakou program testy provádí. Nezkoušel jsem mnoho konkurenčních aplikací, ale provedení kompletní sady všech testů trvalo pouze několik desítek sekund. Navíc lze samozřejmě vše ještě urychlit vypuštěním testů, které jsou pro vás určitě zbytečné (například je asi nesmysl kontrolovat un*xovou mašinu na přítomnost BackOrifice).

Nessus, obr. 3
Nessus, průběh testů

Výsledky testů jsou prezentovány v celkem sympatickém uspořádání do stromové struktury, jak můžete vidět na obrázku. 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).

root_podpora

Nessus, obr. 4
Nessus, výsledek testů

Report si můžete samozřejmě i uložit a kdykoliv se k němu vrátit.

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 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 :)

Byl pro vás článek přínosný?

Autor článku