Projekt bezpečnostního auditu lokálních sítí

Technická zpráva CESNETu číslo 1/2002
k dispozici též ve formátech PDF, PostScript a XML.

Pavel Vachek, Miroslav Indra, Martin Pustka
31. leden 2002

1   Abstrakt

Zpráva obsahuje informace o možnostech a návod k instalaci systému pro bezpečnostní audit strojů v místní síti. Hlavní složkou systému je program NESSUS s licencí GNU provozovaný na PC pod operačním systémem Linux; pomocné programy vyvinuli řešitelé tohoto projektu.

2   Úvod

CESNET2 zahrnuje řadu samostatných lokálních sítí obsahujících počítače s nejrůznějšími operačními systémy. Zajištění bezpečnosti podobných heterogenních sítí klade velké nároky na pracovní kapacitu jejich správců a je známo, že právě velké universitní sítě často obsahují nedostatečně zabezpečené stroje. Rozhodli jsme se proto zpřístupnit správcům těchto sítí technologii bezpečnostního auditu, systému pro detekci neoprávněného přístupu do sítě a další užitečné programy. V prvním roce jsme se věnovali zejména auditu a jím se zabývá tato zpráva.

2.1   Volba hardwaru a operačního systému

Pro instalaci auditačního systému jsme vybrali počítač DELL Optiplex GX150SF v konfiguraci: Celeron 800 MHz, 256 MB RAM, 20 GB HD, s integrovaným rozhraním 100 Mb/s Ethernet a SVGA, bez monitoru, bez CD-ROMu a bez floppy disku. Jako operační systém slouží Linux, kernel 2.4.x (vyzkoušeli jsme distribuce Debian, RedHat a SUSE). Jedná se tedy o konfiguraci malého síťového serveru, nikoli pracovní stanice. Předpokládáme, že stroj bude sloužit jen pro zajištění bezpečnostního auditu sítě (případně dalších funkcí, které s ním nekolidují) a nebudou na něm zřízena žádná konta běžných uživatelů. Prozatím také nepředpokládáme, že by se k tomuto serveru připojovali externí klienti NESSUSu; NESSUS tedy nainstalujeme bez šifrovaného přenosu dat mezi klientem a serverem (viz odst. 3.2). Tím se vyhneme některým problémům, které v současné versi NESSUSu (zejména 1.0.9, možná i 1.0.10) zatím přetrvávají.

2.2   Konfigurace systému

Pokud má počítač sloužit převážně k auditu bezpečnosti strojů v místní síti, doporučujeme provozovat NESSUS v dávkovém režimu. Operační systém nainstalujeme bez grafického rozhraní a s minimálním množstvím síťových klientů; doporučujeme spustit pouze servery SSH (OpenSSH 3.0.2p1) a SMTP (pouze pro odesílání elektronické pošty). Pak není třeba na serveru instalovat firewall. Jako jediné omezení pro SSHD v našem případě slouží TCP wrapper.

Poznámka 1: Zdá se, že program NESSUS byl vyvíjen zejména v grafickém režimu a na ovládání a funkčnost programu v řádkovém režimu byl kladen menší důraz. Program se podstatně snáze uvádí do chodu v grafickém režimu. Doporučujeme přinejmenším základní obsluhu programu vyzkoušet v grafickém režimu (třeba i na jiném stroji, než je server určený pro dávkový režim auditu).

Poznámka 2: Na stroji určeném pro auditační server samozřejmě lze nainstalovat i grafické rozhraní (např. KDE). Pak je ale nezbytné nainstalovat i firewall (IPTABLES) v poněkud nečekané konfiguraci: je třeba povolit odesílání paketů, jejichž zdrojová adresa = adresa testovaných počítačů; přístup zvnějšku zakázat jen na ty porty, které musíme chránit; nezakazujeme implicitně přístup na všechny porty, na kterých žádné služby neprovozujeme.

2.3   Možnosti testování sítě

Každá místní sít a každý její administrátor může mít odlišné požadavky a preference, jak provozovat bezpečnostní audit. Nabízíme tyto tři základní možnosti:

spouštění samotného programu NESSUS v grafickém režimu
Je to metoda nejjednodušší a hodí se zejména pro první seznámení s možnostmi NESSUSu a pro testování jednoho nebo menšího počtu strojů v interaktivním režimu.
spouštění z příkazové řádky pomocí PTS
Vyžaduje konfigurační soubor, který definuje seznam testovaných strojů. U každého je uveden název dalšího konfiguračního souboru pro program NESSUS (seznam bezpečnostních testů) a adresy elektronické pošty všech správců, kterým se mají výsledky testu odeslat. Výhody:
  • jednoduchá obsluha
  • pro každý testovaný stroj lze připravit optimální seznam testů
Nevýhody:
  • každý stroj se testuje samostatně (pomalé)
  • výsledky se odesílají v otevřeném textu (bezpečnostní risiko)
