Linux ์ปค๋„์˜ tty ํ•˜์œ„ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Google Project Zero ํŒ€์˜ ์—ฐ๊ตฌ์›๋“ค์€ Linux ์ปค๋„์˜ tty ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ TIOCSPGRP ioctl ํ•ธ๋“ค๋Ÿฌ ๊ตฌํ˜„์˜ ์ทจ์•ฝ์ (CVE-2020-29661)์„ ์•…์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต๊ฐœํ•˜๊ณ , ๊ทธ๋Ÿฌํ•œ ๊ฒƒ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋ณดํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋„ ์ž์„ธํžˆ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ทจ์•ฝ์ .

๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๋ฒ„๊ทธ๋Š” ๋น ๋ฅด๋ฉด ์ง€๋‚œํ•ด 3์›” 5.9.13์ผ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ ์ˆ˜์ •๋๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ปค๋„ ๋ฒ„์ „ 2020๊นŒ์ง€ ๋‚˜ํƒ€๋‚˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฐํฌํŒ์€ ์ž‘๋…„์— ์ œ์•ˆ๋œ ์ปค๋„ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ(Debian, RHEL, SUSE, Ubuntu, Fedora, Arch)์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. TIOCGSID ioctl ํ˜ธ์ถœ์˜ ๊ตฌํ˜„์—์„œ ์œ ์‚ฌํ•œ ์ทจ์•ฝ์ (CVE-29660-XNUMX)์ด ๋™์‹œ์— ๋ฐœ๊ฒฌ๋˜์—ˆ์ง€๋งŒ ๋ชจ๋“  ๊ณณ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” Drivers/tty/tty_jobctrl.c ์ฝ”๋“œ์—์„œ ๊ฒฝ์Ÿ ์กฐ๊ฑด์„ ์œ ๋ฐœํ•˜๋Š” ์ž ๊ธˆ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๋Š” ioct ํ˜ธ์ถœ TIOCSPGRP๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์•…์šฉ๋˜๋Š” ์‚ฌ์šฉ ํ›„ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์กฐ๊ฑด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ 10-4.19.0-amd13๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Debian 64์—์„œ ๊ถŒํ•œ ์—์Šค์ปฌ๋ ˆ์ด์…˜์— ๋Œ€ํ•ด ์ž‘๋™ํ•˜๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์ด ์‹œ์—ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— ๊ฒŒ์‹œ๋œ ๊ธฐ์‚ฌ์—์„œ๋Š” ์ž‘๋™ํ•˜๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ผ ์ด๋Ÿฌํ•œ ์ทจ์•ฝ์„ฑ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„์— ์กด์žฌํ•˜๋Š” ๋„๊ตฌ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์€ ๊ณ ๋ฌด์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํž™์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ„ํ•  ๋ฐ ํ•ด์ œ ํ›„ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์ œ์–ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์€ ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์ด์–ด์ง€๊ณ  CFI(Control Flow Integrity) ๊ธฐ๋ฐ˜ ๋ณดํ˜ธ, ์•…์šฉ ์ฐจ๋‹จ์œผ๋กœ ์ด์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ ํ›„๋ฐ˜๋ถ€์—๋Š” ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : opennet.ru

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