Chrome 94์— ์œ ํœด ๊ฐ์ง€ API๊ฐ€ ํฌํ•จ๋œ ๊ฒƒ์— ๋Œ€ํ•œ ๋น„ํŒ. Chrome์—์„œ Rust ์‹คํ—˜

Chrome 94์— ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋œ ์œ ํœด ๊ฐ์ง€ API๋Š” Firefox ๋ฐ WebKit/Safari ๊ฐœ๋ฐœ์ž์˜ ๋ฐ˜๋Œ€๋ฅผ ์ธ์šฉํ•˜๋ฉด์„œ ๋งŽ์€ ๋น„ํŒ์„ ๋ถˆ๋Ÿฌ์ผ์œผ์ผฐ์Šต๋‹ˆ๋‹ค.

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

์œ ํœด ๊ฐ์ง€ API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ช…์‹œ์ ์ธ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ถ€์—ฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฒ˜์Œ์œผ๋กœ ๋น„ํ™œ์„ฑ์„ ๊ฐ์ง€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ• ์ง€ ์•„๋‹ˆ๋ฉด ์ž‘์—…์„ ์ฐจ๋‹จํ• ์ง€ ๋ฌป๋Š” ์ฐฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์œ ํœด ๊ฐ์ง€ API๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด '๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ๋ณด์•ˆ' ์„ค์ • ์„น์…˜์— ํŠน์ˆ˜ ์˜ต์…˜('chrome://settings/content/idleDetection')์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

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

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

๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์•ˆ์ „ํ•œ ์ž‘๋™์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ํ™๋ณด์— ๋Œ€ํ•œ Chrome ๊ฐœ๋ฐœ์ž์˜ ๋ฉ”๋ชจ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google์— ๋”ฐ๋ฅด๋ฉด Chrome์˜ ๋ณด์•ˆ ๋ฌธ์ œ ์ค‘ 70%๋Š” ๋ฒ„ํผ์™€ ๊ด€๋ จ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•œ ํ›„ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ(use-after-free) ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ „๋žต์€ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ๊ฒ€์‚ฌ ๊ฐ•ํ™”, ๋Ÿฐํƒ€์ž„ ์‹œ ์˜ค๋ฅ˜ ์ฐจ๋‹จ, ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „ ์–ธ์–ด ์‚ฌ์šฉ์ž…๋‹ˆ๋‹ค.

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

๋˜ํ•œ Google์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‘ ์ž๋ฆฌ๊ฐ€ ์•„๋‹Œ ์„ธ ์ž๋ฆฌ๋กœ ๊ตฌ์„ฑ๋œ ๋ฒ„์ „์— ๋„๋‹ฌํ•œ ํ›„ ์‚ฌ์ดํŠธ๊ฐ€ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ—˜์„ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, Chrome 96์˜ ํ…Œ์ŠคํŠธ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” User-Agent ํ—ค๋” ๋ฒ„์ „ 100(Chrome/100)์— ์ง€์ •ํ•˜๋ฉด "chrome://flags#force-major-version-to-100.0.4650.4" ์„ค์ •์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํ‘œ์‹œ๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. XNUMX์›”์—๋Š” Firefox์—์„œ๋„ ์œ ์‚ฌํ•œ ์‹คํ—˜์ด ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ, ์ผ๋ถ€ ์‚ฌ์ดํŠธ์—์„œ ์„ธ ์ž๋ฆฌ ๋ฒ„์ „์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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