Suricata: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Maleppik (talk | contribs)
Rjuhanni (talk | contribs)
No edit summary
 
(95 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Autorid: Martin Leppik ja Randel Raidmets
Autorid: Martin Leppik ja Randel Raidmets
Reeglite sisselükkamise osa, uue reegli tegemine: Rene Juhanni


Rühm: A31
Rühm: A31
Line 8: Line 10:


Linuxi administreerimise aine raames paigaldada vastavale Ubuntu serverile sissetungimise avastamise süsteem nimega Suricata. Pärast paigaldust konfigureerida peamised sätted ja reeglid ning viimasena testida süsteemi toimimist.
Linuxi administreerimise aine raames paigaldada vastavale Ubuntu serverile sissetungimise avastamise süsteem nimega Suricata. Pärast paigaldust konfigureerida peamised sätted ja reeglid ning viimasena testida süsteemi toimimist.
= Mis on Suricata? =
Suricata on suure jõudlusega võrgu sissetungimise, ennetamise ja turvalisuse monitoorimise mootor. See on avatud lähtekoodiga ja omanikuks on kommuun, mida juhib mittetulunduslik sihtasutus "the Open Information Security Foundation" ehk OISF. [http://suricata-ids.org/] Suricata mootor pole ainult mõeldud selleks, et vahetada välja või emuleerida olemasolevaid tööriistu, vaid tuua uusi ideid ja tehnoloogiaid maastikule. Suricata mootor ja HTP teek on saadaval GPLv2 alusel. [https://redmine.openinfosecfoundation.org/projects/suricata/wiki/What_is_Suricata]


= Eeldused =
= Eeldused =
Line 18: Line 16:
*Oskus hakkama saada käsureaga.
*Oskus hakkama saada käsureaga.
*Algteadmised võrgundusest (Cisco CCNA1).
*Algteadmised võrgundusest (Cisco CCNA1).
= Mis on Suricata? =
Suricata on suure jõudlusega võrgu sissetungimise, ennetamise ja turvalisuse monitoorimise mootor. See on avatud lähtekoodiga ja omanikuks on kommuun, mida juhib mittetulunduslik sihtasutus "the Open Information Security Foundation" ehk OISF. <ref>Suricata kirjeldus, http://suricata-ids.org/</ref> Suricata mootor pole ainult mõeldud selleks, et vahetada välja või emuleerida olemasolevaid tööriistu, vaid tuua uusi ideid ja tehnoloogiaid maastikule. Suricata mootor ja HTP teek on saadaval GPLv2 alusel. <ref>Suricata tutvustus OISF-i kodulehel, https://redmine.openinfosecfoundation.org/projects/suricata/wiki/What_is_Suricata</ref>
== Suricata eelised Snordi ees <ref> Miks kasutada Suricatat?,https://alienvault.bloomfire.com/posts/525383-when-should-i-use-suricata/public</ref> ==
Suricata on alternatiivne variant Snordile, mille reeglid ühilduvad ka Suricataga, mille tõttu võib väikse vaevaga Snordi Suricata vastu välja vahetada.
Mõned Suricata eelised:
*Suurem jõudlus (Suricata kasutab mitmelõimelist, kuid Snort ühelõimelilt töötlemist)
*Parem liikluse nähtavus (Suricatal on nähtavus rakenduskihis (OSI 7. kiht), mis suurendab pahatahtliku sisu avastamist)
*Kiirem normaliseerimine ja parsimine HTTP voogude jaoks.
*Automatiseeritud protokolli tuvastus (Vähendab valepositiivseid tulemusi ja avastamme protokolle, mis töötavad mittestandardsetel portidel)
*Suricatat paigaldatakse ka komertstoodete sisse.
*Ainus lahendus, mis töötab otse riistavara peal, mille tõttu on olemas ka spetsiaalseid riistavarilisi lahendusi Suricata jaoks.
= Süsteemi üldkirjeldus =
Suricatat on võimalik konfigureerida nii IDS-ks kui ka IPS-ks.
*'''IDS ehk "Intrusion Detection System"'''
IDS süsteemid jälgivad võrguliiklust ja käituvad vastavalt seadistatud reeglistikule. IDS jälgib paketi tasemel liiklust IDS süsteem on tavaliselt ühendatud "switchiga" ehk kommutaatoriga. Näiteks on võimalik defineerida, et ICMP pakketide liikumisest logitakse. Samuti on võimalik määrata, et logitakse näiteks SSH-ga valesti sisestatud kasutajanime ja parooli.
*'''IPS ehk "Intrusion Prevention System"'''
IPS süsteemid jälgivad võrku sissetulevat ja väljaminevat liiklust. Vastavalt konfigureeritud reeglistikule IPS süsteemid, kas lasevad paketid läbi või takistavad nende liikumist. IPS jälgib paketi tasemel liiklust. IPS süsteemid paigaldatakse tavaliselt, kas enne tulemüüri või peal tulemüüri sisevõrku.
Suricata IPS'is kasutatavad tegevused ja nende järjekord:<ref>Suricata Action-order, https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricatayaml#Action-order</ref>
*'''PASS(luba)''' kui Suricata leiab kirjeldatud lubatud reeglite hulgast signatuuri ja see vastab paketile, siis saadetakse antud pakett edasi.
*'''DROP(eemalda/lõpeta)''' kui Suricata leiab kirjeldatud reeglite hulgast keelava signatuuri ning see vastab paketile, siis antud pakett tühistatakse. Saatjale selle kohast infot ei saadeta, saatja saab TCP time-out teate. Samuti raporteeritakse paketi eemaldamisest.
*'''REJECT(lükka tagasi)''' kui Suricata leiab kirjeldatud reeglite hulgast keelava signatuuri ning see vastab paketile ja kasutusel on "reject" käsk, siis tühistatakse pakett. Nii saatja kui saaja saavad "reject" teate.
*'''Alert(teavita)''' kui Suricata leiab kirjeldatud reeglite hulgast signatuuri, mis vastab antud paketile, siis genereeritakse teade ja liiklus lubatakse.
== IDS/IPS esitus graafilisel kujul ==
IPS kasutamise võimalused võrgu ehituses (Joonis 1. ja Joonis2):
[[File:Diagram1.jpeg]]
Joonis 1.
[[File:Diagram2.jpeg]]
Joonis 2.
IDS kasutamise võimalused võrgu ehituses (Joonis3):
[[File:Diagram3.jpeg]]
Joonis 3.


= Nõuded =
= Nõuded =


Nii server kui ka klient töötavad meie lahenduse puhul Oracle'i [https://www.virtualbox.org/wiki/Downloads Virtualboxi] peal. Lisaks on soovitav on kasutada "Extension Packi" ja "Guest Additione".
Nii server kui ka klient töötavad meie lahenduse puhul Oracle'i [https://www.virtualbox.org/wiki/Downloads Virtualboxi] peal.  


''' Server '''
Kasutame näidetes Ubuntu serverit ja Ubuntu klienti (sobiv klient valida ise - Ubuntu, Lubuntu, Xubuntu, Kubuntu).
 
Toetatud on sellised Ubuntu 32bit ja 64bit versioonid <ref>Toetatud ubuntu versioonide nimekiri, https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Ubuntu_Installation_-_Personal_Package_Archives_%28PPA%29</ref>:
 
*10.04 Lucid
*12.04 Precise
*12.10 Quantal
*13.04 Raring
*13.10 Saucy
 
Lisaks on soovitav kasutada "Guest Additione"-it.
 
''' Ubuntu Server '''


*Ubuntu Server 12.04.1 LTS (64bit) - http://elab.itcollege.ee:8000/ubuntu-12.04.1-server-amd64.iso
*RAM 512MB
*RAM 512MB
*HDD dynamicly allocated 8GB
*HDD dynamicly allocated 8GB
*2 Võrgukaarti NIC1 - NAT (eth0 - Ubuntus) ja NIC2 - HostOnly (eth1 - Ubuntus)
*2 Võrgukaarti NIC1 - NAT (eth0 - Ubuntus) ja NIC2 - HostOnly (eth1 - Ubuntus)
*Liidese eth1 ip aadress 192.168.56.201
*Liidese eth1 lisada staatiline ip aadress - 192.168.56.xxx
*OpenSSH olemasolu
*OpenSSH serveri olemasolu


Kasutasime eelnevalt seadistatud [http://elab.itcollege.ee:8000/infra_server.ova serverit], mis on pärit IT infrastruktuuri teenuste ainest, mida natuke muutsime (sellest lähemalt eelseadistuse osas).
Kasutasime eelnevalt seadistatud [http://elab.itcollege.ee:8000/infra_server.ova serverit], mis on pärit IT infrastruktuuri teenuste ainest, mida muutsime (sellest lähemalt eelseadistuse osas).
Kasutajanimi ja parool on student.
Kasutajanimi ja parool on student.


''' Klient '''
''' Klient '''


*Ubuntu Desktop 12.04.1 LTS (64bit) - http://elab.itcollege.ee:8000/ubuntu-12.04.1-desktop-amd64.iso
*RAM vastavalt graafilise keskkonna nõuetele. Soovitav 512 - 1024MB
*OpenSSH olemasolu
*HDD dynamicly allocated 8GB
*2 Võrgukaarti NIC1 - NAT (eth0 - Ubuntus) ja NIC2 - HostOnly (eth1 - Ubuntus)


Kasutasime eelnevalt seadistatud [http://elab.itcollege.ee:8000/infra_klient.ova klienti]. Kasutajanimi ja parool on student.
Kasutasime eelnevalt seadistatud [http://elab.itcollege.ee:8000/infra_klient.ova klienti]. Kasutajanimi ja parool on student.


= Eelseadistus =
= Eelseadistus(kasutades eelpaigaldatud serverit) =


Kõik käsud käivitame serveris juurkasutaja õigustes.
Kõik käsud käivitame serveris juurkasutaja õigustes.


1.Muudame ära hostname'i nimeks suricata.
Juurkasutajale üleminek:
<source lang="bash">
sudo -i
</source>
 
1.Muudame ära hostname'i nimeks "suricata".
<source lang="bash">
<source lang="bash">
nano /etc/hostname
nano /etc/hostname
Line 88: Line 160:
</source>
</source>


= Paigaldus Ubuntu serveris [https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Ubuntu_Installation_from_GIT] =
= Paigaldus Ubuntu serveris (võimaldab kasutada nii IDS kui IPS funktsioone) <ref> Suricata paigaldus Ubuntus, https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Ubuntu_Installation_from_GIT</ref> =
 
Kõik käsud käivitame serveris juurkasutaja õigustes.


1. Kõigepealt paigaldame paki nimega "python-software-properties", kuna selle sees asub programm "add-apt-repository", mida kasutame järgmisena.
1. Kõigepealt paigaldame paki nimega "python-software-properties", kuna selle sees asub programm "add-apt-repository", mida kasutame järgmisena.
Line 119: Line 193:
</source>
</source>


 
= Esmane seadistamine =
= Süsteemi üldkirjeldus =
 
Siia tuleb panna skeem ja juurde kirjutada.
 
= Baaskonfiguratsioon =


Need käsud käivita serveris juurkasutajaõigustes.
Need käsud käivita serveris juurkasutajaõigustes.
Line 133: Line 202:
</source>
</source>


2. Avame faili /etc/suricata/suricata.yaml
 
2. Avame Suricata konfiguratsiooni faili /etc/suricata/suricata.yaml
<source lang="bash">
<source lang="bash">
nano /etc/suricata/suricata.yaml
nano /etc/suricata/suricata.yaml
</source>
</source>


3. Kirjeldame, millised operatsioonisüsteemid on meie võrgus seal, kus hakkab rida "host-os-policy" ja nimetame nende ip aadressid. [https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricatayaml#Host-os-policy]
3. Kirjeldame, millised operatsioonisüsteemid on meie võrgus seal, kus hakkab rida "host-os-policy" ja nimetame nende ip aadressid. <ref>Yamli Host-os-policy informatsioon, https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricatayaml#Host-os-policy</ref>
<source lang="bash">
<source lang="bash">
host-os-policy:
host-os-policy:
Line 156: Line 226:
</source>
</source>


4. Kirjeldame koduvõrgu serveri ip aadressi kohas, mis algab reaga "address-groups:" [https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricatayaml#Rule-vars]
4. Kirjeldame võrgu ip aadressi ja maski kohas, mis algab reaga "address-groups:" <ref>Yamli address-groups lahtiseletus, https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricatayaml#Rule-vars</ref>


<source lang="bash">
<source lang="bash">
Line 166: Line 236:
</source>
</source>


== Kiire testimine [http://www.linux.org/threads/suricata-the-snort-replacer-part-2-configure-test.4348/] ==
5. Võimalik on lisada konfiguratsiooni faili pordid kus meil teenused töötavad. Selleks leiame konfiguratsioonist rea, mis algab fraasiga "HTTP_PORTS: "80""
<ref>Teenuste portide lisamine, http://www.linux.org/threads/suricata-the-snort-replacer-part-2-configure-test.4348/</ref>
 
<source lang="bash">
    HTTP_PORTS: "80"
 
    SHELLCODE_PORTS: "!80"
 
    ORACLE_PORTS: 1521
 
    SSH_PORTS: 22
 
    DNP3_PORTS: 20000
 
</source>
 
Lisame HTTP_PORTS sektsiooni juurde näiteks pordi 8080:
<source lang="bash">
    HTTP_PORTS: "80,8080"
 
    SHELLCODE_PORTS: "!80"
 
    ORACLE_PORTS: 1521
 
    SSH_PORTS: 22
 
    DNP3_PORTS: 20000
 
</source>
 
== Kiire testimine <ref>Suricata testimine ühe reegli abil, http://www.linux.org/threads/suricata-the-snort-replacer-part-2-configure-test.4348/</ref> ==


Need käsud käivita serveris juurkasutaja õigustes.
Need käsud käivita serveris juurkasutaja õigustes.
Line 223: Line 323:
</source>
</source>


=Randeli reeglite teema=
8. Edasi saab logi puhul kasutada mõnda sündmuste korreleerimise töörista nagu näiteks SEC, mille kohta saab lugeda siit: http://simple-evcorr.sourceforge.net/SEC-tutorial/article.html või uurida EIK enda wikist teemat [https://wiki.itcollege.ee/index.php/Keskne_logihaldus_Rsyslog_ja_SEC_n%C3%A4itel Keskne logihaldus Rsyslog ja SEC näitel].
 
== Reeglite sisselükkamine: ==
 
Suricata uuemates versioonides tulevad baasreeglid kaasa. Need asuvad kaustas /etc/suricata/rules
<source lang="bash">
cd /etc/suricata/rules
ll
</source>
 
Olemasolevaid reegleid saab lähemalt uurida käsuga less. Näites uurime malware reeglit.
<source lang="bash">
less emerging-malware.rules
</source>
 
Kui vajalikud reeglid on valitud, siis tuleb need suricata konfiguratsioonifaili lisada. Selleks tuleb reeglid uuesti sisse kommenteerida.
<source lang="bash">
nano /etc/suricata/suricata.yaml
- emerging-malware.rules
</source>
 
Seejärel tuleb suricata uuesti käivitada:
<source lang="bash">
suricata -c /etc/suricata/suricata.yaml -i eth1
</source>
 
 
== Uue reegli tegemine: ==
Suricatas saab ise reegleid teha vastavalt vajadustele. Näites teeme XSSi keelava reegli.
 
1. Teeme /etc/suricata/rules kausta uue faili nimega xss.rules
<source lang="bash">
nano /etc/suricata/rules/xss.rules
</source>
 
2. Seejärel kirjutame reegli:
<source lang="bash">
drop http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"skripti tag avastatud URIs, voimalik xss runne"; flow:to_server,established; uricontent:"</script>"; nocase; reference:url,ha.ckers.org/xss.html;
reference:url,doc.emergingthreats.net/2009714; classtype:web-application-attack; sid:2009714; rev:5;)
</source>
 
3. Kui reegel on tehtud, tuleb see lisada ka suricata konfiguratsiooni:
<source lang="bash">
nano /etc/suricata/suricata.yaml
</source>
Otsime üles koha, kus on reeglid ning lisame enda tehtud xss reegli.
<source lang="bash">
rule-files:
- test.rules
- xss.rules
- emerging-malware.rules
</source>
 
4. Viimase sammuna tuleb suricata uuesti käivitada:
<source lang="bash">
suricata -c /etc/suricata/suricata.yaml -i eth1
</source>


=Kokkuvõte=
=Kokkuvõte=


= Kasutatud materjalid =
Kui aus olla, siis alguses päris täpselt ei teadnudki, mida Suricata endast kujutab, kuid pärast wiki artikli kirjutamist on juba mingi ettekujutas, mida antud süsteem teeb. Suricata paigaldamise ja konfigureerimise käigus avastasime, et on olemas mitu erinevat varianti, kuidas antud süteemi paigaldada. Meie õnneks saime teada, et kõige uuema versiooniga on meie eest pool tööd tehtud ning me ei pidanudki käsitsi kopeerima erinevaid konfiguratsiooni faile. Kokkuvõttes on Suricata väga võimas ja paljude võimalustega tööriist, mille täielikuks arusaamiseks peaks seda proovima testida reaalsetes olukordades.
 
= Kasulikud materjalid =


*http://www.linux.org/threads/suricata-the-snort-replacer-part-1-intro-install.4346/
*http://www.linux.org/threads/suricata-the-snort-replacer-part-1-intro-install.4346/
Line 235: Line 393:
*https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Installation
*https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Installation
*https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Basic_Setup
*https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Basic_Setup
*
*http://www.sans.org/reading-room/whitepapers/detection/configuring-security-onion-detect-prevent-web-application-attacks-33980


[[Category: Linuxi administreerimine]]
[[Category: Linuxi administreerimine]]
= Viited =
<references />

Latest revision as of 12:00, 11 December 2014

Autorid: Martin Leppik ja Randel Raidmets

Reeglite sisselükkamise osa, uue reegli tegemine: Rene Juhanni

Rühm: A31

Kuupäev: 12.12.2013

Eesmärk

Linuxi administreerimise aine raames paigaldada vastavale Ubuntu serverile sissetungimise avastamise süsteem nimega Suricata. Pärast paigaldust konfigureerida peamised sätted ja reeglid ning viimasena testida süsteemi toimimist.

Eeldused

  • Baasteadmised Linuxist.
  • Oskus hakkama saada käsureaga.
  • Algteadmised võrgundusest (Cisco CCNA1).

Mis on Suricata?

Suricata on suure jõudlusega võrgu sissetungimise, ennetamise ja turvalisuse monitoorimise mootor. See on avatud lähtekoodiga ja omanikuks on kommuun, mida juhib mittetulunduslik sihtasutus "the Open Information Security Foundation" ehk OISF. [1] Suricata mootor pole ainult mõeldud selleks, et vahetada välja või emuleerida olemasolevaid tööriistu, vaid tuua uusi ideid ja tehnoloogiaid maastikule. Suricata mootor ja HTP teek on saadaval GPLv2 alusel. [2]

Suricata eelised Snordi ees [3]

Suricata on alternatiivne variant Snordile, mille reeglid ühilduvad ka Suricataga, mille tõttu võib väikse vaevaga Snordi Suricata vastu välja vahetada.

Mõned Suricata eelised:

  • Suurem jõudlus (Suricata kasutab mitmelõimelist, kuid Snort ühelõimelilt töötlemist)
  • Parem liikluse nähtavus (Suricatal on nähtavus rakenduskihis (OSI 7. kiht), mis suurendab pahatahtliku sisu avastamist)
  • Kiirem normaliseerimine ja parsimine HTTP voogude jaoks.
  • Automatiseeritud protokolli tuvastus (Vähendab valepositiivseid tulemusi ja avastamme protokolle, mis töötavad mittestandardsetel portidel)
  • Suricatat paigaldatakse ka komertstoodete sisse.
  • Ainus lahendus, mis töötab otse riistavara peal, mille tõttu on olemas ka spetsiaalseid riistavarilisi lahendusi Suricata jaoks.

Süsteemi üldkirjeldus

Suricatat on võimalik konfigureerida nii IDS-ks kui ka IPS-ks.

  • IDS ehk "Intrusion Detection System"

IDS süsteemid jälgivad võrguliiklust ja käituvad vastavalt seadistatud reeglistikule. IDS jälgib paketi tasemel liiklust IDS süsteem on tavaliselt ühendatud "switchiga" ehk kommutaatoriga. Näiteks on võimalik defineerida, et ICMP pakketide liikumisest logitakse. Samuti on võimalik määrata, et logitakse näiteks SSH-ga valesti sisestatud kasutajanime ja parooli.

  • IPS ehk "Intrusion Prevention System"

IPS süsteemid jälgivad võrku sissetulevat ja väljaminevat liiklust. Vastavalt konfigureeritud reeglistikule IPS süsteemid, kas lasevad paketid läbi või takistavad nende liikumist. IPS jälgib paketi tasemel liiklust. IPS süsteemid paigaldatakse tavaliselt, kas enne tulemüüri või peal tulemüüri sisevõrku.

Suricata IPS'is kasutatavad tegevused ja nende järjekord:[4]

  • PASS(luba) kui Suricata leiab kirjeldatud lubatud reeglite hulgast signatuuri ja see vastab paketile, siis saadetakse antud pakett edasi.
  • DROP(eemalda/lõpeta) kui Suricata leiab kirjeldatud reeglite hulgast keelava signatuuri ning see vastab paketile, siis antud pakett tühistatakse. Saatjale selle kohast infot ei saadeta, saatja saab TCP time-out teate. Samuti raporteeritakse paketi eemaldamisest.
  • REJECT(lükka tagasi) kui Suricata leiab kirjeldatud reeglite hulgast keelava signatuuri ning see vastab paketile ja kasutusel on "reject" käsk, siis tühistatakse pakett. Nii saatja kui saaja saavad "reject" teate.
  • Alert(teavita) kui Suricata leiab kirjeldatud reeglite hulgast signatuuri, mis vastab antud paketile, siis genereeritakse teade ja liiklus lubatakse.

IDS/IPS esitus graafilisel kujul

IPS kasutamise võimalused võrgu ehituses (Joonis 1. ja Joonis2):

Joonis 1.

Joonis 2.


IDS kasutamise võimalused võrgu ehituses (Joonis3):

Joonis 3.

Nõuded

Nii server kui ka klient töötavad meie lahenduse puhul Oracle'i Virtualboxi peal.

Kasutame näidetes Ubuntu serverit ja Ubuntu klienti (sobiv klient valida ise - Ubuntu, Lubuntu, Xubuntu, Kubuntu).

Toetatud on sellised Ubuntu 32bit ja 64bit versioonid [5]:

  • 10.04 Lucid
  • 12.04 Precise
  • 12.10 Quantal
  • 13.04 Raring
  • 13.10 Saucy

Lisaks on soovitav kasutada "Guest Additione"-it.

Ubuntu Server

  • RAM 512MB
  • HDD dynamicly allocated 8GB
  • 2 Võrgukaarti NIC1 - NAT (eth0 - Ubuntus) ja NIC2 - HostOnly (eth1 - Ubuntus)
  • Liidese eth1 lisada staatiline ip aadress - 192.168.56.xxx
  • OpenSSH serveri olemasolu

Kasutasime eelnevalt seadistatud serverit, mis on pärit IT infrastruktuuri teenuste ainest, mida muutsime (sellest lähemalt eelseadistuse osas). Kasutajanimi ja parool on student.

Klient

  • RAM vastavalt graafilise keskkonna nõuetele. Soovitav 512 - 1024MB
  • HDD dynamicly allocated 8GB
  • 2 Võrgukaarti NIC1 - NAT (eth0 - Ubuntus) ja NIC2 - HostOnly (eth1 - Ubuntus)

Kasutasime eelnevalt seadistatud klienti. Kasutajanimi ja parool on student.

Eelseadistus(kasutades eelpaigaldatud serverit)

Kõik käsud käivitame serveris juurkasutaja õigustes.

Juurkasutajale üleminek:

sudo -i

1.Muudame ära hostname'i nimeks "suricata".

nano /etc/hostname

2.Muudame liidese eth1 IP aadressi selliseks 192.168.56.201.

nano /etc/network/interfaces

Liidese eth1 näidis:

auto eth1
iface eth1 inet static
        address 192.168.56.201
        netmask 255.255.255.0

3. Kirjeldame faili /etc/hosts sisu

nano /etc/hosts

Faili /etc/hosts faili näidis:

127.0.0.1       localhost
127.0.1.1       suricata.planet.zz      suricata
192.168.56.201  suricata.planet.zz      suricata
192.168.56.200  puppetmaster.planet.zz  puppetmaster
192.168.56.101  klient.planet.zz        klient

4. Uuendame ära tarkvara nimekirja info

apt-get update

5. Uuendame ära tarkvara

apt-get upgrade

Paigaldus Ubuntu serveris (võimaldab kasutada nii IDS kui IPS funktsioone) [6]

Kõik käsud käivitame serveris juurkasutaja õigustes.

1. 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

2. Viimase stabiilse Suricata versiooni jaoks käivita vastavad käsud:

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

3. Järgmisena paigalda Suricata

apt-get install suricata

Uuendamine ja eemaldamine

1. Suricata uuendamiseks käsud

apt-get update
apt-get upgrade

2. Eemaldamiseks käsk

apt-get remove suricata

Esmane seadistamine

Need käsud käivita serveris juurkasutajaõigustes.

1. Loome kausta Suricata logide jaoks.

mkdir /var/log/suricata


2. Avame Suricata konfiguratsiooni faili /etc/suricata/suricata.yaml

nano /etc/suricata/suricata.yaml

3. Kirjeldame, millised operatsioonisüsteemid on meie võrgus seal, kus hakkab rida "host-os-policy" ja nimetame nende ip aadressid. [7]

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: []

4. Kirjeldame võrgu ip aadressi ja maski kohas, mis algab reaga "address-groups:" [8]

  address-groups:

    HOME_NET: "[192.168.56.0/24]"

    EXTERNAL_NET: "!$HOME_NET"

5. Võimalik on lisada konfiguratsiooni faili pordid kus meil teenused töötavad. Selleks leiame konfiguratsioonist rea, mis algab fraasiga "HTTP_PORTS: "80"" [9]

    HTTP_PORTS: "80"

    SHELLCODE_PORTS: "!80"

    ORACLE_PORTS: 1521

    SSH_PORTS: 22

    DNP3_PORTS: 20000

Lisame HTTP_PORTS sektsiooni juurde näiteks pordi 8080:

    HTTP_PORTS: "80,8080"

    SHELLCODE_PORTS: "!80"

    ORACLE_PORTS: 1521

    SSH_PORTS: 22

    DNP3_PORTS: 20000

Kiire testimine [10]

Need käsud käivita serveris juurkasutaja õigustes.

1. Loome faili test.rules kausta /etc/suricata/rules/

touch /etc/suricata/rules/test.rules

2. Kirjutama test.rules faili testimise jaoks ühe reegli.

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

3. Avame uuesti faili /etc/suricata/suricata.yaml, kus lähme asukohta, mis hakkab reaga "rule_files:" ja kommenteerime kõik reeglid välja ja kirjeldame seal oma reegli nimega "test.rules".

rule-files:
  - test.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
...

4. Paneme suricata monitoorima eth1 liidese peal.

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

5. Teeme oma kliendi masina pealt pingi Suricata serveri pihta.

ping 192.168.56.201

6. Laseme tunde järgi pingida ja seejärel paneme monitoorimise kinni ning vaatame logi.

less /var/log/suricata/fast.log

7. Logi sisu peaks olema umbes selline:

01/15/2014-00:08:59.409903  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.101:8 -> 192.168.56.201:0
01/15/2014-00:08:59.409937  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.201:0 -> 192.168.56.101:0
01/15/2014-00:09:00.410130  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.101:8 -> 192.168.56.201:0
01/15/2014-00:09:00.410171  [**] [1:2:1] ICMP detected [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.56.201:0 -> 192.168.56.101:0

8. Edasi saab logi puhul kasutada mõnda sündmuste korreleerimise töörista nagu näiteks SEC, mille kohta saab lugeda siit: http://simple-evcorr.sourceforge.net/SEC-tutorial/article.html või uurida EIK enda wikist teemat Keskne logihaldus Rsyslog ja SEC näitel.

Reeglite sisselükkamine:

Suricata uuemates versioonides tulevad baasreeglid kaasa. Need asuvad kaustas /etc/suricata/rules

cd /etc/suricata/rules
ll

Olemasolevaid reegleid saab lähemalt uurida käsuga less. Näites uurime malware reeglit.

less emerging-malware.rules

Kui vajalikud reeglid on valitud, siis tuleb need suricata konfiguratsioonifaili lisada. Selleks tuleb reeglid uuesti sisse kommenteerida.

nano /etc/suricata/suricata.yaml
 - emerging-malware.rules

Seejärel tuleb suricata uuesti käivitada:

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


Uue reegli tegemine:

Suricatas saab ise reegleid teha vastavalt vajadustele. Näites teeme XSSi keelava reegli.

1. Teeme /etc/suricata/rules kausta uue faili nimega xss.rules

nano /etc/suricata/rules/xss.rules

2. Seejärel kirjutame reegli:

drop http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"skripti tag avastatud URIs, voimalik xss runne"; flow:to_server,established; uricontent:"</script>"; nocase; reference:url,ha.ckers.org/xss.html; 
reference:url,doc.emergingthreats.net/2009714; classtype:web-application-attack; sid:2009714; rev:5;)

3. Kui reegel on tehtud, tuleb see lisada ka suricata konfiguratsiooni:

nano /etc/suricata/suricata.yaml

Otsime üles koha, kus on reeglid ning lisame enda tehtud xss reegli.

rule-files:
 - test.rules
 - xss.rules
 - emerging-malware.rules

4. Viimase sammuna tuleb suricata uuesti käivitada:

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

Kokkuvõte

Kui aus olla, siis alguses päris täpselt ei teadnudki, mida Suricata endast kujutab, kuid pärast wiki artikli kirjutamist on juba mingi ettekujutas, mida antud süsteem teeb. Suricata paigaldamise ja konfigureerimise käigus avastasime, et on olemas mitu erinevat varianti, kuidas antud süteemi paigaldada. Meie õnneks saime teada, et kõige uuema versiooniga on meie eest pool tööd tehtud ning me ei pidanudki käsitsi kopeerima erinevaid konfiguratsiooni faile. Kokkuvõttes on Suricata väga võimas ja paljude võimalustega tööriist, mille täielikuks arusaamiseks peaks seda proovima testida reaalsetes olukordades.

Kasulikud materjalid

Viited