Snort 3 ์นจ์ž… ํƒ์ง€ ์‹œ์Šคํ…œ์˜ ์ตœ์ข… ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค

์‹œ์Šค์ฝ” ํšŒ์‚ฌ ์ œ์‹œ ์™„์ „ํžˆ ์žฌ์„ค๊ณ„๋œ ๊ณต๊ฒฉ ๋ฐฉ์ง€ ์‹œ์Šคํ…œ์˜ ์ตœ์ข… ๋ฒ ํƒ€ ๋ฒ„์ „ ์ฝ”๊ณจ์ด 3, Snort++ ํ”„๋กœ์ ํŠธ๋ผ๊ณ ๋„ ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฉฐ 2005๋…„๋ถ€ํ„ฐ ๊ฐ„ํ—์ ์œผ๋กœ ์ž‘์—…ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ํ›„๋ณด๋Š” ์˜ฌํ•ด ๋ง์— ์ถœํŒ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ƒˆ ์ง€์ ์—์„œ๋Š” ์ œํ’ˆ ์ปจ์…‰์ด ์™„์ „ํžˆ ์žฌ๊ฒ€ํ† ๋˜๊ณ  ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์žฌ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ ๊ทœ ๋ธŒ๋žœ์น˜๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ๊ฐ•์กฐํ•œ ๋ถ€๋ถ„์œผ๋กœ๋Š” Snort ์„ค์ • ๋ฐ ์‹คํ–‰ ๋‹จ์ˆœํ™”, ๊ตฌ์„ฑ ์ž๋™ํ™”, ๋ฃฐ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์–ธ์–ด ๋‹จ์ˆœํ™”, ๋ชจ๋“  ํ”„๋กœํ† ์ฝœ ์ž๋™ ๊ฐ์ง€, ๋ช…๋ น์—์„œ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์…ธ ์ œ๊ณต ๋“ฑ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ธ, ๋‹จ์ผ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์˜ ๊ณต์œ  ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ํ˜์‹ ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ˆœํ™”๋œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. LuaJIT๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. LuaJIT ๊ธฐ๋ฐ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋Š” ๊ทœ์น™ ๋ฐ ๋กœ๊น… ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜ ๊ตฌํ˜„์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ ํƒ์ง€ ์—”์ง„์ด ํ˜„๋Œ€ํ™”๋˜๊ณ , ๊ทœ์น™์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ, ๊ทœ์น™์— ๋ฒ„ํผ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ธฐ๋Šฅ(๊ณ ์ • ๋ฒ„ํผ)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Hyperscan ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทœ์น™์˜ ์ •๊ทœ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํŠธ๋ฆฌ๊ฑฐ๋œ ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ธ์…˜ ์ƒํƒœ๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๋ชจ์Œ์—์„œ ์ง€์›ํ•˜๋Š” ์ƒํ™ฉ์˜ 99%๋ฅผ ๋‹ค๋ฃจ๋Š” HTTP์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์ž์ฒด ๊ฒ€์‚ฌ ๋ชจ๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. HTTP ํšŒํ”ผ๊ธฐ. HTTP/2๋ฅผ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค.
  • ์‹ฌ์ธต ํŒจํ‚ท ๊ฒ€์‚ฌ ๋ชจ๋“œ์˜ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํŒจํ‚ท ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์–ด ํŒจํ‚ท ํ”„๋กœ์„ธ์„œ๋กœ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ์ฝ”์–ด ์ˆ˜์— ๋”ฐ๋ผ ์„ ํ˜• ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ ํ•˜์œ„ ์‹œ์Šคํ…œ ๊ฐ„์— ๊ณต์œ ๋˜๋Š” ๊ณตํ†ต ๊ตฌ์„ฑ ์ €์žฅ์†Œ ๋ฐ ์†์„ฑ ํ…Œ์ด๋ธ”์ด ๊ตฌํ˜„๋˜์–ด ์ •๋ณด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ํฌ๊ฒŒ ์ค„์˜€์Šต๋‹ˆ๋‹ค.
  • JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๊ณ  Elastic Stack๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ํ”Œ๋žซํผ๊ณผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋˜๋Š” ์ƒˆ๋กœ์šด ์ด๋ฒคํŠธ ๋กœ๊น… ์‹œ์Šคํ…œ
  • ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ณ  ๊ต์ฒด ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ์ฃผ์š” โ€‹โ€‹ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ Snort 3์—๋Š” ์ด๋ฏธ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๊ตฌํ˜„๋˜์–ด ๋‹ค์–‘ํ•œ ์‘์šฉ ๋ถ„์•ผ๋ฅผ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ทœ์น™์— ์ž์‹ ๋งŒ์˜ ์ฝ”๋ฑ, ๋‚ด๋ถ€ ๊ฒ€์‚ฌ ๋ชจ๋“œ, ๋กœ๊น… ๋ฐฉ๋ฒ•, ์ž‘์—… ๋ฐ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๋ฏ€๋กœ ํ™œ์„ฑ ๋„คํŠธ์›Œํฌ ํฌํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

2018๋…„์— ๊ฒŒ์‹œ๋œ ๋งˆ์ง€๋ง‰ ํ…Œ์ŠคํŠธ ๋ฆด๋ฆฌ์Šค์™€ ๋น„๊ตํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ๊ตฌ์„ฑ๊ณผ ๊ด€๋ จ๋œ ์„ค์ •์„ ๋น ๋ฅด๊ฒŒ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ์ฝ”๋“œ๋Š” C++14 ํ‘œ์ค€์— ์ •์˜๋œ C++ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(๋นŒ๋“œ์—๋Š” C++14๋ฅผ ์ง€์›ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•จ).
  • ์ƒˆ๋กœ์šด VXLAN ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—…๋ฐ์ดํŠธ๋œ ๋Œ€์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ณ„ ์ฝ˜ํ…์ธ  ์œ ํ˜• ๊ฒ€์ƒ‰์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์ด์–ด-๋ฌด์–ด ะธ ํ•˜์ดํผ์Šค์บ”;
  • HTTP/2 ํŠธ๋ž˜ํ”ฝ ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ์ด ๊ฑฐ์˜ ์™„๋ฒฝํ•˜๊ฒŒ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทœ์น™ ๊ทธ๋ฃน์„ ์ปดํŒŒ์ผํ•˜๋ฉด ์‹œ์ž‘์ด ๊ฐ€์†ํ™”๋ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๋กœ๊น… ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Lua ์˜ค๋ฅ˜ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ  ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฆ‰์‹œ ์„ค์ •์„ ๋‹ค์‹œ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • RNA(์‹ค์‹œ๊ฐ„ ๋„คํŠธ์›Œํฌ ์ธ์‹) ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ์ด ์ถ”๊ฐ€๋˜์–ด ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค, ํ˜ธ์ŠคํŠธ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ตฌ์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด snort_config.lua ๋ฐ SNORT_LUA_PATH์˜ ์‚ฌ์šฉ์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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