2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Í fortíðinni grein við hittumst ELK stafla, hvaða hugbúnaðarvörur það samanstendur af. Og fyrsta verkefnið sem verkfræðingur stendur frammi fyrir þegar hann vinnur með ELK stafla er að senda annála til geymslu í elasticsearch til síðari greiningar. Hins vegar er þetta bara kjaftæði, elasticsearch geymir logs í formi skjala með ákveðnum sviðum og gildum, sem þýðir að verkfræðingur verður að nota ýmis tæki til að flokka skilaboðin sem eru send frá endakerfum. Þetta er hægt að gera á nokkra vegu - skrifaðu sjálfur forrit sem bætir skjölum við gagnagrunninn með því að nota API, eða notaðu tilbúnar lausnir. Á þessu námskeiði skoðum við lausnina Logstash, sem er hluti af ELK stafla. Við skoðum hvernig við getum sent logs frá endapunktakerfum til Logstash og síðan setjum við upp stillingarskrá til að flokka og beina til Elasticsearch gagnagrunnsins. Til að gera þetta tökum við annála frá Check Point eldveggnum sem komandi kerfi.

Námskeiðið nær ekki yfir uppsetningu ELK stafla, þar sem það er gríðarlegur fjöldi greina um þetta efni; við munum íhuga stillingarhlutann.

Gerum aðgerðaáætlun fyrir Logstash stillingar:

  1. Athugaðu hvort elasticsearch taki við annálum (athugar virkni og opnun gáttarinnar).
  2. Við íhugum hvernig við getum sent atburði til Logstash, valið aðferð og útfært hana.
  3. Við stillum inntak í Logstash stillingarskránni.
  4. Við stillum Output í Logstash stillingarskránni í villuleitarham til að skilja hvernig logskilaboðin líta út.
  5. Setja upp síu.
  6. Að setja upp rétta úttakið í ElasticSearch.
  7. Logstash opnar.
  8. Athugaðu trén í Kibana.

Við skulum skoða hvert atriði nánar:

Athugaðu að elasticsearch taki við annálum

Til að gera þetta geturðu notað krulluskipunina til að athuga aðgang að Elasticsearch frá kerfinu sem Logstash er notað á. Ef þú ert með auðkenningu stillt, þá flytjum við einnig notandann/lykilorðið með curl, tilgreinum höfn 9200 ef þú hefur ekki breytt því. Ef þú færð svar svipað og hér að neðan, þá er allt í lagi.

