Retbleed๋Š” Intel ๋ฐ AMD CPU์˜ ์ถ”์ธก ์‹คํ–‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค.

ETH Zurich์˜ ์—ฐ๊ตฌ์› ๊ทธ๋ฃน์€ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” CPU์˜ ๊ฐ„์ ‘ ์ „ํ™˜์˜ ์ถ”์ธก ์‹คํ–‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ์„ ์‹๋ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ทจ์•ฝ์ ์€ ์ฝ”๋“œ๋ช… Retbleed(CVE-2022-29900, CVE-2022-29901)์ด๋ฉฐ Spectre-v2 ๊ณต๊ฒฉ๊ณผ ๋ณธ์งˆ์ ์œผ๋กœ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ "jmp" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ์—์„œ ์ฃผ์†Œ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฐ„์ ‘ ์ ํ”„ ๋Œ€์‹  ์Šคํƒ์—์„œ ์ ํ”„ํ•  ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” "ret"(return) ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ž„์˜ ์ฝ”๋“œ์˜ ์ถ”์ธก ์‹คํ–‰ ๊ตฌ์„ฑ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋‚˜ CPU ๋ ˆ์ง€์Šคํ„ฐ.

๊ณต๊ฒฉ์ž๋Š” ์ž˜๋ชป๋œ ์ „ํ™˜ ์˜ˆ์ธก์„ ์œ„ํ•œ ์กฐ๊ฑด์„ ๋งŒ๋“ค๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋กœ์ง์—์„œ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— ๋Œ€ํ•œ ๋ชฉํ‘œ ์ง€์ • ์ถ”์ธก ์ „ํ™˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ํ”„๋กœ์„ธ์„œ๋Š” ๋ถ„๊ธฐ ์˜ˆ์ธก์ด ํƒ€๋‹นํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ์ž‘์—…์„ ์›๋ž˜ ์ƒํƒœ๋กœ ๋กค๋ฐฑํ•˜์ง€๋งŒ ์ถ”์ธก ์‹คํ–‰ ์ค‘์— ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋Š” ์บ์‹œ ๋ฐ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๋ฒ„ํผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป ์‹คํ–‰๋œ ๋ธ”๋ก์ด ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ ์˜ˆ์ธก ์‹คํ–‰์œผ๋กœ ์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์œ  ์บ์‹œ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ถ”์ธก ์ž‘์—… ํ›„ ์บ์‹œ์— ๋‚จ์•„ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๊ฒฉ์ž๋Š” ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์™€ ์บ์‹œ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์‹œ๊ฐ„์˜ ๋ณ€ํ™”๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋“ฑ ๋ถ€์ฑ„๋„ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž”์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ๋‹ค๋ฅธ ๊ถŒํ•œ ์ˆ˜์ค€์˜ ์˜์—ญ(์˜ˆ: ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ)์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด "๊ฐ€์ ฏ"์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๋ก ์ ์œผ๋กœ ์ฝ๋Š” ๋ฐ ์ ํ•ฉํ•œ ์ปค๋„์— ์žˆ๋Š” ๋ช…๋ น ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž.

์กฐ๊ฑด๋ถ€ ๋ฐ ๊ฐ„์ ‘ ์ ํ”„ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์ „์ ์ธ Spectre ํด๋ž˜์Šค ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜ ์ฒด์ œ๋Š” ๊ฐ„์ ‘ ์ ํ”„ ์ž‘์—…์„ "ret" ๋ช…๋ น์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” "retpoline" ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋ณ„๋„์˜ ์Šคํƒ ์ƒํƒœ ์˜ˆ์ธก ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. .๋ถ„๊ธฐ ์˜ˆ์ธก ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 2018๋…„์— ๋ฆฌํŠธํด๋ฆฐ์ด ๋„์ž…๋˜์—ˆ์„ ๋•Œ ์ŠคํŽ™ํ„ฐ์™€ ๊ฐ™์€ ์ฃผ์†Œ ์กฐ์ž‘์€ "ret" ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ ์ถ”์ธก์  ๋ถ„๊ธฐ์— ์‹ค์šฉ์ ์ด์ง€ ์•Š๋‹ค๊ณ  ์—ฌ๊ฒจ์กŒ์Šต๋‹ˆ๋‹ค.

Retbleed ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์„ ๊ฐœ๋ฐœํ•œ ์—ฐ๊ตฌ์›๋“ค์€ "ret" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ธก์  ์ „ํ™˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋งˆ์ดํฌ๋กœ ์•„ํ‚คํ…์ฒ˜ ์กฐ๊ฑด์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ž…์ฆํ–ˆ์œผ๋ฉฐ Linux ์ปค๋„์˜ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋ช…๋ น ์‹œํ€€์Šค(๊ฐ€์ ฏ)๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์„ฑ ๋„๊ตฌ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ.

