Izdana Suricata 1.4.4 - Sistem za zaznavanje, preprečevanje in nadzor vdorov v omrežje


Suricata je odprtokodni visoko zmogljiv sodoben sistem za zaznavanje vdorov, preprečevanje in nadzor varnosti omrežij za sisteme Unix/Linux, FreeBSD in Windows. Razvila ga je in je v lasti neprofitne fundacije OISF (Open Information Security Foundation).

Pred kratkim je projektna skupina OISF objavila izdajo Suricate 1.4.4 z manjšimi, a ključnimi posodobitvami in odpravila nekaj bistvenih napak v prejšnji izdaji.

Značilnosti Suricata

Suricata je mehanizem za odkrivanje in preprečevanje vdorov, ki temelji na pravilih in uporablja zunanje razvite sklope pravil za spremljanje omrežnega prometa, hkrati pa je sposoben obvladovati več gigabajt prometa in sistemskim/omrežnim skrbnikom daje e-poštna opozorila.

Suricata zagotavlja hitrost in pomen pri določanju omrežnega prometa. Motor je razvit za uporabo povečane procesorske moči, ki jo ponujajo sodobni večjedrni strojni kompleti čipov.

Motor ne ponuja le ključnih besed za TCP, UDP, ICMP in IP, temveč ima tudi vgrajeno podporo za HTTP, FTP, TLS in SMB. Sistemski skrbnik lahko ustvari lastno pravilo za zaznavanje ujemanja v toku HTTP. To bo postalo drugačno odkrivanje in nadzor zlonamerne programske opreme.

Motor bo zagotovo sprejel pravila, ki se ujemajo z IP-ji, ki temeljijo na RBN in ogroženih IP-seznamih pri Emerging Threats, in jih shranil v določen predprocesor za hitro ujemanje.

Korak: 1 Namestitev Suricate v RHEL, CentOS in Fedora

Za namestitev nekaterih potrebnih paketov za sisteme i386 in x86_64 morate uporabiti Fedorino skladišče EPEL.

  1. Omogočite Fedorino skladišče EPEL

Preden lahko sestavite in zgradite Suricata za vaš sistem, namestite naslednje pakete odvisnosti, ki so potrebni za nadaljnjo namestitev. Postopek lahko traja nekaj časa, odvisno od hitrosti interneta.

# yum -y install libpcap libpcap-devel libnet libnet-devel pcre \
pcre-devel gcc gcc-c++ automake autoconf libtool make libyaml \
libyaml-devel zlib zlib-devel libcap-ng libcap-ng-devel magic magic-devel file file-devel

Nato zgradite Suricata s podporo za IPS. Za to potrebujemo paketa "libnfnetlink" in "libnetfilter_queue", vendar ti vnaprej izdelani paketi niso na voljo v repozitorijih EPEL ali CentOS Base. Torej, rpms moramo prenesti in namestiti iz repozitorija Emerging Threats CentOS.

# rpm -Uvh http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnetfilter_queue-0.0.15-1.i386.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnetfilter_queue-devel-0.0.15-1.i386.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnfnetlink-0.0.30-1.i386.rpm \ 
http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnfnetlink-devel-0.0.30-1.i386.rpm
# rpm -Uvh http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnetfilter_queue-0.0.15-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnetfilter_queue-devel-0.0.15-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnfnetlink-0.0.30-1.x86_64.rpm \ 
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnfnetlink-devel-0.0.30-1.x86_64.rpm

Prenesite najnovejše izvorne datoteke Suricata in jih zgradite z naslednjimi ukazi.

# cd /tmp
# wget http://www.openinfosecfoundation.org/download/suricata-1.4.4.tar.gz
# tar -xvzf suricata-1.4.4.tar.gz
# cd suricata-1.4.4

Zdaj uporabljamo funkcijo samodejne nastavitve Suricata za samodejno ustvarjanje vseh potrebnih imenikov, konfiguracijskih datotek in najnovejših naborov pravil.

# ./configure && make && make install-conf
# ./configure && make && make install-rules
# ./configure && make && make install-full

2. korak: Namestitev Suricate v Debian in Ubuntu

Pred nadaljevanjem namestitve morate v sistem namestiti naslednje predpogoje za nadaljevanje. Prepričajte se, da morate biti root uporabnik, da zaženete naslednji ukaz. Ta postopek namestitve lahko traja nekaj časa, odvisno od trenutne hitrosti vašega interneta.

# apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev \
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev \
pkg-config magic file libhtp-dev

Privzeto deluje kot IDS. Če želite dodati podporo za IDS, namestite nekaj potrebnih paketov, kot sledi.

# apt-get -y install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

Prenesite najnovejšo tar-žogo Suricata in jo zgradite z naslednjimi ukazi.

