2. Elastic stack: pagtuki sa security logs. Logstash

2. Elastic stack: pagtuki sa security logs. Logstash

Sa ulahi artikulo nagkita mi ELK stack, unsa nga mga produkto sa software ang gilangkuban niini. Ug ang una nga buluhaton nga giatubang sa usa ka inhenyero kung nagtrabaho kauban ang ELK stack mao ang pagpadala mga troso alang sa pagtipig sa elasticsearch alang sa sunod nga pagtuki. Bisan pa, kini usa lamang ka serbisyo sa ngabil, ang elasticsearch nagtipig sa mga troso sa porma sa mga dokumento nga adunay piho nga mga natad ug mga kantidad, nga nagpasabut nga ang inhenyero kinahanglan mogamit lainlaing mga himan aron ma-parse ang mensahe nga gipadala gikan sa mga sistema sa katapusan. Mahimo kini sa daghang mga paagi - pagsulat sa usa ka programa sa imong kaugalingon nga magdugang mga dokumento sa database gamit ang API, o mogamit mga andam nga solusyon. Niini nga kurso atong tagdon ang solusyon Logstash, nga bahin sa ELK stack. Atong tan-awon kung giunsa namo ipadala ang mga troso gikan sa mga endpoint system ngadto sa Logstash, ug dayon mag-set up kami og configuration file aron ma-parse ug ma-redirect sa Elasticsearch database. Aron mahimo kini, magkuha kami mga troso gikan sa Check Point firewall ingon nga umaabot nga sistema.

Ang kurso wala maglakip sa pag-instalar sa ELK stack, tungod kay adunay daghang mga artikulo bahin niini nga hilisgutan; atong hisgotan ang bahin sa pag-configure.

Paghimo usa ka plano sa aksyon alang sa pag-configure sa Logstash:

  1. Ang pagsusi nga ang elasticsearch modawat sa mga troso (pagsusi sa pagpaandar ug pagkabukas sa pantalan).
  2. Among gikonsiderar kung giunsa namo ipadala ang mga panghitabo sa Logstash, pagpili og pamaagi, ug ipatuman kini.
  3. Among gi-configure ang Input sa Logstash configuration file.
  4. Among gi-configure ang Output sa Logstash configuration file sa debug mode aron masabtan kung unsa ang hitsura sa log message.
  5. Pag-set up sa Filter.
  6. Pag-set up sa husto nga Output sa ElasticSearch.
  7. Naglunsad ang Logstash.
  8. Pagsusi sa mga troso sa Kibana.

Atong tan-awon ang matag punto sa mas detalyado:

Ang pagsusi nga ang elasticsearch modawat sa mga troso

Aron mahimo kini, mahimo nimong gamiton ang curl command aron masusi ang pag-access sa Elasticsearch gikan sa sistema diin ang Logstash gi-deploy. Kung na-configure nimo ang authentication, nan gibalhin usab namo ang user/password pinaagi sa curl, nga nagtino sa port 9200 kung wala nimo kini giusab. Kung makadawat ka og tubag nga susama sa usa sa ubos, nan ang tanan naa sa kahusay.

[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 ~]$

Kung ang tubag dili madawat, nan mahimong adunay daghang mga lahi sa mga sayup: ang proseso sa elasticsearch wala nagdagan, ang sayup nga pantalan gipiho, o ang pantalan gibabagan sa usa ka firewall sa server diin gi-install ang elasticsearch.

Atong tan-awon kung giunsa nimo ipadala ang mga troso sa Logstash gikan sa usa ka check point nga firewall

Gikan sa Check Point management server mahimo nimong ipadala ang mga troso sa Logstash pinaagi sa syslog gamit ang log_exporter utility, mahimo nimong mabasa ang dugang bahin niini dinhi artikulo, dinhi ibilin lamang nato ang sugo nga nagmugna sa sapa:

