์ž ๊ธˆ ์ œํ•œ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” Linux ์ปค๋„์˜ ์ทจ์•ฝ์„ฑ

Linux ์ปค๋„(CVE-2022-21505)์—์„œ ์ปค๋„์— ๋Œ€ํ•œ ๋ฃจํŠธ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๊ณ  UEFI ๋ณด์•ˆ ๋ถ€ํŒ… ์šฐํšŒ ๊ฒฝ๋กœ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ์ž ๊ธˆ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‰ฝ๊ฒŒ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ๋””์ง€ํ„ธ ์„œ๋ช…๊ณผ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šด์˜ ์ฒด์ œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๋„๋ก ์„ค๊ณ„๋œ IMA(Integrity Measurement Architecture) ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ž ๊ธˆ ๋ชจ๋“œ๋Š” /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 ๋ณ€๊ฒฝ์„ ํฌํ•จํ•œ I/O ํฌํŠธ ์กฐ์ž‘์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. /O๋Š” ์ง๋ ฌ ํฌํŠธ์ž…๋‹ˆ๋‹ค.

์ทจ์•ฝ์ ์˜ ๋ณธ์งˆ์€ "ima_appraise=log" ๋ถ€ํŒ… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ณด์•ˆ ๋ถ€ํŒ… ๋ชจ๋“œ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š๊ณ  ์ž ๊ธˆ ๋ชจ๋“œ๊ฐ€ ๋ณ„๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ kexec๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ปค๋„์˜ ์ƒˆ ๋ณต์‚ฌ๋ณธ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์—์„œ. IMA๋Š” ๋ณด์•ˆ ๋ถ€ํŒ…์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ โ€œima_appraiseโ€ ๋ชจ๋“œ ํ™œ์„ฑํ™”๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๋ณด์•ˆ ๋ถ€ํŒ…๊ณผ ๋ณ„๋„๋กœ ์ž ๊ธˆ์„ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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