--- id: P-REINFORCE-AUTO-59075E category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Timing Attacks" --- # [[Timing Attacks|Timing Attacks]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ํƒ€์ด๋ฐ ๊ณต๊ฒฉ(Timing Attacks)์€ CPU๋‚˜ GPU์˜ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ, ์บ์‹œ ์ ์ค‘๋ฅ , ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์— ์†Œ์š”๋˜๋Š” ๋ฏธ์„ธํ•œ ์‹œ๊ฐ„ ์ฐจ์ด๋ฅผ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋จธ๋กœ ์ธก์ •ํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ฐ€ ์ •๋ณด๋ฅผ ์œ ์ถœ์‹œํ‚ค๋Š” ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ(Side-channel attacks)์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค [1-3]. ์›น ํ™˜๊ฒฝ์—์„œ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” JavaScript๋‚˜ WebAssembly ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ, ๋ถ„๊ธฐ ์˜ˆ์ธก๊ณผ ์ถ”์ธก ์‹คํ–‰(Speculative execution) ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํƒ€์ด๋ฐ ์ฐจ์ด๋ฅผ ์•…์šฉํ•˜์—ฌ ์ŠคํŽ™ํ„ฐ(Spectre) ๋ฐ ๋ฉœํŠธ๋‹ค์šด(Meltdown) ์ทจ์•ฝ์ ์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค [2, 4, 5]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €๋“ค์€ ํƒ€์ด๋จธ์˜ ์ •๋ฐ€๋„๋ฅผ ๊ณ ์˜๋กœ ๋‚ฎ์ถ”๊ฑฐ๋‚˜ ํƒ€์ด๋ฐ ์กฐ์ž‘์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์™„ํ™”(Mitigation) ์ •์ฑ…์„ ์ ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [6, 7]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **์ŠคํŽ™ํ„ฐ(Spectre) ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ํƒ€์ด๋ฐ ์œ ์ถœ:** ์ŠคํŽ™ํ„ฐ ๊ณต๊ฒฉ์€ ์ตœ์‹  CPU์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋Šฅ์ธ **์ถ”์ธก ์‹คํ–‰(Speculative execution)**์„ ์•…์šฉํ•ฉ๋‹ˆ๋‹ค. CPU๊ฐ€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ L1 ์บ์‹œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณต๊ฒฉ์ž๊ฐ€ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋ฐ์œผ๋กœ ์ธก์ •(Timing-based information leak)ํ•˜์—ฌ, ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ๊ฐ’์„ ์œ ์ถ”ํ•ด ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2, 3, 5]. - **WebGL ๋ฐ WebGPU ํ™˜๊ฒฝ์—์„œ์˜ ์•…์šฉ:** `EXT_disjoint_timer_query`๋‚˜ WebGPU์˜ ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ(Timestamp queries) ๊ฐ™์€ ๊ณ ์ •๋ฐ€ GPU ํƒ€์ด๋จธ ๋„๊ตฌ๋Š” ๋ณธ๋ž˜ ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ๋ง์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์œผ๋‚˜ ํƒ€์ด๋ฐ ๊ณต๊ฒฉ์˜ ํ‘œ์ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [1, 8]. ๊ณต๊ฒฉ์ž๋Š” ์ด๋ฅผ ํ†ตํ•ด GPU ์บ์‹œ ๋ฏธ์Šค์œจ์„ ๊ด€์ฐฐํ•˜์—ฌ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋น„ํŠธ๋ฅผ ๋ณ€์กฐํ•˜๋Š” **๋กœ์šฐํ•ด๋จธ(Rowhammer)** ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, **๊ธฐ๊ธฐ ํ•‘๊ฑฐํ”„๋ฆฐํŒ…(Clock Around the Clock)**์— ์•…์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [9]. - **๋ธŒ๋ผ์šฐ์ € ๋ฒค๋”๋“ค์˜ ํƒ€์ด๋จธ ํ•ด์ƒ๋„ ์ œํ•œ (Quantization):** ํƒ€์ด๋ฐ ๊ณต๊ฒฉ์— ํ•„์š”ํ•œ ์„œ๋ธŒ ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„์˜ ์ •๋ฐ€๋„๋ฅผ ๋ฌด๋ ฅํ™”ํ•˜๊ธฐ ์œ„ํ•ด, ๋ธŒ๋ผ์šฐ์ € ์—”์ง„๋“ค์€ `performance.now()` ๋ฐ GPU ํƒ€์ด๋จธ์˜ ํ•ด์ƒ๋„๋ฅผ 1ms ๋˜๋Š” 100๋งˆ์ดํฌ๋กœ์ดˆ ์ˆ˜์ค€์œผ๋กœ ๊ฐ•์ œ๋กœ ๋‚ฎ์ถ”์—ˆ์Šต๋‹ˆ๋‹ค [6-8, 10]. ๋˜ํ•œ, ๊ณต๊ฒฉ์ž๊ฐ€ ํ†ต๊ณ„์  ํ‰๊ท ์„ ํ†ตํ•ด ๊ณ ์ •๋ฐ€ ์‹œ๊ฐ„์„ ์—ญ์‚ฐํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ž„์˜์˜ ์‹œ๊ฐ„ ๋ณ€๋™์„ฑ์ธ **์ง€ํ„ฐ(Jitter)**๋ฅผ ๋ฐ˜ํ™˜๊ฐ’์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค [6]. - **์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ ์™„ํ™” ์กฐ์น˜:** ํƒ€์ด๋จธ ์ž์ฒด๋ฅผ ํ†ต์ œํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„, WebKit ๋“ฑ์€ ๊ณ ํ•ด์ƒ๋„ ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” `SharedArrayBuffer`๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค [7]. ๋‚˜์•„๊ฐ€ ์ŠคํŽ™ํ„ฐ ๊ณต๊ฒฉ์˜ ๊ทผ๋ณธ ์›์ธ์ธ ๋ถ„๊ธฐ ์ œ์–ด(Branch control)๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด **๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ(Branchless Security Checks)**, **์ธ๋ฑ์Šค ๋งˆ์Šคํ‚น(Index masking)**, ๊ทธ๋ฆฌ๊ณ  **ํฌ์ธํ„ฐ ํฌ์ด์ฆˆ๋‹(Pointer poisoning)** ๊ฐ™์€ ๊ตฌ์กฐ์ ์ธ ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์„ ์„ ๋„์ž…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [11-13]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Spectre|Spectre]], [[Meltdown|Meltdown]], [[Speculative Execution|Speculative Execution]], [[Timestamp Queries|Timestamp Queries]], [[Side-channel attacks|Side-channel Attacks]] - **Projects/Contexts:** [[WebKit|WebKit]], [[WebGPU|WebGPU]], [[WebGL|WebGL]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด WebGPU ๋ฐ WebGL์˜ ๊ณ ์ •๋ฐ€ ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์€ ๊ฐœ๋ฐœ์ž์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Profiling)๋ฅผ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜์ง€๋งŒ, ํƒ€์ด๋ฐ ๊ณต๊ฒฉ์— ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์น˜๋ช…์ ์ธ ์œ„ํ—˜์„ฑ์„ ๋™์‹œ์— ์•ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํ‘œ์ค€ํ™” ๊ทธ๋ฃน๊ณผ ๋ธŒ๋ผ์šฐ์ € ๋ฒค๋”๋“ค์€ ์„ฑ๋Šฅ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต๊ณผ ๋ณด์•ˆ ์œ ์ง€ ์‚ฌ์ด์—์„œ ํƒ€ํ˜‘์ (์˜ˆ: ์‚ฌ์ดํŠธ ๊ฒฉ๋ฆฌ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํƒ€์ด๋จธ ํ•ด์ƒ๋„ ์ถ•์†Œ ๋ฐ ๋น„ํ™œ์„ฑํ™”)์„ ์ฐพ์•„์•ผ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค [8, 14]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Timing Attacks.md ---