IDS Systeemid - Labor 1

From ICO wiki

Labor 1

Labori käigus paigaldame Suricata ning testime selle töötamist.

Seame paika reeglite uuendamise Oinkmasteri abil kasutades Emerging Threats reeglikogumikku ning optimeerime kasutatavat reeglikogumikku.

Laboris on kasutusel Ubuntu Linux 14.04 LTS. Täpsem info laborite kohta on leitav: IDS systeemid - Labori paigaldusjuhend

Ettevalmistused Suricata paigaldamiseks

Seadistame eth1 võrguliidese valimatusse režiimi

1. Avame faili interfaces:

vim /etc/network/interfaces

2. Lisame eth1 parameetrid:

auto eth1
iface eth1 inet manual

up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off

down ifconfig $IFACE down

3. Salvesta ja välju

4. Teeme võrgu teenusele taaskäivituse

service networking restart

5. Kontrollime võrguliidest.

ifconfig 


Käsu väljundis näeme kolmandas reas "UP BROADCAST RUNNING PROMISC":

eth1 Link encap:Ethernet HWaddr 00:0c:29:32:bf:11
inet6 addr: fe80::20c:29ff:fe32:bf11/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

RX packets:1152 errors:0 dropped:0 overruns:0 frame:0

TX packets:62 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:94351 (94.3 KB) TX bytes:17248 (17.2 KB)


Suricata paigaldus

1. Uuendame repositooriumi nimekirjad

apt-get update

2. Suricata kasutamisel Ubuntu distributsiooni peal on kõige lihtsam kasutada repositooriumi. Kõigepealt paigaldame paki nimega "python-software-properties", kuna selle sees asub programm "add-apt-repository", mida kasutame järgmisena.

apt-get install python-software-properties

3. Lisame repositooriumi ja piagaldame Suricata

add-apt-repository ppa:oisf/suricata-stable
apt-get update
apt-get install suricata

4. Suricata uuendamiseks saame kasutada

apt-get update
apt-get upgrade

5. Eemaldamiseks

apt-get remove suricata

Seadistamine

Suricata parameetrite määramine

1. Loome logide kausta

mkdir /var/log/suricata

2. Avame Suricata konfiguratsiooni faili:

vim /etc/suricata/suricata.yaml

Kirjeldame kasutuses olevad operatsiooni süsteemid otsides "suricata.yaml" failist rida "host-os-policy" (VIM-i puhul saab otsimist teostada sisestades "/" ning seejärel otsitava teksti.)

host-os-policy:
 # Make the default policy windows.
 windows: []
 bsd: []
 bsd-right: []
 old-linux: []
 linux: [192.168.56.200, 192.168.56.201, 192.168.56.101, 127.0.0.1]
 old-solaris: []
 solaris: []
 hpux10: []
 hpux11: []
 irix: []
 macos: []
 vista: []
 windows2k3: [ ]

Kirjeldame ära aadresside grupid. Selleks otsime üles rea "address-groups"

address-groups:
  HOME_NET: "[192.168.56.0/24]"
  EXTERNAL_NET: "!$HOME_NET"

Enda kirjutatud reeglid

1. Enda kirjutatud reeglite kasutamiseks loome faili local.rules

touch /etc/suricata/rules/local.rules

Juhul kui rules kaust puudub, siis loome selle

mkdir /etc/suricata/rules

Lisame local.rules faili ühe reegli

vim /etc/suricata/rules/local.rules

alert ip any any -> any any (msg:"ICMP detected"; sid:2; rev:1;)

2. Lisame Suricata kofiguratsiooni kohalike reeglite faili.

vim /etc/suricata/suricata.yaml

Otsime üles rea "rule-files" ja lisame sinna alla esimese reana local.rules faili.

rule-files:
- local.rules
- botcc.rules
- ciarmy.rules
- compromised.rules
- drop.rules
- dshield.rules
- emerging-activex.rules
- emerging-attack_response.rules
- emerging-chat.rules
- emerging-current_events.rules
- emerging-dns.rules
- emerging-dos.rules
- emerging-exploit.rules
- emerging-ftp.rules
...

