Linux ์ปค๋„์˜ ์ทจ์•ฝ์  ์•…์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ LKRG 0.8 ๋ชจ๋“ˆ ์ถœ์‹œ

์˜คํ”ˆ์›” ํ”„๋กœ์ ํŠธ ์ถœํŒ ์ปค๋„ ๋ชจ๋“ˆ ๋ฆด๋ฆฌ์Šค LKRG 0.8 (Linux Kernel Runtime Guard)๋Š” ์ปค๋„ ๊ตฌ์กฐ์˜ ๋ฌด๊ฒฐ์„ฑ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ๊ณผ ์œ„๋ฐ˜์„ ํƒ์ง€ํ•˜๊ณ  ์ฐจ๋‹จํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ชจ๋“ˆ์€ ์‹คํ–‰ ์ค‘์ธ ์ปค๋„์— ๋Œ€ํ•œ ๋ฌด๋‹จ ๋ณ€๊ฒฝ ๋ฐ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์˜ ๊ถŒํ•œ ๋ณ€๊ฒฝ ์‹œ๋„(์ต์Šคํ”Œ๋กœ์ž‡ ์‚ฌ์šฉ ๊ฐ์ง€)๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ Linux ์ปค๋„์— ๋Œ€ํ•ด ์ด๋ฏธ ์•Œ๋ ค์ง„ ์•…์šฉ(์˜ˆ: ์‹œ์Šคํ…œ์—์„œ ์ปค๋„์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ์ƒํ™ฉ)์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์€ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์•…์šฉ์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ ๋ชจ๋‘ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฐฐํฌ์ž GPLv2์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • LKRG ํ”„๋กœ์ ํŠธ์˜ ํฌ์ง€์…”๋‹์ด ๋ณ€๊ฒฝ๋˜์–ด ๋” ์ด์ƒ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์ต์Šคํ”Œ๋กœ์ž‡ ์‚ฌ์šฉ ๊ฒฐ์ •์„ ์œ„ํ•œ ๋ณ„๋„์˜ ํ•˜์œ„ ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ๋ถ„๋˜์ง€ ์•Š๊ณ  ๊ณต๊ฒฉ ๋ฐ ๋‹ค์–‘ํ•œ ๋ฌด๊ฒฐ์„ฑ ์œ„๋ฐ˜ ์‹๋ณ„์„ ์œ„ํ•œ ์™„์ „ํ•œ ์ œํ’ˆ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • 5.3์—์„œ 5.7๊นŒ์ง€์˜ Linux ์ปค๋„, CONFIG_USB ๋ฐ CONFIG_STACKTRACE ์˜ต์…˜ ์—†์ด ๋˜๋Š” CONFIG_UNWINDER_ORC ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์ ์ธ GCC ์ตœ์ ํ™”๋กœ ์ปดํŒŒ์ผ๋œ ์ปค๋„, LKRG ํ›„ํฌ ๊ธฐ๋Šฅ์ด ์—†๋Š” ์ปค๋„(๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ)๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋ฉด์ œ๋˜๋‹ค;
  • ๋นŒ๋“œํ•  ๋•Œ ๋ชจํ˜ธํ•œ ์ถฉ๋Œ ๋Œ€์‹  ์˜๋ฏธ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ํ•„์ˆ˜ CONFIG_* ์ปค๋„ ์„ค์ •์ด ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.
  • ๋Œ€๊ธฐ(ACPI S3, RAM ์ผ์‹œ ์ค‘์ง€) ๋ฐ ์ ˆ์ „(S4, ๋””์Šคํฌ ์ผ์‹œ ์ค‘์ง€) ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Makefile์— DKMS ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • 32๋น„ํŠธ ARM ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Raspberry Pi 3 Model B์—์„œ ํ…Œ์ŠคํŠธ๋จ). ์ด์ „์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ–ˆ๋˜ AArch64(ARM64) ์ง€์›์ด Raspberry Pi 4 ๋ณด๋“œ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์ œ๊ณตํ•˜๋„๋ก ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "๊ธฐ๋Šฅ", ํ”„๋กœ์„ธ์Šค ID๊ฐ€ ์•„๋‹˜(์‹ ์ž„์žฅ);
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ œํ•œ(์˜ˆ: Docker ์ปจํ…Œ์ด๋„ˆ)์„ ํƒˆ์ถœํ•˜๋ ค๋Š” ์‹œ๋„๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋…ผ๋ฆฌ๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • x86-64 ์‹œ์Šคํ…œ์—์„œ๋Š” ์ปค๋„ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋Š” ๊ถŒํ•œ ์žˆ๋Š” ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ•˜๋„๋ก ์„ค๊ณ„๋œ SMAP(๊ฐ๋…์ž ๋ชจ๋“œ ์•ก์„ธ์Šค ๋ฐฉ์ง€) ๋น„ํŠธ๊ฐ€ ํ™•์ธ ๋ฐ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. SMEP(๊ฐ๋…์ž ๋ชจ๋“œ ์‹คํ–‰ ๋ฐฉ์ง€) ๋ณดํ˜ธ๋Š” ์ด์ „์— ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘๋™ ์ค‘์— LKRG ์„ค์ •์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ๊ธฐ ์ „์šฉ์ธ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ์— ๊ฐ€์žฅ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊น… ์ •๋ณด(์˜ˆ: ์ปค๋„์˜ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์ •๋ณด)๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š” ๋””๋ฒ„๊น… ๋ชจ๋“œ(log_level=4 ์ด์ƒ)๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค ์ถ”์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ™•์žฅ์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์Šคํ•€๋ก์œผ๋กœ ๋ณดํ˜ธ๋˜๋Š” ํ•˜๋‚˜์˜ RB ํŠธ๋ฆฌ ๋Œ€์‹  512๊ฐœ์˜ ์ฝ๊ธฐ-์“ฐ๊ธฐ ์ž ๊ธˆ์œผ๋กœ ๋ณดํ˜ธ๋˜๋Š” 512๊ฐœ์˜ RB ํŠธ๋ฆฌ์˜ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž์˜ ๋ฌด๊ฒฐ์„ฑ์ด ํ˜„์žฌ ์ž‘์—…์— ๋Œ€ํ•ด์„œ๋งŒ ํ™•์ธ๋˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋œ(๊นจ์–ด๋‚˜๊ธฐ) ์ž‘์—…์— ๋Œ€ํ•ด์„œ๋„ ํ™•์ธ๋˜๋Š” ๋ชจ๋“œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌํ˜„ ๋ฐ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ ˆ์ „ ์ƒํƒœ์— ์žˆ๊ฑฐ๋‚˜ LKRG์—์„œ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์ปค๋„ API์— ์•ก์„ธ์Šคํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…ํ•˜๋Š” ๋‹ค๋ฅธ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๊ฒ€์‚ฌ ๋นˆ๋„๊ฐ€ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.
  • LKRG ๋ฏธ์„ธ ์กฐ์ •์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด sysctl ๋ฐ ๋ชจ๋“ˆ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ค€๋น„ํ•œ ๋ฏธ์„ธ ์กฐ์ • ์„ค์ •(ํ”„๋กœํ•„) ์„ธํŠธ์—์„œ ์„ ํƒํ•˜์—ฌ ๋‹จ์ˆœํ™”๋œ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ๋‘ ๊ฐœ์˜ sysctl์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ„๋ฐ˜ ํƒ์ง€ ์†๋„์™€ ๋Œ€์‘ ํšจ๊ณผ, ๊ทธ๋ฆฌ๊ณ  ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ๊ณผ ์˜คํƒ์ง€ ์œ„ํ—˜ ์‚ฌ์ด์˜ ๊ท ํ˜•์„ ๋”์šฑ ๊ท ํ˜• ์žˆ๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ์„ค์ •์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ€ํŒ… ์ดˆ๊ธฐ์— LKRG ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๋„๋ก systemd ์žฅ์น˜ ํŒŒ์ผ์ด ์žฌ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ปค๋„ ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Œ).

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ์•ˆ๋œ ์ตœ์ ํ™”๋ฅผ ๊ณ ๋ คํ•˜๋ฉด LKRG 0.8์„ ์‚ฌ์šฉํ•  ๋•Œ ์„ฑ๋Šฅ ๊ฐ์†Œ๋Š” ๊ธฐ๋ณธ ๋ชจ๋“œ("๋ฌด๊ฑฐ์›€")์—์„œ 2.5%, ์กฐ๋ช… ๋ชจ๋“œ("๊ฐ€๋ฒผ์›€")์—์„œ 2%๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ๊ฐœ์ตœ๋œ ํ–‰์‚ฌ์—์„œ ์—ฐ๊ตฌํ•˜๋‹ค ๋ฃจํŠธํ‚ท LKRG ํƒ์ง€๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€์˜ ํšจ์œจ์„ฑ ๋ณด์—ฌ ์ฃผ๋Š” ์ตœ์ƒ์˜ ๊ฒฐ๊ณผ, ํ…Œ์ŠคํŠธ๋œ ๋ฃจํŠธํ‚ท 8๊ฐœ ์ค‘ 9๊ฐœ๊ฐ€ ์˜คํƒ ์—†์ด ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋ฃจํŠธํ‚ท Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit ๋ฐ Sutekh๋Š” ํ™•์ธ๋˜์—ˆ์ง€๋งŒ ์ปค๋„์ธ Keysniffer). ๋ชจ๋“ˆ์€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ์˜ ๋ฃจํŠธํ‚ท์ด ์•„๋‹ˆ๋ผ ํ‚ค๋กœ๊ฑฐ์—์„œ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.) ๋น„๊ต๋ฅผ ์œ„ํ•ด AIDE, OSSEC ๋ฐ Rootkit Hunter ํŒจํ‚ค์ง€๋Š” ๋ฃจํŠธํ‚ท 2๊ฐœ ์ค‘ 9๊ฐœ๋ฅผ ํƒ์ง€ํ•œ ๋ฐ˜๋ฉด Chkrootkit์€ ์ „ํ˜€ ํƒ์ง€ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— LKRG๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ์žˆ๋Š” ๋ฃจํŠธํ‚ท ํƒ์ง€๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ AIDE์™€ LKRG๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ํฐ ํšจ์œจ์„ฑ์ด ๋‹ฌ์„ฑ๋˜์–ด ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฃจํŠธํ‚ท 14๊ฐœ ์ค‘ 15๊ฐœ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฐฐํฌํŒ ๊ฐœ๋ฐœ์ž๋„ ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™€๋‹‰ ์‹œ์ž‘๋˜์—ˆ๋‹ค ์„ฑํ˜• Debian, Whonix, Qubes ๋ฐ Kicksecure์šฉ DKMS๊ฐ€ ํฌํ•จ๋œ ๊ธฐ์„ฑ ํŒจํ‚ค์ง€์™€ ์•„์น˜ ๋ฆฌ๋ˆ…์Šค ์ด๋ฏธ ๋ฒ„์ „ 0.8๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. LKRG๊ฐ€ ํฌํ•จ๋œ ํŒจํ‚ค์ง€๋Š” ๋Ÿฌ์‹œ์•„์–ด๋กœ๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ALT ๋ฆฌ๋ˆ…์Šค ะธ ์•„์ŠคํŠธ๋ผ ๋ฆฌ๋ˆ…์Šค.

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

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

์ถœ์ฒ˜ : opennet.ru

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