spouštění z příkazové řádky - programy FE, NESSUS, BE, DEC
Tato metoda je dlouhodobě nejvýhodnější. Postup lze v nejjednodušším případě popsat takto:
  1. Spustíme program FrontEnd (FE). Zeptá se nás na rozsahy IP adres, které se mají pravidelně testovat, i na to, zda se některé stroje z těchto rozsahů mají ignorovat. Vznikne tím konfigurační soubor, který se použije při dalších bězích programu FE v tomto adresáři. Vytvoří se seznam IP adres těch strojů, které má program NESSUS otestovat. Vzniknou i další soubory. Pokud nás nezajímají případné změny počtu strojů v testované síti nebo změny reversní domény, nemusíme program FE spouštět před každým během NESSUSu.
  2. Spustíme server NESSUSD, pokud ještě neběžel, a zejména program NESSUS (z příkazové řádky). Bezpečnostní audit strojů proběhne paralelně, typicky se současně testuje několik (případně několik desítek) strojů podle naší volby. Až skončí běh programu, vznikne jediný výstupní soubor s výsledky testů všech strojů, které na testy odpověděly.
  3. Obvykle potřebujeme výsledky testů distribuovat mezi několik různých osob: některé stroje si spravují jejich majitelé sami, o jiné se stará někdo jiný (např. personál výpočetního střediska). Ruční dělení výstupního souboru a distribuce výsledků je práce nepříjemná a časově náročná. Tuto práci převezme program BackEnd (BE), který podle konfiguračního souboru rozdělí výsledky na potřebné části, zašifruje je klíčem každého správce a rozešle na příslušné adresy.
  4. Správce, který dostal zašifrovanou zprávu, ji dekóduje pomocí programu Decode (DEC).
Výhody:
  • odpadá mnoho ruční práce
  • bezpečný přenos výsledků auditu
  • správci dostávají výsledky automaticky
  • díky paralelnímu zpracování probíhají testy relativně rychle
Nevýhody:
  • všechny stroje v téže dávce se testují stejnými testy (mají společný konfigurační soubor)
  • je třeba připravit konfigurační soubor pro FE i BE.

3   Instalace programu NESSUS a pomocných programů

3.1   Instalace programu NMAP

Na adrese http://www.insecure.org/nmap/nmap_download.html najdeme odkaz na nejnovější doporučenou versi programu NMAP (v současnosti to je 2.54BETA30). Soubor source tarball překopírujeme do vhodného adresáře a instalujeme pomocí těchto příkazů:

gzip -cd nmap-VERSE.tgz | tar xvf -
cd nmap-VERSE
./configure
make
su root
make install

Funkci programu NMAP vyzkoušíme na některém počítači, který sami spravujeme:

nmap -sS -sU -v -p1-65535 -O testovany.pocitac.cz

3.2   Instalace programu NESSUS

Na adrese http://www.nessus.org/ (nebo http://www.nessus.de) zvolíme odkaz DOWNLOAD a pak POSIX download page: STABLE V seznamu FTP serverů si vybereme některý blízký - např. GERMANY: ftp://ftp.gwdg.de/pub/linux/misc/nessus/nessus-1.0.10/ a z adresáře NESSUS-INSTALLER překopírujeme soubor nessus-installer.sh. Tento soubor překopírujeme např. do souboru nessus-nociph.sh.

Postup pro instalaci verse 1.0.9

V novém souboru najdeme řádku

Compilation of the libraries
a následující řádku (v našem případě to byla řádka č. 70694)
./configure -prefix=$prefix -cache-file=../config.cache 2>&1 >> "$MYSTUFF"/log &&

opravíme na:

./configure -disable-cipher -prefix=$prefix -cache-file=../config.cache 2>&1 >> "MYSTUFF"/log &&
Postup pro instalaci verse 1.0.10

V novém souboru najdeme řádky

Compiling the libraries
Configuring the sources for your system

a následující řádku (v našem případě to byla řádka č. 70694)

./configure -prefix=$prefix $egdflag -cache-file=../config.cache 2>&1 >> "$MYSTUFF"/log &&
opravíme na:
./configure -disable-cipher -prefix=$prefix $egdflag -cache-file=../config.cache 2>&1 && "$MYSTUFF"/log &&

Pak spustíme instalaci příkazem sh nessus-nociph.sh

Pokud jsme zvolili systém bez grafického rozhraní, při překladu se objeví chybové hlášení o tom, že nebyl nalezen soubor gtk-config. To je v pořádku. Zvolíme implicitní instalaci do adresáře /usr/local. Povolíme experimentální vlastnosti NESSUSu (implicitně se zakazují).

Jakmile se program NESSUS přeložil, příkazem nessus-adduser vytvoříme konto pro uživatele "root" (metoda autentifikace = plaintext, heslo je třeba také zadat - zde např. "a").

Jako "rules" (omezení) lze uvést prázdný seznam ukončený pomocí CTRL-D.

Protože možná existují nové bezpečnostní testy (plugins), vydáme příkaz nessus-update-plugins před každým během programu NESSUS (nebo jednou za den nebo 2 dny).

V konfiguračním souboru programu NESSUSD /usr/local/etc/nessus/nessusd.conf nastavíme tyto údaje:

max_threads = 16 (nebo 32)
Tím určíme množství paralelně spouštěných procesů. Vyšší hodnota zrychlí zpracování, ale může způsobit saturaci sítě.
port_range = 1-65535
Úplný rozsah TCP a UDP portů pro testování programem NMAP. Pokud by běh programu NMAP trval neúnosně dlouho (zvláště, pokud zvolíme i UDP scan), můžeme spustit NMAP s parametrem -F (fast scan). Pak se hodnota zadaná jako port_range ignoruje.
checks_read_timeout = 5
Hodnota, kterou doporučuje autor programu NESSUS.

Pak už můžeme spustit server NESSUSu příkazem

nessusd -D
a klienta NESSUSu v řádkovém režimu příkazem
nessus -q -T text localhost 1241 root a targets results &
Význam parametrů:

Při prvním spuštění se program zeptá i na PASSPHRASE. Pro jednoduchost lze zadat prázdný řetězec. Na příkazové řádce lze zadat i název konfiguračního souboru, který mj. uvádí seznam všech testů, které se mají provádět. Implicitně se používá soubor  /.nessusrc, který se při prvním spuštění programu NESSUS v grafickém režimu vytvoří automaticky. V tomto souboru jsou ale uvedeny všechny dostupné testy v odstavci PLUGIN_SET s tím, že u každého je uvedeno, zda se implicitně provádí, nebo ne:

OpenSSH < 3.0.1 = yes
MDaemon DoS = no

Konfigurační soubor slouží k volbě testů, které se mají provést, k volbě scanu TCP, UDP a RPC portů programem NESSUS nebo NMAP a k volbě dalších možností (např. zda musí testovaný stroj nejprve odpovědět na ICMP nebo TCP PING). Nejdůležitější volby jsou:

V odstavci SCANNER_SET jsou uvedeny parametry pro PING a scanování TCP portů přímo programem NESSUS. Lze uvést např.:

begin(SCANNER_SET)
 TCP Ping the remote host = no
 Ping the remote host = yes
 Nmap = yes
 TCP SYN scan = no
 scan for LaBrea tarpitted hosts = yes
 Nmap tcp connect() scan = no
 FTP bounce scan = no
end(SCANNER_SET)

Pak NESSUS otestuje, zda testovaný stroj odpovídá na ICMP PING. Pokud ne, další testy se neprovedou. Pokud odpoví, spustí se program NMAP podle parametrů uvedených v odstavci PLUGINS_PREFS: Lze tam uvést např. následující:

 Ping the remote host[checkbox]:Do a TCP ping = no
 Ping the remote host[checkbox]:Do an ICMP ping = yes
 Ping the remote host[entry]:Number of retries (ICMP) : = 3
 Nmap[radio]:TCP scanning technique : = SYN scan
 Nmap[checkbox]:UDP port scan = yes
 Nmap[checkbox]:RPC port scan = no
 Nmap[checkbox]:Ping the remote host = yes
 Nmap[checkbox]:Identify the remote OS = yes
 Nmap[checkbox]:Fragment IP packets (bypasses firewalls) = no
 Nmap[checkbox]:Get Identd info = no
 Nmap[checkbox]:Perform a fast scan = no
 Nmap[checkbox]:Do not randomize the order in which ports are scanned = yes
 Nmap[entry]:Source port : = any

Scanování UDP portů je velmi užitečné, ale obzvláště u správně nakonfigurovaných počítačů trvá velmi dlouho (i déle než 1 den). Nejprve si na representativních počítačích ve vlastní správě vyzkoušejte, jak dlouho můžete a chcete na výsledky čekat. Scan RPC portů má význam jen ve speciálních případech.

Poznámka: Při prvním spuštění řádkového klienta NESSUS se vytvoří pouze minimální verse konfiguračního souboru, která neobsahuje seznam prováděných testů. Přesto ale spustí kompletní sadu "bezpečných" testů, tedy všechny kromě DENIAL OF SERVICE. Pokud si přejeme testy DENIAL OF SERVICE spustit, můžeme to provést:

U testů, které si přejeme spustit, změníme text "... = no" na "... = yes". Konfigurační soubor upravíme pokud možno tak, aby přesně vyhovoval potřebám testovaných strojů ve společné dávce.

3.3   PTS

PTS je utilita, která usnadňuje rutinní práci administrátorů počítačových síti a operačních systémů s programem NESSUS. Vychází z myšlenky, že zejména serverové systémy jsou pravidelně testovány na bezpečnostní chyby a manuální obsluha je náročná na čas. Proto PTS umožňuje definovat systémy a kontaktní osoby, kterým budou zasílány zprávy o výsledcích testování.

Použití:

        pts [-c konfigurační_soubor] [testované systémy v servers.cfg]
PTS umožnuje v konfiguračním souboru definovat následující položky:

Konfigurační soubor je textový, každý stroj je uveden na jedné řádce, jednotlivé výše uvedené položky jsou povinné a oddělené tabulátorem nebo mezerami. Řádka, která je prázdná, popř. začíná znakem "#", se ignoruje. V praxi je vhodné používat některé základní konfigurační soubory programu NESSUS - např. pro Unixové systémy unix.cfg, pro Windows windows.cfg.