[elastic@elasticsearch ~]$ curl -u <<user_name>> : <<password>> -sS -XGET "<<ip_address_elasticsearch>>:9200"
{
  "name" : "elastic-1",
  "cluster_name" : "project",
  "cluster_uuid" : "sQzjTTuCR8q4ZO6DrEis0A",
  "version" : {
    "number" : "7.4.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "fc0eeb6e2c25915d63d871d344e3d0b45ea0ea1e",
    "build_date" : "2019-10-22T17:16:35.176724Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[elastic@elasticsearch ~]$

Ef svarið berst ekki, þá geta verið nokkrar gerðir af villum: elasticsearch ferlið er ekki í gangi, röng höfn er tilgreind eða höfnin er læst af eldvegg á þjóninum þar sem elasticsearch er sett upp.

Við skulum skoða hvernig þú getur sent logs til Logstash frá eldvegg eftirlitsstaða

Frá Check Point stjórnunarþjóni geturðu sent logs til Logstash í gegnum syslog með því að nota log_exporter tólið, þú getur lesið meira um það hér grein, hér munum við aðeins skilja eftir skipunina sem býr til strauminn:

cp_log_export bæta við nafni check_point_syslog target-server < > target-port 5555 siðareglur tcp snið almenn leshamur hálfsamræmd

< > - heimilisfang þjónsins sem Logstash keyrir á, target-port 5555 - port sem við munum senda logs á, að senda logs í gegnum tcp getur hlaðið netþjóninn, þannig að í sumum tilfellum er réttara að nota udp.

Setja upp INPUT í Logstash stillingarskránni

2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Sjálfgefið er að stillingarskráin er staðsett í /etc/logstash/conf.d/ möppunni. Stillingarskráin samanstendur af 3 mikilvægum hlutum: INNTAK, SÍA, ÚTTAKA. IN INPUT við tilgreinum hvaðan kerfið mun taka logs frá, inn FILTER þátta annálinn - settu upp hvernig á að skipta skilaboðunum í reiti og gildi, í Output við stillum úttaksstrauminn - þangað sem greindu annálarnir verða sendir.

Fyrst skulum við stilla INPUT, íhuga nokkrar af þeim gerðum sem geta verið - skrá, tcp og exe.

TCP:

input {
tcp {
    port => 5555
    host => “10.10.1.205”
    type => "checkpoint"
    mode => "server"
}
}

háttur => "þjónn"
Gefur til kynna að Logstash sé að samþykkja tengingar.

höfn => 5555
gestgjafi => „10.10.1.205“
Við tökum við tengingum í gegnum IP tölu 10.10.1.205 (Logstash), höfn 5555 - gáttin verður að vera leyfð samkvæmt eldveggsstefnunni.

tegund => "eftirlitsstöð"
Við merkjum skjalið, mjög þægilegt ef þú ert með nokkrar komandi tengingar. Í kjölfarið, fyrir hverja tengingu, getur þú skrifað þína eigin síu með því að nota rökræna ef smíði.

Skrá:

input {
  file {
    path => "/var/log/openvas_report/*"
    type => "openvas"
    start_position => "beginning"
    }
}

Lýsing á stillingum:
slóð => "/var/log/openvas_report/*"
Við tilgreinum möppuna þar sem þarf að lesa skrárnar.

tegund => "openvas"
Tegund viðburðar.

start_position => "upphaf"
Þegar skipt er um skrá les það alla skrána; ef þú stillir „end“ bíður kerfið eftir að nýjar færslur birtast í lok skráarinnar.

Framkvæmdastjóri:

input {
  exec {
    command => "ls -alh"
    interval => 30
  }
}

Með því að nota þetta inntak er (aðeins!) skel skipun ræst og úttak hennar breytt í logskilaboð.

skipun => "ls -alh"
Skipunin sem við höfum áhuga á.

bil => 30
Skipunarákallsbil í sekúndum.

Til þess að fá logs frá eldveggnum skráum við síu tcp eða udp, eftir því hvernig annálarnir eru sendir til Logstash.

Við stillum Output í Logstash stillingarskránni í villuleitarham til að skilja hvernig logskilaboðin líta út

Eftir að við höfum stillt INPUT þurfum við að skilja hvernig annálsskilaboðin munu líta út og hvaða aðferðir þarf að nota til að stilla logsíuna (þáttun).

Til að gera þetta munum við nota síu sem gefur út niðurstöðuna í stdout til að skoða upprunalegu skilaboðin; heildar stillingarskráin í augnablikinu mun líta svona út:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => “10.10.1.205”
   	 }
}

output 
{
	if [type] == "checkpoint" 
       {
		stdout { codec=> json }
	}
}

Keyrðu skipunina til að athuga:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
Við sjáum útkomuna, myndin er smellanleg:

2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Ef þú afritar það mun það líta svona út:

action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,0x5,0xfe0a0a0a,0xc0000000}" origin="10.10.10.254" originsicname="CN=ts-spb-cpgw-01,O=cp-spb-mgmt-01.tssolution.local.kncafb" sequencenum="8" time="1576766483" version="5" context_num="1" dst="10.10.10.10" dst_machine_name="[email protected]" layer_name="TSS-Standard Security" layer_name="TSS-Standard Application" layer_uuid="dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0" layer_uuid="dbee3718-cf2f-4de0-8681-529cb75be9a6" match_id="8" match_id="33554431" parent_rule="0" parent_rule="0" rule_action="Accept" rule_action="Accept" rule_name="Implicit Cleanup" rule_uid="6dc2396f-9644-4546-8f32-95d98a3344e6" product="VPN-1 & FireWall-1" proto="17" s_port="37317" service="53" service_id="domain-udp" src="10.10.1.180" ","type":"qqqqq","host":"10.10.10.250","@version":"1","port":50620}{"@timestamp":"2019-12-19T14:50:12.153Z","message":"time="1576766483" action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,

Þegar við skoðum þessi skilaboð skiljum við að logarnir líta svona út: reit = gildi eða lykill = gildi, sem þýðir að sía sem kallast kv hentar. Til að velja réttu síuna fyrir hvert tiltekið tilvik væri gott að kynna sér hana í tækniskjölunum eða spyrja vin.

Setja upp síu

Á síðasta stigi sem við völdum kv, er uppsetning þessarar síu kynnt hér að neðan:

filter {
if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
}
}

Við veljum táknið sem við skiptum reitnum og gildinu með - "=". Ef við erum með eins færslur í loganum, vistum við aðeins eitt tilvik í gagnagrunninum, annars endar þú með fjölda eins gilda, það er að segja ef við höfum skilaboðin „foo = some foo=sume“ skrifum við bara foo = sumir.

Að setja upp rétta úttakið í ElasticSearch

Þegar sían hefur verið stillt geturðu hlaðið upp annálum í gagnagrunninn teygjanám:

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

Ef skjalið er undirritað með eftirlitsstaðsgerðinni vistum við atburðinn í elasticsearch gagnagrunninum, sem tekur sjálfgefið við tengingum 10.10.1.200 á port 9200. Hvert skjal er vistað í tiltekinni vísitölu, í þessu tilfelli vistum við í vísitölunni „checkpoint-“ + núverandi tímasetning. Hver skrá getur haft ákveðið sett af reitum, eða er búið til sjálfkrafa þegar nýr reitur birtist í skilaboðum; reitstillingar og gerð þeirra er hægt að skoða í kortlagningum.

Ef þú ert með auðkenningu stillt (við skoðum það síðar), verður að tilgreina skilríki fyrir að skrifa í tiltekna vísitölu, í þessu dæmi er það „tssolution“ með lykilorðinu „cool“. Þú getur aðgreint notendaréttindi til að skrifa annála eingöngu í tiltekna vísitölu og ekki meira.

Ræstu Logstash.

Logstash stillingarskrá:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => “10.10.1.205”
   	 }
}

filter {
        if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
        }
}

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

Við athugum hvort stillingarskráin sé rétt:
/usr/share/logstash/bin//logstash -f checkpoint.conf
2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Byrjaðu Logstash ferlið:
Sudo systemctl byrja logstash

Við athugum hvort ferlið sé hafið:
sudo systemctl stöðu logstash

2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Við skulum athuga hvort innstungan sé uppi:
netstat -nat |grep 5555

2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Athugaðu trén í Kibana.

Eftir að allt er í gangi, farðu í Kibana - Uppgötvaðu, vertu viss um að allt sé stillt rétt, myndin er smellanleg!

2. Teygjanlegur stafla: greining á öryggisskrám. Logstash

Allir logs eru á sínum stað og við getum séð alla reiti og gildi þeirra!

Ályktun

Við skoðuðum hvernig á að skrifa Logstash stillingarskrá og þar af leiðandi fengum við þáttara af öllum sviðum og gildum. Nú getum við unnið með leit og samsæri fyrir ákveðna reiti. Næst á námskeiðinu ætlum við að skoða sjónræningu í Kibana og búa til einfalt mælaborð. Þess má geta að Logstash stillingarskrá þarf að vera stöðugt uppfærð við ákveðnar aðstæður, til dæmis þegar við viljum skipta út gildi reits úr tölu í orð. Í síðari greinum munum við gera þetta stöðugt.

Svo fylgstu meðTelegram, Facebook, VK, TS lausnarblogg), Yandex Zen.

Heimild: www.habr.com

Bæta við athugasemd