You are on page 1of 14

Snort eta Elastic Stack elkarlotzeko

konfigurazioa
2019-2020
AURKIBIDEA
1. Sarrera .................................................................................................. 1

2. Snort duen makinan egin beharreko eguneraketak ................................ 1

3. Elastic Stack duen makinan egin beharreko eguneraketak ...................... 4


1. SARRERA
Snort oso erreminta baliagarria da trafikoaren gaineko alertak jasotzeko.
Trafiko orokorreko alertak jasotzeko oso interesgarria izan badaiteke ere, segurtasun
industrialean berebiziko garrantzia hartzen du. Alde batetik, segurtasun
industrialean har daitezkeen neurriak mugatuak dira eta bestetik, IDS bezala
konfiguratzen bada pasiboki lan egiten du, sarean trafiko gehigarririk sortzen ez
duelarik.

Bestalde, Elastic Stack log-etan oinarritutako informazioa modu bisualean


jasotzeko erreminta interesgarri bat da. Log-etan gordetzen den informazioaren
gainean bilaketak eta grafikoak sortzea ahalbidetzen du. Hau dela eta,
segurtasuneko erreminta ezberdinekin lotzen da, hala nola suhesiak eta IDS
sistemak, babestu nahi den azpiegituraren segurtasunaren informazioa
zentralizatuta izateko.

Hurrengo gida honetan aurreko bi erreminta hauek nola lotu daitezkeen


azaltzen da. Hau dela eta, beharrezkoa da aurretik Snort eta Elastic Stack bi makina
birtual ezberdinetan instalatuta izatea. Beharrezkoa bada aldez aurretik Snort eta
Elastic Stack instalatzeko eta konfiguratzeko gidak jarraitu daitezke.

2. SNORT DUEN MAKINAN EGIN


BEHARREKO EGUNERAKETAK
Snort makinan egin beharreko aldaketen helburua bere log-ak Elastic Stack-ari
pasatzea da. Lehenengo pausoa Snort instalatzeko gidaren azken pausoetan
egindako zenbait aldaketa desegin behar dira. Besteak beste, une honetan bakarrik
norberak egindako erregelak mantentzea nahi da alerta askok sortzen duten zarata
txikitzeko.

Lehenik, ireki snort.lua fitxategia ireki.

$ sudo nano /usr/local/etc/snort/snort.lua

1
165. lerro inguruan dagoen ips atalean Snort-ek dakartzan erregelak ez
erabiltzeko esan behar zaio. Lerroa komentatzeko aurretik bi gidoi jarri behar dira.
Bukatzean gorde eta itxi fitxategia.

-- enable_builtin_rules = true,

Snort-en gida jarraitzerakoan komunitateak sortutako erregela sorta bat ere


gehitu zen. Sorta honi erreferentzia ips.include fitxategian egiten da. Ireki, beraz,
fitxategi hau.

$ sudo nano /usr/local/etc/snort/rules/ips.include

Fitxategi honetan komunitateko erregelei erreferentzia egiten dien lerroa


