2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Дар охир мақола вохӯрдем Стейки ELK, он аз кадом маҳсулоти нармафзор иборат аст. Ва аввалин вазифаи муҳандис ҳангоми кор бо стеки ELK ин фиристодани гузоришҳо барои нигоҳдорӣ дар elasticsearch барои таҳлили минбаъда мебошад. Аммо, ин танҳо хидмати лабони аст, elasticsearch гузоришҳоро дар шакли ҳуҷҷатҳо бо майдонҳо ва арзишҳои муайян нигоҳ медорад, ки маънои онро дорад, ки муҳандис бояд асбобҳои гуногунро барои таҳлили паёме, ки аз системаҳои ниҳоӣ фиристода мешавад, истифода барад. Инро бо чанд роҳ анҷом додан мумкин аст - худатон барномае нависед, ки бо истифода аз API ҳуҷҷатҳоро ба пойгоҳи додаҳо илова кунад ё ҳалли тайёрро истифода баред. Дар ин курс мо роҳи ҳалли онро баррасӣ хоҳем кард Logstash, ки як қисми стеки ELK мебошад. Мо дида мебароем, ки чӣ тавр мо метавонем гузоришҳоро аз системаҳои нуқтаи ниҳоӣ ба Logstash ирсол кунем ва сипас мо файли конфигуратсияро барои таҳлил ва масир ба махзани Elasticsearch насб мекунем. Барои ин, мо гузоришҳоро аз девори Check Point ҳамчун системаи воридотӣ мегирем.

Курс насби стеки ELK-ро дар бар намегирад, зеро дар ин мавзӯъ шумораи зиёди мақолаҳо мавҷуданд; мо ҷузъи конфигуратсияро баррасӣ хоҳем кард.

Биёед нақшаи амалро барои конфигуратсияи Logstash таҳия кунем:

  1. Санҷиши он, ки elasticsearch гузоришҳоро қабул мекунад (тафтиш кардани функсия ва кушодагии порт).
  2. Мо фикр мекунем, ки чӣ гуна мо метавонем рӯйдодҳоро ба Logstash фиристем, усулро интихоб кунем ва онро амалӣ кунем.
  3. Мо Вурудро дар файли конфигуратсияи Logstash танзим мекунем.
  4. Мо Натиҷаро дар файли конфигуратсияи Logstash дар реҷаи дебаг танзим мекунем, то бифаҳмем, ки паёми гузориш чӣ гуна аст.
  5. Танзими Филтр.
  6. Насб кардани Натиҷаи дуруст дар ElasticSearch.
  7. Logstash оғоз меёбад.
  8. Санҷиши гузоришҳо дар Кибана.

Биёед ҳар як нуктаро муфассалтар дида бароем:

Санҷиши он, ки elasticsearch гузоришҳоро қабул мекунад

Барои ин, шумо метавонед фармони curl-ро истифода баред, то дастрасӣ ба Elasticsearchро аз системае, ки дар он Logstash ҷойгир шудааст, тафтиш кунед. Агар шумо аутентификатсияро танзим карда бошед, мо инчунин корбар/паролро тавассути curl интиқол медиҳем, бо нишон додани порти 9200, агар шумо онро тағир надода бошед. Агар шумо ба ҷавоби дар поён монанд ҷавоб гиред, пас ҳама чиз дуруст аст.

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

Агар посух гирифта нашавад, он гоҳ метавонад якчанд намуди хатогӣ вуҷуд дошта бошад: раванди ҷустуҷӯи elasticsearch кор намекунад, порти нодуруст нишон дода шудааст ё порт аз ҷониби брандмауэр дар сервере, ки elasticsearch насб шудааст, баста шудааст.

Биёед бубинем, ки чӣ тавр шумо метавонед гузоришҳоро ба Logstash аз девори нуқтаи санҷиш фиристед

Аз сервери идоракунии Check Point шумо метавонед бо истифода аз утилитаи log_exporter гузоришҳоро ба Logstash тавассути syslog фиристед, шумо метавонед дар ин ҷо маълумоти бештар гиред. мақола, дар ин ҷо мо танҳо фармонеро мегузорем, ки ҷараёнро эҷод мекунад:

cp_log_export илова номи check_point_syslog target-server < > порти мақсаднок 5555 протоколи tcp формати умумии хониш нимваҳдашуда

< > - суроғаи сервере, ки дар он Logstash кор мекунад, ҳадаф-порти 5555 - порте, ки мо ба он гузоришҳо мефиристем, фиристодани гузоришҳо тавассути tcp метавонад серверро бор кунад, аз ин рӯ дар баъзе мавридҳо истифодаи udp дурусттар аст.

Насб кардани INPUT дар файли конфигуратсияи Logstash

2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Бо нобаёнӣ, файли конфигуратсия дар директорияи /etc/logstash/conf.d/ ҷойгир аст. Файли конфигуратсия аз 3 қисмати муҳим иборат аст: INPUT, FILTER, OUTPUT. ДАР НОМГУЙ мо нишон медиҳем, ки система аз куҷо гузоришҳоро мегирад, дар филтр таҳлили гузориш - насб кардани тарзи тақсим кардани паём ба майдонҳо ва арзишҳо, дар Натиҷаи мо ҷараёни баромадро танзим мекунем - дар он ҷо гузоришҳои таҳлилшуда фиристода мешаванд.

Аввалан, биёед INPUT-ро танзим кунем, баъзе намудҳоро дида бароем, ки метавонанд - файл, tcp ва exe.

Tcp:

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

режим => "сервер"
Нишон медиҳад, ки Logstash пайвастҳоро қабул мекунад.

порт => 5555
мизбон => "10.10.1.205"
Мо пайвастҳоро тавассути суроғаи IP 10.10.1.205 (Logstash), порти 5555 қабул мекунем - порт бояд аз ҷониби сиёсати брандмауэр иҷозат дода шавад.

навъи => "нуқтаи назорат"
Мо ҳуҷҷатро қайд мекунем, агар шумо якчанд пайвастҳои воридотӣ дошта бошед, хеле қулай аст. Минбаъд, барои ҳар як пайвастшавӣ шумо метавонед филтри худро бо истифода аз мантиқии if construct нависед.

Файл:

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

Тавсифи танзимот:
роҳ => "/var/log/openvas_report/*"
Мо директорияеро нишон медиҳем, ки дар он файлҳо бояд хонда шаванд.

навъи => "openvas"
Навъи ҳодиса.

start_position => "оғоз"
Ҳангоми тағир додани файл, он тамоми файлро мехонад; агар шумо "охир" -ро таъин кунед, система интизор мешавад, ки дар охири файл сабтҳои нав пайдо шаванд.

Иҷрокунанда:

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

Бо истифода аз ин вуруд, фармони shell (танҳо!) оғоз карда мешавад ва баромади он ба паёми журнал табдил дода мешавад.

фармон => "ls -alh"
Фармоне, ки баромадаш ба мо манфиатдор аст.

фосила => 30
Фосилаи даъвати фармон дар сонияҳо.

Барои гирифтани гузоришҳо аз брандмауэр, мо филтрро қайд мекунем tcp ё пуд, вобаста аз он ки чӣ гуна гузоришҳо ба Logstash фиристода мешаванд.

Мо Натиҷаро дар файли конфигуратсияи Logstash дар реҷаи дебаг танзим мекунем, то фаҳмем, ки паёми гузориш чӣ гуна аст

Пас аз танзими INPUT, мо бояд фаҳмем, ки паёми сабт чӣ гуна хоҳад буд ва барои танзими филтри гузориш (таҳлилкунанда) кадом усулҳоро истифода бурдан лозим аст.

Барои ин, мо филтреро истифода мебарем, ки натиҷаро ба stdout барои дидани паёми аслӣ медиҳад; файли конфигуратсияи пурра дар айни замон чунин хоҳад буд:

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

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

Фармонро иҷро кунед, то тафтиш кунед:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
Мо натиҷаро мебинем, тасвирро клик кардан мумкин аст:

2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Агар шумо онро нусхабардорӣ кунед, он чунин хоҳад буд:

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,

Ба ин паёмҳо нигоҳ карда, мо мефаҳмем, ки гузоришҳо чунинанд: майдон = арзиш ё калид = арзиш, яъне филтр бо номи kv мувофиқ аст. Барои интихоби филтри дуруст барои ҳар як ҳолати мушаххас, хуб мебуд, ки бо онҳо дар ҳуҷҷатҳои техникӣ шинос шавед ё аз дӯстатон пурсед.

Танзими Филтр

Дар марҳилаи охирин мо kv-ро интихоб кардем, конфигуратсияи ин филтр дар зер оварда шудааст:

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

Мо аломатеро интихоб мекунем, ки тавассути он майдон ва арзишро тақсим мекунем - “=”. Агар мо дар гузориш сабтҳои якхела дошта бошем, мо танҳо як мисолро дар базаи маълумот захира мекунем, вагарна шумо бо массиви арзишҳои якхела хоҳед ёфт, яъне агар мо паёми “foo = some foo=some” дошта бошем, мо танҳо foo менависем. = баъзе.

Насб кардани Натиҷаи дуруст дар ElasticSearch

Пас аз танзим кардани Филтр, шумо метавонед гузоришҳоро ба пойгоҳи додаҳо бор кунед эластикиро ҷустуҷӯ кунед:

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

Агар ҳуҷҷат бо навъи гузаргоҳ имзо шуда бошад, мо ҳодисаро ба пойгоҳи додаи elasticsearch захира мекунем, ки пайвастҳоро дар 10.10.1.200 дар порти 9200 ба таври нобаёнӣ қабул мекунад. Ҳар як ҳуҷҷат дар як индекси мушаххас захира карда мешавад, дар ин ҳолат мо ба индекси "нуқтаи назорат-" + санаи вақти ҷорӣ захира мекунем. Ҳар як индекс метавонад маҷмӯи мушаххаси майдонҳо дошта бошад ё ҳангоми пайдо шудани майдони нав дар паём ба таври худкор эҷод карда мешавад; танзимоти майдонҳо ва навъи онҳоро дар харитасозӣ дидан мумкин аст.

Агар шумо аутентификатсияро танзим карда бошед (мо баъдтар онро дида мебароем), бояд маълумоти эътимоднома барои навиштан ба индекси мушаххас муайян карда шавад, дар ин мисол он "tssolution" бо пароли "cool" аст. Шумо метавонед ҳуқуқҳои корбарро барои навиштани гузоришҳо танҳо ба индекси мушаххас фарқ кунед ва на бештар.

Logstash-ро оғоз кунед.

Файли конфигуратсияи Logstash:

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

Мо дурустии файли конфигуратсияро тафтиш мекунем:
/usr/share/logstash/bin//logstash -f checkpoint.conf
2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Раванди Logstashро оғоз кунед:
sudo systemctl оғози logstash

Мо тафтиш мекунем, ки раванд оғоз шудааст:
sudo systemctl ҳолати logstash

2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Биёед тафтиш кунем, ки розетка дар боло аст:
netstat -nat |grep 5555

2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Санҷиши гузоришҳо дар Кибана.

Пас аз он ки ҳама чиз иҷро мешавад, ба Кибана равед - Кашф кунед, боварӣ ҳосил кунед, ки ҳама чиз дуруст танзим шудааст, тасвирро клик кардан мумкин аст!

2. Стеки эластикӣ: таҳлили гузоришҳои амниятӣ. Logstash

Ҳама гузоришҳо дар ҷои худ ҳастанд ва мо метавонем ҳамаи майдонҳо ва арзишҳои онҳоро бубинем!

хулоса

Мо дар бораи чӣ гуна навиштани файли конфигуратсияи Logstash дида баромадем ва дар натиҷа мо таҳлилгари ҳамаи майдонҳо ва арзишҳоро гирифтем. Акнун мо метавонем бо ҷустуҷӯ ва нақшаи майдонҳои мушаххас кор кунем. Минбаъд дар курс мо визуализатсияро дар Кибана дида мебароем ва панели оддиро эҷод мекунем. Бояд қайд кард, ки файли конфигуратсияи Logstash бояд дар ҳолатҳои муайян мунтазам нав карда шавад, масалан, вақте ки мо мехоҳем арзиши майдонро аз рақам ба калима иваз кунем. Дар мақолаҳои минбаъда мо ин корро пайваста иҷро хоҳем кард.

Пас бохабар монедтелеграмма, Facebook, VK, Блоги TS Solution), Яндекс Зен.

Манбаъ: will.com

Илова Эзоҳ