Linux 5.4 ์ปค๋„์€ ์ปค๋„ ๋‚ด๋ถ€์— ๋Œ€ํ•œ ๋ฃจํŠธ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ํŒจ์น˜๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ ๋ฐ›์•„ ๋“ค์˜€๋‹ค. ๊ณง ์ถœ์‹œ๋  Linux 5.4 ์ปค๋„ ๋ฆด๋ฆฌ์Šค์—๋Š” ํŒจ์น˜ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์ž ๊ธˆ", ์ œ์•ˆ ๋œ David Howells(Red Hat) ๋ฐ Matthew Garrett(๋งคํŠœ ๊ฐœ๋ ›, Google์—์„œ ์ž‘์—…) ์ปค๋„์— ๋Œ€ํ•œ ๋ฃจํŠธ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ž ๊ธˆ ๊ด€๋ จ ๊ธฐ๋Šฅ์€ ์„ ํƒ์ ์œผ๋กœ ๋กœ๋“œ๋˜๋Š” LSM ๋ชจ๋“ˆ(Linux ๋ณด์•ˆ ๋ชจ๋“ˆ)๋Š” UID 0๊ณผ ์ปค๋„ ์‚ฌ์ด์— ์žฅ๋ฒฝ์„ ๋ฐฐ์น˜ํ•˜์—ฌ ํŠน์ • ํ•˜์œ„ ์ˆ˜์ค€ ๊ธฐ๋Šฅ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๊ฐ€ ๋ฃจํŠธ ๊ถŒํ•œ์œผ๋กœ ์ฝ”๋“œ ์‹คํ–‰์„ ๋‹ฌ์„ฑํ•˜๋ฉด ์˜ˆ๋ฅผ ๋“ค์–ด kexec๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์„ ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ /dev/kmem์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ํ™œ๋™์˜ โ€‹โ€‹๊ฐ€์žฅ ๋ช…๋ฐฑํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐํšŒ๋กœ UEFI ๋ณด์•ˆ ๋ถ€ํŒ… ๋˜๋Š” ์ปค๋„ ์ˆ˜์ค€์— ์ €์žฅ๋œ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰.

์ฒ˜์Œ์—๋Š” ์ž์ฒด ๊ฒ€์‚ฌ ๋ถ€ํŒ… ๋ณดํ˜ธ ๊ฐ•ํ™”๋ผ๋Š” ๋งฅ๋ฝ์—์„œ ๋ฃจํŠธ ์ œํ•œ ๊ธฐ๋Šฅ์ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ๋ฐฐํฌํŒ์—์„œ๋Š” ๊ฝค ์˜ค๋žซ๋™์•ˆ UEFI ๋ณด์•ˆ ๋ถ€ํŒ… ์šฐํšŒ๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์‚ฌ ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์ด๋Ÿฌํ•œ ์ œํ•œ์€ ์ปค๋„์˜ ์ฃผ์š” ๊ตฌ์„ฑ์— ํฌํ•จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ถˆ์ผ์น˜ ๊ตฌํ˜„ ๋ฐ ๊ธฐ์กด ์‹œ์Šคํ…œ ์ค‘๋‹จ์— ๋Œ€ํ•œ ๋‘๋ ค์›€. "์ž ๊ธˆ" ๋ชจ๋“ˆ์€ ๋ฐฐํฌํŒ์— ์ด๋ฏธ ์‚ฌ์šฉ๋œ ํŒจ์น˜๋ฅผ ํก์ˆ˜ํ–ˆ์œผ๋ฉฐ, ์ด๋Š” UEFI ๋ณด์•ˆ ๋ถ€ํŒ…์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๋ณ„๋„์˜ ํ•˜์œ„ ์‹œ์Šคํ…œ ํ˜•ํƒœ๋กœ ์žฌ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ๋ชจ๋“œ๋Š” /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes ๋””๋ฒ„๊ทธ ๋ชจ๋“œ, mmiotrace, Tracefs, BPF, PCMCIA CIS(์นด๋“œ ์ •๋ณด ๊ตฌ์กฐ), ์ผ๋ถ€ ACPI ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ CPU์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. MSR ๋ ˆ์ง€์Šคํ„ฐ, kexec_file ๋ฐ kexec_load ํ˜ธ์ถœ์ด ์ฐจ๋‹จ๋˜๊ณ , ์ ˆ์ „ ๋ชจ๋“œ๊ฐ€ ๊ธˆ์ง€๋˜๊ณ , PCI ์žฅ์น˜์— ๋Œ€ํ•œ DMA ์‚ฌ์šฉ์ด ์ œํ•œ๋˜๊ณ , EFI ๋ณ€์ˆ˜์—์„œ ACPI ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค.
์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ ๋ฐ ์ง๋ ฌ ํฌํŠธ์˜ I/O ํฌํŠธ ๋ณ€๊ฒฝ์„ ํฌํ•จํ•˜์—ฌ I/O ํฌํŠธ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์ž ๊ธˆ ๋ชจ๋“ˆ์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ SECURITY_LOCKDOWN_LSM ์˜ต์…˜์ด kconfig์— ์ง€์ •๋˜์–ด ์žˆ์„ ๋•Œ ๋นŒ๋“œ๋˜๊ณ  ์ปค๋„ ๋งค๊ฐœ๋ณ€์ˆ˜ "lockdown=", ์ œ์–ด ํŒŒ์ผ "/sys/kernel/security/lockdown" ๋˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ์˜ต์…˜์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. LOCK_DOWN_KERNEL_FORCE_*, ์ด๋Š” "๋ฌด๊ฒฐ์„ฑ" ๋ฐ "๊ธฐ๋ฐ€์„ฑ" ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ปค๋„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ฐจ๋‹จ๋˜๊ณ , ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” ์ปค๋„์—์„œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

์ž ๊ธˆ์€ ์ปค๋„์— ๋Œ€ํ•œ ํ‘œ์ค€ ์•ก์„ธ์Šค๋งŒ ์ œํ•œํ•  ๋ฟ, ์ทจ์•ฝ์  ์•…์šฉ์œผ๋กœ ์ธํ•œ ์ˆ˜์ •์„ ๋ฐฉ์ง€ํ•  ์ˆ˜๋Š” ์—†๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Openwall ํ”„๋กœ์ ํŠธ์—์„œ ์ต์Šคํ”Œ๋กœ์ž‡์„ ์‚ฌ์šฉํ•  ๋•Œ ์‹คํ–‰ ์ค‘์ธ ์ปค๋„์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ์ฐจ๋‹จํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ ์ค‘ ๋ณ„๋„์˜ ๋ชจ๋“ˆ LKRG (๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋Ÿฐํƒ€์ž„ ๊ฐ€๋“œ).

์ถœ์ฒ˜ : opennet.ru

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