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