์ผ๋‹จ ํ•˜๊ณ  ๋ณด๋Š” ์‚ฌ๋žŒ

๋‚˜์ค‘๋ณด๋‹จ ์ง€๊ธˆ์— ์ง‘์ค‘ํ•˜๋˜, ์ง€๊ธˆ๋ณด๋‹จ ๋‚˜์ค‘์— ์™„๋ฒฝํ•ด์ง€์ž๐Ÿ’ช๐Ÿป

๐Ÿ—ž๏ธ IT ๋™ํ–ฅ ํŒŒ์•… ๋ฐ ๋‚˜์˜ ์ƒ๊ฐ ์ •๋ฆฌ/์‚ฌ๊ฑด์‚ฌ๊ณ 

[Linux]: CUPS ๊ฒฐํ•จ-๊ฐ€์žฅ ์ž‘๊ณ  ์‚ฌ์†Œํ•œ ๊ฒƒ๋„ ๋ณดํ˜ธํ•ด์•ผ ํ•œ๋‹ค

JanginTech 2024. 10. 1. 14:29

1. CUPS flaws enable Linux remote code execution, but there’s a catch

https://www.bleepingcomputer.com/news/security/cups-flaws-enable-linux-remote-code-execution-but-theres-a-catch/

 

CUPS flaws enable Linux remote code execution, but there’s a catch

Under certain conditions, attackers can chain a set of vulnerabilities in multiple components of the CUPS open-source printing system to execute arbitrary code remotely on vulnerable machines.

www.bleepingcomputer.com

 

ํ•ด๋‹น ์ธ๋„ค์ผ์„ ๋ˆ„๋ฅด์ง€ ์•Š์„ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค

 

 

[์š”์•ฝ์ •๋ฆฌ]

์‹œ์Šคํ…œ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋‹ค. CUPS๋ฅผ ํ†ตํ•œ ์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰(RCE)์˜ ๊ฐ€๋Šฅ์„ฑ์„ ๋‹ค๋ฃฌ ๊ธฐ์‚ฌ๋‹ค.

๊ณต๊ฒฉ์ž๋Š” ์—ฌ๋Ÿฌ ๊ฒฐํ•จ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์›๊ฒฉ์œผ๋กœ ์•…์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

CUPS(Common UNIX Printing System)?

  • Linux ์‹œ์Šคํ…œ์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ธ์‡„ ์‹œ์Šคํ…œ
  • FreeBSD, NetBSD, OpenBSD ๋“ฑ ํŒŒ์ƒ ๋ฒ„์ „๊ณผ ๊ฐ™์€ Unix ๊ณ„์—ด OS๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์žฅ์น˜์—์„œ๋„ ์ง€์›๋œ๋‹ค.

 

cups-browsed  ๋ฐ๋ชฌ

๊ทธ ์•ˆ์—๋Š” ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ๊ด‘๊ณ ๋œ ๋„คํŠธ์›Œํฌ ๋˜๋Š” ๊ณต์œ  ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ปดํ“จํ„ฐ์—์„œ ์ธ์‡„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” cups-browsed ๋ฐ๋ชฌ์ด ์žˆ๋‹ค. (Windows์™€ Mac์ด ๋„คํŠธ์›Œํฌ์—์„œ ์ธ์‡„ํ•  ์›๊ฒฉ ๋„คํŠธ์›Œํฌ ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•จ!)

 

cups-browsed๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ๋น„ํ™œ์„ฑํ™”์ง€๋งŒ ํ™œ์„ฑํ™”๋  ๊ฒฝ์šฐ cups-browsed ๋ฐ๋ชฌ์ด ํ™œ์„ฑํ™”๋˜๋ฉด UDP ํฌํŠธ(631)๋ฅผ ํ†ตํ•ด ์ˆ˜์‹ ํ•œ๋‹ค.

UDP ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์ง„์ž…์ ์ด ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 

 

์ทจ์•ฝ์  ์„ค๋ช…(๊ฒฐํ•จ)

UDP ํฌํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” ๋…ธ์ถœ๋œ cups-browse ์„œ๋น„์Šค์— ์ˆ˜๋™์œผ๋กœ ๊ด‘๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์•…์„ฑ PostScript Printer Description(PPD) ํ”„๋ฆฐํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

PostScript Printer Description (PPD)?

  • PPD ํŒŒ์ผ์€ ํ”„๋ฆฐํ„ฐ์˜ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•œ๋‹ค
  • ์‹œ์Šคํ…œ๊ณผ ํ”„๋ฆฐํ„ฐ ๊ฐ„์˜ ์‹ ๋ขฐ ๊ด€๊ณ„๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž„์˜์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฒŒ ์•…์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ณต๊ฒฉ์ž๋Š” ๋กœ์ปฌ์—์„œ ํ•œ ๋ฒˆ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์•…์„ฑ PPD๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ๊ณต๊ฒฉ์ž๊ฐ€ PPD๋ฅผ ๋งŒ๋“ค๋ฉด ์›๊ฒฉ ๋จธ์‹ ์ด ์ž๋™์œผ๋กœ ์•…์„ฑ ํ”„๋ฆฐํ„ฐ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ธ์‡„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๋…ธ์ถœ๋œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ ํ”„๋ฆฐํ„ฐ๋กœ ์ธ์‡„ํ•˜๋ฉด PPD์˜ ์•…์„ฑ ๋ช…๋ น์–ด๊ฐ€ ๋กœ์ปฌ์„ ํ†ตํ•ด ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰ ์ฒด์ธ์˜ ์•…์šฉ์„ ์–ด๋–ป๊ฒŒ ๋ง‰์„ ์ˆ˜ ์žˆ์„๊นŒ?

