1.ํƒ„๋ ฅ์  ์Šคํƒ: ๋ณด์•ˆ ๋กœ๊ทธ ๋ถ„์„. ์†Œ๊ฐœ

1.ํƒ„๋ ฅ์  ์Šคํƒ: ๋ณด์•ˆ ๋กœ๊ทธ ๋ถ„์„. ์†Œ๊ฐœ

Splunk ๋กœ๊น… ๋ฐ ๋ถ„์„ ์‹œ์Šคํ…œ์˜ ๋Ÿฌ์‹œ์•„ ํŒ๋งค ์ข…๋ฃŒ์™€ ๊ด€๋ จํ•˜์—ฌ ์ด ์†”๋ฃจ์…˜์„ ๋ฌด์—‡์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์†”๋ฃจ์…˜์— ์ต์ˆ™ํ•ด์ง„ ํ›„, ์ €๋Š” ์‹ค์ œ ๋‚จ์„ฑ์„ ์œ„ํ•œ ์†”๋ฃจ์…˜์„ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. "ELK ์Šคํƒ". ์ด ์‹œ์Šคํ…œ์€ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์กฐ์ง ๋‚ด ์ •๋ณด๋ณด์•ˆ ์‚ฌ๊ณ ์— ๋Œ€ํ•œ ํ˜„ํ™ฉ์„ ๋ถ„์„ํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ์‹œ์Šคํ…œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ELK ์Šคํƒ์˜ ๊ธฐ๋ณธ(๋˜๋Š” ์•„๋‹ ์ˆ˜๋„ ์žˆ์Œ) ๊ธฐ๋Šฅ์„ ์‚ดํŽด๋ณด๊ณ , ๋กœ๊ทธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ทธ๋ž˜ํ”„ ๋ฐ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•, ๋กœ๊ทธ ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Check Point ๋ฐฉํ™”๋ฒฝ ๋˜๋Š” OpenVas ๋ณด์•ˆ ์Šค์บ๋„ˆ. ๋จผ์ € ELK ์Šคํƒ์ด ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

"ELK ์Šคํƒ" ์„ธ ๊ฐ€์ง€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์•ฝ์–ด์ž…๋‹ˆ๋‹ค. ํƒ„์„ฑ ๊ฒ€์ƒ‰, ๋กœ๊ทธ ๋Œ€์‰ฌ ะธ ํ‚ค๋ฐ” ๋‚˜. ๋ชจ๋“  ๊ด€๋ จ ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ Elastic์—์„œ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Elasticsearch๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ฒ€์ƒ‰, ๋ถ„์„ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•œ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. Logstash๋Š” ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•œ ๋‹ค์Œ ์ด๋ฅผ Elasticsearch ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ณด๋‚ด๋Š” ์„œ๋ฒ„ ์ธก ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์ž…๋‹ˆ๋‹ค. Kibana๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” Elasticsearch์˜ ์ฐจํŠธ์™€ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kibana๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ๊ฐ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1.ํƒ„๋ ฅ์  ์Šคํƒ: ๋ณด์•ˆ ๋กœ๊ทธ ๋ถ„์„. ์†Œ๊ฐœ

๋กœ๊ทธ ๋Œ€์‰ฌ

Logstash๋Š” ๋‹ค์–‘ํ•œ ์†Œ์Šค์˜ ๋กœ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ, ๋ฉ”์‹œ์ง€์—์„œ ํ•„๋“œ์™€ ํ•ด๋‹น ๊ฐ’์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ๋ฐ ํŽธ์ง‘๋„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์กฐ์ž‘์ด ๋๋‚˜๋ฉด Logstash๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ตœ์ข… ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•ฉ๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•ด์„œ๋งŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์ธ logstash ๊ตฌ์„ฑ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ˆ˜์‹  ์ •๋ณด ์ŠคํŠธ๋ฆผ(์ž…๋ ฅ), ์ด ์ •๋ณด์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ํ•„ํ„ฐ(ํ•„ํ„ฐ) ๋ฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‚˜๊ฐ€๋Š” ์ŠคํŠธ๋ฆผ(์ถœ๋ ฅ)์œผ๋กœ ๊ตฌ์„ฑ๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฒ„์ „์—์„œ๋Š”(์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ) ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

input {
}

filter {
}

output {
}

INPUT์—์„œ๋Š” ๋กœ๊ทธ๊ฐ€ ์ „์†ก๋  ํฌํŠธ์™€ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋˜๋Š” ์ƒˆ ํŒŒ์ผ์ด๋‚˜ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋Š” ํŒŒ์ผ์„ ์ฝ์„ ํด๋”๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. FILTER์—์„œ๋Š” ํ•„๋“œ ๊ตฌ๋ฌธ ๋ถ„์„, ๊ฐ’ ํŽธ์ง‘, ์ƒˆ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ ๋“ฑ ๋กœ๊ทธ ํŒŒ์„œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. FILTER๋Š” ๋‹ค์–‘ํ•œ ํŽธ์ง‘ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Logstash์— ์ „๋‹ฌ๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•„๋“œ์ž…๋‹ˆ๋‹ค. ์ถœ๋ ฅ์—์„œ๋Š” ์ด๋ฏธ ๊ตฌ๋ฌธ ๋ถ„์„๋œ ๋กœ๊ทธ๋ฅผ ๋ณด๋‚ด๋Š” ์œ„์น˜๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Elasticsearch์ธ ๊ฒฝ์šฐ ๊ฐ’์ด ์žˆ๋Š” ํ•„๋“œ๊ฐ€ ์ „์†ก๋˜๋Š” JSON ์š”์ฒญ์ด ์ „์†ก๋˜๊ฑฐ๋‚˜ ๋””๋ฒ„๊ทธ์˜ ์ผ๋ถ€๋กœ stdout์œผ๋กœ ์ถœ๋ ฅ๋˜๊ฑฐ๋‚˜ ํŒŒ์ผ์— ๊ธฐ๋ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.ํƒ„๋ ฅ์  ์Šคํƒ: ๋ณด์•ˆ ๋กœ๊ทธ ๋ถ„์„. ์†Œ๊ฐœ

ํƒ„์„ฑ

์ฒ˜์Œ์— Elasticsearch๋Š” ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์†”๋ฃจ์…˜์ด์ง€๋งŒ ์†์‰ฌ์šด ํ™•์žฅ, ๋ณต์ œ ๋ฐ ๊ธฐํƒ€ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ํŽธ์˜ ์‹œ์„ค์„ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด ์ œํ’ˆ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๊ณ ๋ถ€ํ•˜ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ ์†”๋ฃจ์…˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Elasticsearch๋Š” ๋น„๊ด€๊ณ„ํ˜•(NoSQL) JSON ๋ฌธ์„œ ์ €์žฅ์†Œ์ด์ž Lucene ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒ€์ƒ‰ ์—”์ง„์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์€ Java Virtual Machine์ด๋ฏ€๋กœ ์‹œ์Šคํ…œ์„ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋งŽ์€ ์–‘์˜ ํ”„๋กœ์„ธ์„œ์™€ RAM ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
Logstash๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ฟผ๋ฆฌ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ค์–ด์˜ค๋Š” ๊ฐ ๋ฉ”์‹œ์ง€๋Š” ๊ด€๊ณ„ํ˜• SQL์˜ ํ…Œ์ด๋ธ”๊ณผ ์œ ์‚ฌํ•œ "๋ฌธ์„œ"๋กœ ์ƒ‰์ธํ™”๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์„œ๋Š” SQL์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์œ ์‚ฌํ•œ ์ธ๋ฑ์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ๋ฌธ์„œ์˜ ์˜ˆ:

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ชจ๋“  ์ž‘์—…์€ ์ธ๋ฑ์Šค๋ณ„๋กœ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์งˆ๋ฌธ-๋‹ต๋ณ€ ํ˜•์‹์˜ ์ผ๋ถ€ ํ†ต๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” REST API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” JSON ์š”์ฒญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์— ๋Œ€ํ•œ ๋ชจ๋“  ์‘๋‹ต์„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์›น ์„œ๋น„์Šค์ธ Kibana๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค๋ฐ” ๋‚˜

Kibana๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Elasticsearch ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ†ต๊ณ„๋ฅผ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ต๋ณ€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜๋งŽ์€ ์•„๋ฆ„๋‹ค์šด ๊ทธ๋ž˜ํ”„์™€ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์—๋Š” Elasticsearch ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธฐ์‚ฌ์—์„œ๋Š” ์ด ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ตฌ์ถ• ๊ฐ€๋Šฅํ•œ Check Point ๋ฐฉํ™”๋ฒฝ ๋ฐ OpenVas ์ทจ์•ฝ์  ์Šค์บ๋„ˆ์šฉ ๋Œ€์‹œ๋ณด๋“œ์˜ ์˜ˆ๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

Check Point ๋Œ€์‹œ๋ณด๋“œ์˜ ์˜ˆ, ๊ทธ๋ฆผ์„ ํด๋ฆญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.ํƒ„๋ ฅ์  ์Šคํƒ: ๋ณด์•ˆ ๋กœ๊ทธ ๋ถ„์„. ์†Œ๊ฐœ

OpenVas์šฉ ๋Œ€์‹œ๋ณด๋“œ์˜ ์˜ˆ, ๊ทธ๋ฆผ์„ ํด๋ฆญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.ํƒ„๋ ฅ์  ์Šคํƒ: ๋ณด์•ˆ ๋กœ๊ทธ ๋ถ„์„. ์†Œ๊ฐœ

๊ฒฐ๋ก 

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ELK ์Šคํƒ, ์šฐ๋ฆฌ๋Š” ์ฃผ์š” ์ œํ’ˆ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์•Œ๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, ๋‚˜์ค‘์—๋Š” Logstash ๊ตฌ์„ฑ ํŒŒ์ผ ์ž‘์„ฑ, Kibana์— ๋Œ€์‹œ๋ณด๋“œ ์„ค์ •, API ์š”์ฒญ, ์ž๋™ํ™” ๋“ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋Š” ๊ณผ์ •์„ ๋ณ„๋„๋กœ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๊ทธ๋Ÿฌ๋‹ˆ ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค(ํ…”๋ ˆ๊ทธ๋žจ, ํŽ˜์ด์Šค๋ถ, VK, TS ์†”๋ฃจ์…˜ ๋ธ”๋กœ๊ทธ), Yandex.Dzena.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€