์—ฐ๊ตฌ ์ค‘์— Intel CPU๊ฐ€ ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์—์„œ ์ดˆ๋‹น 219๋ฐ”์ดํŠธ์˜ ์†๋„์™€ 98%์˜ ์ •ํ™•๋„๋กœ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ถŒํ•œ์ด ์—†๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ž„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—… ์ต์Šคํ”Œ๋กœ์ž‡์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMD ํ”„๋กœ์„ธ์„œ์—์„œ ์ต์Šคํ”Œ๋กœ์ž‡์˜ ํšจ์œจ์„ฑ์€ ํ›จ์”ฌ ๋†’์Šต๋‹ˆ๋‹ค. ๋ˆ„์ถœ๋ฅ ์€ ์ดˆ๋‹น 3.9KB์ž…๋‹ˆ๋‹ค. ์‹ค์ œ์ ์ธ ์˜ˆ๋กœ์„œ ์ œ์•ˆ๋œ ์ต์Šคํ”Œ๋กœ์ž‡์„ ์‚ฌ์šฉํ•˜์—ฌ /etc/shadow ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. Intel CPU๊ฐ€ ์žฅ์ฐฉ๋œ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ฃจํŠธ ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ณต๊ฒฉ์ด 28๋ถ„ ๋งŒ์— ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ, AMD CPU๊ฐ€ ์žฅ์ฐฉ๋œ ์‹œ์Šคํ…œ์—์„œ๋Š” 6๋ถ„ ๋งŒ์— ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณต๊ฒฉ์€ 6๋…„ 8๋ถ„๊ธฐ ์ด์ „์— ์ถœ์‹œ๋œ Intel ํ”„๋กœ์„ธ์„œ(Skylake ํฌํ•จ)์˜ 3~2019์„ธ๋Œ€์™€ 1๋…„ 1๋ถ„๊ธฐ ์ด์ „์— ์ถœ์‹œ๋œ Zen 2, Zen 2021+ ๋ฐ Zen 3 ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ AMD ํ”„๋กœ์„ธ์„œ์—์„œ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMD ZenXNUMX ๋ฐ Intel Alder Lake์™€ ๊ฐ™์€ ์ตœ์‹  ํ”„๋กœ์„ธ์„œ ๋ชจ๋ธ๊ณผ ARM ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” ๊ธฐ์กด ๋ณดํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด ๋ฌธ์ œ๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, IBRS(Indirect Branch Restricted Speculation) ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Linux ์ปค๋„ ๋ฐ Xen ํ•˜์ดํผ๋ฐ”์ด์ €์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ค€๋น„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ด์ „ CPU์˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ฌธ์ œ๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์šฉ ํŒจ์น˜๋Š” 68๊ฐœ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ณ , 1783๊ฐœ ๋ผ์ธ์„ ์ถ”๊ฐ€ํ•˜๊ณ , 387๊ฐœ ๋ผ์ธ์„ ์‚ญ์ œํ–ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ๋ณดํ˜ธ๋กœ ์ธํ•ด ์ƒ๋‹นํ•œ ๊ฐ„์ ‘ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. AMD ๋ฐ Intel ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋œ ํ…์ŠคํŠธ์—์„œ๋Š” ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ 14%์—์„œ 39%๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค. ์ฐจ์„ธ๋Œ€ Intel CPU์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  Linux ์ปค๋„ 4.19๋ถ€ํ„ฐ ์ง€์›๋˜๋Š” IBRS ์ง€์นจ ๊ธฐ๋ฐ˜ ๋ณดํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

Intel ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” Return Stack Buffer์˜ ํ•˜ํ•œ(underflow)์„ ํ†ตํ•ด ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ธฐ๋Šฅ ๋•๋ถ„์— ์ถ”์ธก์„ฑ ๊ฐ„์ ‘ ์ ํ”„์— ๋Œ€ํ•œ ์ฃผ์†Œ ๋Œ€์ฒด๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด "ret" ๋ช…๋ น์–ด๋Š” ์ผ๋ฐ˜ ๊ฐ„์ ‘ ์ ํ”„์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์ฃผ์†Œ ์„ ํƒ ๋…ผ๋ฆฌ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ญ๋ฅ˜๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์„ ์ƒ์„ฑํ•˜๊ณ  ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๊ฐ€ Linux ์ปค๋„์—์„œ ์ฒœ ๊ฐœ ์ด์ƒ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

AMD ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” "ret" ๋ช…๋ น์˜ ์ถ”์ธก ์‹คํ–‰์ด ์Šคํƒ๋ณ„ ๋ฒ„ํผ(Return Address Stack)๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰๋˜๋ฉฐ ๋ถ„๊ธฐ ์˜ˆ์ธก ์œ ๋‹›์€ "ret" ๋ช…๋ น์„ ์ œ์–ด ๋ฐ˜ํ™˜์ด ์•„๋‹Œ ๊ฐ„์ ‘ ๋ถ„๊ธฐ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. , ์ด์— ๋”ฐ๋ผ ์˜ˆ์ธก ๊ฐ„์ ‘ ์ „ํ™˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์—์„œ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  "ret" ์ž‘์—…์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ€์ƒ ๋ถ„๊ธฐ ๊ตฌํ˜„๊ณผ ๊ด€๋ จ๋œ AMD CPU(CVE-2022-23825, Branch Type Confusion)์—์„œ๋„ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๊ธฐ ์˜ˆ์ธก ์กฐ๊ฑด์€ ํ•„์š”ํ•œ ๋ถ„๊ธฐ ๋ช…๋ น ์—†์ด๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ถ„๊ธฐ ์˜ˆ์ธก ๋ฒ„ํผ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "ret" ๋ช…๋ น ์—†์ด. ์ด ๊ธฐ๋Šฅ์€ ๋ณดํ˜ธ ๊ตฌํ˜„์„ ์ƒ๋‹นํžˆ ๋ณต์žกํ•˜๊ฒŒ ํ•˜๋ฉฐ ๋ถ„๊ธฐ ์˜ˆ์ธก ๋ฒ„ํผ๋ฅผ ๋ณด๋‹ค ์ ๊ทน์ ์œผ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์— ์™„์ „ํ•œ ๋ณดํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ 209% ์ฆ๊ฐ€ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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