cp_log_export idugang ang ngalan check_point_syslog target-server < > target-port 5555 protocol tcp format generic read-mode semi-unified

< > - adres sa server diin nagdagan ang Logstash, target-port 5555 - port diin kami magpadala sa mga troso, ang pagpadala sa mga troso pinaagi sa tcp maka-load sa server, mao nga sa pipila ka mga kaso mas husto ang paggamit sa udp.

Pag-set up sa INPUT sa Logstash configuration file

2. Elastic stack: pagtuki sa security logs. Logstash

Sa kasagaran, ang configuration file nahimutang sa /etc/logstash/conf.d/ directory. Ang configuration file naglangkob sa 3 makahuluganon nga mga bahin: INPUT, FILTER, OUTPUT. SA input among gipakita diin ang sistema magkuha sa mga troso gikan, sa filter parse ang log - i-set up kung giunsa pagbahin ang mensahe sa mga natad ug mga kantidad, sa output among gi-configure ang output stream - diin ipadala ang mga parsed logs.

Una, atong i-configure ang INPUT, ikonsiderar ang pipila sa mga tipo nga mahimo - file, tcp ug exe.

Tcp:

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

mode => "server"
Nagpakita nga ang Logstash nagdawat mga koneksyon.

pantalan => 5555
host => "10.10.1.205"
Gidawat namon ang mga koneksyon pinaagi sa IP address 10.10.1.205 (Logstash), port 5555 - ang pantalan kinahanglan tugutan sa palisiya sa firewall.

tipo => "checkpoint"
Gimarkahan namon ang dokumento, sayon ​​​​kaayo kung adunay ka daghang umaabot nga koneksyon. Pagkahuman, alang sa matag koneksyon mahimo nimong isulat ang imong kaugalingon nga pagsala gamit ang lohikal kung pagtukod.

File:

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

Deskripsyon sa mga setting:
dalan => "/var/log/openvas_report/*"
Gipakita namon ang direktoryo diin kinahanglan basahon ang mga file.

tipo => "openvas"
Uri sa panghitabo.

start_position => "pagsugod"
Kung nag-ilis sa usa ka file, kini nagbasa sa tibuuk nga file; kung imong gibutang ang "katapusan", ang sistema naghulat alang sa bag-ong mga rekord nga makita sa katapusan sa file.

Exec:

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

Gamit kini nga input, usa (lamang!) shell command ang gilusad ug ang output niini gihimong log message.

sugo => "ls -alh"
Ang sugo kansang output interesado kita.

interval => 30
Sugo sa invocation interval sa mga segundo.

Aron makadawat og mga troso gikan sa firewall, nagparehistro kami og filter tcp o pud, depende kung giunsa ipadala ang mga troso sa Logstash.

Among gi-configure ang Output sa Logstash configuration file sa debug mode aron masabtan kung unsa ang hitsura sa log message

Human nato ma-configure ang INPUT, kinahanglan natong masabtan kung unsa ang hitsura sa mensahe sa log ug unsa nga mga pamaagi ang kinahanglan gamiton aron ma-configure ang log filter (parser).

Aron mahimo kini, mogamit kami usa ka filter nga nagpagawas sa resulta sa stdout aron matan-aw ang orihinal nga mensahe; ang kompleto nga file sa pag-configure karon ingon niini:

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

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

Pagdalagan ang command aron masusi:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
Nakita namon ang resulta, ang hulagway ma-click:

2. Elastic stack: pagtuki sa security logs. Logstash

Kung imong kopyahon kini ingon niini:

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,

Sa pagtan-aw niini nga mga mensahe, atong nasabtan nga ang mga troso sama sa: field = bili o yawe = bili, nga nagpasabot sa usa ka filter nga gitawag kv mao ang angay. Aron mapili ang husto nga pagsala alang sa matag piho nga kaso, maayo nga ideya nga pamilyar ang imong kaugalingon sa kanila sa teknikal nga dokumentasyon, o pangutan-a ang usa ka higala.

