Linux ์ปค๋„์˜ ์ถ”์ธก์„ฑ ์ฝ”๋“œ ์‹คํ–‰ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์Šค์บ๋„ˆ์ธ Kasper๋ฅผ ์ด์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”์Šคํ…Œ๋ฅด๋‹ด ์ž์œ  ๋Œ€ํ•™(Free University of Amsterdam)์˜ ์—ฐ๊ตฌ์ง„์€ ํ”„๋กœ์„ธ์„œ์—์„œ ์ถ”์ธก์„ฑ ์ฝ”๋“œ ์‹คํ–‰์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” Spectre ํด๋ž˜์Šค ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Linux ์ปค๋„์˜ ์ฝ”๋“œ ์กฐ๊ฐ์„ ์‹๋ณ„ํ•˜๋„๋ก ์„ค๊ณ„๋œ Kasper ํˆดํ‚ท์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ํˆดํ‚ท์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

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

์ผ๋ฐ˜์ ์ธ ํŒจํ„ด ๊ฒ€์ƒ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ Spectre ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ๊ฐ€์ ฏ์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋Š” ๋งค์šฐ ๋†’์€ ์ˆ˜์ค€์˜ ์˜คํƒ๋ฅ ์„ ๋ณด์˜€์ง€๋งŒ ์‹ค์ œ ๊ฐ€์ ฏ์€ ๋งŽ์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์‹คํ—˜ ๊ฒฐ๊ณผ ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋กœ ์‹๋ณ„๋œ ๊ฐ€์ ฏ์˜ 99%๊ฐ€ ๊ณต๊ฒฉ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค). , ๊ณต๊ฒฉ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ์ž‘๋™ ์žฅ์น˜์˜ 33%๋Š” ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฐ€์ ฏ ์‹๋ณ„์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด Kasper๋Š” Spectre ํด๋ž˜์Šค ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ ๋‹จ๊ณ„์—์„œ ๊ณต๊ฒฉ์ž๊ฐ€ ์•…์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์„ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค. LVI ํด๋ž˜์Šค ๊ณต๊ฒฉ), ๊ธฐ๋ฐ€ ์ •๋ณด์— ์•ก์„ธ์Šคํ•˜๊ณ (์˜ˆ: ๋ฒ„ํผ ๊ฒฝ๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋œ ํ›„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ) ๊ธฐ๋ฐ€ ์ •๋ณด๋ฅผ ์œ ์ถœํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ํ”„๋กœ์„ธ์„œ ์บ์‹œ ์ƒํƒœ ๋ถ„์„ ๋˜๋Š” MDS ๋ฐฉ๋ฒ• ์‚ฌ์šฉ).

Linux ์ปค๋„์˜ ์ถ”์ธก์„ฑ ์ฝ”๋“œ ์‹คํ–‰ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์Šค์บ๋„ˆ์ธ Kasper๋ฅผ ์ด์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Linux ์ปค๋„์˜ ์ถ”์ธก์„ฑ ์ฝ”๋“œ ์‹คํ–‰ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์Šค์บ๋„ˆ์ธ Kasper๋ฅผ ์ด์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : opennet.ru

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