Plundervolt๋Š” SGX ๊ธฐ์ˆ ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” Intel ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ธํ…” ์ถœ์‹œ ์ˆ˜์ •๋˜๋Š” ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ ์ทจ์•ฝ์  (CVE-2019-14607), ํ—ˆ์šฉ CPU์˜ ๋™์  ์ „์•• ๋ฐ ์ฃผํŒŒ์ˆ˜ ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์กฐ์ž‘ํ•˜์—ฌ ๊ฒฉ๋ฆฌ๋œ Intel SGX ์—”ํด๋ ˆ์ด๋ธŒ์˜ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ์„ ํฌํ•จํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์…€์˜ ๋‚ด์šฉ์„ ์†์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. Plundervolt๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด ๊ณต๊ฒฉ์€ ์ž ์žฌ์ ์œผ๋กœ ๋กœ์ปฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์ƒ์Šน์‹œ์ผœ ์„œ๋น„์Šค ๊ฑฐ๋ถ€๋ฅผ ์œ ๋ฐœํ•˜๊ณ  ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋ฃจํŠธ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ SGX ์—”ํด๋ ˆ์ด๋ธŒ์—์„œ ๊ณ„์‚ฐ์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ณต๊ฒฉ์ด ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ž๋Š” ์—”ํด๋ ˆ์ด๋ธŒ์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ •๋ณด๋ฅผ ์™œ๊ณกํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋” ๋ณต์žกํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” RSA-CRT ๋ฐ AES-NI ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ์—”ํด๋ ˆ์ด๋ธŒ์— ์ €์žฅ๋œ ๊ฐœ์ธ ํ‚ค๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ œ์™ธ๋œ. ์ด ๊ธฐ์ˆ ์€ ์˜ˆ๋ฅผ ๋“ค์–ด ํ• ๋‹น๋œ ๋ฒ„ํผ ๊ฒฝ๊ณ„ ์™ธ๋ถ€ ์˜์—ญ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—… ์‹œ ์ทจ์•ฝ์ ์„ ์œ ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐ ์ˆ˜์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณต๊ฒฉ ์ˆ˜ํ–‰์„ ์œ„ํ•œ ํ”„๋กœํ† ํƒ€์ž… ์ฝ”๋“œ ์ถœํŒ ๋œ GitHub์—์„œ

์ด ๋ฐฉ๋ฒ•์˜ ํ•ต์‹ฌ์€ SGX์—์„œ ๊ณ„์‚ฐํ•˜๋Š” ๋™์•ˆ ์—”ํด๋ ˆ์ด๋ธŒ์˜ ์•”ํ˜ธํ™” ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ธ์ฆ ์‚ฌ์šฉ์ด ๋ณดํ˜ธ๋˜์ง€ ์•Š๋Š” ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฐ์ดํ„ฐ ์†์ƒ ๋ฐœ์ƒ์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๊ณก์„ ๋„์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ ์œ ํœด ์‹œ๊ฐ„ ๋™์•ˆ ์ „๋ ฅ ์†Œ๋น„๋ฅผ ์ค„์ด๊ณ  ์ง‘์ค‘ ์ž‘์—… ์ค‘์— ์ตœ๋Œ€ ์„ฑ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฃผํŒŒ์ˆ˜ ๋ฐ ์ „์•• ์ œ์–ด๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์ฃผํŒŒ์ˆ˜ ๋ฐ ์ „์•• ํŠน์„ฑ์€ ๊ฒฉ๋ฆฌ๋œ ์—”ํด๋ ˆ์ด๋ธŒ์—์„œ์˜ ์ปดํ“จํŒ… ์˜ํ–ฅ์„ ํฌํ•จํ•˜์—ฌ ์ „์ฒด ์นฉ์— ๊ฑธ์ณ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ „์••์„ ๋ณ€๊ฒฝํ•˜๋ฉด CPU ๋‚ด๋ถ€์˜ ๋ฉ”๋ชจ๋ฆฌ ์…€์„ ์žฌ์ƒํ•˜๊ธฐ์—๋Š” ์ถฉ์ „๋Ÿ‰์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„ ๊ทธ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ๊ณผ์˜ ์ฃผ์š” ์ฐจ์ด์  ๋กœ์šฐํ•ด๋จธ RowHammer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ ‘ํ•œ ์…€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ฝ์–ด DRAM ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐœ๋ณ„ ๋น„ํŠธ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด, Plundervolt๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณ„์‚ฐ์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๋กœ๋“œ๋œ ๊ฒฝ์šฐ CPU ๋‚ด๋ถ€์˜ ๋น„ํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐ’์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ ์ง€๋˜์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋ก๋˜๊ธฐ ์ „์— ์ž‘์—… ์ค‘์— ์™œ๊ณก๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด SGX์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฌด๊ฒฐ์„ฑ ์ œ์–ด ๋ฐ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ˆ˜์ •๋œ ๊ฐ’์ด ์•”ํ˜ธํ™” ๊ณผ์ •์˜ ๊ณฑ์…ˆ ๊ณผ์ •์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ์ž˜๋ชป๋œ ์•”ํ˜ธ๋ฌธ์œผ๋กœ ์ถœ๋ ฅ์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด SGX์˜ ํ•ธ๋“ค๋Ÿฌ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ˜ ๊ณต๊ฒฉ์ž๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์ถœ๋ ฅ ์•”ํ˜ธ๋ฌธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ถ•์ ํ•˜๊ณ  ๋ช‡ ๋ถ„ ๋‚ด์— ์—”ํด๋ ˆ์ด๋ธŒ์— ์ €์žฅ๋œ ํ‚ค ๊ฐ’์„ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ์ž…๋ ฅ ํ…์ŠคํŠธ์™€ ์˜ฌ๋ฐ”๋ฅธ ์ถœ๋ ฅ ์•”ํ˜ธ๋ฌธ์ด ์•Œ๋ ค์ ธ ์žˆ๊ณ  ํ‚ค๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ž˜๋ชป๋œ ์•”ํ˜ธ๋ฌธ์˜ ์ถœ๋ ฅ์€ ์ผ๋ถ€ ๋น„ํŠธ๊ฐ€ ๋ฐ˜๋Œ€ ๊ฐ’์œผ๋กœ ์™œ๊ณก๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ฐจ๋“ฑ์‹คํŒจ๋ถ„์„(DFA, ์ฐจ๋™ ๊ฒฐํ•จ ๋ถ„์„) ํ•  ์ˆ˜ ์žˆ๋‹ค ์˜ˆ์ธกํ•˜๋‹ค AES ๋Œ€์นญ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ์ƒ ํ‚ค๋ฅผ ํ™•์ธํ•œ ๋‹ค์Œ, ์„œ๋กœ ๋‹ค๋ฅธ ์„ธํŠธ์˜ ํ‚ค ๊ต์ฐจ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์›ํ•˜๋Š” ํ‚ค๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