3. Reegli testimiseks käivitame Suricata ning seadistame kuulama eth1 võrguliidese peale, mille eelnevalt seadistasime valimatusse režiimi.

suricata -c /etc/suricata/suricata.yaml -i eth1

4. Pingime kliendi masinast IDS serverit

ping ids

5. Kõrvale avame teise ssh ühenduse ids serverisse ja avame Suricata logi

tail -f /var/log/suricata/fast.log

Näeme, et logisse lisanduvad teated reeglile vastavast liiklusest

05/25/2014-13:03:58.407499  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.3:8 -> 192.168.56.2:0
05/25/2014-13:03:58.407526  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.2:0 -> 192.168.56.3:0
05/25/2014-13:03:59.407073  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.3:8 -> 192.168.56.2:0
05/25/2014-13:03:59.407097  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.2:0 -> 192.168.56.3:0

Oinkmaster üles seadmine reeglikogumike uuendamiseks

1. Paigaldame OinkMasteri

apt-get install oinkmaster

On olemas mitmed reeglikogumikke. Praegusel juhul kasutame Emerging Threats (ET) reeglikogumikku.

Oinkmaster peab teada, kust saab reeglikogumikku alla laadida:

http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz

2. Selle lingi lisamiseks avame oinkmaster.conf faili:

vim /etc/oinkmaster.conf

3. Leiame üles rea ET reeglite veebilehele (vim puhul saab otsingut teostada sisestades kõigepealt "/" ning seejärel otsingu stringi):

/Emerging Threats

4. Lisame hüperlingi:

url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz


Pärast muudatuse sisse viimist näeb faili sektsiooni välja selline:

# Example for rules from the Emerging Threats site (previously known as Bleeding Snort).
# url = http://www.emergingthreats.net/rules/emerging.rules.tar.gz
# Old url:
# url = http://www.bleedingsnort.com/downloads/bleeding.rules.tar.gz
url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz

5. Salvesta ja välju failist. Vim puhul, väljuda paoklahviga sisestus režiimist ning seejärel ":wq".


6. Uuendame reeglikogumiku:

cd /etc
oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules

7. Pärast reeglite alla laadimist ja lahti pakkimist on reeglite kaustast leitavad ka kaks faili nimedega classification. config ja reference.config. Mõlemad on vaja lisada Suricata konfiguratsiooni faili:

vim /etc/suricata/suricata.yaml

Konfiguratsioonis otsime üles rea"classification-file" ning muudame ära vajalikud parameetrid. Lõpptulemusena saame:

classification-file: /etc/suricata/rules/classification.config
reference-config-file: /etc/suricata/rules/reference.config

8. Testimiseks käivitame suricata:

suricata -c /etc/suricata/suricata.yaml -i eth1

9. Käivitamisel näeme, et mitmed reegli failid pole saadaval. Nende mitte kasutamiseks saame suricata.yaml faili rule-files sektsioonis lisada konkreetse reegli faili ette #.

vim /etc/suricata/suricata.yaml

Lisame # kahe faili ette:

# - emerging-icmp.rules
# - dns-events.rules

10. Salvestame ja väljume.

11. Reeglite hilisemaks uuendamiseks käivitame käsu:

oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules


Soovituslik on reegleid tihti uuendada. ET reeglikogumikku uuendatakse korra päevas.


Automaatne uuendamine oinkmasteri abil

Et muuta reeglite uuendamine lihtsaks ja automaatseks, seadistame croni töö oinkmasteri automaatseks käivitamiseks.

1. Loome reeglite varundamiseks kausta.

mkdir /etc/suricata/backup

2. Lisame uue kasutaja oinkmaster

useradd oinkmaster

3. Muudame mõningad failiõigused.