V praxi se ukázalo vhodné definovat ke každému systému vlastní konfigurační soubor se seznamem testů, které mají být prováděny. Důvodem byla eliminace planých chybových hlášení. Poměrně často se stávalo, že na Unixových systémech byly hlášeny chyby systémů s OS Windows.

K dispozici máme několik voleb. První z nich je volba konfiguračního souboru (parametr [-c konfigurační_soubor]). Dalšími parametry jsou systémy z konfiguračního souboru, které se mají opravdu testovat. Ostatní pak budou ignorovány. Testy jednotlivých systémů mohou být volány např. z crontabu ve vybraný čas, přičemž jako parametr uvedeme DNS jméno nebo IP adresu systému (záleží na tom, jak je zapsán v konfiguračním souboru), který chceme otestovat.

Instalace utilitky je poměrně jednoduchá. Utilita PTS je napsána v Unixovém shellu bash, tedy stačí nakopírovat do vybraného adresáře program PTS, upravit několik proměnných na začátku skriptu (cesty k programům mail, nessus, konfigurace pro přístup k Nesussu apod.). Pak je třeba jen nakonfigurovat soubor servers.cfg, který může vypadat např. takto:

#
# Konfigurační soubor - příklad
#
system.domena.cz        veselin.polichronov@domena.cz   unix.cfg
windows.domena.cz       stojan.jakotyc@domena.cz        windows.cfg

3.4   Instalace modulů v jazyce PERL

Pomocné programy FE, BE, DEC využívají několika externích modulů napsaných v jazyce PERL. Získáme je na adresách

http://search.cpan.org/search?dist=Mail-Sender
http://search.cpan.org/search?dist=Crypt-Rijndael
http://search.cpan.org/search?dist=MIME-Base64

Jejich instalace je jednoduchá:

gunzip jméno_modulu.tar.gz
tar xvf jméno_modulu.tar
cd jméno_modulu
perl Makefile.PL
make
make test
make install

Instalace modulů nevyžaduje žádné změny jejich konfiguračních souborů.

3.5   Program FE = Front End

Tento program není ke spouštění NESSUSu nezbytně nutný, ale podstatně usnadní práci zejména při opakovaném testování stejné sítě. Umožní i dlouhodobé sledování chování jednotlivých strojů v síti.

Program v zadaném rozsahu (nebo ve všech zadaných rozsazích) IP adres otestuje pomocí ICMP PINGu všechny dostupné stroje a podle jejich odezvy je rozdělí do 5 kategorií:

Podle těchto výsledků program FE vytvoří seznam strojů, které má NESSUS otestovat. Zařadí do něho jen stroje prvních dvou kategorií (O a L); pokud na příkazové řádce zvolíme parametr -b (batch), zahrne do něj i ty stroje, které neodpověděly vůbec - vysvětlení viz níže.

Správce sítě by měl uvážit, zda je v pořádku, když testovaný stroj odpovídá jinou IP adresou, než je adresa jeho rozhraní. V pořádku také není, pokud na paket odeslaný na broadcastovou adresu odpoví příliš mnoho stanic: bylo by logické, aby na broadcast odpovídaly pouze skutečné sítové servery; individuální pracovní stanice, které v síti neposkytují žádné sítové služby, by měly broadcast úplně ignorovat. Síření broadcastů je třeba zakázat na routerech i na individuálních strojích.

Program FE dále zjištuje doménové adresy všech testovaných strojů: je-li to možné (a nutné), překopíruje z autoritativního DNS kompletní obsah reversních zón. Pokud není zónový transfer povolen, ptá se tohoto DNS na každý stroj samostatným dotazem.

Výsledky běhu programu FE se ukládají do žurnálového souboru. Při prvním běhu programu se výsledky uloží i jako referenční verse; výsledky každého dalšího běhu se pak porovnávají s referenční versí. Tím lze jednoduše zjistit stabilitu sítě a jednotlivých počítačů, resp. zda někdo instaloval nový nebo zrušil starý systém. K prohlížení historie sítě z tohoto hlediska slouží pomocný program HISTORIE (v současnosti hist3).

Program FE využívá dvou externích programů ping a host, které nabízí komunita RIPE k volnému použití. Tyto programy lze získat na následujících adresách: ftp://ftp.ripe.net/tools/ping.tar.Z a ftp://ftp.ripe.net/tools/dns/host.tar.Z

Instalujeme je standardním způsobem:

        mkdir program
        mv program.tar.Z program
        cd program
        uncompress program.tar.Z
        tar xvf program.tar
        make
        make install

Soubor Makefile programu `host' nebylo nutné opravovat. Soubor Makefile programu ping pro SUSE Linux 7.3 je vystaven na FTP serveru projektu (viz odst. 5).

Program FE (v současnosti fe55) se spouští z příkazové řádky příkazem

        fe [-b] [-D] [-v] d=relativní_adresář

Význam parametrů:

Konfigurační soubor může existovat v různých variantách; každá z nich má vlastní adresář. Nejrozumnější je pro každou novou konfiguraci testované sítě použít jiný relativní adresář; pak je obsluha programu FE nejjednodušší.

Pokud konfigurační soubor programu FE ve zvoleném adresáři neexistuje, program ho vytvoří interaktivně na základě operátorových údajů. Pokud už existuje, program pouze zkontroluje jeho obsah a okamžitě otestuje zvolený rozsah IP adres. Pokud nalezl nějaké změny v chování jednotlivých strojů ve srovnání s referenčním stavem, ohlásí je a zeptá se, zda se mají nejnovější výsledky používat jako referenční data, nebo zda stále platí původní referenční data.

V dávkovém režimu (parametr -b), který se lépe hodí pro dávkový běh programu FE a NESSUS a méně k přesnému zjištování stavu jednotlivých strojů, se zavádí tyto změny:

Program FE vytváří několik výstupních souborů:

fe.host
Seznam IP adres všech strojů, které má NESSUS otestovat (odpověděly na PING kódem O, L, případně T). Je vhodné ho uvést na příkazové řádce při spouštění NESSUSu.
fe.pts
Detailní seznam všech strojů otestovaných PINGem, který navíc obsahuje i doménovou adresu každého stroje, pokud se podařilo ji zjistit. Dá se s výhodou použít jako základ konfiguračního souboru pro programy BE a PTS.

Na začátku každé jeho řádky je uvedeno 0-2 komentářových znaků "#" podle tohoto schematu:

  • bez komentáře - testovaný stroj odpověděl kódem O=OK nebo L=Loss, resp. vůbec neodpověděl (kód T=Timeout při volbě -b);
  • # - stroj vůbec neodpověděl (kód T=Timeout) a nebyla zvolena volba -b na příkazové řádce;
  • ## - stroj odpověděl kódem B=Broadcast nebo W=Wrong.

fe.jrnlYYMMDD_hhmm je žurnálový soubor s výsledky testu ve tvaru IP_ADRESA#kód#doménová_adresa_stroje. Využívá ho program HIST. etc/fe.conf je konfigurační soubor, který udává rozsahy testovaných rozsahů IP adres (program FE ho vytvoří podle přání uživatele). etc/fe.jrnl.ref je soubor se stavem, který je považován za referenční. Má stejný formát jako soubory fe.jrnlYYMMDD_hhmm.

3.6   Program BE = Back End

Tento program také není k bezpečnostním auditům nezbytně nutný. Jeho význam oceníme, pokud potřebujeme výsledky běhu programu NESSUS distribuovat snadno a bezpečně mezi větší počet správců jednotlivých strojů: program sám rozdělí výsledky na příslušné části, zašifruje je a podle potřeby je bud uloží na disk, nebo přímo rozešle jejich správcům.

Program BE (v současnosti be24) se spouští z příkazové řádky příkazem

        be [-m] [-v] resultfile configfile

Význam parametrů:

Konfigurační soubor udává, komu se mají odeslat výsledky auditu jednotlivých strojů. Umožnuje definovat jak správce jednotlivých strojů, tak i implicitní správce, kteří dostanou výsledky auditu všech strojů, které nemají definované vlastní správce.

Ukázka formátu konfiguračního souboru:

# Konfigurační soubor pro Back End 24.1.2002
AUDITADMIN=spravce1@example.dom # implicitní správce všech strojů, které nemají
# vlastního správce (adresy 10.0.0.131, 137, 138).
# Platí až do dalšího příkazu `AUDITADMIN='.
10.0.0.129 user1@example.dom
10.0.0.130 user2@example.dom
10.0.0.131
10.0.0.132 user3@example.dom
10.0.0.133 user4@example.dom
10.0.0.137
10.0.0.138                      # komentář
10.0.0.139 user2@example.dom    # komentář
AUDITADMIN=spravce2@example.dom
10.0.0.140
10.0.0.141
... atd.

K bezpečnému rozesílání výsledků program využívá šifry Advanced Encryption Standard (Rijndael) s délkou klíče 256 bitů. Sifrovací klíče jsou uloženy v souboru /root/be/ck/keys, který má jednoduchý formát:

# Sifrovací klíče pro správce auditovaných strojů
# Formát: user@host     key (64 náhodných hexadecimálních znaků)
#
user1example.dom        0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
user2@example.dom       357681924fbdcae... atd.
... atd.

Pokud zadáme na příkazové řádce programu BE parametr -m, výsledky se automaticky rozešlou elektronickou poštou. Pokud parametr -m nezadáme, výsledky se uloží na disk do jednotlivých souborů, jejichž názvy obsahují adresy příslušných správců; to je vhodné např. pro testování běhu programu.

3.7   Dekódovací program DEC

Tento program slouží k dešifrování výsledků auditu. Je napsán v jazyce PERL a využívá modulu Crypt::Rijndael stejně jako program BE. Před prvním spuštěním programu DEC byste tedy měli na tom počítači, kde elektronickou poštu čtete, tento modul nainstalovat postupem popsaným v předešlé kapitole. (Na stroji OFFICE.CESNET.CZ už je tento modul nainstalován.)

Pokud máte jistotu, že Vaše konto je dostatečně bezpečné, můžete svůj šifrovací klíč trvale vložit do zdrojového souboru programu DEC (v současnosti dec4) úpravou této řádky:

$key = pack("H*", "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef");

