ํ๋ฉ”์ผ ๋ฉ”์ผ ์„œ๋ฒ„์˜ ์›๊ฒฉ์œผ๋กœ ์•…์šฉ ๊ฐ€๋Šฅํ•œ ์ทจ์•ฝ์ 

Qualys์˜ ๋ณด์•ˆ ์—ฐ๊ตฌ์› ๋ณด์—ฌ ์ฃผ์—ˆ๋‹ค ๊ธฐํšŒ ์šด์˜ ํ๋ฉ”์ผ ๋ฉ”์ผ์„œ๋ฒ„์˜ ์ทจ์•ฝ์ , ์œ ๋ช…ํ•œ 2005๋…„(CVE-2005-1513)์— ์žˆ์—ˆ์ง€๋งŒ ํ๋ฉ”์ผ ์ž‘์„ฑ์ž๊ฐ€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ ์‹œ์Šคํ…œ์„ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘๋™ํ•˜๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋น„ํ˜„์‹ค์ ์ด๋ผ๊ณ  ์ฃผ์žฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Qualys๋Š” ์ด๋Ÿฌํ•œ ๊ฐ€์ •์„ ๋ฐ˜๋ฐ•ํ•˜๊ณ  ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด ์„œ๋ฒ„์—์„œ ์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ณต๊ฒฉ์„ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋งค์šฐ ํฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” stralloc_readyplus() ํ•จ์ˆ˜์˜ ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋ ค๋ฉด 64GB ์ด์ƒ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ 4๋น„ํŠธ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. 2005๋…„์— ์ทจ์•ฝ์ ์ด ์ฒ˜์Œ ๋ถ„์„๋˜์—ˆ์„ ๋•Œ Daniel J. Bernstein์€ ํ• ๋‹น๋œ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ํ•ญ์ƒ 32๋น„ํŠธ ๊ฐ’ ๋‚ด์— ์žˆ๋‹ค๋Š” ์ฝ”๋“œ์˜ ๊ฐ€์ •์€ ์–ด๋Š ๋ˆ„๊ตฌ๋„ ๊ฐ ํ”„๋กœ์„ธ์Šค์— ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ๋‹ค๊ณ  ์ฃผ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ 15๋…„ ๋™์•ˆ ์„œ๋ฒ„์˜ 64๋น„ํŠธ ์‹œ์Šคํ…œ์ด 32๋น„ํŠธ ์‹œ์Šคํ…œ์„ ๋Œ€์ฒดํ–ˆ์œผ๋ฉฐ, ์ œ๊ณต๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘๊ณผ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ๋ฉ”์ผ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” Bernstein์˜ ๋ฉ”๋ชจ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ qmail-smtpd ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œํ•œํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด Debian 10์—์„œ๋Š” ์ œํ•œ์ด 7MB๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ Qualys์˜ ์—”์ง€๋‹ˆ์–ด๋“ค์€ ์ด๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ qmail-smtpd ์™ธ์—๋„ ํ…Œ์ŠคํŠธ๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€์—์„œ ์ œํ•œ๋˜์ง€ ์•Š์€ qmail-local ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์›๊ฒฉ ๊ณต๊ฒฉ์ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ฆ๊ฑฐ๋กœ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ ํ๋ฉ”์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ๋น„์•ˆ ํŒจํ‚ค์ง€๋ฅผ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ์ต์Šคํ”Œ๋กœ์ž‡ ํ”„๋กœํ† ํƒ€์ž…์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ณต๊ฒฉ ์ค‘์— ์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์„œ๋ฒ„์— 4GB์˜ ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„๊ณผ 8GB RAM์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ต์Šคํ”Œ๋กœ์ž‡์„ ์‚ฌ์šฉํ•˜๋ฉด "/home" ๋””๋ ‰ํ† ๋ฆฌ์— ์ž์‹ ์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†๋Š” ๋ฃจํŠธ ๋ฐ ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ๋ชจ๋“  ์‰˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(qmail-local ํ”„๋กœ์„ธ์Šค๋Š” ํ•ด๋‹น ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค) ๋ฐฐ์†ก์ด ์ˆ˜ํ–‰๋˜๋Š” ๋กœ์ปฌ ์‚ฌ์šฉ์ž์˜).

