๊ถŒํ•œ ์—์Šค์ปฌ๋ ˆ์ด์…˜์„ ํ—ˆ์šฉํ•˜๋Š” OverlayFS์˜ ์ทจ์•ฝ์„ฑ

Linux ์ปค๋„์—์„œ๋Š” OverlayFS ํŒŒ์ผ ์‹œ์Šคํ…œ(CVE-2023-0386) ๊ตฌํ˜„์—์„œ ์ทจ์•ฝ์ ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ FUSE ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ์„ค์น˜๋œ ์‹œ์Šคํ…œ์—์„œ ๋ฃจํŠธ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป๊ณ  OverlayFS ํŒŒํ‹ฐ์…˜์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ ์—†๋Š” ์‚ฌ์šฉ์ž(๊ถŒํ•œ ์—†๋Š” ์‚ฌ์šฉ์ž ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ํฌํ•จ๋œ Linux ์ปค๋„ 5.11๋ถ€ํ„ฐ ์‹œ์ž‘) ์ด ๋ฌธ์ œ๋Š” 6.2 ์ปค๋„ ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌํŒ์˜ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ ๊ฒŒ์‹œ๋Š” Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch ํŽ˜์ด์ง€์—์„œ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์€ nosuid ๋ชจ๋“œ๋กœ ๋งˆ์šดํŠธ๋œ ํŒŒํ‹ฐ์…˜์—์„œ suid ํŒŒ์ผ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” ํŒŒํ‹ฐ์…˜๊ณผ ์—ฐ๊ฒฐ๋œ ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๋Š” OverlayFS ํŒŒํ‹ฐ์…˜์œผ๋กœ setgid/setuid ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ 2021๋…„์— ํ™•์ธ๋œ CVE-3847-2021 ๋ฌธ์ œ์— ๊ฐ€๊น์ง€๋งŒ ์•…์šฉ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฌธ์ œ์—์„œ๋Š” ์‚ฌ์šฉ์ž ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ œํ•œ๋˜๋Š” xattrs ์กฐ์ž‘์ด ํ•„์š”ํ–ˆ๊ณ  ์ƒˆ ๋ฌธ์ œ์—์„œ๋Š” setgid/setuid ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ํŠน๋ณ„ํžˆ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜:

  • FUSE ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์“ฐ๊ธฐ ์œ„ํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ณ  setuid/setgid ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ๋Š” ๋ฃจํŠธ ์‚ฌ์šฉ์ž์— ์†ํ•˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋งˆ์šดํŠธ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์šดํŠธํ•  ๋•Œ FUSE๋Š” ๋ชจ๋“œ๋ฅผ "nosuid"๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž/๋งˆ์šดํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๊ณต์œ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • OverlayFS๊ฐ€ ๋งˆ์šดํŠธ๋˜์–ด FUSE์—์„œ ์ด์ „์— ์ƒ์„ฑ๋œ FS๋ฅผ ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ•˜์œ„ ๊ณ„์ธต๊ณผ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ๊ณ„์ธต ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ํƒ‘์žฌ ์‹œ "nosuid" ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • FUSE ํŒŒํ‹ฐ์…˜์— ์žˆ๋Š” suid ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํ„ฐ์น˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์ˆ˜์ • ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•˜์—ฌ OverlayFS์˜ ์ตœ์ƒ์œ„ ๋ ˆ์ด์–ด์— ๋ณต์‚ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ณต์‚ฌํ•  ๋•Œ ์ปค๋„์€ setgid/setuid ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์šฐ์ง€ ์•Š์œผ๋ฏ€๋กœ ํŒŒ์ผ์ด setgid/setuid ์ฒ˜๋ฆฌ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ํŒŒํ‹ฐ์…˜์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  • ๋ฃจํŠธ ๊ถŒํ•œ์„ ์–ป์œผ๋ ค๋ฉด OverlayFS์˜ ์ตœ์ƒ์œ„ ๊ณ„์ธต์— ์—ฐ๊ฒฐ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ setgid/setuid ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Linux ์ปค๋„ 5.15์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ RHEL 8.x/9์˜ ์ปค๋„๊ณผ ํ•จ๊ป˜ ํŒจํ‚ค์ง€๋กœ ์ „์†ก๋˜์ง€ ์•Š์€ ์„ธ ๊ฐ€์ง€ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ Google Project Zero ํŒ€์˜ ์—ฐ๊ตฌ์›์ด ๊ณต๊ฐœํ–ˆ๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. x ๋ฐ CentOS ์ŠคํŠธ๋ฆผ 9.

  • CVE-2023-1252 โ€“ Ext4 ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ„์— ๋ฐฐํฌ๋œ OverlayFS์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•  ๋•Œ ovl_aio_req ๊ตฌ์กฐ์—์„œ ์ด๋ฏธ ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ์ž ์žฌ์ ์œผ๋กœ ์ด ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์—์„œ ๊ถŒํ•œ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CVE-2023-0590 - qdisc_graft() ํ•จ์ˆ˜์—์„œ ์ด๋ฏธ ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ๋™์ž‘์€ ๋น„์ •์ƒ ์ข…๋ฃŒ๋กœ ์ œํ•œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
  • CVE-2023-1249 file_files_note์˜ mmap_lock ํ˜ธ์ถœ์ด ๋ˆ„๋ฝ๋˜์–ด ์ฝ”์–ด ๋คํ”„ ์“ฐ๊ธฐ ์ฝ”๋“œ์—์„œ ์ด๋ฏธ ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ž‘์€ ๋น„์ •์ƒ ์ข…๋ฃŒ๋กœ ์ œํ•œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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