์šฐ์„  ๊ณต๊ฒฉ์ž์˜ ์•…์šฉํ–‰์œ„๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

1. cups-browsed ๋ฐ๋ชฌ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

2. ์‚ฌ์šฉ์ž๋ฅผ ์†์—ฌ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์˜ ์•…์„ฑ ํ”„๋ฆฐํ„ฐ ์„œ๋ฒ„์—์„œ ์ธ์‡„ํ•˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

๋Œ€์ƒ ์‹œ์Šคํ…œ์— ๋„คํŠธ์›Œํฌ์—์„œ UDP ํฌํŠธ๋ฅผ ๋…ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด cups-browsed ๋ฐ๋ชฌ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

 

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์˜ ํ”„๋ฆฐํ„ฐ๋ฅผ ์Šคํ‘ธํ•‘ ํ•˜์—ฌ ํ”„๋ฆฐํ„ฐ๊ฐ€ ์ผœ์ ธ์žˆ์ง€ ์•Š์œผ๋ฉด ๋„คํŠธ์›Œํฌ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋œ๋‹ค.

์ฆ‰, ๊ณต๊ฒฉ์ž๋Š” UDP๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•œ๋‹ค. UDP๋Š” ๋„คํŠธ์›Œํฌ ์œ ์ž…์—์„œ ๋„๋ฆฌ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  ํ•ด๋‹น ์„œ๋น„์Šค๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋‹ค.

 

Read Hat์€ ํ•ด๋‹น ๊ฒฐํ•จ์„ ์ค‘์š” ์‹ฌ๊ฐ๋„ ์˜ํ–ฅ์œผ๋กœ ํ‰๊ฐ€ํ–ˆ์œผ๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์™„ํ™” ์กฐ์น˜๋ฅผ ๊ณต๊ฐœํ–ˆ๋‹ค.

 

 

์™„ํ™” ์กฐ์น˜

ํŒจ์น˜๋Š” ๊ฐœ๋ฐœ ์ค‘์— ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ cups-browse ์„œ๋น„์Šค์˜ ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ณ  ์žฌ๋ถ€ํŒ… ์‹œ ์‹œ์ž‘๋˜์ง€ ์•Š๋„๋ก ํ•˜์—ฌ ์•…์šฉ ์ฒด์ธ์„ ๋Š์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

 

ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ cups-browsed๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์œ„ํ—˜์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ฆ‰๊ฐ์ ์ธ ์กฐ์น˜๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

sudo systemctl stop cups-browsed
sudo systemctl dissable cups-browsed

 

 

์ถ”๊ฐ€๋กœ ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด ์ž์‹ ์˜ ์‹œ์Šคํ…œ์—์„œ cups-browsed๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

sudo systemctl status cups-browsed

 

Active: inactive (dead) ์ด ํ‘œ์‹œ๋˜๋ฉด ์ทจ์•ฝํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

๋ฐ˜๋Œ€๋กœ running, enabled์ด ํ‘œ์‹œ๋˜์–ด ์žˆ๋‹ค๊ฑฐ๋‚˜ /etc/cups/cups-browsed.conf์˜ ๊ฐ’์— cups๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ์‹œ์Šคํ…œ์€ ์ทจ์•ฝํ•˜๋‹ค.

 

 

 

 

 

 


 

๐Ÿค” ์ด์— ๋Œ€ํ•œ ๋‚˜์˜ ์ƒ๊ฐ

์ด ๊ธฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ๊ตฌ์„ฑ, ํŠนํžˆ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ๋…ธ์ถœํ•˜๋Š” ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์„ ์ •๊ธฐ์ ์œผ๋กœ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•จ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ์žŠํžˆ๊ฑฐ๋‚˜ ๊ฐ„๊ณผ๋˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ดํ•ด์™€ ๋ณดํ˜ธ์˜ ํ•„์š”์„ฑ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

'cups-browsed'์™€ ๊ฐ™์ด ์‚ฌ์†Œํ•˜๊ณ  ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์„œ๋น„์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด ์ทจ์•ฝ์ ์€ ์‚ฌ์†Œํ•ด ๋ณด์ด๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ผ๋„ ์ œ๋Œ€๋กœ ํ™•์ธํ•˜์ง€ ์•Š์œผ๋ฉด ๊ณต๊ฒฉ์˜ ๋ฒกํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ์‹œ์Šคํ…œ ๋ณด์•ˆ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๋ฉด์„œ ์˜ค๋Š˜์˜ ๊ธฐ์‚ฌ๊ฐ€ ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ๋‹ค. ์‚ฌ์†Œํ•œ ๊ตฌ์„ฑ ์˜ค๋ฅ˜๋‚˜ ๋น„ํ™œ์„ฑ ์„œ๋น„์Šค๊ฐ€ ๊ณต๊ฒฉ์ž์—๊ฒŒ ์•…์šฉ๋  ๊ฒฝ์šฐ ์‹ฌ๊ฐํ•œ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ•์กฐํ–ˆ์Šต๋‹ˆ๋‹ค.