
Seoses logimise ja analüüsi süsteemi Splunk müügi lõpetamisega Venemaal tekkis küsimus, millega seda lahendust saaks asendada. Olen erinevaid lahendusi uurides jõudnud tõeliselt meheliku lahenduse juurde — «ELK stack». See süsteem vajab seadistamiseks aega, kuid tulemuseks on väga võimas süsteem, mis analüüsib olukorda ja reageerib operatiivselt organisatsiooni infotehnoloogia turvaintsidentidele. Selles artiklis vaatleme ELK staki põhifunktsioone (võib-olla mitte ainult), uurime, kuidas logisid parssida, graafikuid ja armatuurlaudu luua ning milliseid huvitavaid funktsioone saab saavutada Check Pointi tulemüürist või OpenVasi turvaskannerist saadud logide näitel. Alustuseks selgitame, mis on ELK stack ja millistest komponentidest see koosneb.
«ELK stack» — on lühend kolmest avatud lähtekoodiga projektist: Elasticsearch, Logstash ja Kibana. Arendab ettevõte Elastic koos kõigi seotud projektidega. Elasticsearch on kogu süsteemi tuum, mis ühendab endas andmebaasi, otsingu ja analüüsi funktsioonid. Logstash on serveripoolne andme töötlemise kanal, mis võtab andmed mitmest allikast samal ajal, parsib logisid ja saadab need Elasticsearchi andmebaasi. Kibana võimaldab kasutajatel visualiseerida andmeid diagrammide ja graafikute abil Elasticsearchis. Samuti on Kibana kaudu võimalik andmebaasi haldada. Järgnevalt vaatame iga süsteemi eraldi lähemalt.

Logstash
Logstash on utiliit logi sündmuste töötlemiseks erinevatest allikatest, mille abil saab eristada välju ja nende väärtusi sõnumis, samuti saab seadistada andmete filtreerimist ja redigeerimist. Pärast kõiki toiminguid suunab Logstash sündmused lõplikku andmesalvestisse. Utiliiti seadistatakse ainult konfiguratsioonifailide kaudu.
Tüüpiline Logstashi konfigureerimine koosneb failidest, mis sisaldavad mitmeid sisendeid (input), mitmeid filtribaare (filter) ja mitmeid väljundeid (output). See näeb välja nagu üks või mitu konfigureerimisfaili, mille lihtsaim versioon (mis ei tee absoluutselt midagi) näeb välja järgmine:
input {
}
filter {
}
output {
}
INPUT-is seadistame, millisele portile logid tulevad ja millise protokolli kaudu, või kust kaustast lugeda uusi või pidevalt lisatavaid faile. FILTER-is seadistame logide parsi: väljade analüüs, väärtuste redigeerimine, uute parameetrite lisamine või eemaldamine. FILTER on koht, kus saame hallata Logstash'ile saabuvat sõnumit erinevate redigeerimisvõimalustega. OUTPUT-is seadistame, kuhu saatma juba analüüsitud logi; kui see on Elasticsearch, saadetakse JSON-päring, mis sisaldab välja väärtusi, või debugimisel saab selle väljastada stdout-le või salvestada faili.

ElasticSearch
Alguses oli Elasticsearch lahendus täisteksti otsinguks, kuid lisafunktsioonidega, nagu lihtne skaleeritavus, replikatsioon ja muud, mis on teinud tootest väga mugava ja sobiva lahenduse suure koormusega projektide jaoks, kus on suured andmemahtud. Elasticsearch on relatsiooniline andmete salvestussüsteem (NoSQL) dokumentide JSON-formaadis ja täisteksti otsingumootor, mis põhineb Lucene'il. Riistvaraplatvormiks on Java Virtual Machine, seega vajab süsteem töösuhtes palju protsessori- ja mäluresursse.
Iga saabuv sõnum, olgu see Logstash'i või API päringu abil, indekseeritakse kui "dokument" – sarnane tabelile relatsioonilises SQL. Kõik dokumendid salvestatakse indeksis – sarnane andmebaasile SQL-is.
Dokumendi näide 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 alusel või teatud statistikat vormingus: küsimus — vastus. Kõikide päringutele vastuste visualiseerimiseks on loodud Kibana, mis on veebiteenus.
Kibana
Kibana võimaldab otsida ja taotleda statistikat Elasticsearchi andmebaasist, kuid vastuste põhjal luuakse palju ilusaid graafikuid ja armatuurlaudu. Samuti sisaldab süsteem Elasticsearchi andmebaasi haldamise funktsioone, millest räägime järgmistes artiklites lähemalt. Praegu näitame näiteid armatuurlaudade kohta Check Pointi tulemüürile ja OpenVas'i haavatavuste skannerile, mida saab luua.
Näide armatuurlaudast Check Pointi jaoks, pilt on klikitav:
Näide armatuurlaudast OpenVas'i jaoks, pilt on klikitav:
Kokkuvõte
Oleme vaadanud, millest koosneb ELK stack, tutvunud peamiste toodetega, edaspidi kaalume eraldi Logstashi konfiguratsioonifaili koostamist, armatuurlaudade seadistamist Kibanas, tutvume API-päringutega, automatiseerimisega ja paljuga muuga!
Nii et jälgige uuendusi (, , , ), .
Allikas: habr.com
