
Saistībā ar Splunk loģistikas un analītikas sistēmas pārdošanas beigām Krievijā radušies jautājumi, ar ko šo risinājumu var aizstāt? Pavadot laiku, iepazīstoties ar dažādiem risinājumiem, es apstājos pie risinājuma īstiem vīriem — „ELK steks“. Šai sistēmai nepieciešams laiks tās iestatīšanai, taču rezultātā var iegūt ļoti jaudīgu sistēmu informācijas drošības stāvokļa analīzei un operatīvai reakcijai uz incidentiem organizācijā. Šajā rakstu ciklā mēs apskatīsim pamata (un, iespējams, arī ne tikai) ELK steka iespējas, kā arī to, kā parsēt žurnālus, kā veidot grafikus un informācijas paneļus un kādas interesantas funkcijas var realizēt, izmantojot Check Point ugunsmūra vai OpenVas drošības skeneru žurnālus. Sāksim ar to, kas ir ELK steks un no kādiem komponentiem tas sastāv.
„ELK steks“ — tas ir saīsinājums no trim atvērtā koda projektiem: Elasticsearch, Logstash un Kibana. To izstrādā uzņēmums Elastic kopā ar visiem saistītajiem projektiem. Elasticsearch ir visa sistēmas kodols, kas apvieno datu bāzes, meklēšanas un analītikas sistēmas funkcijas. Logstash ir datu apstrādes cauruļvads servera pusē, kas vienlaikus iegūst datus no vairākiem avotiem, parsē žurnālu un pēc tam nosūta tos uz Elasticsearch datu bāzi. Kibana ļauj lietotājiem vizualizēt datus, izmantojot diagrammas un grafikus Elasticsearch. Arī Kibana kalpo datu bāzes administrēšanai. Paskatīsimies uz katru sistēmu atsevišķi.

Logstash
Logstash ir rīks, kas apstrādā žurnālu notikumus no dažādiem avotiem, izmantojot to, varat izcelt laukus un to vērtības ziņojumā, kā arī varat iestatīt datu filtrēšanu un rediģēšanu. Pēc visām manipulācijām Logstash novirza notikumus uz galīgo datu glabātuvi. Rīks tiek konfigurēts tikai caur konfigurācijas failiem.
Tipiska Logstash konfigurācija ir faili, kas sastāv no vairākiem ienākošajiem informācijas plūsmām (input), vairākiem filtru nosacījumiem šai informācijai (filter) un vairākiem izejošajiem plūsmām (output). Tas izskatās kā viens vai vairāki konfigurācijas faili, kur visvienkāršākā versija (kura vispār neko nedara) izskatās šādi:
input {
}
filter {
}
output {
}
INPUT sada ir iestatīts, uz kuru portu tiks saņemtas žurnālu ziņas un kurā protokolā, vai arī no kuras mapes lasīt jaunus vai pastāvīgi piesaistītus failus. FILTER sadaļā mēs iestatām žurnālu parsētāju: lauku analīze, vērtību rediģēšana, jaunu parametru pievienošana vai dzēšana. FILTER ir lauks, kurā varam pārvaldīt ziņu, kas nonāk Logstash ar daudziem rediģēšanas variantiem. OUTPUT sadaļā mēs iestatām, uz kurieni sūtām jau analizēto žurnālu. Ja tas ir Elasticsearch, tiek nosūtīts JSON pieprasījums ar vērtību laukiem, savukārt detaļu debugēšanai varam izvadīt uz stdout vai saglabāt failā.

ElasticSearch
Sākotnēji Elasticsearch ir risinājums pilntekstiskai meklēšanai, taču ar papildu ērtībām, piemēram, vieglu mērogojamību, replikāciju un citu, kas padarīja produktu ļoti lietojamu un labu risinājumu augsta slodzes projektu virzienā ar lieliem datu apjomiem. Elasticsearch ir nerelacionāla dokumentu krātuve (NoSQL) JSON formātā un pilntekstiskās meklēšanas sistēma, kas balstīta uz Lucene. Aparatūras platforma ir Java Virtual Machine, tāpēc sistēmai nepieciešams liels procesora un operatīvās atmiņas resurss.
Katrs saņemtā ziņa, vai nu no Logstash, vai, izmantojot API pieprasījumu, tiek indeksēta kā "dokuments" – līdzīgi kā rinda relāciju SQL tabulā. Visi dokumenti tiek glabāti indeksā – līdzīgi kā SQL datu bāzē.
Dokumenta piemērs bāzē:
{
"_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",
]
}
Visa datu bāzes darbība balstās uz JSON pieprasījumiem, izmantojot REST API, kas vai nu izsniedz dokumentus pēc indeksa, vai sniedz statistiku formātā: jautājums — atbilde. Lai vizualizētu visus atbilžu pieprasījumus, tika izstrādāts Kibana, kas ir tīmekļa pakalpojums.
Kibana
Kibana ļauj meklēt datus un pieprasīt statistiku no elasticsearch datu bāzes, taču, pamatojoties uz atbildēm, tiek veidoti daudzi skaisti grafiki un informācijas paneļi. Sistēma nodrošina arī elasticsearch datu bāzes administrēšanas funkcionalitāti, bet nākamajos rakstos mēs sīkāk apskatīsim šo pakalpojumu. Pašreiz mēs parādīsim piemērus informācijas paneļiem par Check Point ugunsmūri un OpenVas ievainojamību skeneri, kurus varēs izveidot.
Piemērs informācijas paneļa priekš Check Point, attēls ir klikšķināms:
Piemērs informācijas paneļa priekš OpenVas, attēls ir klikšķināms:
Secinājums
Mēs apskatījām, no kā sastāv ELK stack, nedaudz iepazināmies ar galvenajiem produktiem, tālāk kursā atsevišķi aplūkosim Logstash konfigurācijas faila rakstīšanu, informācijas paneļu iestatīšanu Kibana, iepazīsimies ar API pieprasījumiem, automatizāciju un vēl daudz ko citu!
Tātad sekojiet līdzi jaunumiem (, , , ), .
Avots: habr.com
