Linux 6.2 ์ปค๋(CVE-2023-1998)์์ ์๋ก ๋ค๋ฅธ SMT ๋๋ ํ์ดํผ ์ค๋ ๋ฉ ์ค๋ ๋์์ ์คํ๋์ง๋ง ๋์ผํ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์ ์ฝ์ด์์ ์คํ๋๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ Spectre v2 ๊ณต๊ฒฉ์ ๋ํ ๋ณดํธ๋ฅผ ๋นํ์ฑํํ๋ ์ทจ์ฝ์ ์ด ํ์ธ๋์์ต๋๋ค. ๋ฌด์๋ณด๋ค๋ ์ด ์ทจ์ฝ์ฑ์ ํด๋ผ์ฐ๋ ์์คํ ์ ๊ฐ์ ๋จธ์ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ถ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ Linux 6.2 ์ปค๋์๋ง ์ํฅ์ ๋ฏธ์น๋ฉฐ Spectre v2์ ๋ํ ๋ณดํธ๋ฅผ ์ ์ฉํ ๋ ์๋นํ ์ค๋ฒํค๋๋ฅผ ์ค์ด๋๋ก ์ค๊ณ๋ ์ต์ ํ์ ์๋ชป๋ ๊ตฌํ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ทจ์ฝ์ ์ Linux 6.3 ์ปค๋์ ์คํ์ ๋ถ๊ธฐ์์ ์์ ๋์์ต๋๋ค.
์ฌ์ฉ์ ๊ณต๊ฐ์์ Spectre ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ prctl PR_SET_SPECULATION_CTRL์ ์ฌ์ฉํ์ฌ ์์ธก ๋ช ๋ น ์คํ์ ์ ํ์ ์ผ๋ก ๋นํ์ฑํํ๊ฑฐ๋ seccomp ๊ธฐ๋ฐ ์์คํ ํธ์ถ ํํฐ๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํ์ ํ ์ฐ๊ตฌ์์ ๋ฐ๋ฅด๋ฉด prctl์ ํตํ spectre-BTI ๊ณต๊ฒฉ ์ฐจ๋จ ๋ชจ๋๊ฐ ํฌํจ๋์ด ์์์๋ ๋ถ๊ตฌํ๊ณ 6.2 ์ปค๋์ ์๋ชป๋ ์ต์ ํ๋ก ์ธํด ํ๋ ์ด์์ ๋ํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์ ๊ฐ์ ๋จธ์ ์ด ์ ์ ํ ๋ณดํธ ์์ด ๋ฐฉ์น๋์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ "spectre_v6.2=ibrs" ์ค์ ์ ์ฌ์ฉํ์ฌ ๋ถํ ๋๋ 2 ์ปค๋์ด ์๋ ์ผ๋ฐ ์๋ฒ์์๋ ๋ํ๋ฉ๋๋ค.
์ทจ์ฝ์ ์ ๋ณธ์ง์ IBRS ๋๋ eIBRS ๋ณดํธ ๋ชจ๋๋ฅผ ์ ํํ ๋ ๋์ ๋ฉํฐ์ค๋ ๋ฉ ๊ธฐ์ (SMT ๋๋ Hyper-Threading)์ ์ฌ์ฉํ ๋ ๋์ถ์ ์ฐจ๋จํ๋ ๋ฐ ํ์ํ STIBP(Single Thread Indirect Branch Predictors) ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉ์ ๋นํ์ฑํํ ์ต์ ํ์
๋๋ค. ). ๋์์ eIBRS ๋ชจ๋๋ง ์ค๋ ๋ ๊ฐ ๋์ถ์ ๋ํ ๋ณดํธ๋ฅผ ์ ๊ณตํ์ง๋ง IBRS ๋ชจ๋๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ ์ด๊ฐ ์ฌ์ฉ์ ๊ณต๊ฐ์ผ๋ก ๋ฐํ๋ ๋ ์ฑ๋ฅ์์ ์ด์ ๋ก ๋
ผ๋ฆฌ ์ฝ์ด ๊ฐ ๋์ถ์ ๋ํ ๋ณดํธ๋ฅผ ์ ๊ณตํ๋ IBRS ๋นํธ๊ฐ ์ง์์ง๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๋ก ์ธํด ์ฌ์ฉ์ ๊ณต๊ฐ ์ค๋ ๋๊ฐ Spectre v2 ํด๋์ค์ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธ๋์ง ์์ต๋๋ค.
์ถ์ฒ : opennet.ru