Program spustíte nejsnáze příkazem ./dec4. Program pak přečte vstupní soubor secret (tj. implicitní název přílohy se zašifrovanými výsledky auditu, kterou jste uložili na disk) a vytvoří čitelný soubor decrypted. Název vstupního i výstupního souboru lze ovšem zadat podle potřeby: ./dec4 infile outfile

Pokud čtete elektronickou poštu programem PINE, můžete využít příkazu PIPE a výsledky auditu číst ještě jednodušeji příkazem

| ./dec4 - -

4   Ukázky obsluhy a činnosti programů

4.1   První spuštění programu FE

root@pcxxx: /fe$ pwd
/root/fe
root@pcxxx: /fe$ ./fe55 -b d=20
FE v.55: Wed Jan 30 10:32:40 2002
Batch mode
Adresar /root/fe/20/ neexistuje. Urcite ho mam vytvorit [A/N]?? a
Vytvarim adresar /root/fe/20/... a take /root/fe/20/etc/...
Pocatecni IP adresa chranene site c. 1 [a.b.c.d]? 10.0.1.128
Koncova IP adresa chranene site c. 1 [a.b.c.d nebo N]? 10.0.1.255
Chraneny rozsah [10.0.1.128 - 10.0.1.255] = 128 adres
Mam nektere adresy z tohoto rozsahu c. 1 ignorovat [A/N]? n
Dalsi chraneny rozsah adres [A/N]? a
Pocatecni IP adresa chranene site c. 2 [a.b.c.d]? 10.0.2.128
Koncova IP adresa chranene site c. 2 [a.b.c.d nebo N]? 10.0.2.255
Chraneny rozsah [10.0.2.128 - 10.0.2.255] = 128 adres
Mam nektere adresy z tohoto rozsahu c. 2 ignorovat [A/N]? a
Pocatecni adresa ignorovaneho rozsahu c. 2 [a.b.c.d]? 10.0.2.180
Koncova IP adresa ignorovaneho rozsahu c. 2 [a.b.c.d nebo N]? 10.0.2.185
Ignorovany rozsah [10.0.2.180 - 10.0.2.185] = 6 adres
Mam v tomto rozsahu c. 2 ignorovat jeste dalsi adresy [A/N]? n
Dalsi chraneny rozsah adres [A/N]? n
Kontrola obsahu konfiguracniho souboru /root/fe/20/etc/fe.conf...
Dosavadni /root/fe/20/etc/fe.conf ukladam jako /root/fe/20/etc/fe.conf020130_1032.
Vypis chranenych adres a prenos reversnich zon:
10.0.1.128 - 10.0.1.255
Novejsi zonovy soubor: 1.0.10.in-addr.arpa#2002012800
10.0.2.128 - 10.0.2.179
Soubor 2.0.10.in-addr.arpa#2001060600 stale plati.
10.0.2.186 - 10.0.2.255
ZXFR domeny 2.0.10.in-addr.arpa uz neni treba.
Precteno 267 * PTR a 7 * NS radek.
Novejsi zonovy soubor: 0=25.1.0.10.in-addr.arpa#2002012803
Precteno 5 PTR zaznamu v domenach nizsi urovne.
0 spojenych zaznamu, celkem 272 zaznamu.
Seznam stroju k otestovani NESSUSem -> /root/fe/20/fe.host
Seznam a stav vsech otestovanych stroju -> /root/fe/20/fe.pts
Uplne vysledky testu PING -> /root/fe/20/fe.jrnl020130_1032...
Nezvykle odezvy stroju v chranenych sitich:
WRONG 10.0.1.128: odpovedi z 10.0.1.129
WRONG 10.0.1.255: odpovedi z 10.0.1.129
BCAST 10.0.2.128: odpovedi z 10.0.1.129 10.0.2.136 10.0.2.139 10.0.2.142 10.0.2.165 10.0.2.180 10.0.2.181 10.0.2.182 10.0.2.184 10.0.2.185
BCAST 10.0.2.191: odpovedi z 10.0.1.129 10.0.2.136 10.0.2.139 10.0.2.142 10.0.2.180 10.0.2.181 10.0.2.182 10.0.2.184
WRONG 10.0.2.224: odpovedi z 10.0.3.98
LOSS 10.0.2.225: 50% paketu ztraceno
WRONG 10.0.2.231: odpovedi z 10.0.3.98
Na PING spravne odpovedelo 83 stroju.
Referencni soubor /root/fe/20/etc/fe.jrnl.ref neexistuje - vytvarim ho...
Trvalo to 31 minut, 57 sekund.
Konec programu.
root@pcxxx: /fe$

4.2   Opakované spuštění programu FE ve stejném adresáři

