๊ฒ์๋จ ์๋ก์ด ์ ํ์ ๊ณต๊ฒฉ์ ๋ํ ์ ๋ณด LVI (๋ถํ๊ฐ ์ฃผ์
, CVE-2020-0551) Intel SGX ์ํด๋ ์ด๋ธ ๋ฐ ๊ธฐํ ํ๋ก์ธ์ค์์ ํค์ ๋น๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ Intel CPU์ ์ถ์ธก ์คํ ๋ฉ์ปค๋์ฆ์ ๋ํด ์ค๋ช
ํฉ๋๋ค.
์๋ก์ด ์ ํ์ ๊ณต๊ฒฉ์ ๊ณต๊ฒฉ์ ์ฌ์ฉ๋ ๊ฒ๊ณผ ๋์ผํ ๋ง์ดํฌ๋ก์ํคํ
์ฒ ๊ตฌ์กฐ์ ์กฐ์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. MDS (๋ง์ดํฌ๋ก์ํคํ
์ฒ ๋ฐ์ดํฐ ์ํ๋ง), ์คํํฐ์ ๋ฉํธ๋ค์ด. ๋์์ ์๋ก์ด ๊ณต๊ฒฉ์ Meltdown, Spectre, MDS ๋ฐ ๊ธฐํ ์ ์ฌํ ๊ณต๊ฒฉ์ ๋ํ ๊ธฐ์กด ๋ณดํธ ๋ฐฉ๋ฒ์ผ๋ก ์ฐจ๋จ๋์ง ์์ต๋๋ค. ํจ๊ณผ์ ์ธ LVI ๋ณดํธ๋ฅผ ์ํด์๋ CPU์ ๋ํ ํ๋์จ์ด ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ณดํธ๋ฅผ ๊ตฌ์ฑํ ๋ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ ๋ก๋ ์์
ํ์ ์ปดํ์ผ๋ฌ์ ์ํด LFENCE ๋ช
๋ น์ ์ถ๊ฐํ๊ณ RET ๋ช
๋ น์ POP, LFENCE ๋ฐ JMP๋ก ๋์ฒดํ๋ฉด ๋๋ฌด ๋ง์ ์ค๋ฒํค๋๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. ์ฐ๊ตฌ์์ ๋ฐ๋ฅด๋ฉด ์์ ํ ์ํํธ์จ์ด ๋ณดํธ๋ 2-19๋ฐฐ์ ์ฑ๋ฅ.
๋ฌธ์ ๋ฅผ ์ฐจ๋จํ๋ ์ด๋ ค์ ์ค ์ผ๋ถ๋ ๊ณต๊ฒฉ์ด ํ์ฌ ์ค์ ์ ์ด๊ธฐ๋ณด๋ค๋ ์ด๋ก ์ ์ด๋ผ๋ ์ฌ์ค๋ก ์ธํด ์์๋ฉ๋๋ค(๊ณต๊ฒฉ์ ์ด๋ก ์ ์ผ๋ก๋ ๊ฐ๋ฅํ์ง๋ง ๊ตฌํํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต๊ณ ํฉ์ฑ ํ
์คํธ์์๋ง ์ฌํ ๊ฐ๋ฅ).
์ธํ
์ถฉ๋น ๋ฌธ์ ์ ์ํ๋๋ ๋ณดํต ์์ค(5.6์ ์ค 10์ )์ด๊ณ ์ถ์ SGX ํ๊ฒฝ์ ๋ํ ํ์จ์ด ๋ฐ SDK๋ฅผ ์
๋ฐ์ดํธํ์ฌ ๋์์ ํตํด ๊ณต๊ฒฉ์ ์ฐจ๋จํ๋ ค๊ณ ์๋ํ์ต๋๋ค. ์ ์๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ ํ์ฌ Intel ํ๋ก์ธ์์๋ง ์ ์ฉ ๊ฐ๋ฅํ์ง๋ง Meltdown๊ธ ๊ณต๊ฒฉ์ด ์ ์ฉ ๊ฐ๋ฅํ ๋ค๋ฅธ ํ๋ก์ธ์์ LVI๋ฅผ ์ ์ฉํ ๊ฐ๋ฅ์ฑ๋ ๋ฐฐ์ ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ง๋ 9์ ๋ฃจ๋ฒค๋ํ๊ต(University of Leuven)์ Jo Van Bulck ์ฐ๊ตฌ์์ ์ํด ํ์ธ๋์์ผ๋ฉฐ, ์ดํ ๋ค๋ฅธ ๋ํ์ ์ฐ๊ตฌ์ XNUMX๋ช
์ด ์ฐธ์ฌํ์ฌ XNUMX๊ฐ์ง ๊ธฐ๋ณธ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ด ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ ์กด์ฌ๋ฅผ ํ์ฉํฉ๋๋ค. ์ต์
๋ค. ๋
๋ฆฝ์ ์ผ๋ก ์ฌํด XNUMX์ Bitdefender์ ์ฐ๊ตฌ์๋ค์ ๋ํ ๋ฐ๊ฒฌ LVI ๊ณต๊ฒฉ ๋ณ์ข
์ค ํ๋๋ฅผ ์ธํ
์ ๋ณด๊ณ ํ์ต๋๋ค. ๊ณต๊ฒฉ ๋ณ์ข
์ ๊ธฐ์กด์ ์ฌ์ฉ๋๋ ์คํ ๋ฆฌ์ง ๋ฒํผ(SB, Store Buffer), ํ ๋ฒํผ(LFB, Line Fill Buffer), FPU ์ปจํ
์คํธ ์ ํ ๋ฒํผ, 1๋จ๊ณ ์บ์(LXNUMXD) ๋ฑ ๋ค์ํ ๋ง์ดํฌ๋ก ์ํคํ
์ฒ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๊ตฌ๋ณ๋ฉ๋๋ค. ๋ฑ์ ๊ณต๊ฒฉ์ ZombieLoad, RIDL, ๋์ง, ๊ฒ์ผ๋ฅธFP, ์๊ณ ะธ ๋ถ๊ดด.
๋ฉ์ธ ๋ช
์ MDS ๊ณต๊ฒฉ์ ๋ํ LVI๋ MDS๊ฐ ์ถ์ธก์ฑ ์ค๋ฅ ์ฒ๋ฆฌ ๋๋ ๋ก๋ ๋ฐ ์ ์ฅ ์์
ํ์ ์บ์์ ๋จ์ ์๋ ๋ง์ดํฌ๋ก์ํคํ
์ฒ ๊ตฌ์กฐ์ ๋ด์ฉ ๊ฒฐ์ ์ ์กฐ์ํ๋ ๋ฐ๋ฉด,
LVI ๊ณต๊ฒฉ์ ํตํด ๊ณต๊ฒฉ์์ ๋ฐ์ดํฐ๋ฅผ ๋ง์ดํฌ๋ก์ํคํ
์ฒ ๊ตฌ์กฐ์ ์ฝ์
ํ์ฌ ํผํด์ ์ฝ๋์ ํ์ ์ถ์ธก ์คํ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ด๋ฌํ ์กฐ์์ ํตํด ๊ณต๊ฒฉ์๋ ๋์ CPU ์ฝ์ด์์ ํน์ ์ฝ๋๋ฅผ ์คํํ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ฐ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ด์ฉ์ ์ถ์ถํ ์ ์์ต๋๋ค.
์ ์ฐฉ์ทจ ๋ฌธ์ ํผํด์ ํ๋ก์ธ์ค์ ์ฝ๋์์ ๋ง๋์ผ ํ๋ค ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ โโ๊ฐ์ด ๋ก๋๋๊ณ ์ด ๊ฐ์ ๋ก๋ํ๋ฉด ์์ธ(์ค๋ฅ, ์ค๋จ ๋๋ ์ง์)๊ฐ ๋ฐ์ํ๊ณ ๊ฒฐ๊ณผ๊ฐ ์ญ์ ๋๊ณ ๋ช
๋ น์ด ๋ค์ ์คํ๋๋ ํน์ ์ฝ๋ ์ํ์ค(๊ฐ์ ฏ)์
๋๋ค. ์์ธ๊ฐ ์ฒ๋ฆฌ๋๋ฉด ๊ฐ์ ฏ์์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ถ๋๋ ์ถ์ธก ์ฐฝ์ด ๋ํ๋ฉ๋๋ค. ํนํ, ํ๋ก์ธ์๋ ์ถ์ธก ๋ชจ๋์์ ์ฝ๋ ์กฐ๊ฐ(๊ฐ์ ฏ)์ ์คํํ๊ธฐ ์์ํ ํ ์์ธก์ด ํ๋นํ์ง ์๋ค๊ณ ํ๋จํ๊ณ ์์
์ ์๋ ์ํ๋ก ๋กค๋ฐฑํ์ง๋ง ์ถ์ธก ์คํ ์ค์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ L1D ์บ์์ ์ ์ฅ๋ฉ๋๋ค. ๋ฐ ๋ง์ดํฌ๋ก์ํคํ
์ฒ ๋ฒํผ๋ ํ์ฌ ์ฑ๋์ ํตํด ์์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐ์ ํ๋ ์๋ ค์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ์ ์์ต๋๋ค.
"์ง์" ์์ธ๋ "์ค๋ฅ" ์์ธ์ ๋ฌ๋ฆฌ ์ํํธ์จ์ด ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํธ์ถํ์ง ์๊ณ ํ๋ก์ธ์์ ์ํด ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ํ
์ด๋ธ์ A(์ก์ธ์ค๋จ) ๋๋ D(๋ํฐ) ๋นํธ๋ฅผ ์
๋ฐ์ดํธํด์ผ ํ ๋ ์ง์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ํ ๊ณต๊ฒฉ์ ์ํํ ๋ ๊ฐ์ฅ ์ด๋ ค์ด ์ ์ ํผํด์ ํ๋ก์ธ์ค๋ฅผ ์กฐ์ํ์ฌ ์ง์ ๋ฐ์์ ์์ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ํ์ฌ ์ด๋ฅผ ์ํํ ์ ์๋ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ง๋ง ๋ฏธ๋์ ๋ฐ๊ฒฌ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๊ณต๊ฒฉ ์ํ ๊ฐ๋ฅ์ฑ์ ์ง๊ธ๊น์ง Intel SGX ์ํด๋ ์ด๋ธ์ ๋ํด์๋ง ํ์ธ๋์์ผ๋ฉฐ, ๋ค๋ฅธ ์๋๋ฆฌ์ค๋ ์ด๋ก ์ ์ด๊ฑฐ๋ ํฉ์ฑ ์กฐ๊ฑด์์ ์ฌํ ๊ฐ๋ฅํฉ๋๋ค(์ฝ๋์ ํน์ ๊ฐ์ ฏ์ ์ถ๊ฐํด์ผ ํจ).
๊ฐ๋ฅํ ๊ณต๊ฒฉ ๋ฒกํฐ:
- ์ปค๋ ๊ตฌ์กฐ์์ ์ฌ์ฉ์ ์์ค ํ๋ก์ธ์ค๋ก ๋ฐ์ดํฐ๊ฐ ๋์ถ๋ฉ๋๋ค. Spectre 1 ๊ณต๊ฒฉ์ ๋ํ Linux ์ปค๋์ ๋ณดํธ์ SMAP(๊ฐ๋
์ ๋ชจ๋ ์ก์ธ์ค ๋ฐฉ์ง) ๋ณดํธ ๋ฉ์ปค๋์ฆ์ LVI ๊ณต๊ฒฉ ๊ฐ๋ฅ์ฑ์ ํฌ๊ฒ ์ค์
๋๋ค. ํฅํ์ ๋ ๊ฐ๋จํ LVI ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ด ํ์ธ๋๋ฉด ์ปค๋์ ์ถ๊ฐ ๋ณดํธ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํ ์๋ ์์ต๋๋ค.
- ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ ์ ์ถ. ๊ณต๊ฒฉ์ ์ํด์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํน์ ์ฝ๋ ์กฐ๊ฐ์ด ์์ด์ผ ํ๊ณ ๋์ ํ๋ก์ธ์ค์์ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ๋ฐฉ๋ฒ์ ์ ์ํด์ผ ํฉ๋๋ค.
- ํธ์คํธ ํ๊ฒฝ์์ ๊ฒ์คํธ ์์คํ
์ผ๋ก ๋ฐ์ดํฐ ์ ์ถ. ๊ณต๊ฒฉ์ ๋๋ฌด ๋ณต์กํ ๊ฒ์ผ๋ก ๋ถ๋ฅ๋์ด ๊ตฌํํ๊ธฐ ์ด๋ ค์ด ๋ค์ํ ๋จ๊ณ์ ์์คํ
ํ๋ ์์ธก์ด ํ์ํฉ๋๋ค.
- ์๋ก ๋ค๋ฅธ ๊ฒ์คํธ ์์คํ
์ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ ์ ์ถ. ๊ณต๊ฒฉ ๋ฒกํฐ๋ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค ๊ฐ์ ๋ฐ์ดํฐ ์ ์ถ์ ๊ตฌ์ฑํ๋ ๊ฒ๊ณผ ๋น์ทํ์ง๋ง ๊ฒ์คํธ ์์คํ
๊ฐ์ ๊ฒฉ๋ฆฌ๋ฅผ ์ฐํํ๋ ค๋ฉด ๋ณต์กํ ์กฐ์์ด ์ถ๊ฐ๋ก ํ์ํฉ๋๋ค.
์ฐ๊ตฌ์์ด ์ถํํจ ์ฌ๋ฌ ํ๋กํ ํ์
๊ณต๊ฒฉ ์ํ ์๋ฆฌ๋ฅผ ์์ฐํ์ง๋ง ์ค์ ๊ณต๊ฒฉ์ ์ํํ๋ ๋ฐ๋ ์์ง ์ ํฉํ์ง ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐํ ์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์ ์ฌํ๊ฒ ํผํด์ ํ๋ก์ธ์ค์์ ์ถ์ธก์ฑ ์ฝ๋ ์คํ์ ๋ฆฌ๋๋ ์
ํ ์ ์์ต๋๋ค(ROP,๋ฐํ ์งํฅ ํ๋ก๊ทธ๋๋ฐ). ์ด ์์์ ํผํด์๋ ํ์ํ ๊ฐ์ ฏ์ ํฌํจํ๋ ํน๋ณํ ์ค๋น๋ ํ๋ก์ธ์ค์
๋๋ค(์ค์ ํ์ฌ ํ๋ก์ธ์ค์ ๊ณต๊ฒฉ์ ์ ์ฉํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค). ๋ ๋ฒ์งธ ์๋ฅผ ์ฌ์ฉํ๋ฉด Intel SGX ์ํด๋ ์ด๋ธ ๋ด๋ถ์์ AES ์ํธํ ์ค์ ๊ณ์ฐ์ ์ฐธ์ฌํ๊ณ ์ํธํ์ ์ฌ์ฉ๋ ํค ๊ฐ์ ๋ณต์ํ๊ธฐ ์ํ ๋ช
๋ น์ ์ถ์ธก์ ์ผ๋ก ์คํํ๋ ๋์ ๋ฐ์ดํฐ ์ ์ถ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru