Suricata 6.0 ์นจ์ž…ํƒ์ง€์‹œ์Šคํ…œ ์ถœ์‹œ

XNUMX๋…„๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— OISF(Open Information Security Foundation) ์กฐ์ง์ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ะพะฟัƒะฑะปะธะบะพะฒะฐะปะฐ ๋„คํŠธ์›Œํฌ ์นจ์ž…ํƒ์ง€ ๋ฐ ์˜ˆ๋ฐฉ์‹œ์Šคํ…œ ์ถœ์‹œ ๋ฏธ์–ด์บฃ 6.0, ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Suricata ๊ตฌ์„ฑ์—์„œ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ช… ๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคSnort ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ๊ทœ์น™ ์„ธํŠธ์™€ ์ƒˆ๋กœ์šด ์œ„ํ˜‘ ะธ ์ƒˆ๋กœ์šด ์œ„ํ˜‘ ํ”„๋กœ. ํ”„๋กœ์ ํŠธ ์†Œ์Šค ํ™•์‚ฐ GPLv2์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • HTTP/2์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›.
  • ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ RFB ๋ฐ MQTT ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • DCERPC ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ๋กœ๊น… ๊ฐ€๋Šฅ์„ฑ.
  • JSON ํ˜•์‹์œผ๋กœ ์ด๋ฒคํŠธ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•˜๋Š” EVE ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋กœ๊น… ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Rust ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ƒˆ๋กœ์šด JSON ์Šคํ†ก ๋นŒ๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์†ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
  • EVE ๋กœ๊ทธ ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์œผ๋ฉฐ ๊ฐ ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋กœ๊ทธ ํŒŒ์ผ์„ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ •๋ณด๋ฅผ ๋กœ๊ทธ๋กœ ์žฌ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ.
  • EVE ๋กœ๊ทธ์— MAC ์ฃผ์†Œ๋ฅผ ๋ฐ˜์˜ํ•˜๊ณ  DNS ๋กœ๊ทธ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ธฐ๋Šฅ.
  • ํ”Œ๋กœ์šฐ ์—”์ง„์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • SSH ๊ตฌํ˜„ ์‹๋ณ„ ์ง€์›(ํ•ด์‹œ).
  • GENEVE ํ„ฐ๋„ ๋””์ฝ”๋” ๊ตฌํ˜„.
  • ์ฒ˜๋ฆฌ ์ฝ”๋“œ๊ฐ€ Rust ์–ธ์–ด๋กœ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ASN.1, DCERPC ๋ฐ SSH. Rust๋Š” ๋˜ํ•œ ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทœ์น™ ์ •์˜ ์–ธ์–ด์—์„œ๋Š” from_end ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง€์›์ด byte_jump ํ‚ค์›Œ๋“œ์— ์ถ”๊ฐ€๋˜์—ˆ๊ณ , bitmask ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง€์›์ด byte_test์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœ์‹(pcre)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก pcrexform ํ‚ค์›Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. urldecode ๋ณ€ํ™˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. byte_math ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • cbindgen์„ ์‚ฌ์šฉํ•˜์—ฌ Rust ๋ฐ C ์–ธ์–ด๋กœ ๋ฐ”์ธ๋”ฉ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋ฆฌ์นดํƒ€์˜ ํŠน์ง•:

  • ํ†ตํ•ฉ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค์บ” ๊ฒฐ๊ณผ ํ‘œ์‹œ ํ†ตํ•ฉ2, Snort ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์‚ฌ์šฉ๋˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‘œ์ค€ ๋ถ„์„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž๋งˆ๋‹น2. BASE, Snorby, Sguil ๋ฐ SQueRT ์ œํ’ˆ๊ณผ์˜ ํ†ตํ•ฉ ๊ฐ€๋Šฅ์„ฑ. PCAP ์ถœ๋ ฅ ์ง€์›;
  • ํ”„๋กœํ† ์ฝœ(IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB ๋“ฑ) ์ž๋™ ๊ฐ์ง€ ์ง€์›์„ ํ†ตํ•ด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ (์˜ˆ: HTTP ์ฐจ๋‹จ) ํ”„๋กœํ† ์ฝœ ์œ ํ˜•๋ณ„๋กœ๋งŒ ๊ทœ์น™์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„ํ‘œ์ค€ ํฌํŠธ์˜ ํŠธ๋ž˜ํ”ฝ). HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP ๋ฐ SSH ํ”„๋กœํ† ์ฝœ์šฉ ๋””์ฝ”๋” ๊ฐ€์šฉ์„ฑ
  • Mod_Security ํ”„๋กœ์ ํŠธ ์ž‘์„ฑ์ž๊ฐ€ ๋งŒ๋“  ํŠน์ˆ˜ HTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTTP ํŠธ๋ž˜ํ”ฝ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ์ •๊ทœํ™”ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ HTTP ํŠธ๋ž˜ํ”ฝ ๋ถ„์„ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ „์†ก HTTP ์ „์†ก์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋กœ๊ทธ๋Š” ํ‘œ์ค€ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    ์•„ํŒŒ์น˜. HTTP๋ฅผ ํ†ตํ•ด ์ „์†ก๋œ ํŒŒ์ผ ๊ฒ€์ƒ‰ ๋ฐ ํ™•์ธ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์••์ถ•๋œ ์ฝ˜ํ…์ธ  ๊ตฌ๋ฌธ ๋ถ„์„์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. URI, ์ฟ ํ‚ค, ํ—ค๋”, ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ, ์š”์ฒญ/์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์‹๋ณ„ํ•˜๋Š” ๊ธฐ๋Šฅ

  • NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING์„ ํฌํ•จํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ์ฐจ๋‹จ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. PCAP ํ˜•์‹์œผ๋กœ ์ด๋ฏธ ์ €์žฅ๋œ ํŒŒ์ผ์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ์„ฑ๋Šฅ, ๊ธฐ์กด ์žฅ๋น„์—์„œ ์ตœ๋Œ€ 10๊ธฐ๊ฐ€๋น„ํŠธ/์ดˆ์˜ ํ๋ฆ„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Šฅ๋ ฅ.
  • ๋Œ€๊ทœ๋ชจ IP ์ฃผ์†Œ ์„ธํŠธ์— ๋Œ€ํ•œ ๊ณ ์„ฑ๋Šฅ ๋งˆ์Šคํฌ ์ผ์น˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋งˆ์Šคํฌ ๋ฐ ์ •๊ทœ์‹์œผ๋กœ ์ฝ˜ํ…์ธ  ์„ ํƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„, ์œ ํ˜• ๋˜๋Š” MD5 ์ฒดํฌ์„ฌ์— ๋”ฐ๋ฅธ ์‹๋ณ„์„ ํฌํ•จํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์—์„œ ํŒŒ์ผ์„ ๊ฒฉ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทœ์น™์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ: ์ŠคํŠธ๋ฆผ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‚˜์ค‘์— ๋‹ค๋ฅธ ๊ทœ์น™์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์„ฑ ํŒŒ์ผ์— YAML ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…ํ™•์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๊ธฐ๊ณ„ ์ฒ˜๋ฆฌ๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  • ์™„์ „ํ•œ IPv6 ์ง€์›;
  • ํŒจํ‚ท์˜ ์ž๋™ ์กฐ๊ฐ ๋ชจ์Œ ๋ฐ ์žฌ์กฐ๋ฆฝ์„ ์œ„ํ•œ ๋‚ด์žฅ ์—”์ง„์œผ๋กœ, ํŒจํ‚ท์ด ๋„์ฐฉํ•˜๋Š” ์ˆœ์„œ์— ๊ด€๊ณ„์—†์ด ์ŠคํŠธ๋ฆผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ„ฐ๋„๋ง ํ”„๋กœํ† ์ฝœ ์ง€์›: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
  • ํŒจํ‚ท ๋””์ฝ”๋”ฉ ์ง€์›: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, ์ด๋”๋„ท, PPP, PPPoE, Raw, SLL, VLAN;
  • TLS/SSL ์—ฐ๊ฒฐ ๋‚ด์— ๋‚˜ํƒ€๋‚˜๋Š” ํ‚ค ๋ฐ ์ธ์ฆ์„œ ๋กœ๊น… ๋ชจ๋“œ.
  • ๊ณ ๊ธ‰ ๋ถ„์„์„ ์ œ๊ณตํ•˜๊ณ  ํ‘œ์ค€ ๊ทœ์น™์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ํŠธ๋ž˜ํ”ฝ ์œ ํ˜•์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Lua์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ.

์ถœ์ฒ˜ : opennet.ru

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