# cd /tmp
# wget http://www.openinfosecfoundation.org/download/suricata-1.4.4.tar.gz
# tar -xvzf suricata-1.4.4.tar.gz
# cd suricata-1.4.4

Z možnostjo samodejne nastavitve Suricata samodejno ustvarite vse potrebne imenike, konfiguracijske datoteke in nabore pravil, kot je prikazano spodaj.

# ./configure && make && make install-conf
# ./configure && make && make install-rules
# ./configure && make && make install-full

3. korak: Osnovna nastavitev Suricata

Po prenosu in namestitvi Suricate je zdaj čas, da nadaljujete z osnovno namestitvijo. Ustvari naslednje direkcije.

# mkdir /var/log/suricata
# mkdir /etc/suricata

Naslednji del je kopiranje konfiguracijskih datotek, kot so „Classification.config“, „reference.config“ in „suricata.yaml“ iz osnovnega namestitvenega imenika gradnje.

# cd /tmp/suricata-1.4.4
# cp classification.config /etc/suricata
# cp reference.config /etc/suricata
# cp suricata.yaml /etc/suricata

Na koncu prvič zaženite “Suricata Engine” in določite ime vmesniške naprave, ki jo želite. Namesto eth0 lahko vključite želeno omrežno kartico.

# suricata -c /etc/suricata/suricata.yaml -i eth0

23/7/2013 -- 12:22:45 -  - This is Suricata version 1.4.4 RELEASE
23/7/2013 -- 12:22:45 -  - CPUs/cores online: 2
23/7/2013 -- 12:22:45 -  - Found an MTU of 1500 for 'eth0'
23/7/2013 -- 12:22:45 -  - allocated 2097152 bytes of memory for the defrag hash... 65536 buckets of size 32
23/7/2013 -- 12:22:45 -  - preallocated 65535 defrag trackers of size 104
23/7/2013 -- 12:22:45 -  - defrag memory usage: 8912792 bytes, maximum: 33554432
23/7/2013 -- 12:22:45 -  - AutoFP mode using default "Active Packets" flow load balancer
23/7/2013 -- 12:22:45 -  - preallocated 1024 packets. Total memory 3170304
23/7/2013 -- 12:22:45 -  - allocated 131072 bytes of memory for the host hash... 4096 buckets of size 32
23/7/2013 -- 12:22:45 -  - preallocated 1000 hosts of size 76
23/7/2013 -- 12:22:45 -  - host memory usage: 207072 bytes, maximum: 16777216
23/7/2013 -- 12:22:45 -  - allocated 2097152 bytes of memory for the flow hash... 65536 buckets of size 32
23/7/2013 -- 12:22:45 -  - preallocated 10000 flows of size 176
23/7/2013 -- 12:22:45 -  - flow memory usage: 3857152 bytes, maximum: 33554432
23/7/2013 -- 12:22:45 -  - IP reputation disabled
23/7/2013 -- 12:22:45 -  - using magic-file /usr/share/file/magic

Po nekaj minutah preverite, ali motor pravilno deluje in sprejema in nadzoruje promet.

# cd /usr/local/var/log/suricata/
# ls -l

-rw-r--r-- 1 root root  25331 Jul 23 12:27 fast.log
drwxr-xr-x 2 root root   4096 Jul 23 11:34 files
-rw-r--r-- 1 root root  12345 Jul 23 11:37 http.log
-rw-r--r-- 1 root root 650978 Jul 23 12:27 stats.log
-rw-r--r-- 1 root root  22853 Jul 23 11:53 unified2.alert.1374557837
-rw-r--r-- 1 root root   2691 Jul 23 12:09 unified2.alert.1374559711
-rw-r--r-- 1 root root   2143 Jul 23 12:13 unified2.alert.1374559939
-rw-r--r-- 1 root root   6262 Jul 23 12:27 unified2.alert.1374560613

Oglejte si datoteko »stats.log« in se prepričajte, da so prikazane informacije v realnem času posodobljene.

# tail -f stats.log

tcp.reassembly_memuse     | Detect                    | 0
tcp.reassembly_gap        | Detect                    | 0
detect.alert              | Detect                    | 27
flow_mgr.closed_pruned    | FlowManagerThread         | 3
flow_mgr.new_pruned       | FlowManagerThread         | 277
flow_mgr.est_pruned       | FlowManagerThread         | 0
flow.memuse               | FlowManagerThread         | 3870000
flow.spare                | FlowManagerThread         | 10000
flow.emerg_mode_entered   | FlowManagerThread         | 0
flow.emerg_mode_over      | FlowManagerThread         | 0

Referenčne povezave

Domača stran Suricata
Uporabniški priročnik Suricata