์ผ๋ถ€ ์„œ๋ฒ„ ์‹œ์Šคํ…œ์—์„œ CPU๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” PMFault ๊ณต๊ฒฉ

์ด์ „์— Plundervolt ๋ฐ VoltPillager ๊ณต๊ฒฉ์„ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ University of Birmingham์˜ ์—ฐ๊ตฌ์›์€ ํ›„์† ๋ณต๊ตฌ ๊ฐ€๋Šฅ์„ฑ ์—†์ด CPU๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ์„œ๋ฒ„ ๋งˆ๋”๋ณด๋“œ์˜ ์ทจ์•ฝ์ (CVE-2022-43309)์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ช… PMFault์ธ ์ด ์ทจ์•ฝ์ ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ํŒจ์น˜๋˜์ง€ ์•Š์€ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ฐ€๋กœ์ฑ„๋Š” ๋“ฑ์˜ ๊ฒฐ๊ณผ๋กœ ์–ป์€ ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ๊ถŒํ•œ ์žˆ๋Š” ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์„œ๋ฒ„๋ฅผ ์†์ƒ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ ๋ฐฉ๋ฒ•์˜ ํ•ต์‹ฌ์€ I2C ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” PMBus ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์„œ์— ๊ณต๊ธ‰๋˜๋Š” ์ „์••์„ ์นฉ์— ์†์ƒ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์œผ๋กœ ๋†’์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. PMBus ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ VRM(์ „์•• ์กฐ์ •๊ธฐ ๋ชจ๋“ˆ)์— ๊ตฌํ˜„๋˜๋ฉฐ BMC ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PMBus๋ฅผ ์ง€์›ํ•˜๋Š” ๋ณด๋“œ๋ฅผ ๊ณต๊ฒฉํ•˜๋ ค๋ฉด ์šด์˜ ์ฒด์ œ์˜ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์™ธ์—๋„ IPMI KCS(ํ‚ค๋ณด๋“œ ์ปจํŠธ๋กค๋Ÿฌ ์Šคํƒ€์ผ) ์ธํ„ฐํŽ˜์ด์Šค, ์ด๋”๋„ท ๋˜๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด BMC(๋ฒ ์ด์Šค๋ณด๋“œ ๊ด€๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ)์— ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹œ์Šคํ…œ์—์„œ BMC๋ฅผ ํ”Œ๋ž˜์‹ฑํ•ฉ๋‹ˆ๋‹ค.

BMC์˜ ์ธ์ฆ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง€์‹ ์—†์ด ๊ณต๊ฒฉ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฌธ์ œ๋Š” IPMI ์ง€์›(X11, X12, H11 ๋ฐ H12) ๋ฐ ASRock์„ ๊ฐ–์ถ˜ Supermicro ๋งˆ๋”๋ณด๋“œ์—์„œ ํ™•์ธ๋˜์—ˆ์ง€๋งŒ PMBus์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์„œ๋ฒ„ ๋ณด๋“œ๋„ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์‹คํ—˜ ๊ณผ์ •์—์„œ ์ „์••์ด 2.84V๋กœ ์ฆ๊ฐ€ํ–ˆ์„ ๋•Œ ์ด ๋ณด๋“œ์—์„œ ๋‘ ๊ฐœ์˜ Intel Xeon ํ”„๋กœ์„ธ์„œ๊ฐ€ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋ฅด๊ณ  ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ๋ฃจํŠธ ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BMC์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ํŽŒ์›จ์–ด ํ™•์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ทจ์•ฝ์ ์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ˆ˜์ •๋œ ํŽŒ์›จ์–ด ์—…๋ฐ์ดํŠธ๋ฅผ BMC ์ปจํŠธ๋กค๋Ÿฌ์— ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ IPMI KCS๋ฅผ ํ†ตํ•œ ์ธ์ฆ๋˜์ง€ ์•Š์€ ์•ก์„ธ์Šค.

PMBus๋ฅผ ํ†ตํ•œ ์ „์•• ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Plundervolt ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณต๊ฒฉ์„ ํ†ตํ•ด ์ „์••์„ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๋‚ฎ์ถค์œผ๋กœ์จ ๊ฒฉ๋ฆฌ๋œ Intel SGX ์—”ํด๋ ˆ์ด๋ธŒ์˜ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” CPU์˜ ๋ฐ์ดํ„ฐ ์…€ ๋‚ด์šฉ์— ์†์ƒ์„ ์ž…ํžˆ๊ณ  ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์˜ฌ๋ฐ”๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•”ํ˜ธํ™” ๊ณผ์ •์—์„œ ๊ณฑ์…ˆ์— ์‚ฌ์šฉ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ถœ๋ ฅ์€ ์ž˜๋ชป๋œ ์•”ํ˜ธ๋ฌธ์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด SGX์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ์ž๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์ถœ๋ ฅ ์•”ํ˜ธ๋ฌธ์˜ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ถ•์ ํ•˜๊ณ  SGX ์—”ํด๋ ˆ์ด๋ธŒ์— ์ €์žฅ๋œ ํ‚ค ๊ฐ’์„ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Supermicro ๋ฐ ASRock ๋ณด๋“œ๋ฅผ ๊ณต๊ฒฉํ•˜๊ธฐ ์œ„ํ•œ ํˆดํ‚ท๊ณผ PMBus์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ™•์ธํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ GitHub์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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