๋ฃจํŠธ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๋””์ŠคํŒจ์ฒ˜์˜ ์ทจ์•ฝ์ 

Microsoft์˜ ๋ณด์•ˆ ์—ฐ๊ตฌ์›๋“ค์€ ๋„คํŠธ์›Œํฌ ๋””์ŠคํŒจ์ฒ˜ ์„œ๋น„์Šค(์ฝ”๋“œ๋ช… Nimbuspwn)์—์„œ ๊ถŒํ•œ ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฃจํŠธ ๊ถŒํ•œ์œผ๋กœ ์ž„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ทจ์•ฝ์ (CVE-2022-29799, CVE-2022-29800)์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” networkd-dispatcher 2.2 ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌํŒ(Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux)๋ณ„ ์—…๋ฐ์ดํŠธ ๊ฒŒ์‹œ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์•„์ง ์—†์Šต๋‹ˆ๋‹ค.

Networkd-dispatcher๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค systemd-networkd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  NetworkManager-dispatcher์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” Ubuntu๋ฅผ ํฌํ•จํ•œ ๋งŽ์€ Linux ๋ฐฐํฌํŒ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•œ ํ›„ VPN์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

networkd-dispatcher์™€ ๊ด€๋ จ๋œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฃจํŠธ๋กœ ์‹คํ–‰๋˜๋ฉฐ D-Bus๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ ์‹ ํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ ๋ณ€๊ฒฝ๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” systemd-networkd ์„œ๋น„์Šค์—์„œ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ฃจํŠธ๋กœ ์‹คํ–‰๋˜๋„๋ก ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Systemd-networkd๋Š” /etc/networkd-dispatcher ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ์‹œ์Šคํ…œ ํ•ธ๋“ค๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ๋งŒ ์‹คํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž ๊ต์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํŒŒ์ผ ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ ์ฝ”๋“œ์˜ ์ทจ์•ฝ์ (CVE-2022-29799)์œผ๋กœ ์ธํ•ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ธฐ๋ณธ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ์ž„์˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ. ํŠนํžˆ, ์Šคํฌ๋ฆฝํŠธ์— ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ D-Bus๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” OperationalState, AdministrativeState ๊ฐ’์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด๋•Œ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์ง€์›Œ์ง€์ง€ ์•Š์•˜๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ด๋ฆ„์— "../" ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ๋””์ŠคํŒจ์ฒ˜ ํ˜ธ์ถœ์„ ๋‹ค๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ทจ์•ฝ์ (CVE-2022-29800)์€ ๊ฒฝ์Ÿ ์กฐ๊ฑด๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ๋งค๊ฐœ ๋ณ€์ˆ˜(๋ฃจํŠธ์— ์†ํ•จ)๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์ด์— ํŒŒ์ผ์„ ๊ต์ฒดํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ํ™•์ธ์„ ์šฐํšŒํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ์งง์€ ์‹œ๊ฐ„์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฃจํŠธ ์‚ฌ์šฉ์ž์— ์†ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ networkd-dispatcher๋Š” subprocess.Popen ํ˜ธ์ถœ์„ ํ†ตํ•ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ณต๊ฒฉ ๊ตฌ์„ฑ์ด ํฌ๊ฒŒ ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šด์˜ ๊ธฐ์ˆ :

  • ๋ฃจํŠธ๊ฐ€ ์†Œ์œ ํ•œ ์‹คํ–‰ ํŒŒ์ผ์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” "/sbin" ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” "/tmp/nimbuspwn" ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ "/tmp/nimbuspwn/poc.d"๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • "/sbin"์˜ ์‹คํ–‰ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํŒŒ์ผ์ด "/tmp/nimbuspwn" ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "/sbin/vgs" ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ์‹คํ–‰ ํŒŒ์ผ "/tmp/nimbuspwn/vgs"๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ์‹คํ–‰ํ•˜๋ ค๋Š” ์ฝ”๋“œ๊ฐ€ ๋ฐฐ์น˜๋˜๋Š” ๊ถŒํ•œ ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
  • OperationalState์˜ "../../../tmp/nimbuspwn/poc" ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ์‹ ํ˜ธ๊ฐ€ D-Bus๋ฅผ ํ†ตํ•ด networkd-dispatcher ํ”„๋กœ์„ธ์Šค๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. "org.freedesktop.network1" ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ํ•ธ๋“ค๋Ÿฌ๋ฅผ systemd-networkd์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: gpgv ๋˜๋Š” epmd ์กฐ์ž‘์„ ํ†ตํ•ด). ๋˜๋Š” systemd-networkd๋ผ๋Š” ์‚ฌ์‹ค์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์˜ˆ: Linux Mint).
  • ์‹ ํ˜ธ๋ฅผ ๋ฐ›์€ ํ›„ Networkd-dispatcher๋Š” ๋ฃจํŠธ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•˜๊ณ  "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d" ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ ํŒŒ์ผ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” "/sbin"์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ๋ชฉ๋ก์ด ์ˆ˜์‹ ๋˜์—ˆ์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„์ง ์‹œ์ž‘๋˜์ง€ ์•Š์€ ์ˆœ๊ฐ„, ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋Š” "/tmp/nimbuspwn/poc.d"์—์„œ "/tmp/nimbuspwn"์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜๋˜๊ณ  networkd-dispatcher๋Š” ๋ฃจํŠธ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๊ณต๊ฒฉ์ž๊ฐ€ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

๋ฃจํŠธ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๋””์ŠคํŒจ์ฒ˜์˜ ์ทจ์•ฝ์ 


์ถœ์ฒ˜ : opennet.ru

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