1. Elastic stack: turvaaru logide analüüs. Sissejuhatus

1. Elastic stack: turvaaru logide analüüs. Sissejuhatus

Seoses Splunki logimise ja analüüsi süsteemi müügi lõpetamisega Venemaal tekkis küsimus, millega seda lahendust asendada? Veetnud aega erinevate lahendustega tutvumisel, peatusin tõelise mehe lahendusel — «ELK stack». See süsteem nõuab aega seadistamiseks, kuid tulemusena on võimalik saada väga võimas süsteem, mis analüüsib olukorda ja reageerib kiiresti organisatsiooni infosüsteemide turvainterventioonidele. Käesolevas artiklite sarjas vaatame ELK stacki põhifunktsioone (või vähem), kuidas logisid töödelda, kuidas koostada graafikuid ja juhte, ning milliseid huvitavaid funktsioone saab luua Check Pointi tulemüürist või OpenVas turvaskannerist saadud logide näitel. Alustuseks vaatame, mis on ELK stack ja millistest komponentidest see koosneb.

«ELK stack» — see on lühend kolmest avatud lähtekoodiga projektist: Elasticsearch, Logstash ja Kibana. Arendatud Elasticu poolt kõigi seotud projektidega. Elasticsearch on kogu süsteemi tugisammas, mis ühendab endas andmebaasi, otsingu- ja analüüsisüsteemi funktsioonid. Logstash on andmete töötlemise toru serveripoolsel küljel, mis saab andmeid mitmest allikast samal ajal, töötleb logisid ja saadab seejärel andmed Elasticsearchi andmebaasi. Kibana võimaldab kasutajatel visualiseerida andmeid diagrammide ja graafikute kaudu Elasticsearchis. Samuti saab Kibana kaudu andmebaasi hallata. Edasi vaatame iga süsteemi üksikasjalikumalt.

1. Elastic stack: turvaaru logide analüüs. Sissejuhatus

Logstash

Logstash – see on utiliit logisündmuste töötlemiseks erinevatest allikatest, mille abil saab välja tuua väljad ja nende väärtused sõnumis; samuti on võimalik seadistada andmete filtreerimist ja redigeerimist. Pärast kõiki toiminguid suunab Logstash sündmused lõpp-andmehoidlasse. Utiliiti seadistatakse ainult konfiguratsioonifailide kaudu.
Tüüpiline logstash konfiguratsioon koosneb failist (failidest), mis koosneb mitmest sisendvoogude (input), mitmest filtri (filter) ja mitmest väljundvoogude (output). See näeb välja nagu üks või mitu konfiguratsioonifaili, mis kõige lihtsamal juhul (mis ei tee üldse midagi) näeb välja järgmiselt:

input {
}

filter {
}

output {
}

INPUT-s seadistuud port, kuhu logid tulevad, ja protokoll, mille kaudu loetakse uusi või pidevalt täiendatavaid faile. FILTERis seadistame logifailide parseri: väljade analüüs, väärtuste redigeerimine, uute parameetrite lisamine või eemaldamine. FILTER on väli sõnumi haldamiseks, mis tuleb Logstashi koos rohkete redigeerimisvõimalustega. OUTPUT-s seadistame, kuhu saadame juba analüüsitud logi; kui see on Elasticsearch, saadetakse JSON-päring, kus edastatakse väljad väärtustega, või loogika osana võime väljundit suunata stdout-isse või salvestada faili.

1. Elastic stack: turvaaru logide analüüs. Sissejuhatus

ElasticSearch

Esialgu oli Elasticsearch lahendus täisteksti otsimiseks, kuid koos täiendavate mugavustega, nagu lihtne skaleerimine, replikatsioon ja muu, mis tegi tootest väga mugava ja hea lahenduse suure koormusega projektide jaoks, millel on suured andmemahtud. Elasticsearch on mitte-relatsiooniline (NoSQL) dokumentide hoidla JSON-failide formaadis ning täielik täisteksti otsingusüsteem Lucene'i põhjal. Riistvaraplatvorm on Java Virtual Machine, mistõttu vajab süsteem töödeldes palju protsessorit ja RAM-i.
Iga saabuv sõnum, kas Logstashist või API päringu kaudu, indekseeritakse kui "dokument" - sarnane tabelile relatsioonilises SQL-is. Kõik dokumendid salvestatakse indeksisse - sarnane SQL-i andmebaasile.

Näide dokumendist andmebaasis:

{
  "_index": "checkpoint-2019.10.10",
  "_type": "_doc",
  "_id": "yvNZcWwBygXz5W1aycBy",
  "_version": 1,
  "_score": null,
  "_source": {
	"layer_uuid": [
      "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
      "dbee3718-cf2f-4de0-8681-529cb75be9a6"
	],
	"outzone": "External",
	"layer_name": [
  	"TSS-Standard Security",
  	"TSS-Standard Application"
	],
	"time": "1565269565",
	"dst": "103.5.198.210",
	"parent_rule": "0",
	"host": "10.10.10.250",
	"ifname": "eth6",
    ]
}

Kogu andmebaasi töö toimub JSON-päringute kaudu REST API abil, mis kas väljastavad dokumente indeksi järgi või mingisugust statistikat formaadis: küsimus - vastus. Selleks, et kõik vastused päringutele visualiseerida, on loodud Kibana, mis esindab veebiteenust.

Kibana

Kibana võimaldab otsida andmeid ja pärida statistikat Elasticsearchi andmebaasist, kuid vastuste põhjal luuakse palju kauneid graafikuid ja juhtpaneele. Samuti on süsteemil Elasticsearchi andmebaasi haldamise funktsioon, millest räägime üksikasjalikumalt järgmistes artiklites. Praegu näitame näidet juhtpaneelidest Check Pointi tulemüürile ja OpenVas-i haavatavuste skannerile, mida saab koostada.

Külastada saab Check Pointi juhtpaneeli näidet, pilt on klikitav:

1. Elastic stack: turvaaru logide analüüs. Sissejuhatus

Külastada saab OpenVas-i juhtpaneeli näidet, pilt on klikitav:

1. Elastic stack: turvaaru logide analüüs. Sissejuhatus

Kokkuvõte

Oleme uurinud, millest see koosneb ELK stack, tutvunud põhitoodetega, ja edasises kursuses käsitleme eraldi Logstashi konfiguratsioonifaili kirjutamist, juhtpaneelide seadistamist Kibanas, tutvume API päringutega, automatiseerimisega ja paljuga muuga!

Seega jälgige uuendusi (Telegram, Facebook, VK, TS Solution Blog), Yandex.Zen.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster