๊ทธ๋ผ์ธ ๊ณต๊ณผ๋ํ(์ค์คํธ๋ฆฌ์)๊ณผ ํฌ๋ฆํ์ธ ์ ๋ณด ๋ณด์ ์ผํฐ(CISPA)์ ์ฐ๊ตฌ์ ๊ทธ๋ฃน์
Foreshadow ๊ณต๊ฒฉ์ ์์ธ(ํฐ๋ฏธ๋ ํ์ด์ง ์ค๋ฅ)๊ฐ ๋ฐ์ํ๋ ๊ฐ์ ์ฃผ์์์ ๋ฉ๋ชจ๋ฆฌ์ ์ก์ธ์คํ ๋ ํ๋ก์ธ์๊ฐ ์ถ์ธก์ ๋ฐ๋ผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ณ์ฐํ๊ณ L1 ์บ์์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ค๋ ์ฌ์ค์ ์ด์ฉํฉ๋๋ค. ์ถ์ธก์ ์ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ํ ์ด๋ธ ๊ฒ์์ด ์๋ฃ๋๊ธฐ ์ ์ ์ํ๋๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ํ ์ด๋ธ ํญ๋ชฉ(PTE)์ ์ํ์ ๊ด๊ณ์์ด ์ํ๋ฉ๋๋ค. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ์๋์ง์ ๊ฐ๋ ์ฑ์ ํ์ธํ๊ธฐ ์ ์. ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ฉ์ฑ ํ์ธ์ด ์๋ฃ๋ ํ PTE์ Present ํ๋๊ทธ๊ฐ ์์ผ๋ฉด ์์ ์ ํ๊ธฐ๋์ง๋ง ๋ฐ์ดํฐ๋ ์บ์์ ๋จ์ ์์ผ๋ฉฐ ์ฌ์ด๋ ์ฑ๋์ ํตํด ์บ์ ๋ด์ฉ์ ํ์ธํ๋ ๋ฐฉ๋ฒ(์ก์ธ์ค ์๊ฐ ๋ณํ ๋ถ์)์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ์ ์์ต๋๋ค. ์บ์๋ ๋ฐ์ดํฐ์ ์บ์๋์ง ์์ ๋ฐ์ดํฐ).
์ฐ๊ตฌ์๋ค์ Foreshadow์ ๋ํ ๊ธฐ์กด ๋ณดํธ ๋ฐฉ๋ฒ์ด ํจ๊ณผ์ ์ด์ง ์์ผ๋ฉฐ ๋ฌธ์ ์ ๋ํ ์๋ชป๋ ํด์์ผ๋ก ๊ตฌํ๋๋ค๋ ์ฌ์ค์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์ทจ์ฝ์
Foreshadow๋ ์ด์ ์ ์ถฉ๋ถํ๋ค๊ณ ๊ฐ์ฃผ๋์๋ ์ปค๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ๊ด๊ณ์์ด ์
์ฉ๋ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๊ตฌ์๋ค์ Spectre-v2 ๋ณดํธ๋ง ๋นํ์ฑํ๋ ์ ์ปค๋๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ Foreshadow ๋ณดํธ ๋ชจ๋๊ฐ ํ์ฑํ๋ ๋น๊ต์ ์ค๋๋ ์ปค๋์ ์ฌ์ฉํ๋ ์์คํ
์์ Foreshadow ๊ณต๊ฒฉ์ ์ํํ ๊ฐ๋ฅ์ฑ์ ์์ฐํ์ต๋๋ค. Linux ์ปค๋ ์ต์
nospectre_v2).
๋ฐ๊ฒฌ๋์๋ค
๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค ์ค์ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ค์ง๋ง ์ปค๋์์ ์ฌ์ฉ์ ๊ณต๊ฐ ๋ ์ง์คํฐ์ ์ถ๋ก ์ ์ญ์ฐธ์กฐ๊ฐ ๋ฐ์ํ ๋ ๋ฐ์ํฉ๋๋ค. ์ทจ์ฝ์ ์ ์์ธ์ ๋ํ ์ด๋ฌํ ์๋ชป๋ ํด์์ผ๋ก ์ธํด ์ฒ์์๋ Foreshadow์ ๋ฐ์ดํฐ ๋์ถ์ด L1 ์บ์๋ฅผ ํตํด์๋ง ๋ฐ์ํ ์ ์๋ ๋ฐ๋ฉด ์ปค๋์ ํน์ ์ฝ๋ ์กฐ๊ฐ(ํ๋ฆฌํ์น ๊ฐ์ ฏ)์ด ์์ผ๋ฉด L1 ์บ์ ์ธ๋ถ์ ๋ฐ์ดํฐ ๋์ถ์ ๊ธฐ์ฌํ ์ ์๋ค๋ ๊ฐ์ ์ด ์ด์ด์ก์ต๋๋ค. ์๋ฅผ ๋ค์ด L3 ์บ์์ ์์ต๋๋ค.
๋ํ ์๋ณ๋ ๊ธฐ๋ฅ์ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ณํํ๊ณ CPU ๋ ์ง์คํฐ์ ์ ์ฅ๋ ์ฃผ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ ํ๋ก์ธ์ค๋ฅผ ๋ชฉํ๋ก ํ๋ ์๋ก์ด ๊ณต๊ฒฉ์ ์์ฑํ ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค๋๋ค. ์์ฐ์ผ๋ก ์ฐ๊ตฌ์๋ค์ ํ์ธ๋ ํจ๊ณผ๋ฅผ ์ฌ์ฉํ์ฌ Intel Core i10-7U CPU๊ฐ ์ฅ์ฐฉ๋ ์์คํ ์์ ์ด๋น ์ฝ 6500๋นํธ์ ์ฑ๋ฅ์ผ๋ก ํ ํ๋ก์ธ์ค์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. Intel SGX ์ํด๋ ์ด๋ธ์์ ๋ ์ง์คํฐ ์ฝํ ์ธ ๊ฐ ์ ์ถ๋ ๊ฐ๋ฅ์ฑ๋ ๋์ ์์ต๋๋ค(32๋นํธ ๋ ์ง์คํฐ์ ๊ธฐ๋ก๋ 64๋นํธ ๊ฐ์ ํ์ธํ๋ ๋ฐ 15๋ถ์ด ๊ฑธ๋ ธ์ต๋๋ค). ์ผ๋ถ ์ ํ์ ๊ณต๊ฒฉ์ JavaScript ๋ฐ WebAssembly์์ ๊ตฌํ์ด ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์๋ฅผ ๋ค์ด JavaScript ๋ณ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ฒฐ์ ํ๊ณ ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ โโ๊ฐ์ผ๋ก 64๋นํธ ๋ ์ง์คํฐ๋ฅผ ์ฑ์ฐ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ต๋๋ค.
L3 ์บ์๋ฅผ ํตํ Foreshadow ๊ณต๊ฒฉ์ ์ฐจ๋จํ๊ธฐ ์ํด์๋ ๋ฆฌํธํด๋ฆฐ ํจ์น์ธํธ์ ๊ตฌํ๋ Spectre-BTB(Branch Target Buffer) ๋ณดํธ ๋ฐฉ์์ด ํจ๊ณผ์ ์ด๋ค. ๋ฐ๋ผ์ ์ฐ๊ตฌ์๋ค์ CPU ํฌ๊ธฐ ์คํ ๋ฉ์ปค๋์ฆ์ ์๋ ค์ง ์ทจ์ฝ์ ์ ๋ํด ์ด๋ฏธ ๋ณดํธ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์๋ก์ด CPU๊ฐ ์ฅ์ฐฉ๋ ์์คํ ์์๋ ๋ฆฌํธํด๋ฆฐ์ ํ์ฑํ๋ ์ํ๋ก ๋ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋์์ Intel ๋ด๋น์๋ Foreshadow์ ๋ํ ์ถ๊ฐ ๋ณดํธ ์กฐ์น๋ฅผ ํ๋ก์ธ์์ ์ถ๊ฐํ ๊ณํ์ด ์์ผ๋ฉฐ Spectre V2 ๋ฐ L1TF(Foreshadow) ๊ณต๊ฒฉ์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ํฌํจํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ๋ค๊ณ ๋ฐํ์ต๋๋ค.
์ถ์ฒ : opennet.ru