์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋ฃจํŠธ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” Firejail์˜ ์ทจ์•ฝ์ 

๋กœ์ปฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ๋ฃจํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ (CVE-2022-31214)์ด Firejail Application Sandboxing Tool์—์„œ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. firejail ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์„ค์น˜๋œ openSUSE, Debian, Arch, Gentoo ๋ฐ Fedora์˜ ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค์—์„œ ํ…Œ์ŠคํŠธ๋œ ๊ณต๊ฐœ ๋„๋ฉ”์ธ์—์„œ ์ž‘๋™ํ•˜๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” firejail 0.9.70 ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ค์ •(/etc/firejail/firejail.config)์—์„œ "join no" ๋ฐ "force-nonewprivs yes" ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Firejail์€ ๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•ด Linux์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฉ”์ปค๋‹ˆ์ฆ˜, AppArmor ๋ฐ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ํ•„ํ„ฐ๋ง(seccomp-bpf)์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ฒฉ๋ฆฌ๋œ ์‹œ์ž‘์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์ƒ์Šน๋œ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฉฐ, ์ด๋Š” suid ๋ฃจํŠธ ํ”Œ๋ž˜๊ทธ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ sudo๋กœ ์‹คํ–‰ํ•˜์—ฌ ์–ป์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ "--join=" ์˜ต์…˜ ๋…ผ๋ฆฌ์˜ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. โ€๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ID๋กœ ํ™˜๊ฒฝ์„ ์ •์˜ํ•˜์—ฌ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ(์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์˜ ๋กœ๊ทธ์ธ ๋ช…๋ น๊ณผ ์œ ์‚ฌ)์— ์—ฐ๊ฒฐํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ์„ ์‚ญ์ œํ•˜๊ธฐ ์ „์— Firejail์€ ์ง€์ •๋œ ํ”„๋กœ์„ธ์Šค์˜ ๊ถŒํ•œ์„ ๊ฐ์ง€ํ•˜๊ณ  "--join" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์— ์ฐธ์—ฌํ•˜๋Š” ์ƒˆ ํ”„๋กœ์„ธ์Šค์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐํ•˜๊ธฐ ์ „์— Firejail ํ™˜๊ฒฝ์—์„œ ์ง€์ •๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒ€์‚ฌ๋Š” /run/firejail/mnt/join ํŒŒ์ผ์˜ ์กด์žฌ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๊ฒฉ์ž๋Š” ๋งˆ์šดํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฉ๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฐ€์ƒ์˜ Firejail ํ™˜๊ฒฝ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•œ ๋‹ค์Œ "-join" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์ •์ด ์ƒˆ ํ”„๋กœ์„ธ์Šค(prctl NO_NEW_PRIVS)์—์„œ ์ถ”๊ฐ€ ๊ถŒํ•œ ํš๋“ ๊ธˆ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด Firejail์€ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ดˆ๊ธฐํ™”์˜ ์‚ฌ์šฉ์ž ์‹๋ณ„์ž(์‚ฌ์šฉ์ž ๋„ค์ž„์ŠคํŽ˜์ด์Šค)์˜ ์‚ฌ์šฉ์ž ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์„ค์ •์„ ์ ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค(PID 1).

๊ฒฐ๊ณผ์ ์œผ๋กœ "firejail --join"์„ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ํ”„๋กœ์„ธ์Šค๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ถŒํ•œ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์›๋ž˜ ์‚ฌ์šฉ์ž ID ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ข…๋ฃŒ๋˜์ง€๋งŒ ๊ณต๊ฒฉ์ž๊ฐ€ ์™„์ „ํžˆ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋‹ค๋ฅธ ๋งˆ์šดํŠธ ์ง€์  ๊ณต๊ฐ„์—์„œ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ ๊ณต๊ฒฉ์ž๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๋งˆ์šดํŠธ ์ง€์  ๊ณต๊ฐ„์—์„œ setuid-root ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ /etc/sudoers ์„ค์ • ๋˜๋Š” PAM ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํŠธ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. sudo ๋˜๋Š” su ์œ ํ‹ธ๋ฆฌํ‹ฐ.

์ถœ์ฒ˜ : opennet.ru

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