AMD ํ”„๋กœ์„ธ์„œ์˜ ์บ์‹œ ์ฑ„๋„ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ๊ณต๊ฒฉ

์ด์ „์— ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์„ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ Graz University of Technology(์˜ค์ŠคํŠธ๋ฆฌ์•„)์˜ ์—ฐ๊ตฌ์› ๊ทธ๋ฃน MDS, ๋„ท์ŠคํŽ™ํ„ฐ, ๋ง์น˜ ะธ ZombieLoad, AMD ํ”„๋กœ์„ธ์„œ์™€ ๊ด€๋ จ๋œ ํ•˜๋“œ์›จ์–ด ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ์ „ํ–ˆ๋‹ค AMD ํ”„๋กœ์„ธ์„œ์˜ LXNUMX ์บ์‹œ ์ฑ„๋„ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ๋ฐ์ดํ„ฐ ์œ ์ถœ์„ ์กฐ์ž‘ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ASLR ๋ณดํ˜ธ์˜ ํšจ์œจ์„ฑ์„ ์ค„์ด๊ณ , ์ทจ์•ฝํ•œ AES ๊ตฌํ˜„์—์„œ ํ‚ค๋ฅผ ๋ณต๊ตฌํ•˜๊ณ , Spectre ๊ณต๊ฒฉ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์บ์‹œ ์ฑ„๋„์— ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์˜ˆ์ธกํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” CPU์˜ ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ค€ ๋ฐ์ดํ„ฐ ์บ์‹œ(L1D)์—์„œ ์ฑ„๋„ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜(๋ฐฉํ–ฅ ์˜ˆ์ธก๊ธฐ)์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AMD ํ”„๋กœ์„ธ์„œ์— ์‚ฌ์šฉ๋˜๋Š” ์ตœ์ ํ™”๋Š” ฮผํƒœ๊ทธ(ฮผTag) ํ™•์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ฮผTag๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ์— ํŠน์ • ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ์ž‘๋™ ์ค‘์— ์ฑ„๋„ ์˜ˆ์ธก ์—”์ง„์€ ฮผTag๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์—์„œ ์บ์‹œ ์ฑ„๋„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ฮผTag๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋ชจ๋“  ์˜ต์…˜์„ ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ์ฑ„๋„์—๋งŒ ์•ก์„ธ์Šคํ•˜๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ CPU ์—๋„ˆ์ง€ ์†Œ๋น„๊ฐ€ ํฌ๊ฒŒ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

AMD ํ”„๋กœ์„ธ์„œ์˜ ์บ์‹œ ์ฑ„๋„ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ๊ณต๊ฒฉ

