1.Elastic stack: pagsusuri ng mga security log. Panimula

1.Elastic stack: pagsusuri ng mga security log. Panimula

Kaugnay ng pagtatapos ng mga benta sa Russia ng Splunk logging at analytics system, ang tanong ay lumitaw: ano ang maaaring palitan ang solusyon na ito? Matapos gumugol ng oras na pamilyar sa aking sarili sa iba't ibang mga solusyon, nagpasya ako sa isang solusyon para sa isang tunay na lalaki - "ELK stack". Ang system na ito ay tumatagal ng oras upang i-set up, ngunit bilang isang resulta maaari kang makakuha ng isang napakalakas na sistema para sa pagsusuri ng katayuan at kaagad na tumugon sa mga insidente ng seguridad ng impormasyon sa organisasyon. Sa seryeng ito ng mga artikulo, titingnan natin ang mga pangunahing (o maaaring hindi) mga kakayahan ng ELK stack, isaalang-alang kung paano mo mai-parse ang mga log, kung paano bumuo ng mga graph at dashboard, at kung anong mga kagiliw-giliw na function ang maaaring gawin gamit ang halimbawa ng mga log mula sa ang Check Point firewall o ang OpenVas security scanner. Upang magsimula, tingnan natin kung ano ito - ang ELK stack, at kung anong mga bahagi ang binubuo nito.

"ELK stack" ay isang acronym para sa tatlong open source na proyekto: Elasticsearch, Logstash ΠΈ Kibana. Binuo ng Elastic kasama ang lahat ng kaugnay na proyekto. Ang Elasticsearch ay ang core ng buong system, na pinagsasama ang mga function ng isang database, paghahanap at analytical system. Ang Logstash ay isang pipeline sa pagpoproseso ng data sa gilid ng server na tumatanggap ng data mula sa maraming pinagmumulan nang sabay-sabay, na-parse ang log, at pagkatapos ay ipinapadala ito sa isang database ng Elasticsearch. Binibigyang-daan ng Kibana ang mga user na mailarawan ang data gamit ang mga chart at graph sa Elasticsearch. Maaari mo ring pangasiwaan ang database sa pamamagitan ng Kibana. Susunod, isasaalang-alang namin ang bawat sistema nang hiwalay nang mas detalyado.

1.Elastic stack: pagsusuri ng mga security log. Panimula

Logstash

Ang Logstash ay isang utility para sa pagproseso ng mga kaganapan sa log mula sa iba't ibang mga mapagkukunan, kung saan maaari kang pumili ng mga patlang at ang kanilang mga halaga sa isang mensahe, at maaari mo ring i-configure ang pag-filter at pag-edit ng data. Pagkatapos ng lahat ng pagmamanipula, nire-redirect ng Logstash ang mga kaganapan sa huling data store. Ang utility ay na-configure lamang sa pamamagitan ng mga file ng pagsasaayos.
Ang karaniwang pagsasaayos ng logstash ay isang (mga) file na binubuo ng ilang papasok na stream ng impormasyon (input), ilang filter para sa impormasyong ito (filter) at ilang papalabas na stream (output). Mukhang isa o higit pang mga configuration file, na sa pinakasimpleng bersyon (na walang ginagawa) ay ganito ang hitsura:

input {
}

filter {
}

output {
}

Sa INPUT kino-configure namin kung aling port ang mga log ay ipapadala sa at sa pamamagitan ng aling protocol, o mula sa kung aling folder magbabasa ng bago o patuloy na ina-update na mga file. Sa FILTER, iko-configure namin ang log parser: pag-parse ng mga patlang, pag-edit ng mga halaga, pagdaragdag ng mga bagong parameter o pagtanggal sa kanila. Ang FILTER ay isang field para sa pamamahala ng mensaheng dumarating sa Logstash na may maraming opsyon sa pag-edit. Sa output, iko-configure namin kung saan namin ipinapadala ang na-parse na log, kung sakaling ito ay elasticsearch, isang kahilingan sa JSON ang ipinadala kung saan ipinapadala ang mga patlang na may mga halaga, o bilang bahagi ng debug, maaari itong maging output sa stdout o nakasulat sa isang file.

1.Elastic stack: pagsusuri ng mga security log. Panimula

Elasticsearch

Sa una, ang Elasticsearch ay isang solusyon para sa full-text na paghahanap, ngunit may mga karagdagang amenity tulad ng madaling pag-scale, pagtitiklop at iba pang bagay, na ginawang napaka-kombenyente ng produkto at isang magandang solusyon para sa mga proyektong may mataas na karga na may malalaking volume ng data. Ang Elasticsearch ay isang non-relational (NoSQL) JSON document store at search engine batay sa Lucene full-text na paghahanap. Ang platform ng hardware ay Java Virtual Machine, kaya nangangailangan ang system ng malaking halaga ng mga mapagkukunan ng processor at RAM upang gumana.
Ang bawat papasok na mensahe, alinman sa Logstash o gamit ang query API, ay ini-index bilang isang "dokumento" - kahalintulad sa isang talahanayan sa relational SQL. Ang lahat ng mga dokumento ay naka-imbak sa isang index - isang analogue ng isang database sa SQL.

Halimbawa ng isang dokumento sa database:

{
  "_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",
    ]
}

Ang lahat ng trabaho sa database ay batay sa mga kahilingan ng JSON gamit ang REST API, na maaaring gumawa ng mga dokumento ayon sa index o ilang istatistika sa format na: tanong - sagot. Upang mailarawan ang lahat ng mga tugon sa mga kahilingan, isinulat ang Kibana, na isang serbisyo sa web.

Kibana

Binibigyang-daan ka ng Kibana na maghanap, kunin ang data at mga istatistika ng query mula sa database ng elasticsearch, ngunit maraming magagandang graph at dashboard ang binuo batay sa mga sagot. Ang sistema ay mayroon ding elasticsearch database administration functionality; sa mga susunod na artikulo ay titingnan natin ang serbisyong ito nang mas detalyado. Ngayon ay magpakita tayo ng isang halimbawa ng mga dashboard para sa Check Point firewall at ang OpenVas vulnerability scanner na maaaring itayo.

Isang halimbawa ng dashboard para sa Check Point, naki-click ang larawan:

1.Elastic stack: pagsusuri ng mga security log. Panimula

Isang halimbawa ng dashboard para sa OpenVas, naki-click ang larawan:

1.Elastic stack: pagsusuri ng mga security log. Panimula

Konklusyon

Tiningnan namin kung ano ang binubuo nito ELK stack, medyo nakilala namin ang mga pangunahing produkto, mamaya sa kurso ay hiwalay naming isasaalang-alang ang pagsulat ng isang file ng pagsasaayos ng Logstash, pag-set up ng mga dashboard sa Kibana, pagkilala sa mga kahilingan sa API, automation at marami pa!

Kaya manatiling nakatutokTelegrama, Facebook, VK, TS Solution Blog), Yandex Zen.

Pinagmulan: www.habr.com

Magdagdag ng komento