Meltdown ๊ณต๊ฒฉ์„ ํ—ˆ์šฉํ•˜๋Š” AMD ํ”„๋กœ์„ธ์„œ์—์„œ ๋˜ ๋‹ค๋ฅธ ์ทจ์•ฝ์ ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ผ์ธ  ๊ธฐ์ˆ  ๋Œ€ํ•™(์˜ค์ŠคํŠธ๋ฆฌ์•„)๊ณผ ํ—ฌ๋ฆ„ํ™€์ธ  ์ •๋ณด ๋ณด์•ˆ ์„ผํ„ฐ(CISPA)์˜ ์—ฐ๊ตฌ์› ํŒ€์€ ๋ชจ๋“  AMD ํ”„๋กœ์„ธ์„œ์—์„œ ๋ฉœํŠธ๋‹ค์šด๊ธ‰ ์‚ฌ์ด๋“œ-์ปดํ“จํŒ…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ (CVE-2021-26318)์„ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฑ„๋„ ๊ณต๊ฒฉ(์ฒ˜์Œ์—๋Š” AMD ํ”„๋กœ์„ธ์„œ๊ฐ€ Meltdown ์ทจ์•ฝ์ ์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค). ์‹ค์ œ๋กœ ๊ณต๊ฒฉ์€ ์€๋ฐ€ํ•œ ํ†ต์‹  ์ฑ„๋„์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ์ปค๋„์˜ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ฑฐ๋‚˜, ์ปค๋„์˜ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋ฉด์„œ KASLR ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AMD๋Š” XNUMX์›”์— ๋ฐœ๊ฒฌ๋œ ์œ ์‚ฌํ•œ ๊ณต๊ฒฉ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ทจ์•ฝ์ ์ด ์‹ค์ œ ์ƒํ™ฉ์—์„œ๋Š” ๊ฑฐ์˜ ์“ธ๋ชจ๊ฐ€ ์—†๊ณ , ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๊ฒฝ๊ณ„์— ์˜ํ•ด ์ œํ•œ๋˜๊ณ  ํŠน์ • ์กด์žฌ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•˜๋Š” ๊ฒƒ์ด ๋ถ€์ ์ ˆํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์— ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๋ช…๋ น ์‹œํ€€์Šค(๊ฐ€์ ฏ)์ž…๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์„ ์‹œ์—ฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ตฌ์›๋“ค์€ ์ธ์œ„์ ์œผ๋กœ ์ถ”๊ฐ€๋œ ๊ฐ€์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ์ปค๋„ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ƒํ™ฉ์—์„œ ๊ณต๊ฒฉ์ž๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ์ •๊ธฐ์ ์œผ๋กœ eBPF ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์ทจ์•ฝ์ ์„ ํŒ์—…ํ•˜์—ฌ ํ•„์š”ํ•œ ์‹œํ€€์Šค๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด AMD๋Š” LFENCE ๋ช…๋ น ์‚ฌ์šฉ๊ณผ ๊ฐ™์ด ๋ฉœํŠธ๋‹ค์šด ๊ณต๊ฒฉ์„ ์ฐจ๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ณด์•ˆ ์ฝ”๋”ฉ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•œ ์—ฐ๊ตฌ์›๋“ค์€ ์ด์ „์— Intel ํ”„๋กœ์„ธ์„œ์—๋งŒ ์‚ฌ์šฉ๋˜์—ˆ๋˜ ๋ณด๋‹ค ์—„๊ฒฉํ•œ KPTI(๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ฒฉ๋ฆฌ)๋ฅผ ํ™œ์„ฑํ™”ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ—˜ ์ค‘์— ์—ฐ๊ตฌ์›๋“ค์€ "if (offset < data_len) tmp =" ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ปค๋„์— ๊ฐ€์ ฏ์ด ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜์—ฌ ์ดˆ๋‹น 52๋ฐ”์ดํŠธ์˜ ์†๋„๋กœ ์ปค๋„์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์ •๋ณด๋ฅผ ์œ ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. LUT[๋ฐ์ดํ„ฐ[์˜คํ”„์…‹] * 4096];โ€ . ์ถ”์ธก ์‹คํ–‰ ์ค‘์— ์บ์‹œ์— ์ €์žฅ๋˜๋Š” ์‚ฌ์ด๋“œ ์ฑ„๋„์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ํ”„๋กœ์„ธ์„œ ๋ช…๋ น "PREFETCH"(Prefetch+Time)์˜ ์‹คํ–‰ ์‹œ๊ฐ„ ํŽธ์ฐจ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ "PREFETCH"(Prefetch+Power) ์‹คํ–‰ ์‹œ ์—๋„ˆ์ง€ ์†Œ๋น„ ๋ณ€ํ™”๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

์ถœ์ฒ˜ : opennet.ru

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