ํต์ฌ์์ Linux ๋ฒ์ 6.2์์ Spectre v2 ๊ณต๊ฒฉ์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ์ทจ์ฝ์ (CVE-2023-1998)์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ ์ด์ฉํ๋ฉด ๋์ผํ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์ ์ฝ์ด์์ ์คํ ์ค์ด์ง๋ง ๋ค๋ฅธ SMT(ํ์ดํผ์ค๋ ๋ฉ) ์ค๋ ๋์์ ์คํ๋๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ ํด๋ผ์ฐ๋ ์์คํ ์ ๊ฐ์ ๋จธ์ ๊ฐ ๋ฐ์ดํฐ ์ ์ถ ๋ฑ์ ์ ์ฉ๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ปค๋์๋ง ์ํฅ์ ๋ฏธ์นฉ๋๋ค. Linux ์ด ์ทจ์ฝ์ ์ 6.2 ๋ฒ์ ์์ ๋ฐ์ํ์ผ๋ฉฐ, Spectre v2 ๋ณดํธ ๊ธฐ๋ฅ์ ์ ์ฉํ ๋ ๋ฐ์ํ๋ ์๋นํ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ธฐ ์ํด ์ค๊ณ๋ ์ต์ ํ ๊ธฐ๋ฅ์ด ์๋ชป ๊ตฌํ๋์ด ์๊ธด ๊ฒ์ ๋๋ค. ํด๋น ์ทจ์ฝ์ ์ ์คํ์ ์ธ ์ปค๋ ๋ธ๋์น์์ ์์ ๋์์ต๋๋ค. Linux 6.3.
์คํํฐ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ์ฌ์ฉ์ ๊ณต๊ฐ ํ๋ก์ธ์ค๋ `prctl PR_SET_SPECULATION_CTRL` ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ seccomp ๊ธฐ๋ฐ ์์คํ ํธ์ถ ํํฐ๋ง์ ํตํด ํฌ๊ธฐ์ ๋ช ๋ น์ด ์คํ์ ์ ํ์ ์ผ๋ก ๋นํ์ฑํํ ์ ์์ต๋๋ค. ์ฐ๊ตฌ์ง์ ๋ฐ๋ฅด๋ฉด, 6.2 ์ปค๋์ ์๋ชป๋ ์ต์ ํ๋ก ์ธํด ์ด ๋ฌธ์ ๊ฐ ๋๋ฌ๋ฌ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ ์ ํ ๋ณดํธ ์กฐ์น๊ฐ ๋ง๋ จ๋์ง ์์๋ค๊ณ ํฉ๋๋ค. ๊ฐ์ ๊ธฐ๊ธฐ ์ ์ด๋ ํ ์ฃผ์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ prctl์ ํตํด Spectre-BTI ๊ณต๊ฒฉ ์ฐจ๋จ ๋ชจ๋๋ฅผ ํ์ฑํํ์์๋ ๋ถ๊ตฌํ๊ณ ์ด ์ทจ์ฝ์ ์ ๋ณด์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ ์ผ๋ฐ์ ์ธ ํ๊ฒฝ์์๋ ๋ํ๋ฉ๋๋ค. ์๋ฒ ์ปค๋ 6.2์์๋ ๋ก๋ ์ "spectre_v2=ibrs" ์ค์ ์ ์ฌ์ฉํฉ๋๋ค.
์ด ์ทจ์ฝ์ ์ ๋ณธ์ง์ IBRS ๋๋ eIBRS ๋ณดํธ ๋ชจ๋๋ฅผ ์ ํํ ๋, ์ํ๋ ์ต์ ํ๋ก ์ธํด ๋์ ๋ฉํฐ์ค๋ ๋ฉ ๊ธฐ์ (SMT ๋๋ ํ์ดํผ์ค๋ ๋ฉ)์ ์ฌ์ฉํ ๋ ๋์๋ฅผ ์ฐจ๋จํ๋ ๋ฐ ํ์ํ STIBP(๋จ์ผ ์ค๋ ๋ ๊ฐ์ ๋ถ๊ธฐ ์์ธก๊ธฐ) ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉ์ด ๋นํ์ฑํ๋๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์ค์ง eIBRS ๋ชจ๋๋ง์ด ์ค๋ ๋ ๊ฐ ๋์์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ IBRS ๋ชจ๋๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด ๋ชจ๋์์๋ ๋
ผ๋ฆฌ ๊ฐ ์ฝ์ด ๋์์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ IBRS ๋นํธ๊ฐ ์ ์ด๊ฐ ์ฌ์ฉ์ ๊ณต๊ฐ์ผ๋ก ๋ฐํ๋ ๋ ์ฑ๋ฅ์์ ์ด์ ๋ก ์ง์์ง๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๋ก ์ธํด ์ฌ์ฉ์ ๊ณต๊ฐ ์ค๋ ๋๊ฐ Spectre v2 ๊ณต๊ฒฉ์ ์ทจ์ฝํด์ง๋๋ค.
์ถ์ฒ : opennet.ru
