Chrome์˜ Spectre ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ 

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

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

์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ๋ธŒ๋ผ์šฐ์ € ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์œผ๋กœ, ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•  ๋•Œ ๋‹ค๋ฅธ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•…์„ฑ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•˜์—ฌ LastPass ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ์ž์—์„œ ๊ธฐ๋ฐ€ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์—ฐ๊ตฌ์›๋“ค์€ CPUIntel i89-7K ๋ฐ i6700-7U๊ฐ€ ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์˜ Chrome 7600์—์„œ ์ž‘๋™ํ•˜๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ต์Šคํ”Œ๋กœ์ž‡์„ ์ƒ์„ฑํ•  ๋•Œ Google์ด ์ด์ „์— ๊ฒŒ์‹œํ•œ JavaScript ์ฝ”๋“œ์˜ ํ”„๋กœํ† ํƒ€์ž…์ด ์ŠคํŽ™ํ„ฐ๊ธ‰ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์›๋“ค์€ ์ดˆ๋‹น 1๋ฐ”์ดํŠธ์˜ ์†๋„์™€ 500%์˜ ์ •ํ™•๋„๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Intel ๋ฐ Apple M96 ํ”„๋กœ์„ธ์„œ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ž‘์—… ์ต์Šคํ”Œ๋กœ์ž‡์„ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ AMD ํ”„๋กœ์„ธ์„œ์—๋„ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€๋งŒ, ์™„์ „ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ต์Šคํ”Œ๋กœ์ž‡์„ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณต๊ฒฉ์€ Google Chrome, Microsoft Edge, Brave ๋“ฑ Chromium ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์— ์ ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์›๋“ค์€ ๋˜ํ•œ ์ด ๋ฐฉ๋ฒ•์ด Firefox์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Firefox ์—”์ง„์€ Chrome๊ณผ ๋งค์šฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๊ณต๊ฒฉ์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์€ ๋ฏธ๋ž˜์— ๋‚จ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ธก์— ์˜ํ•œ ๋ช…๋ น ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด Chrome์€ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ถ„ํ• ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•ด JavaScript๋Š” 32๋น„ํŠธ ํฌ์ธํ„ฐ๋กœ๋งŒ ์ž‘๋™ํ•˜๊ณ  ๋ถ„๋ฆฌ๋œ 4GB ํž™์—์„œ ํ•ธ๋“ค๋Ÿฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  32๋น„ํŠธ ์ œํ•œ์„ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ตฌ์›๋“ค์€ Type Confusion์ด๋ผ๋Š” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ JavaScript ์—”์ง„์ด ์ž˜๋ชป๋œ ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜์—ฌ 64๋น„ํŠธ ์ฃผ์†Œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ 32๋น„ํŠธ ๊ฐ’ ์กฐํ•ฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค.

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

๊ฒฐ๊ณผ์ ์œผ๋กœ ํ”„๋กœ์„ธ์„œ๋Š” ์ƒ์„ฑ๋œ 64๋น„ํŠธ ํฌ์ธํ„ฐ์— ์ถ”๋ก ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•˜์—ฌ ์˜ˆ์ธก ์‹คํŒจ๋ฅผ ํŒ๋‹จํ•œ ํ›„ ์ƒํƒœ๋ฅผ ๋กค๋ฐฑํ•˜์ง€๋งŒ ์‹คํ–‰ ํ”์ ์€ ๊ณต์œ  ์บ์‹œ์— ๋‚จ์•„ ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜๋Š” ์‚ฌ์ด๋“œ ์ฑ„๋„ ์บ์‹œ ๊ฐ์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์™€ ์บ์‹œ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์‹œ๊ฐ„. JavaScript์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํƒ€์ด๋จธ์˜ ์ •ํ™•๋„๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ์กฐ๊ฑด์—์„œ ์บ์‹œ์˜ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด Google์—์„œ ์ œ์•ˆํ•œ ๋ฐฉ๋ฒ•์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํ”„๋กœ์„ธ์„œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Tree-PLRU ์บ์‹œ ์ œ๊ฑฐ ์ „๋žต์„ ์†์ด๊ณ  ์‚ฌ์ดํด ์ˆ˜๋ฅผ ๋Š˜๋ ค ๋‹ค์Œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ์— ๊ฐ’์ด ์žˆ์„ ๋•Œ์™€ ์—†์„ ๋•Œ์˜ ์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ํฌ๊ฒŒ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. .

์ถœ์ฒ˜ : opennet.ru

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