6๊ฐœ์˜ Intel Core CPU๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ Intel ํ”„๋กœ์„ธ์„œ ๋ชจ๋ธ์ด ์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
10์„ธ๋Œ€๋Š” ๋ฌผ๋ก  3, XNUMX์„ธ๋Œ€ Xeon EXNUMX, XNUMX, XNUMX์„ธ๋Œ€ Intel Xeon Scalable, Xeon D,
์ œ์˜จ W์™€ ์ œ์˜จ E.

SGX ๊ธฐ์ˆ (์†Œํ”„ํŠธ์›จ์–ด ๊ฐ€๋“œ ํ™•์žฅ)๋Š” XNUMX์„ธ๋Œ€ Intel Core ํ”„๋กœ์„ธ์„œ(Skylake)์— ๋“ฑ์žฅํ–ˆ์œผ๋ฉฐ ์ œ๊ณต ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ซํžŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(enclave)์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ผ๋ จ์˜ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ด ์˜์—ญ์˜ ๋‚ด์šฉ์€ ring0, SMM ๋ฐ VMM ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ปค๋„ ๋ฐ ์ฝ”๋“œ์—์„œ๋„ ์ฝ๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ ์ ํ”„ ๊ธฐ๋Šฅ๊ณผ ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ์Šคํƒ ์กฐ์ž‘์„ ์‚ฌ์šฉํ•˜์—ฌ ์—”ํด๋ ˆ์ด๋ธŒ์˜ ์ฝ”๋“œ๋กœ ์ œ์–ด๊ถŒ์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์—”ํด๋ ˆ์ด๋ธŒ์— ์ œ์–ด๊ถŒ์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ถŒํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํŠน๋ณ„ํžˆ ์ƒ์„ฑ๋œ ์ƒˆ๋กœ์šด ๋ช…๋ น์–ด๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ enclave์— ๋ฐฐ์น˜๋œ ์ฝ”๋“œ๋Š” ๊ธฐ์กด ํ˜ธ์ถœ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ enclave ๋‚ด๋ถ€ ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•˜๊ณ  ํŠน์ˆ˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—”ํด๋ ˆ์ด๋ธŒ ๋ฉ”๋ชจ๋ฆฌ ์•”ํ˜ธํ™”๋Š” DRAM ๋ชจ๋“ˆ ์—ฐ๊ฒฐ๊ณผ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€