--- id: P-REINFORCE-AUTO-55C813 category: "[[10_Wiki/๐Ÿ’ก Topics/Programming & Language]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Cache Side-Channel Attack" --- # [[Cache Side-Channel Attack]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์บ์‹œ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ(Cache Side-Channel Attack)์€ ๊ณต๊ฒฉ์ž๊ฐ€ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋จธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CPU ๋˜๋Š” GPU ์บ์‹œ์˜ ์ ‘๊ทผ ์†๋„(์˜ˆ: L1 ์บ์‹œ์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ง€์—ฐ ์‹œ๊ฐ„ ์ฐจ์ด)๋ฅผ ์ธก์ •ํ•จ์œผ๋กœ์จ, ๋ณดํ˜ธ๋œ ๋น„๋ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์ถ”๋ก ํ•˜๊ณ  ์œ ์ถœํ•˜๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค [1-3]. ํ˜„๋Œ€ ํ”„๋กœ์„ธ์„œ์˜ ์ถ”์ธก ์‹คํ–‰(Speculative execution)๊ณผ ๋ถ„๊ธฐ ์˜ˆ์ธก์„ ์•…์šฉํ•˜๋Š” ์ŠคํŽ™ํ„ฐ(Spectre)์™€ ๋ฉœํŠธ๋‹ค์šด(Meltdown)์ด ๋Œ€ํ‘œ์ ์ด๋ฉฐ, ์ด๋ฅผ ๋ฐฉ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €๋“ค์€ ํƒ€์ด๋จธ ์ •๋ฐ€๋„๋ฅผ ์˜๋„์ ์œผ๋กœ ๋‚ฎ์ถ”๊ณ  ๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ(Branchless security checks)๋ฅผ ๋„์ž…ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค [4-7]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์ž‘๋™ ์›๋ฆฌ ๋ฐ ์ถ”์ธก ์‹คํ–‰ ์•…์šฉ:** ๊ณต๊ฒฉ์ž๋Š” ๊ณ ํ•ด์ƒ๋„ ํƒ€์ด๋ฐ ์ธก์ •์„ ํ†ตํ•ด ์บ์‹œ ์ ์ค‘๋ฅ (Cache hit rate)๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํŒจํ„ด์„ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค [1, 8]. ์ŠคํŽ™ํ„ฐ(Spectre) ๊ณต๊ฒฉ์˜ ๊ฒฝ์šฐ, ํ˜„๋Œ€ CPU๊ฐ€ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” '์ถ”์ธก ์‹คํ–‰'์„ ์•…์šฉํ•ฉ๋‹ˆ๋‹ค. CPU๊ฐ€ ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ(Branch)๋ฅผ ์˜ˆ์ธกํ•˜์—ฌ ๋ฏธ๋ฆฌ ์‹คํ–‰ํ•  ๋•Œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์ž‘์€ L1 ์บ์‹œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š”๋ฐ, ์˜ˆ์ธก์ด ํ‹€๋ ค ์‹คํ–‰์ด ๋กค๋ฐฑ๋˜๋”๋ผ๋„ L1 ์บ์‹œ๋กœ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [3, 9, 10]. ๊ณต๊ฒฉ์ž๋Š” ํƒ€์ด๋ฐ ์†๋„๋ฅผ ์ธก์ •ํ•˜์—ฌ CPU๊ฐ€ ์ถ”์ธก ์‹คํ–‰ ๋‹จ๊ณ„์—์„œ ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ(์บ์‹œ ๋ผ์ธ)๋ฅผ ๋กœ๋“œํ–ˆ๋Š”์ง€ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 11]. * **GPU ํ™˜๊ฒฝ์—์„œ์˜ ์บ์‹œ ๊ณต๊ฒฉ:** CPU๋ฟ๋งŒ ์•„๋‹ˆ๋ผ GPU ํ™˜๊ฒฝ์—์„œ๋„ ์บ์‹œ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์ด ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. WebGL ํ™˜๊ฒฝ์—์„œ GPU์— Rowhammer ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋ก€๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋•Œ ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ(Timestamp queries)๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ณ ์ •๋ฐ€ ํƒ€์ด๋ฐ์„ ํ†ตํ•ด GPU ์บ์‹œ ๋ฏธ์Šค์œจ์„ ํ™•์ธํ•˜๊ณ  ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค [8]. * **์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฐฉ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜ (Mitigations):** * **ํƒ€์ด๋จธ ์ •๋ฐ€๋„ ๊ฐ์†Œ(Timer Quantization) ๋ฐ ์ง€ํ„ฐ(Jitter) ๋„์ž…:** ๋ธŒ๋ผ์šฐ์ € ์—”์ง„๋“ค์€ `performance.now()`์™€ ๊ฐ™์€ ํƒ€์ด๋จธ์˜ ํ•ด์ƒ๋„๋ฅผ 1ms ๋˜๋Š” 100 ๋งˆ์ดํฌ๋กœ์ดˆ ๋“ฑ์œผ๋กœ ๋Œ€ํญ ๋‚ฎ์ถ”์—ˆ์Šต๋‹ˆ๋‹ค [4, 7, 12]. ๋˜ํ•œ ๊ณต๊ฒฉ์ž๊ฐ€ ํ†ต๊ณ„์  ํ‰๊ท ์„ ๋‚ด์–ด ๊ณ ํ•ด์ƒ๋„ ํด๋Ÿญ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด, ๋ฐ˜ํ™˜๋˜๋Š” ์‹œ๊ฐ„์— ๋ฌด์ž‘์œ„ ๋ณ€๋™ ๊ฐ’์ธ '์ง€ํ„ฐ(Jitter)'๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค [4]. WebGPU ํ™˜๊ฒฝ์˜ ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ ์—ญ์‹œ ๋ณด์•ˆ์„ ์œ„ํ•ด ํ•ด์ƒ๋„๊ฐ€ ์ œํ•œ(Quantized ๋ฐ Coarsened)๋ฉ๋‹ˆ๋‹ค [1, 13, 14]. * **์œ„ํ—˜ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™”:** ๊ณ ํ•ด์ƒ๋„ ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” `SharedArrayBuffer` ๊ธฐ๋Šฅ๊ณผ ์ •๋ฐ€ํ•œ ํƒ€์ด๋ฐ์„ ์ œ๊ณตํ•˜๋˜ `EXT_disjoint_timer_query` ํ™•์žฅ ๊ธฐ๋Šฅ ๋“ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ์ ‘๊ทผ์„ ์—„๊ฒฉํžˆ ์ œํ•œํ–ˆ์Šต๋‹ˆ๋‹ค [1, 6, 7]. * **๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ(Branchless Security Checks):** ๊ณต๊ฒฉ์ž๊ฐ€ ์ถ”์ธก ์‹คํ–‰์˜ ๋ถ„๊ธฐ(Branch)๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ์— ๋”ฐ๋ผ, ๋ถ„๊ธฐ ๋ช…๋ น์–ด์— ์˜์กดํ•˜๋Š” ๊ธฐ์กด์˜ ๋ณด์•ˆ ์ฒด๊ณ„๋Š” ๋ฌด๋ ฅํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค [5, 11, 15]. ์ด์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด WebKit๊ณผ Blink ๊ฐ™์€ ์—”์ง„์€ ์ธ๋ฑ์Šค ๋งˆ์Šคํ‚น(Index masking)๊ณผ ํฌ์ธํ„ฐ ํฌ์ด์ฆˆ๋‹(Pointer poisoning)๊ณผ ๊ฐ™์ด ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ˜•ํƒœ์˜ ๋ณด์•ˆ ๊ฒ€์‚ฌ ๋ฐฉ์‹์„ ์ƒˆ๋กญ๊ฒŒ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค [4, 7, 16, 17]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Spectre]], [[Meltdown]], [[Speculative Execution]], [[Timestamp Quantization]] - **Projects/Contexts:** [[WebKit]], [[WebGPU]], [[WebGL]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด, ๊ทธ๋ž˜ํ”ฝ ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™” ๋ฐ ๋ Œ๋”๋ง ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž๋“ค์€ ๋‚˜๋…ธ์ดˆ ๋‹จ์œ„์˜ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋จธ๋ฅผ ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ, ๋ณด์•ˆ ์ธก๋ฉด์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ณ ํ•ด์ƒ๋„ ํƒ€์ด๋จธ๊ฐ€ ์บ์‹œ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์˜ ์ฃผ์š” ์ˆ˜๋‹จ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ € ๋ฒค๋”๋“ค์ด ํƒ€์ด๋จธ์˜ ํ•ด์ƒ๋„๋ฅผ ์˜๋„์ ์œผ๋กœ ์ œํ•œ(Coarsening)ํ•ด์•ผ๋งŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์  ์ƒ์ถฉ ๊ด€๊ณ„(Trade-off)๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [1, 13, 14, 18]. --- *Last updated: 2026-04-19* - Raw Source: [[00_Raw/2026-04-20/Cache Side-Channel Attack.md]] ---