๊ณต๊ฒฉ์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ํ—ค๋” ๋ผ์ธ์„ ํฌํ•จํ•˜์—ฌ ์•ฝ 4GB ๋ฐ 576MB์— ๋‹ฌํ•˜๋Š” ๋งค์šฐ ํฐ ๋ฉ”์ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. qmail-local์—์„œ ๊ทธ๋Ÿฌํ•œ ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋กœ์ปฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  libc ์ฝ”๋“œ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ๋ฎ์–ด์“ธ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ๋ ˆ์ด์•„์›ƒ์„ ์กฐ์ž‘ํ•˜์—ฌ "open()" ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ "system()" ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๋‹ค์‹œ ์“ฐ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ qmail-local์—์„œ qmesearch()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ open()ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด โ€œ.qmail-extensionโ€ ํŒŒ์ผ์ด ์˜คํ”ˆ๋˜๋ฉด์„œ ์‹ค์ œ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ๋œ๋‹ค.
์‹œ์Šคํ…œ(".qmail-ํ™•์žฅ์ž"). ๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ผ์˜ "ํ™•์žฅ์ž" ๋ถ€๋ถ„์€ ์ˆ˜์‹ ์ž์˜ ์ฃผ์†Œ(์˜ˆ: "localuser-extension@localdomain")๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ๊ณต๊ฒฉ์ž๋Š” ์‚ฌ์šฉ์ž "localuser-;command"๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ช…๋ น์ด ์ „์†ก๋˜๋„๋ก ๋ฐฐ์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ;@localdomainโ€์„ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์ž๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ๋ถ„์„ ์ค‘์— ๋ฐ๋น„์•ˆ ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ธ ์ถ”๊ฐ€ qmail-verify ํŒจ์น˜์—์„œ๋„ ๋‘ ๊ฐ€์ง€ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ทจ์•ฝ์ (CVE-2020-3811)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฉ”์ผ ์ฃผ์†Œ ํ™•์ธ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‘ ๋ฒˆ์งธ(CVE-2020-3812) ์ง€์—ญ ์ •๋ณด ์œ ์ถœ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ํŠนํžˆ ์ฒซ ๋ฒˆ์งธ ์ทจ์•ฝ์ ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ น์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ์ต์Šคํ”Œ๋กœ์ž‡์— ์‚ฌ์šฉ๋œ ์ฃผ์†Œ์˜ ์ •ํ™•์„ฑ์— ๋Œ€ํ•œ ํ™•์ธ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค("localuser-;command;"์™€ ๊ฐ™์ด ๋„๋ฉ”์ธ์ด ์—†๋Š” ์ฃผ์†Œ์—๋Š” ํ™•์ธ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ). ๋‘ ๋ฒˆ์งธ ์ทจ์•ฝ์ ์€ ๋กœ์ปฌ ํ•ธ๋“ค๋Ÿฌ์— ๋Œ€ํ•œ ์ง์ ‘ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๋ฃจํŠธ(qmail-verify๊ฐ€ ๋ฃจํŠธ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋จ)๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์‹œ์Šคํ…œ์— ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Bernstein์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์ „์ฒด ์ œํ•œ("softlimit -m12345678")์„ ๋‘๊ณ  ํ๋ฉ”์ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋ณดํ˜ธ์˜ ๋Œ€์ฒด ๋ฐฉ๋ฒ•์œผ๋กœ "control/databytes" ํŒŒ์ผ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฉ”์‹œ์ง€์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒƒ๋„ ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ํ๋ฉ”์ผ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ "control/databytes"๋Š” ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ œํ•œ์€ qmail-smtpd์—์„œ๋งŒ ๊ณ ๋ ค๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ํŒจํ‚ค์ง€์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๋„ทํ๋ฉ”์ผ, ๋ฐ๋น„์•ˆ ์ €์žฅ์†Œ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ํŒจ์น˜ ์„ธํŠธ๊ฐ€ ์ค€๋น„๋˜์–ด 2005๋…„์˜ ์˜ค๋ž˜๋œ ์ทจ์•ฝ์ (alloc() ํ•จ์ˆ˜ ์ฝ”๋“œ์— ํ•˜๋“œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ)๊ณผ qmail-verify์˜ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐˆ๋ผ์ ธ ์ค€๋น„ qmail-verify ํŒจ์น˜์˜ ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๊ฐ€์ง€ ๋…ธํ๋ฉ”์ผ ์˜ค๋ž˜๋œ ๋ฌธ์ œ๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฒด ํŒจ์น˜๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์ฝ”๋“œ์—์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…๋„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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