2011๋…„๋ถ€ํ„ฐ 2019๋…„๊นŒ์ง€ ์ถœ์‹œ๋œ ๋‹ค์–‘ํ•œ ์„ธ๋Œ€์˜ AMD ํ”„๋กœ์„ธ์„œ์—์„œ ์ฑ„๋„ ์˜ˆ์ธก ์‹œ์Šคํ…œ ๊ตฌํ˜„์„ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•˜๋Š” ๋™์•ˆ ๋‘ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ ๊ธฐ๋ฒ•์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Collide+Probe - ๊ณต๊ฒฉ์ž๊ฐ€ ๋™์ผํ•œ ๋…ผ๋ฆฌ CPU ์ฝ”์–ด์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์˜ ํ•ต์‹ฌ์€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ฮผTag๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜์—์„œ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Intel ํ”„๋กœ์„ธ์„œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Flush+Reload ๋ฐ Prime+Probe ๊ณต๊ฒฉ๊ณผ ๋‹ฌ๋ฆฌ Collide+Probe๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์— ๋Œ€ํ•œ ์ง€์‹ ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๋“œ+๋‹ค์‹œ ๋กœ๋“œ - ๋™์ผํ•œ ๋ฌผ๋ฆฌ์  CPU ์ฝ”์–ด์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์ถ”์ ์„ ๋งค์šฐ ์ •ํ™•ํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์…€์ด L1D ์บ์‹œ์— ํ•œ ๋ฒˆ๋งŒ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๊ธฐ์ดˆํ•ฉ๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ๋‹ค๋ฅธ ๊ฐ€์ƒ ์ฃผ์†Œ์—์„œ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์…€์— ์•ก์„ธ์Šคํ•˜๋ฉด ํ•ด๋‹น ์…€์ด L1D ์บ์‹œ์—์„œ ์ œ๊ฑฐ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ์˜์กดํ•˜์ง€๋งŒ ์บ์‹œ ๋ผ์ธ์„ ํ”Œ๋Ÿฌ์‹œํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ ์ˆ˜์ค€ ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜์ง€ ์•Š๋Š” ์Šคํ…”์Šค ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ตฌ์›๋“ค์€ Collide+Probe ๋ฐ Load+Reload ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹œ์—ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋‘ ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ์ˆจ๊ฒจ์ง„ ๊ฐ„์ ‘ ํ†ต์‹  ์ฑ„๋„์„ ๊ตฌ์„ฑํ•˜์—ฌ ์ดˆ๋‹น ์ตœ๋Œ€ 588kB์˜ ์†๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ฮผTag์˜ ์ถฉ๋Œ์„ ์‚ฌ์šฉํ•˜๋ฉด ASLR(Address Space Layout Randomization)์˜ ๋‹ค์–‘ํ•œ ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ค„์ด๊ณ  ์™„์ „ํžˆ ์—…๋ฐ์ดํŠธ๋œ Linux ์‹œ์Šคํ…œ์˜ ์ปค๋„์—์„œ ASLR ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” JavaScript ์ฝ”๋“œ ๋ฐ ๋‹ค๋ฅธ ๊ฒŒ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ASLR ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    AMD ํ”„๋กœ์„ธ์„œ์˜ ์บ์‹œ ์ฑ„๋„ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ๊ณต๊ฒฉ

  • Collide+Probe ๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ทจ์•ฝํ•œ ๊ตฌํ˜„์—์„œ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฒฉ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. T-ํ…Œ์ด๋ธ”) AES ์•”ํ˜ธํ™”.
  • Spectre ๊ณต๊ฒฉ์€ Collide+Probe ๋ฐฉ์‹์„ ๋ฐ์ดํ„ฐ ํš๋“ ์ฑ„๋„๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ปค๋„์—์„œ ๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์€ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ AMD ํ”„๋กœ์„ธ์„œ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋ถˆ๋„์ €, ํŒŒ์ผ๋“œ๋ผ์ด๋ฒ„, ์ŠคํŒ€๋กค๋Ÿฌ, Zen(Ryzen, Epic), Zen+ ๋ฐ Zen2.
AMD๋Š” 23๋…„ 2019์›” XNUMX์ผ์— ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ†ต๋ณด ๋ฐ›์•˜์ง€๋งŒ ํ˜„์žฌ๊นŒ์ง€ ๋ณด๊ณ ์„œ๋ฅผ ๊ณต๊ฐœํ•˜์ง€ ์•Š์•˜๋‹ค ์ทจ์•ฝ์  ์ฐจ๋‹จ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์›๋“ค์— ๋”ฐ๋ฅด๋ฉด Intel์ด ๋ถ„๊ธฐ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ๋น„ํ™œ์„ฑํ™”๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•œ ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ MSR ๋น„ํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ฑ„๋„ ์˜ˆ์ธก ์‹œ์Šคํ…œ์„ ์„ ํƒ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•จ์œผ๋กœ์จ ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ ์ˆ˜์ค€์—์„œ ๋ฌธ์ œ๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AMD ํ”„๋กœ์„ธ์„œ์˜ ์บ์‹œ ์ฑ„๋„ ์˜ˆ์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ๊ณต๊ฒฉ

์ถœ์ฒ˜ : opennet.ru

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