Pag-set up sa Filter

Sa katapusan nga yugto nga among gipili ang kv, ang pagsumpo sa kini nga filter gipresentar sa ubos:

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

Gipili namon ang simbolo diin among bahinon ang uma ug kantidad - "=". Kung kami adunay parehas nga mga entri sa log, usa ra ang among gitipigan sa database, kung dili, mahuman ka sa usa ka han-ay sa parehas nga kantidad, kana, kung kami adunay mensahe nga "foo = some foo = some" foo ra ang among isulat. = pipila.

Pag-set up sa husto nga Output sa ElasticSearch

Kung ma-configure na ang Filter, mahimo nimong i-upload ang mga log sa database pagkamaunat-unat:

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

Kung ang dokumento gipirmahan sa tipo sa tsekpoint, among gitipigan ang panghitabo sa database sa elasticsearch, nga nagdawat mga koneksyon sa 10.10.1.200 sa port 9200 nga default. Ang matag dokumento gitipigan sa usa ka piho nga indeks, sa kini nga kaso gitipigan namon sa indeks nga "checkpoint-" + karon nga petsa sa oras. Ang matag indeks mahimong adunay usa ka piho nga hugpong sa mga natad, o awtomatiko nga gihimo kung adunay usa ka bag-ong field nga makita sa usa ka mensahe; ang mga setting sa field ug ang ilang tipo mahimong makita sa mga mapa.

Kung na-configure nimo ang authentication (atong tan-awon kini sa ulahi), ang mga kredensyal alang sa pagsulat sa usa ka piho nga indeks kinahanglan itakda, sa kini nga pananglitan kini "tssolution" nga adunay password nga "cool". Mahimo nimong lainlain ang mga katungod sa tiggamit sa pagsulat sa mga troso lamang sa usa ka piho nga indeks ug wala na.

Ilunsad ang Logstash.

Logstash configuration file:

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"
  	}
}
}

Among susihon ang configuration file alang sa husto:
/usr/share/logstash/bin//logstash -f checkpoint.conf
2. Elastic stack: pagtuki sa security logs. Logstash

Sugdi ang proseso sa Logstash:
sudo systemctl magsugod logsash

Atong susihon nga ang proseso nagsugod na:
sudo systemctl status logstash

2. Elastic stack: pagtuki sa security logs. Logstash

Atong susihon kung ang socket naa:
netstat -nat |grep 5555

2. Elastic stack: pagtuki sa security logs. Logstash

Pagsusi sa mga troso sa Kibana.

Pagkahuman sa tanan nga nagdagan, adto sa Kibana - Discover, siguruha nga ang tanan na-configure sa husto, ang litrato ma-click!

2. Elastic stack: pagtuki sa security logs. Logstash

Ang tanan nga mga troso naa sa lugar ug makita namon ang tanan nga mga uma ug ang ilang mga kantidad!

konklusyon

Gitan-aw namon kung giunsa pagsulat ang usa ka file sa pag-configure sa Logstash, ug ingon usa ka sangputanan nakakuha kami usa ka parser sa tanan nga mga natad ug mga kantidad. Karon makatrabaho na kami sa pagpangita ug pagplano alang sa piho nga mga natad. Sunod sa kurso atong tan-awon ang visualization sa Kibana ug maghimo usa ka yano nga dashboard. Angayan nga hisgutan nga ang Logstash configuration file kinahanglan nga kanunay nga ma-update sa pipila ka mga sitwasyon, pananglitan, kung gusto namong ilisan ang bili sa usa ka field gikan sa usa ka numero ngadto sa usa ka pulong. Sa sunod nga mga artikulo ato kining buhaton kanunay.

Busa padayon nga tutok (telegrama, Facebook, VK, TS Solution Blog), Yandex.Zen.

Source: www.habr.com

Idugang sa usa ka comment