--- id: P-REINFORCE-AUTO-539F01 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Browser Security Mitigations" --- # [[Browser Security Mitigations|Browser Security Mitigations]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๋ธŒ๋ผ์šฐ์ € ๋ณด์•ˆ ์™„ํ™”(Browser Security Mitigations)๋Š” ์ŠคํŽ™ํ„ฐ(Spectre) ๋ฐ ๋ฉœํŠธ๋‹ค์šด(Meltdown)๊ณผ ๊ฐ™์€ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์™„ํ™” ์กฐ์น˜๋Š” ์ •๋ณด ์œ ์ถœ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ํƒ€์ด๋ฐ API์˜ ์ •๋ฐ€๋„๋ฅผ ๊ณ ์˜๋กœ ๋‚ฎ์ถ”๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ๋‚ด์— ์ถ”์ธก ์‹คํ–‰(Speculative Execution)์„ ๋ฐฉ์–ดํ•˜๋Š” ๋ถ„๊ธฐ ์—†๋Š”(branchless) ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์ œํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค [1-3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์ŠคํŽ™ํ„ฐ(Spectre) ๋ฐ ๋ฉœํŠธ๋‹ค์šด(Meltdown) ์ทจ์•ฝ์  ๋Œ€์‘** ํ˜„๋Œ€์˜ CPU๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ถ”์ธก ์‹คํ–‰(Speculative execution)๊ณผ ๋ถ„๊ธฐ ์˜ˆ์ธก์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [4]. ์ŠคํŽ™ํ„ฐ ๊ณต๊ฒฉ์€ ์ด๋ฅผ ์•…์šฉํ•˜์—ฌ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋ฐ ์ธก์ •์„ ํ†ตํ•ด ์ •์ƒ์ ์ธ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฝ์–ด๋‚ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค [4, 5]. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์ด ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์ด๋‚˜ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ(๋ฉœํŠธ๋‹ค์šด)์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ € ์ฐจ์›์˜ ๊ตฌ์กฐ์  ๋ณด์•ˆ ์™„ํ™”๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [2, 6, 7]. * **ํƒ€์ด๋ฐ ์ •๋ฐ€๋„ ๊ฐ์†Œ ๋ฐ ์ง€ํ„ฐ(Jitter) ๋„์ž…** ์บ์‹œ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์€ ์บ์‹œ ์ ์ค‘ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ์„œ๋ธŒ ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„์˜ ๋ฏธ์„ธํ•œ ํƒ€์ด๋ฐ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ•˜์—ฌ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค [1, 5]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์€ `performance.now()`์™€ ๊ฐ™์€ ํƒ€์ด๋จธ์˜ ์ •๋ฐ€๋„๋ฅผ 1ms ๋˜๋Š” 100๋งˆ์ดํฌ๋กœ์ดˆ ์ˆ˜์ค€์œผ๋กœ ๋‚ฎ์ถ”๊ณ , ๊ณต๊ฒฉ์ž๊ฐ€ ํ†ต๊ณ„์  ํ‰๊ท ์„ ํ†ตํ•ด ๊ณ ์ •๋ฐ€ ์‹œ๊ณ„๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฌด์ž‘์œ„ ๋ณ€๋™(์ง€ํ„ฐ, Jitter)์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค [1, 3, 8]. ๋˜ํ•œ, ๊ณ ํ•ด์ƒ๋„ ํƒ€์ด๋จธ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋Š” `SharedArrayBuffer`๋‚˜ WebGL์˜ `EXT_disjoint_timer_query` ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์ดํŠธ ๊ฒฉ๋ฆฌ ์ƒํƒœ์— ๋”ฐ๋ผ ํ•ด์ƒ๋„๋ฅผ ํฌ๊ฒŒ ์ œํ•œ(Quantization)ํ–ˆ์Šต๋‹ˆ๋‹ค [1, 3, 8-10]. WebGPU์˜ ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ ์—ญ์‹œ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…์ŠคํŠธ์—์„œ๋Š” 100๋งˆ์ดํฌ๋กœ์ดˆ ํ•ด์ƒ๋„๋กœ ์ œํ•œ๋˜๋ฉฐ, ๋น„๊ฒฉ๋ฆฌ ์ปจํ…์ŠคํŠธ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค [11, 12]. * **๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ (Branchless Security Checks)** ์ŠคํŽ™ํ„ฐ ๊ณต๊ฒฉ์€ CPU์˜ ๋ถ„๊ธฐ ์˜ˆ์ธก์„ ์ œ์–ดํ•˜์—ฌ ๋ณด์•ˆ ์†์„ฑ์„ ๊ฐ•์ œํ•˜๋Š” ๋ถ„๊ธฐ๋ฌธ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 13]. ์ด์— WebKit ๋“ฑ์˜ ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์€ ๋ถ„๊ธฐ๋ฌธ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด ๋ณด์•ˆ ๊ฒ€์‚ฌ ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค [3]. * **์ธ๋ฑ์Šค ๋งˆ์Šคํ‚น(Index Masking):** ์ถ”์ธก ์‹คํ–‰ ์ค‘์—๋„ ๋ฐฐ์—ด ์ธ๋ฑ์Šค๊ฐ€ ์œ ํšจํ•œ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋„๋ก ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋งˆ์Šคํ‚นํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค [14, 15]. * **ํฌ์ธํ„ฐ ํฌ์ด์ฆˆ๋‹(Pointer Poisoning):** ํฌ์ธํ„ฐ ๊ฐ’์— ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ƒ์„ฑ๋œ ๋ฌด์ž‘์œ„ 'ํฌ์ด์ฆŒ(poison)' ๊ฐ’์„ XOR ์—ฐ์‚ฐํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค [16]. ์ž˜๋ชป๋œ ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•œ ์ถ”์ธก ์‹คํ–‰ ์‹œ, ํฌ์ด์ฆˆ๋‹๋œ ํฌ์ธํ„ฐ๋Š” ๋งคํ•‘๋˜์ง€ ์•Š์€ ์œ ํšจํ•˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [14, 16, 17]. * **ํ•˜๋“œ์›จ์–ด ๋ฐ ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ์ œํ•œ** ํƒ€์ด๋ฐ ๊ณต๊ฒฉ ์™ธ์—๋„, ๋“€์–ผ GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ • ์‹œ์Šคํ…œ(์˜ˆ: ๋“€์–ผ GPU Mac)์—์„œ๋Š” WebGL ์ปจํ…์ŠคํŠธ์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋™์•ˆ ์—ฌ๋Ÿฌ GPU๋ฅผ ์ „ํ™˜ํ•˜๋Š” ํ–‰์œ„ ์ž์ฒด๊ฐ€ ๋“œ๋ผ์ด๋ฒ„ ์ˆ˜์ค€์˜ ๋ณด์•ˆ ๋ฌธ์ œ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค [18]. ์ด์— ๋”ฐ๋ผ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ปจํ…์ŠคํŠธ ์ƒ์„ฑ ์ „ ์ด์‚ฐ(discrete) GPU๋กœ ๊ฐ•์ œ ์ „ํ™˜ํ•˜๊ณ  ์œ ์ง€ํ•˜๋„๋ก ์ œํ•œ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [18]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Spectre and Meltdown|Spectre and Meltdown]], [[Speculative Execution|Speculative Execution]], [[Timing Attacks|Timing Attacks]], [[Index Masking|Index Masking]], [[Pointer Poisoning|Pointer Poisoning]] - **Projects/Contexts:** [[WebKit|WebKit]], [[JavaScriptCore|JavaScriptCore]], [[WebGPU|WebGPU]], [[WebGL|WebGL]] - **Contradictions/Notes:** WebGPU ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ๋Š” ํƒ€์ด๋ฐ ๊ณต๊ฒฉ์˜ ์šฐ๋ ค๋กœ ์ธํ•ด ์ดˆ๊ธฐ์—๋Š” ๋น„๊ฒฉ๋ฆฌ ์ปจํ…์ŠคํŠธ์—์„œ ์™„์ „ํžˆ ์ˆจ๊ฒจ์ง€๋„๋ก ์ œ์•ˆ๋˜์—ˆ์œผ๋‚˜ [12], ๊ฐœ๋ฐœ์ž๋“ค์˜ ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ๋ง ์š”๊ตฌ์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ์ƒํ˜ธ ์šด์šฉ์„ฑ(Interop) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์‚ฌ์ดํŠธ ๊ฒฉ๋ฆฌ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด High-Resolution Time ์ŠคํŽ™๊ณผ ๋งž์ถ˜ 100๋งˆ์ดํฌ๋กœ์ดˆ ํ•ด์ƒ๋„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ŠคํŽ™์ด ์ˆ˜์ • ๋ฐ ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [19-22]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Browser Security Mitigations.md ---