CESNET Intrusion Detection System
Technická zpráva CESNETu
číslo 5/2006
k dispozici též ve formátech PDF,
PostScript a
XML.
Pavel Vachek
15. červen 2006
Keywords: IDS, Instrusion detection system, LaBrea, CESNET CSIRT
1 Abstract
This technical report describes a simple system for detecting hacker- and virus-induced intrusions into a selected LAN. Its main component is the LaBrea program distributed under GPL licence and run on a PC server under Linux. Auxiliary programs built within the CESNET CSIRT activity allow automated distribution of warning e-mails to the administrators of selected networks where the attacks originated. Unlike other Intrusion Detection Systems, this IDS needs no human intervention after installation.
2 Úvod
CESNET provozuje od konce roku 2002 jednoduchý a užitečný systém pro detekci neoprávněného přístupu (Intrusion Detection System, dále jen IDS), který po instalaci prakticky nevyžaduje lidskou obsluhu a pravidelně informuje správce sítí o těch jejich strojích, z nichž byly zaznamenány útoky. Správci sítí jsou tedy včas informováni, mohou napadené stroje včas odvirovat nebo odpojit od sítě, a tak omezit další šíření virů a zlepšit pověst sítě.
Účelem této zprávy je informovat o systému IDS další zájemce, zejména z řad administrátorů sítí universit a AV ČR s velkými alokacemi IP adres, a přesvědčit je, aby podobný systém nainstalovali ve svých vlastních sítích.
3 Projekt IDS
IDS CESNETu má tyto hlavní součásti:
- Program LaBrea je podrobně popsán v následující kapitole.
- LaBreaBackEnd = program, který v pravidelných intervalech prohlíží data vygenerovaná programem LaBrea. Pokud v nich najde záznamy o útoku ze sítí, které nás zajímají, vyhledá kontaktní adresy správců příslušných sítí a domén, vybere z nich ty nejvhodnější a vygeneruje soubory s varovnými zprávami a údaji o útocích
- LaBreaReport = program, který rozesílá dopisy obsahující data vygenerovaná programem LaBreaBackEnd.
Pomocné funkce pro systém IDS:
- Předběžná filtrace dat generovaných programem LaBrea
- skript pro spuštění, restart a zastavení běhu IDS
- pravidelné restartování serveru IDS prostřednictvím cronu.
4 Program LaBrea
Cílem programu LaBrea [Lis03] je zpomalit a pokud možno zastavit šíření počítačových virů a hackerských aktivit. Jeho autor ho napsal jako reakci na virus Code Red, který začal řádit v červenci 2001. Jak vyplyne z následujících odstavců, Internetu prospívá i instalace samotného serveru LaBrea; po doplnění na IDS server je užitek z LaBrey ještě výrazně větší.
Hlavní rysy programu LaBrea:
- monitoruje adresy nebo bloky IP adres, na nichž dosud neexistují ani neexistovaly žádné uživatelské stroje. Lze tedy předpokládat, že na tyto adresy se chtějí připojit jen hackeři nebo počítačové viry
- předstírá, že na těchto adresách existují funkční stroje - reaguje místo nich na pokusy o připojení TCP nebo na ICMP Echo (ping), a to tak, aby komunikace trvala co nejdéle a útočníci nemohli škodit jinde.
Na pokusy o připojení umí LaBrea reagovat následujícími způsoby:
- TARPITTING: Na přijatý paket SYN odpoví pomocí SYN+ACK, na další pakety nereaguje. Spojení po určité době (řádově minuty) skončí na retransmission timeout
- CONNECTION TRAPPING: Po úspěšně navázaném spojení (SYN - SYN+ACK - ACK) LaBrea stále inseruje velmi malé okno pro příjem dat. Takto navázané spojení samo od sebe nikdy neskončí, a přitom vyžaduje jen nepatrnou šířku pásma. IDS CESNETu využívá právě tohoto režimu
- DDoS HANDLING: Útoky typu Distributed Denial of Service uvádějí ve zdrojových adresách paketů zfalšované adresy strojů. Pokud napadený stroj přijme paket SYN, jehož zdrojová adresa je z rozsahu kontrolovaného programem LaBrea, odpoví na něj paketem SYN+ACK. LaBrea tento paket přijme a zareaguje na něj paketem RST; tím se toto spojení zruší a zatížení napadeného stroje se zmírní.
5 Doporučená hardwarová konfigurace IDS
Při výběru vhodného stroje můžeme vycházet z těchto dlouhodobých zkušeností:
- IDS neklade velké nároky na výkon procesoru
- šířka pásma přijímaných dat je nastavitelná. Průměrná detekovaná šíře pásma IDS CESNETu bývá do 120 kb/s; maximální povolenou šířku pásma nastavujeme na 300 kb/s
- nejsilnější útok, který byl zaznamenán během roku 2005 (pátek večer - pondělí ráno), po odfiltrování útoků z nezajímavých částí Internetu vygeneroval nekomprimovaný log o velikosti asi 130 MB (komprimovaný soubor asi 4.5 MB). Nároky na kapacitu disků tedy nejsou velké - záleží hlavně na tom, jak dlouho chceme přijatá data archivovat.
V současné době je IDS CESNETu instalován na starším stroji DELL PowerEdge 1400SC v konfiguraci:
- CPU Intel Pentium III, 933 MHz
- 512 MB RAM
- dvoukanálový řadič SCSI Adaptec AIC7899
- 2 SCSI disky FUJITSU MAN3184MP (18.4 GB, 10k otáček/min)
- 2 ethernetová rozhraní Intel Pro 100+ (jedno pro přístup pomocí SSH a odesílání varovných dopisů správcům sítí, druhé pro monitorování útoků)
- operační systém SuSE Linux.
IDS server doporučujeme připojit co nejblíže k hraničnímu routeru, který propojuje síť instituce a páteřní síť CESNETu. Na podsíť monitorovanou systémem IDS ovšem neaplikujeme žádná omezení provozu (ochrana před síťovými viry apod.). Připojení přes přepínač nedoporučujeme, protože při monitorování rozlehlejší podsítě, jež zlepšuje účinnost systému, by se mohla přeplnit ARP tabulka přepínače.
6 Instalace
Předpokládejme, že naší instituci byl přidělen adresový rozsah 172.16.0.0/16, tj. 65536 IP adres; z nich jsme dosud nevyužili a jistě ani nevyužijeme blok 172.16.224.0/22, tj. 1024 IP adres. Tento adresový blok vyhradíme pro IDS; bude ho monitorovat rozhraní Eth1.
Administrativní rozhraní Eth0 systému IDS má přidělenu adresu např. 172.16.1.2; tato adresa je v našem případě součástí podsítě o velikosti např. /25 (128 IP adres). Uvedená IP adresa je jediná, kterou IDS zveřejňuje a která musí mít reversní záznam; z této adresy odesíláme dopisy správcům těch sítí, jejichž stroje se pokoušely připojit na IP adresy monitorované rozhraním Eth1. Na rozhraní Eth0 povolujeme přístup pomocí SSH pouze z několika vybraných adres.
Před zahájením instalace systému LaBrea kontrolujeme, zda byly v rámci distribuce nainstalovány programy Gcc, Perl, Libpcap a Whois. Poslední uvedený program [DIt06] je součástí SuSE Linux a několika dalších distribucí. Lze ho najít i na adrese http://ftp.debian.org/debian/pool/main/w/whois. Nejnovější je whois_4.7.13.tar.gz (59 kB, 2.4.2006).
Z http://prdownloads.sourceforge.net/libdnet stáhneme nejnovější versi programu Libdnet. V našem případě to byl soubor libdnet-1.11.tar.gz (436 kB, 19.1.2006).
Z http://prdownloads.sourceforge.net/labrea stáhneme nejnovější versi programu LaBrea - pravděpodobně soubor labrea-2.5-stable-1.tar.gz (206 kB, 30.10.2003).
Standardním způsobem
nainstalujeme nejprve program Libdnet, pak LaBrea.
$ ./configure
$ make
$ su
$ make install
Program LaBrea spustíme ručně ve zkušebním režimu (použije se pouze rozhraní Eth0, provoz v síti se nijak neovlivní):
$ labrea -T -z
Program LaBrea by měl zobrazit zhruba toto:
Wed May 31 16:01:31 2006 LaBrea will attempt to capture unused IPs. Wed May 31 16:01:31 2006 Full internal BPF filter: arp or (ip and ether dst host 00:00:0F:FF:FF:FF) Wed May 31 16:01:31 2006 LaBrea will log to stdout Wed May 31 16:01:31 2006 Logging will be very verbose. Wed May 31 16:01:31 2006 Initiated on interface: eth0 Wed May 31 16:01:31 2006 Host system IP addr: 172.16.1.2, MAC addr: 00:12:34:56:78:9a Wed May 31 16:01:31 2006 ...Processing configuration file Wed May 31 16:01:31 2006 ... End of configuration file processing Wed May 31 16:01:31 2006 Network number: 172.16.1.0 Wed May 31 16:01:31 2006 Netmask: 255.255.255.128 Wed May 31 16:01:31 2006 Number of addresses LaBrea will watch for ARPs: 127 Wed May 31 16:01:31 2006 Range: 172.16.1.0 - 172.16.1.127 Wed May 31 16:01:31 2006 Throttle size set to WIN 10 Wed May 31 16:01:31 2006 Rate (-r) set to 3 Wed May 31 16:01:31 2006 Test mode run complete... LaBrea is exiting. Wed May 31 16:01:31 2006 LaBrea exiting... Wed May 31 16:01:31 2006 35/0 packets (received/dropped) by filter
V následujícím kroku spustíme program tak, aby IDS využíval obou rozhraní:
- administrátorské rozhraní je stále Eth0, adresa 172.16.1.2/25
- monitorovaná síť 172.16.224.0/22 na Eth1, IP adresa = 172.16.225.77
- maximální šířka pásma = 300 kbit/s
- jsme si jisti, že k adresám v monitorovaném rozsahu má přístup pouze LaBrea - zvolíme režim Auto Hard Capture, No ARP Sweep.
Odpovídá tomu tato příkazová řádka:
$ labrea -b -H -i eth1 -I 172.16.225.77 -no-arp-sweep \ -o -p 300 -v -z
Pokud všechno správně funguje i teď, začneme rozhraní Eth1 provozovat jako unnumbered interface, tj. bez přidělené IP adresy. Následující odstavce podrobně popisují instalaci v operačním systému SuSE Linux; uživatelé jiných distribucí použijí toho, co jejich operační systém nabízí.
Původní stav nenakonfigurovaného rozhraní Eth1 je např.:
$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:09:87:65:43:21
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Pomocí konfiguračního programu YaST (operační systém SuSE Linux) nastavíme potřebné parametry tohoto rozhraní včetně jeho IP adresy (libovolná adresa ze zvoleného rozsahu, zde opět 172.16.225.77). Po nakonfigurování ohlásí ifconfig asi toto:
$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:09:87:65:43:21
inet addr:172.16.225.77 Bcast:172.16.227.255 Mask:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:660 (660.0 b) TX bytes:460 (460.0 b)
Konfigurační soubor tohoto rozhraní, který se nalézá v adresáři /etc/sysconfig/network, teď obsahuje:
$ more ifcfg-eth-id-00\:09:87\:65\:43\:21 BOOTPROTO='static' BROADCAST='172.16.227.255' IPADDR='172.16.225.77' MTU='' NETMASK='255.255.252.0' NETWORK='172.16.224.0' REMOTE_IPADDR='' STARTMODE='onboot' UNIQUE='Hkyc.MvtRJ6g27Q1' _nm_name='bus-pci-0000:01:0a.0'
Pozor: pokud chceme obsah tohoto souboru zálohovat, pojmenujeme záložní soubor tak, aby se lišil už začátek jeho názvu - např. sav-ifcfg-eth-id-00\:09\:87\:65\:43\:21.
Vhodným textovým editorem odstraníme údaje BROADCAST, IPADDR, NETMASK a NETWORK. Soubor pak vypadá takto:
$ more ifcfg-eth-id-00\:09\:87\:65\:43\:21 BOOTPROTO='static' BROADCAST='' IPADDR='' MTU='' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='onboot' UNIQUE='Hkyc.MvtRJ6g27Q1' _nm_name='bus-pci-0000:01:0a.0'
Operační systém restartujeme. Měl by přitom ohlásit asi toto:
Setting up network interfaces:
lo
lo IP address: 127.0.0.1/8 . . . . . . . . . . done
Waiting for mandatory devices:
eth-id-00:12:34:56:78:9a eth-id-00:09:87:65:43:21
eth0 device: AAAAA Corp. [Ethernet ABCD] (rev 08)
eth0 configuration: eth-id-00:12:34:56:78:9a
eth0 IP address: 172.16.1.2/25
eth1 device: BBBBB Corp. [Ethernet EFGH] (rev 09)
eth1 configuration: eth-id-00:09:87:65:43:21
Setting up service network . . . . . . . . . . . . . . done
Je vidět, že rozhraní Eth1 je také funkční, ale nemá přidělenu IP adresu. Program ifconfig zobrazí stav rozhraní Eth1 takto:
$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:09:87:65:43:21
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:442 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3199 (3.1 Kb) TX bytes:1005 (1.0 Kb)
Program LaBrea spustíme pomocí této příkazové řádky:
$ labrea -b -E 00:09:87:65:43:21 -H -i eth1 -I 172.16.225.77 \ -n 172.16.224.0/22 -no-arp-sweep -O -o -p 300 -v -z
V tomto režimu můžeme program LaBrea provozovat nějakou dobu podle potřeby. Můžeme vyzkoušet jeho další možnosti (volitelné parametry příkazové řádky nebo konfiguračního souboru), zkusíme se do monitorovaného rozsahu adres připojit např. programem Telnet, vyzkoušíme reakci na ping, zjistíme, jak časté jsou útoky DDoS zdánlivě vycházející z naší sítě, atd.
Přitom pravděpodobně zjistíme, že program generuje obrovské množství dat o útocích vycházejících i z oblastí, které nemůžeme ovlivnit. Soustředíme se pouze na sítě z autonomního systému AS2852, tj. na sítě CESNET, z. s. p. o., jeho členů a zákazníků. Všechna data, která program LaBrea generuje, tedy budeme filtrovat programem grep tak, aby nám k dalšímu zpracování zůstaly jen:
- záznamy o útocích vycházejících z AS2852. Toto filtrování nemusí být dokonalé - přesnou filtraci IP adres zajistí pole @ownnet v programu LaBreaBackEnd
- záznamy o všech přijatých paketech SYN+ACK - příznacích útoků DDoS
- záznamy o všech přijatých paketech ping - dále se nezpracovávají, ale pomáhají při kontrole činnosti IDS
- zprávy o šířce pásma - pomáhají posoudit aktivitu hackerů a užitek z IDS.
Dále musíme zajistit, aby se program LaBrea automaticky spustil po zavedení operačního systému, aby bylo možné jeho výsledky v pravidelných intervalech zpracovat a aby se program uměl vypořádat i s následky případného výpadku systému. To všechno zajistí soubor /etc/init.d/labrea, který nainstalujeme příkazem
$ insserv -v labrea.
- Při spuštění (labrea start) spustí program LaBrea; jeho filtrovaná výstupní data se přidávají na konec existujícího souboru /var/log/LaBrea.new
- při zastavení (labrea stop) ukončí programy LaBrea a grep
- při restartu (labrea restart), k němuž dochází v časech definovaných v crontabu,
- ukončí programy LaBrea a grep
- výstupní soubor /var/log/LaBrea.new přejmenuje na /var/log/LaBrea
- znovu spustí programy LaBrea a grep; filtrovaná výstupní data programu LaBrea se začnou zapisovat do nového souboru /var/log/LaBrea.new
- příkaz labrea status zobrazí stav programu LaBrea a oznámí počet řádek v jeho výstupním souboru /var/log/LaBrea.new.
Výsledky získané programem LaBrea zpracovává IDS každý pracovní den několikrát - tak, jak je to definováno v crontabu uživatele root. Pokaždé proběhnou tyto operace:
- spuštění skriptu /etc/init.d/labrea s parametrem
restart - spuštění dalšího skriptu /var/log/LBbe.sh, který
- spustí program LaBreaBackEnd (zpracování logu programu LaBrea)
- pokud došlo k útokům ze sítí AS2852, spustí program LaBreaReport (rozeslání varovných dopisů správcům)
- vygeneruje soubor /var/log/START s časovým razítkem
- log programu LaBrea správně pojmenuje a zkomprimuje.
Programy LaBreaBackEnd a LaBreaReport jsou napsané v jazyce Perl. Oba vyžadují instalaci modulu Mail::Sender z http://search.cpan.org/dist/Mail-Sender. Nejnovější verse je Mail-Sender-0.8.13.tar.gz z 25.2.2006. Nainstalujeme ho např. těmito příkazy:
$ perl Makefile.PL
$ make
$ make test
$ make install
Přitom je třeba definovat několik implicitních hodnot, které Mail::Sender ke své činnosti potřebuje. Nejdůležitější z nich je adresa poštovního serveru. Pokud provozujeme Postfix na témže stroji jako IDS, jako adresu poštovního serveru uvedeme localhost. Na všechny ostatní dotazy lze odpovědět stiskem Enter nebo (u implicitního kódování) n.
Program LaBreaBackEnd je poměrně složitý systém, který původně sloužil ke zpracování dat o útocích vycházejících z celého Internetu. Systém IDS CESNETu ho ale využívá v jednodušším režimu:
$ LaBreaBackEnd -b -i file1 -l limit -O -v
-b provoz v dávkovém režimu -i file1 file1 je název vstupního souboru (výstupní soubor programu LaBrea) -l limit pokud počet útoků z jedné IP adresy nepřesáhne hodnotu limit, ignorujeme je. Pokud lim=0, zpracujeme všechny útoky z této adresy -O zpracujeme pouze útoky ze sítí uvedených v poli @ownnet -v výpis podrobnějších diagnostických informací.
Hlavním účelem programu LaBreaBackEnd je zjištění adres elektronické pošty všech správců sítě, z níž byl útok přijat. Pokud k IP adrese útočícího stroje existuje platný reversní záznam, zjistí LaBreaBackEnd i adresy správců příslušné domény. Ze vzniklého seznamu adres program vybere jednu nebo několik nejvhodnějších adres; pokud vhodné adresy nenajde, pokusí se je sám vygenerovat, je-li to možné, a přidá je k adresám již nalezeným.
Program se snaží minimalisovat počet odeslaných dopisů: pokud byly zaznamenány útoky z různých sítí nebo domén, k nimž program po optimalisaci adres přiřadil stejné adresy elektronické pošty správců, pošle na tyto adresy jediný společný dopis s informacemi o všech útocích detekovaných v příslušném časovém intervalu.
Program generuje v pracovním adresáři protokol o běhu programu s implicitním názvem yymmddhh.log udávajícím datum a hodinu ukončení programu. Pokud byly zjištěny útoky ze sítí, které nás zajímají, vznikne i
- adresář result obsahující data o útocích pro program LaBreaReport
- archivní soubor s těmito daty - implicitně yymmddhh.zip.
Program LaBreaBackEnd také odešle administrátorovi systému IDS zprávu SMS o výsledcích běhu (počet detekovaných chyb formátu ve vstupních datech, počet útočících strojů a počet vygenerovaných datových souborů).
Program LaBreaReport je spouštěn, pouze pokud program LaBreaBackEnd vygeneroval nějaká data o zjištěných útocích. Čte soubory v adresáři result a po vhodném naformátování a doplnění vysvětlujících informací je rozešle elektronickou poštou. Po odeslání je implicitně vymaže. I on nabízí různé možnosti parametrů na příkazové řádce; za normálních okolností využíváme pouze:
$ LaBreaReport -k -i
-k odeslané soubory se nevymažou, ale přejmenují na *.sent -i existence souborů *.sent v adresáři result je tolerována.
Při testování činnosti programu lze s výhodou použít parametrů
-t dopisy se neodesílají, soubory se nemažou -T dopisy se posílají jen na adresu $testaddr -v výpis podrobnějších diagnostických informací.
Program LaBreaBackEnd obsahuje proměnné, které je vhodné zkontrolovat a případně zkonfigurovat podle potřeb sítě. Jsou to především:
@ignoredom pokud doménová adresa útočícího stroje obsahuje některou adresu uvedenou v @ignoredom, nepošle se správcům této domény žádná stížnost @ndom útoky z domén zde uvedených budou ignorovány @nipadd útoky z jednotlivých IP adres zde uvedených budou ignorovány @nipnet útoky ze sítí zde uvedených budou ignorovány @ownnet při volbě parametru -O budou monitorovány pouze sítě uvedené v tomto poli $smsadd adresa, na niž se odesílá SMS o výsledku běhu.
Informace o tom, kde přesně leží IP adresy sítě monitorované systémem IDS, nezveřejňujeme. Tomu napomáhají i následující dvě proměnné v programu LaBreaBackEnd:
$strin řetězec (cílová IP adresa), který chceme kvůli utajení ... $strout ... nahradit tímto řetězcem.
I program LaBreaReport je vhodné zkonfigurovat. Jde o tyto proměnné:
$bccaddr adresy, na něž se posílají slepé kopie varovných dopisů, pokud není zvolen testovací režim -t nebo -T $testaddr adresa, na niž se posílají dopisy v testovacím režimu -T.
7 Závěr
Systém IDS v dejvické síti CESNET2 byl původně navržen tak, aby detekoval a hlásil útoky z celosvětového Internetu. Má tedy mnoho vlastností, které se v nynějším režimu práce nevyužívají, ale které autor zatím nechce odstranit.
Důvod, proč se IDS omezuje na hlášení útoků pocházejících ze sítě CESNET2, není technický, ale administrativní. Jakmile začal systém IDS rozesílat svá varování, začali adresáti těchto zpráv (v průměru kolem tisíce) odpovídat takto:
- Za zprávy děkují, případně i napíší, v čem byl problém. Často jde o odpovědi autoresponderů
- o zprávy nestojí a uvádějí seznam domén nebo IP adres, které máme ignorovat
- o zprávy nestojí, ale uvádějí správnou adresu, kam zprávy posílat
- o zprávy nestojí, považují je za SPAM
- posílají zavirované dopisy a SPAM.
Reakce správce IDS:
- Bod č. 1 potěší
- program LaBreaBackEnd je navržen tak, aby uměl zvládat požadavky podle bodů 2, 3 a 4
- s bodem 5 obvykle nelze nic dělat (správci jsou neschopní nebo přímo angažovaní v Black Hat community).
Zásadní problém s monitorováním celosvětového Internetu je v tom, že systém IDS pak vyžaduje každodenní dozor člověka, který by až několik hodin denně trávil korespondencí se správci a podle jejich požadavků průběžně zdokonaloval konfiguraci programu LaBreaBackEnd. Přitom se projeví zásadní problémy: neplatné, dávno zastaralé kontaktní údaje o správcích sítí i domén, a neexistující kontaktní adresy pro zasílání stížností podle RFC 2142 (abuse@example.net). Pokud správci sítí a domén své kontaktní údaje sami neudržují, je velká část práce administrátora IDS marná.
Po zvážení těchto zkušeností se autor zprávy rozhodl soustředit se na síť CESNET2 a přesvědčit správce všech připojených sítí, aby zkontrolovali své kontaktní údaje v RIPE DB a zřídili i kontaktní adresu pro zasílání stížností. U všech universitních sítí a u většiny zákazníků je to hotovo, poměrně malá část ještě zbývá dokončit.
Systém IDS se v provozu velmi osvědčuje: na rozdíl od klasických systémů IDS nevyžaduje pravidelnou údržbu signatur útoků a nehrozí mu ani nebezpečí falešných poplachů. Bude však ještě užitečnější po nasazení na dalších místech sítě CESNET - lze oprávněně předpokládat, že se výrazně zlepší a zrychlí účinnost detekce útoků vycházejících přímo z těch sítí, jejichž správci tento systém IDS instalují.
8 Konfigurační soubory
8.1 Konfigurace crontab uživatele root
$ crontab -l # Every working day at 6.05, 9.05, 12.05, 15.05 GMT: 5 6,9,12,15 * * 1-5 /etc/init.d/labrea restart; sh /var/log/LBbe.sh
8.2 Soubor /var/log/LBbe.sh
#! /bin/sh BZIP2_BIN=/usr/bin/bzip2 DATESTRING=`/bin/date +%y%m%d%H` LBBE_LNK=/root/bin/LaBreaBackEnd LBREP_LNK=/root/bin/LaBreaReport LABREA_LOG=/var/log/LaBrea LABREA_LOG_SAV=/var/log/LaBrea.$DATESTRING LABREA_START=/var/log/START TOUCH_BIN=/usr/bin/touch echo "Processing the LaBrea log file, sending results (if any)..." $LBBE_LNK -b -l 0 -i $LABREA_LOG -O -v && $LBREP_LNK -k -i echo "Creating the START timestamp..." $TOUCH_BIN $LABREA_START echo "Renaming the LaBrea log file..." mv -f -backup=t $LABREA_LOG $LABREA_LOG_SAV echo "Compressing the LaBrea log file..." $BZIP2_BIN $LABREA_LOG_SAV echo "Done."
8.3 Soubor /var/log/LBstrings
ting: 195\.113\. ting: 195\.178\.[6789]\d\. ting: 193\.84\.[34]\d\. ting: 193\.84\.1[679]\d\. ting: 193\.84\.2[012]\d\. ting: 146\.102\. ting: 147\.3[23]\. ting: 147\.22[89]\. ting: 147\.23[01]\. ting: 147\.251\. ting: 158\.19[46]\. ting: 160\.21[67]\. Current average bw Inbound SYN/ACK Responded to a Ping
8.4 Soubor /etc/init.d/labrea
#! /bin/sh
#
# /etc/init.d/labrea
#
### BEGIN INIT INFO
# Provides: labrea
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 5
# Default-Stop: 3 5
# Description: Start the LaBrea program
### END INIT INFO
LABREA_BIN=/usr/local/sbin/labrea
test -x $LABREA_BIN || exit 5
GREP_BIN=/usr/bin/grep
test -x $GREP_BIN || exit 5
. /etc/rc.status
rc_reset
case "$1" in
start)
echo -n "Starting LaBrea 2.51, appending to existing log"
/sbin/startproc -f $LABREA_BIN -b -E 00:09:87:65:43:21 -H -i eth1 \
-I 172.16.225.77 -n 172.16.224.0/22 -no-arp-sweep -O -o -p 300 \
-v -z | $GREP_BIN -f /var/log/LBstrings >> /var/log/LaBrea.new &
rc_status -v
;;
stop)
echo -n "Shutting down LaBrea 2.51..."
/sbin/killproc -TERM $LABREA_BIN
sleep 1
rc_status -v
echo -n "Shutting down grep..."
/sbin/killproc -TERM $GREP_BIN
sleep 1
rc_status -v
;;
restart)
echo -n "Shutting down LaBrea 2.51..."
/sbin/killproc -TERM $LABREA_BIN
sleep 1
rc_status -v
echo -n "Shutting down grep..."
/sbin/killproc -TERM $GREP_BIN
sleep 1
rc_status -v
echo "Renaming the resulting log file to be processed by LBbe..."
mv -f /var/log/LaBrea.new /var/log/LaBrea
sleep 1
echo -n "Starting LaBrea 2.51, opening new log file..."
/sbin/startproc -f $LABREA_BIN -b -E 00:09:87:65:43:21 -H -i eth1 \
-I 172.16.225.77 -n 172.16.224.0/22 -no-arp-sweep -O -o -p 300 \
-v -z | $GREP_BIN -f /var/log/LBstrings > /var/log/LaBrea.new &
sleep 1
rc_status -v
;;
status)
echo -n "Checking LaBrea 2.51 status: "
wc -l /var/log/LaBrea.new | cut -f1 -d" " > /var/log/LaBreaLC
echo -n `cat /var/log/LaBreaLC`
echo -n " log lines"
rm -f /var/log/LaBreaLC
/sbin/checkproc $LABREA_BIN
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
rc_exit
Pozn.: Soubory LaBreaBackEnd a LaBreaReport se průběžně vyvíjejí. Jsou vystaveny na adrese ftp://ftp.cesnet.cz/local/ids a podepsány PGP klíčem 1BEDF25D (Pavel.Vachek@cesnet.cz; fingerprint = 6627 E8B9 29EC A28A EBE3 8A7F 44C4 BABC 1BED F25D).
Použitá literatura
| [DIt06] | Marco d'Itri: Whois - an improved whois client. http://www.linux.it/ md/software |
| [Kry06] | Jan Krynicky: Mail::Sender - module for sending mails with attachments through an SMTP server. http://search.cpan.org/dist/Mail-Sender |
| [Lis03] | Tom Liston: Project LaBrea. http://labrea.sourceforge.net and http://www.hackbusters.net/Worm%20and%20Virus%20Defense.pdf |
| [Vac03] | Zabezpečení lokálních sítí CESNET2. In: Vysokorychlostní síť národního výzkumu a její nové aplikace, str. 228...231. Praha 2003. http://www.cesnet.cz/doc/2003/zprava/security.html |