chown -R oinkmaster /etc/suricata/backup
chown -R oinkmaster /etc/suricata/rules

4. Testime, kas töötab

su oinkmaster
oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules -b /etc/suricata/backup 2>&1

5. Kuna me tahame seda iga päev käivitada, siis lisame crontabi alla vastava töö

crontab -e -u oinkmaster

30 00 * * * oinkmaster -o /etc/snort/rules -b /etc/snort/backup 2>&1 >> /dev/null 2>&1


Reeglikogumike optimeerimine

Mida rohkem reegleid on kasutuses, seda rohkem ressurssi on vaja pakettide analüüsimiseks. Seega mõtekas on keelata need reeglid, mis käivad tehnoloogiate või teenuste vastu mida asutuse infrastruktuuris ei esine.

Kõigepealt keelame mõned üldised grupid. Selleks avame uuesti Suricata konfiguratsiooni faili:

vim /etc/suricata/suricata.yaml

Otsime üles rea "rule-files".

/rule-files

Reegli grupi keelamiseks on vaja konkreetne reegli faili välja kommenteerida, lisades rea ette #.

Oletame, et poliitikatega on infrastruktuuris keelatud ActiveX tehnoloogia kasutamine, ei leia kasutust ftp protokoll ning ei ole ka SCADA seadmeid.

Ülesanne Otsida suricata.yaml failist üles sektsioon "rule-files:" ning kommenteerida välja need 3 reeglite faili mis käsitlevad neid teenuseid (Active-X; FTP; SCADA).

Üksiku või mitme reegli keelamine

Üksiku reegli või mitme reegli lubamiseks/keelamiseks on vaja leida reegli sid. Seda seetõttu, et sid alusel saab reegli keelata oinkmasteri konfiguratsioonis. Sellisel juhul jääb reegel keelatuks ka pärast reeglikogumiku uuendamist.

Antud näite puhul ütleme, et asutus on paiganud kõigi Linuxi serverite OpenSSL teegid ning seeläbi kõrvaldanud HeartBleed nimelise nõrkuse. Seega kõik reeglid, mis käsitlevad seda nõrkust võib keelata.

1. Otsime üles kõik HeartBleedi käsitlevad reeglid.

cd /etc/suricata/rules
grep -R "HeartBleed"


Leiame, et HeartBleedi käsitlevaid reegleid on 6. Kuigi väljastati 12 rida on esimesed 6 rida pärit sid-msg.map failist, kus hoitakse teadete ja reegli id vahelisi seoseid seega need võib välja jätta.

2. Eraldame välja kõigi 6 reegli sid tunnused.

grep -R "HeartBleed" | grep -P -o "sid\:\d+" | grep -o -P "\d{2,}+" | tr '\n' ',' >> /etc/oinkmaster.conf

Üleval nähtava käsuga, filtreerime reegli failidest rekursiivselt välja kõik read kus sisaldub sõna HeartBleed, seejärel eraldame nendest ridadest sid tunnused ja puhastame read üleliigsest. Viimaks asendame tr käsu abil reavahetused komaga ja kirjutame tekkinud rea Oinkmasteri konfiguratsiooni faili lõppu.


3. Avame Oinkmasteri konfiguratsiooni ja kerime faili lõppu. Eelmise käsuga sinna kirjutatud sid tunnused on meid ootamas.

vim /etc/oinkmaster.conf

4. Kirjutame sid tunnuste ette parameetri "disablesid" ning rea lõppu lisame # ja kommentaari. Lõpptulemusena näeb oinkmasteri konfiguratsiooni faili viimane rida välja selline:

disablesid 2018377, 2018378, 2018382, 2018383, 2018388, 2018389 # Ei ole enam HeartBleedi haavatavust

5. Salvestame ja väljume.

6. Kui käivitame Oinkmasteri uuenduse uuesti, siis näeme millised ja kui mitu reeglit on keelatud.

oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules

Kursuse avaleht

Sissetungi tuvastuse systeemid