komentatu behar da aurretik traol karakterea (#) gehituta. Bukatzean aldaketak
gorde eta itxi fitxategia.

#include rules/snort3-community.rules

Orain Snort zerbitzua berrabiarazi behar da egindako aldaketak karga ditzan.


Honetaz gain, orain arte sortutako log-ak ezabatu behar dira.

$ sudo systemctl restart snort3


$ sudo rm /var/log/snort/*

Orain, log-ak Elastic Stack-aren makinera bidaltzeko beharrezkoa den Filebeat


instalatu behar da. Aipatzekoa da log-ak JSON formatoan pasatuko direla. Horrela ez
dira Elastic Stack-en aldez aurretik prozesatu behar.

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-


elasticsearch | sudo apt-key add -
$ echo "deb https://artifacts.elastic.co/packages/7.x/apt
stable main" | sudo tee /etc/apt/sources.list.d/elastic-
7.x.list
$ sudo apt update
$ sudo apt install filebeat

Behin instalatuta, erreminta hau konfiguratu behar da. Ireki filebeat.yml


konfigurazio fitxategia.

$ sudo nano /etc/filebeat/filebeat.yml

2
Filebeat inputs atalean (fitxategi hasieran) ondokoa adierazi behar da.

Testu honekin log-en kokapena eta egitura adierazten zaio Filebeat-i. Honetaz
gain, etiketa bat gehitzen zaio aurrerago Logstash-en filtratu ahal izateko.

Fitxategi berdinean, Elasticsearch output atalean honi egiten zaizkion bi


erreferentziak komentatu behar dira lerroen aurretik traol karakterea (#) gehituz.
Jarraian, Logstash output atalean bi lerro deskomentatu eta Elastic Stack duen
makinaren IP helbidea adierazi behar da.

Bukatzean, aldaketak gorde, fitxategia itxi eta Filebeat hasieratu. Honetaz gain,
makina piztean zerbitzu bezala ere aktibatu.

$ sudo systemctl start filebeat


$ sudo systemctl enable filebeat

Une honetan, bi makinen arteko konexioa ondo dabilen konproba daiteke


Snort makinan Filebeat ondo konektatu den ikusiz.

3
$ sudo systemctl status filebeat

Honekin, Snort duen makinan egin beharreko aldaketak eginak egongo


lirateke. Orain, Elastic Stack duen makinan beste zenbait aldaketa egin behar dira.

3. ELASTIC STACK DUEN MAKINAN


EGIN BEHARREKO EGUNERAKETAK
Makina honetan egin beharreko aldaketak Snort makinaren Filebeat-en
mezuak onartzea eta hauek Logstash-en ondo kudeatzea dira.

Hasteko, Filebeat-etik urruneko makina batetik 5044 portura datozen mezuak


onartzeko UFW suhesian erregela bat gehitu behar da.

$ sudo ufw allow 5044

Orain Logstash-en konfigurazioa eguneratu behar da. Logstash-en sarrera


berdin geratzen da, dagoeneko Filebeat-etik 5044 portura datozen mezuak
prozesatzeko konfiguratuta dago. Horrela, Elastic Stack-aren gidan sortu zen beats-
input.conf fitxategiaren edukia honakoa da:

input {
beats {
port => 5044
}
}

4
Logstash-en filtro pausoari dagokionez, posible da aurretik sortutako
filtroarekin batera lan egiten duen beste filtro bat sortzea, baina kasu honetan
gauzak modu sinplean uzteko Elastic Stack-aren gidan sortutako ssh-auth-filter.conf
fitxategiari izena aldatuko zaio eta beste berri bat sortuko da Snort-en alertak
filtratzeko.

$ sudo mv /etc/logstash/conf.d/filter-ssh.conf
/etc/logstash/conf.d/filter-ssh.conf.old
$ sudo nano /etc/logstash/conf.d/filter-snort.conf

Fitxategi honetan ondoko testua gehitu beharko da. Konfigurazio honekin, json
etiketa batekin datozen mezuak dauden bezala uzteko esaten zaio. Filebeat-en
konfigurazioan etiketa hau definitu da.

filter {
if [json] {
json { source => "message" }
}
}

ADI: Testua zuzenean kopiatzen bada batzuetan komatxoak ez ditu ondo


kopiatzen eta errorea eman dezakete. Honek erroreren bat ematen badu, behin
kopiatuta eskuz borratu eta idatzi.

Bukatzeko, Logstash-en irteera ere amankomuna izan daiteke jasotzen diren


mezu guztientzat, baina, gauzak sinplifikatzearren aurretik sortutako konfigurazio
fitxategia gorde eta beste berri bat sortuko da.

$ sudo mv /etc/logstash/conf.d/output-elasticsearch.conf
/etc/logstash/conf.d/output-elasticsearch.conf.old
$ sudo nano /etc/logstash/conf.d/output-elasticsearch.conf

Fitxategi honetan ondorengo edukia gehituko da. Sartu ondoren fitxategia


gorde eta itxi.

5
output {
elasticsearch {
hosts => ["localhost:9200"]
manage_template => false
index => "snort-%{+YYYY.MM}"
}
}

Orain komeni da Elastic Stack osoa berrasieratzea egin diren aldaketak karga
daitezen. Komenigarria da ere berpizten diren elementuen artean 20-30 segundu
abiarazteko denbora nahikoa izan dezaten.

$ sudo systemctl restart elasticsearch


$ sudo systemctl restart kibana
$ sudo systemctl restart logstash

Behin modulu guztiak berrabiatuta daudenean, Snort-en oinarritutako indize


berriak Elasticsearch-en ondo kargatu diren ikus daiteke ondoko komandoa
erabilita.

$ curl -X GET localhost:9200/_cat/indices?v

Orain ireki Kibana Elastic Stack duen makinaren nabigatzaile batean eta
nabigatu Management atalera. Index patterns aukeran Elastic Stack-aren gidan sortu
zen ssh_auth patroia egongo da. Oraingo honetan beste patroi berri bat sortzea nahi
da, hain zuzen ere Snort-en indizearekin bat datorren bat.

Sakatu Create index pattern botoia eta Index pattern text-boxean sartu snort-*.
Honekin bakarrik izen horrekin datozen indizeentzat bat datorren patroia sortuko

6
da. Hurrengo pausoan aukeratu @timestamp eta sakatu Create index pattern botoia
bukatzeko.

Aurreko leihoan Snort-en indizeari dagokion patroiak ezberdintzen dituen


elementuak azter daitezke. Besteak beste, 6. orrialdean JSON-i dagokion
elementuak listatzen hasten dira. Horrela bada ondo joan denaren seinale izango da.
Bukatzeko, Kibana pizten den bakoitzean sortu berri den patroia defektuz hartzea
nahi da. Une honetan Elastic Stack-en gidan sortutakoa da defektuz hartzen dena.
Hau aldatzeko, leiho honetan goian eskubialdean dagoen izartxoan klik eginez
Snort-en patroia bihurtuko da defektuzko.

Orain, Kibanaren Discover atalera nabigatzean Snort-i dagokion alertak ikusiko


dira. Une honetatik aurrera makina birtualetik edota fisikotik Ping deiak eta
Facebook-era nabigatzen bada trafiko horri dagozkion alertak Kibanara ailegatuko
dira. Hurrengo pausoa Elastic Stack-aren gidan sortu ziren grafikoen antzekoak
sortzea izango litzateke. Besteak beste, alerta kodean, jatorri eta helburu IP
helbideetan eta alertaren mezuan oinarritutako grafikoak sor daitezke segurtasuna
bermatzeko.

Bukatzeko, eta lagin bezala funtziona dezan, bi grafiko sortuko dira. Bata,
egunean izandako alerten kopurua alerta kodean oinarrituta. Besteak Ping deien

7
helburu izandako makinen IP helbideen aste beteko datuak eguneka sailkatuta
erakutsiko ditu.

Lehen grafikoa sortzeko, joan Visualize atalera, sakatu Create visualization


botoia, aukeratu grafikoa eta Snort-i dagokion indizea. Leihoa irekitzen denean, jarri
hurrengo aukerak ezkerreko menuan.

8
Lehen aukerak barra grafikoa pilatuta ez agertzea lortzen du. Bigarrenak aldiz,
alerten SIDetan oinarrituta barra bat sortzen du SID bakoitzeko. Emaitza jarraian
agertzen denaren antzekoa izan beharko da.

Bukatzean grafikoa gordetzeko goian ezkerraldean agertzen den aukera erabili


behar da eta izen bat jarri behar zaio.

Bigarren grafikorako, joan berriro Visualize atalera eta sakatu Create


visualization botoia, aukeratu tarta grafikoa eta Snort-i dagokion indizea.

Lehenik, bakarrik Ping deiekin zerikusia duten datuak ikusi behar dira. Hauek
bakarrik lortzeko goiko kontsulta eremuan ondokoa jarri behar da. Erregela honekin
sid hori bakarrik duten alertak hartuko dira kontutan.

9
Ezkerreko menuan ondoren datozen aukerak jarri:

Lehen zatian eguneko datuak alerten denbora markan oinarrituta pilatu eta
grafiko bat sortzeko esaten zaio. Bigarren zatian grafiko bakoitza helburu IP
helbideen kopuruen arabera banatzeko esaten zaio. Gehien erabiltzen diren 8ak

10
agertzen dira gehiengotik gutxienekora ordenatuta. Gainerakoak batera agertzen
dira Others etiketarekin. Goian eskubialdean azken 7 egunen datuak ikuskatzeko
esaten bazaio (defektuz azken 15 minutuetakoak hartzen ditu) aste osoan izandako
alertak hartuko dira kontutan. Emaitza jarraian agertzen denaren antzeko zerbait
izan beharko da.

Bukatzean gogoratu grafikoa gordetzeaz (goian ezkerraldean dagoen aukera).


Honekin Snort eta Elastic Stack lotzeko gida bukatzen da. Badaude hobetu
daitezkeen zenbait gauza, hala nola, iturburu eta helburu IP helbideetan IPv6 ez
agertzea, baina aldaketa horiek gida honetatik kanpo geratzen diren fintasunak dira.

11
Zamalbide Auzoa z/g - 20100 Errenteria (Gipuzkoa) - T. (+34) 943 082 900 - info@tknika.eus –
www.tknika.eus

You might also like