root@pcxxx: /fe$ ./fe55 -b d=20
FE v.55: Wed Jan 30 11:18:05 2002
Batch mode
Kontrola existence konfiguracniho souboru /root/fe/20/etc/fe.conf...
Kontrola obsahu konfiguracniho souboru /root/fe/20/etc/fe.conf...
Dosavadni /root/fe/20/etc/fe.conf ukladam jako /root/fe/20/etc/fe.conf020130_1118.
Vypis chranenych adres a prenos reversnich zon:
10.0.1.128 - 10.0.1.255
Soubor 1.0.10.in-addr.arpa#2002012800 stale plati.
10.0.2.128 - 10.0.2.179
Soubor 2.0.10.in-addr.arpa#2001060600 stale plati.
10.0.2.186 - 10.0.2.255
ZXFR domeny 2.0.10.in-addr.arpa uz neni treba.
Precteno 267 * PTR a 7 * NS radek.
Soubor 0=25.1.0.10.in-addr.arpa#2002012803 stale plati.
Precteno 5 PTR zaznamu v domenach nizsi urovne.
0 spojenych zaznamu, celkem 272 zaznamu.
Seznam stroju k otestovani NESSUSem -> /root/fe/20/fe.host
Seznam a stav vsech otestovanych stroju -> /root/fe/20/fe.pts
Uplne vysledky testu PING -> /root/fe/20/fe.jrnl020130_1118...
Nezvykle odezvy stroju v chranenych sitich:
WRONG 10.0.1.128: odpovedi z 10.0.1.129
WRONG 10.0.1.255: odpovedi z 10.0.1.129
BCAST 10.0.2.128: odpovedi z 10.0.1.129 10.0.2.136 10.0.2.139 10.0.2.142 10.0.2.165 10.0.2.180 10.0.2.181 10.0.2.182 10.0.2.184 10.0.2.185
BCAST 10.0.2.191: odpovedi z 10.0.1.129 10.0.2.136 10.0.2.139 10.0.2.142 10.0.2.180 10.0.2.181 10.0.2.182 10.0.2.184
WRONG 10.0.2.224: odpovedi z 10.0.3.98
WRONG 10.0.2.231: odpovedi z 10.0.3.98
Na PING spravne odpovedelo 83 stroju.
Stav testovane site se zmenil. Vysvetlivky:
B=Broadcast  W=Wrong host replied  L=packet Loss  O=OK  T=Timeout
10.0.2.225 (c1600-gw.example.dom): L -> O
Trvalo to 25 minut, 1 sekund.
Konec programu.
root@pcxxx: /fe$

4.3   Zkoumání historie strojů v testované síti

root@pcxxx: /fe$ ./hist3
HIST v.3: Wed Jan 30 12:16:36 2002
Testovany adresar? 5
Referencni soubor 5/etc/fe.jrnl.ref ma 694 uzitecnych radek.
Nalezeno 19 souboru s vysledky behu programu FE:
fe.jrnl020109_1707: 694 uzitecnych radek = OK
fe.jrnl011030_0800: 694 uzitecnych radek = OK
fe.jrnl011029_1720: 694 uzitecnych radek = OK
fe.jrnl011029_1203: 694 uzitecnych radek = OK
fe.jrnl011029_0845: 694 uzitecnych radek = OK
fe.jrnl011027_1909: 694 uzitecnych radek = OK
fe.jrnl011027_1556: 694 uzitecnych radek = OK
fe.jrnl011026_1719: 694 uzitecnych radek = OK
fe.jrnl011026_1550: 694 uzitecnych radek = OK
fe.jrnl011026_1154: 694 uzitecnych radek = OK
fe.jrnl011025_1746: 694 uzitecnych radek = OK
fe.jrnl011025_1332: 694 uzitecnych radek = OK
fe.jrnl011025_1015: 694 uzitecnych radek = OK
fe.jrnl011024_1837: 694 uzitecnych radek = OK
fe.jrnl011024_1347: 694 uzitecnych radek = OK
fe.jrnl011023_1747: 694 uzitecnych radek = OK
fe.jrnl011023_1157: 694 uzitecnych radek = OK
fe.jrnl011023_0849: 694 uzitecnych radek = OK
fe.jrnl011022_1831: 694 uzitecnych radek = OK
Vysledky (srovnane od nejnovejsich k nejstarsim):
B=Broadcast  W=Wrong host replied  L=packet Loss  O=OK  T=Timeout
10.0.1.128  WWWWWWWWWWWWWWWWWWW #
10.0.1.129  OOOOOOOOOOOOOOOOOOO # pc129.example.dom
10.0.1.130  OOOOOOOOOOOOOOOOOOO # pc130.example.dom
10.0.1.131  TTTTTTTTTTTTTTTTTTT # pc131.example.dom
10.0.1.132  TOOOOOOOOOOOOOOOOOO # pc132.example.dom
(...)
10.0.2.144  TOTOOTTTTOTOOTOOOOT # pc144.example.dom
10.0.2.145  OTTTTTTTTTTOOOOTOTT # pc145.example.dom
10.0.2.146  TOOOOOOOOOOOOOOOOOO # pc146.example.dom
10.0.2.147  TTTTTTTTTTTTTTTTOOT # pc147.example.dom
10.0.2.148  OOTOOTTTTTTTOTOTOOT # pc148.example.dom
10.0.2.149  TTTTTTTTTTTTTTTTTTT # pc149.example.dom
10.0.2.150  OOOOOTOOOOOOOOOOOOO # pc150.example.dom
10.0.2.151  TTTTTTTTTTTTTTTTTTT # pc151.example.dom
10.0.2.152  OOOOOTTTOOTOOTOOOOT # pc152.example.dom
10.0.2.153  TOOOOOOOOOOOOOOOOOO # pc153.example.dom
10.0.2.154  TTTOOTTTTOTTTTTTTTT # pc154.example.dom
10.0.2.155  TOTOOTTTTOTOOTTTOOT # pc155.example.dom
10.0.2.156  TOTOOTTTTTTTTTTTOOT # pc156.example.dom
10.0.2.157  TOTTTTTTTTTTOTTTTOT # pc157.example.dom
10.0.2.158  TTOOOTTTTOTOTTTTTTT # pc158.example.dom
10.0.2.159  TTTTTTTTTTTTTTTTTTT # pc159.example.dom
10.0.2.160  TTTTTTTTTTTTTTTTTTT # pc160.example.dom
10.0.2.161  TOOOOOOOOOOOOOOOOOO # pc161.example.dom
10.0.2.162  OTTTTTTTTTTOOOOOOOO # pc162.example.dom
10.0.2.163  TTTTTTTTTTTTTTTTTTT # pc163.example.dom
10.0.2.164  TOTOOTTTTTTOOTOTOOT # pc164.example.dom
(...)
10.0.3.255  TTTTTTTTTTTTTTTTTTT #
Trvalo to 0 minut, 4 sekund.
root@pcxxx: /fe$

4.4   Zpracování výsledků auditu programem BE (ukládání na disk)

root@pcxxx: /Dejvice$  /be/be24 out.DOS-2 be.conf.0125xx
BE v.24: Wed Jan 30 09:10:55 2002

Vysledky -> soubor `CRY.user1@example.dom'
Zbyva zpracovat 443 radek...

Vysledky -> soubor `CRY.user2@example.dom'
Zbyva zpracovat 327 radek...

Vysledky -> soubor `CRY.user3@example.dom'
Zbyva zpracovat 51 radek...

Vysledky -> soubor `CRY.user4@example.dom'
Zbyva zpracovat 0 radek...
Trvalo to 0 minut, 0 sekund.
root@pcxxx: /Dejvice$

4.5   Zpracování výsledků auditu programem BE (odeslání el. poštou)

root@pcxxx: /Dejvice$  /be/be24 -m out.DOS-2 be.conf.0125xx
BE v.24: Wed Jan 30 09:11:26 2002
Mail Mode

Zprava `AUDIT 0: 020130_0911' -> `user1@example.dom'...
Zbyva zpracovat 443 radek...

Zprava `AUDIT 1: 020130_0911' -> `user2@example.dom'...
Zbyva zpracovat 327 radek...

Zprava `AUDIT 2: 020130_0911' -> `user3@example.dom'...
Zbyva zpracovat 51 radek...

Zprava `AUDIT 3: 020130_0911' -> `user4@example.dom'...
Zbyva zpracovat 0 radek...
Trvalo to 0 minut, 1 sekund.
root@pcxxx: /Dejvice$

5   Zkušenosti s dosavadním provozem NESSUSu, FE, BE a DEC

Není vhodné současně spustit test více než asi 200 strojů. Hrozí nebezpečí, že program se z neznámých důvodů zastaví a je třeba ho manuálně ukončit. Tím se však ztratí všechny výsledky testů.

Test může trvat nepřiměřeně dlouho i proto, že jsme požadovali scan všech UDP portů. Pokud je testovaný stroj proti jejich scanu dobře zabezpečen, může scan 65536 UDP portů trvat déle než 1 den. (Scan TCP portů obvykle trvá podstatně kratší dobu.)

Pokud neprovedeme alespon jednou za čas scan všech TCP a UDP portů počítače a testy Denial of Service, nemůžeme audit považovat za dokonalý.

Dokonalé nejsou ani všechny bezpečnostní testy, které NESSUS provádí. Některé z nich se spoléhají na informace v bannerech, jiné hlásí chyby, které správci systému za chyby nepovažují. Některé testy mohou způsobit výpadek programu nebo celého systému; takové testy však je třeba explicitně povolit v konfiguračním souboru (implicitně se nespouští).

Sám autor programu NESSUS uznává, že všechny inserované vlastnosti nejsou při spuštění programu verse 1.0.x v řádkovém režimu zcela funkční. Situace by se měla zlepšit, až bude nynější verse 1.1.x stabilní.

Navzdory všem uvedeným problémům je program NESSUS velice užitečný a jeho používání všem správcům vřele doporučujeme. Práce vynaložená na NESSUS a jeho pomocné programy se bohatě vyplatí, jakmile se nám pomocí auditu podaří odstranit jedinou bezpečnostní díru, kterou by do systému mohl vniknout hacker a způsobit řadu dalších škod v naší síti.

6   Další informace

Pro správce sítí, kteří mají zájem o provozování auditačních serverů v rámci tohoto projektu, je zřízena elektronická konference AUDIT-L@cesnet.cz. Lze se do ní přihlásit odesláním příkazu

SUBSCRIBE AUDIT-L Jméno Příjmení
na adresu LISTSERV@cesnet.cz

Pomocné programy PTS, FE, BE, DEC, HIST a další užitečné soubory pro tento projekt jsou vystaveny na adrese ftp://ftp.cesnet.cz/local/audit/

další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz