4.8 KiB
4.8 KiB
id, category, confidence_score, tags, last_reinforced, github_commit
| id | category | confidence_score | tags | last_reinforced | github_commit | |
|---|---|---|---|---|---|---|
| P-REINFORCE-AUTO-392C3B | 10_Wiki/💡 Topics/Programming & Language | 0.90 |
|
2026-04-20 | [P-Reinforce] Continuous Worker - Timing Attack |
Timing Attack
📌 한 줄 통찰 (The Karpathy Summary)
타이밍 공격(Timing Attack)은 캐시 적중률이나 메모리 접근 패턴 등 시스템의 작업 수행 시간을 극도로 정밀하게 측정함으로써 의도치 않은 정보를 유출하거나 보안 경계를 우회하는 부채널 공격(Side-channel Attack)의 일종입니다 [1-3]. 스펙터(Spectre)와 멜트다운(Meltdown)이 대표적인 예로, CPU의 추측 실행(Speculative Execution) 기능을 악용하여 L1 캐시와 메인 메모리 간의 접근 지연 시간 차이를 관찰함으로써 데이터를 탈취합니다 [3-5]. 웹 환경에서 이러한 공격은 신뢰할 수 없는 JavaScript나 WebAssembly 코드가 호스트 프로세스의 메모리를 읽을 수 있게 하므로, 브라우저 차원의 타이머 정밀도 저하 및 분기 없는 보안 검사(Branchless Security Checks) 등의 방어 기법이 필수적입니다 [6-8].
📖 구조화된 지식 (Synthesized Content)
- 공격의 원리 및 메커니즘: 타이밍 공격은 마이크로초 미만의 미세한 시간 차이를 관찰하여 캐시 사이드 채널 공격을 가능하게 합니다 [2]. 스펙터(Spectre) 공격은 공격자가 CPU의 분기(branch)를 제어하고 추측 실행 과정에서 정보 유출을 유도하는 방식으로 작동합니다 [5]. 캐시된 데이터와 메인 메모리에 있는 데이터의 로드 속도 차이를 측정하여, 특정 데이터가 추측 실행을 통해 L1 캐시에 로드되었는지 여부를 알아냅니다 [3, 5].
- GPU 그래픽 API의 취약점: WebGL의
EXT_disjoint_timer_query와 같은 API는 매우 높은 해상도의 타이밍 측정 기능을 제공하여 부채널 공격의 주요 표적이 되었습니다 [1, 9]. 이러한 고정밀 타임스탬프 쿼리를 이용하면 GPU 캐시 미스 비율을 관찰하거나, 물리적 메모리 레이아웃을 파악하여 로우해머(Rowhammer) 공격을 통해 페이지 테이블을 조작할 수도 있습니다 [10]. 또한 'Clock Around the Clock'과 같이 디바이스 핑거프린팅(Device Fingerprinting)에도 악용될 수 있습니다 [10]. - 보안 완화 기술 (Mitigations):
- 타이머 정밀도 감소 및 지터(Jitter) 도입: 브라우저 엔진은 캐시 사이드 채널 공격을 막기 위해
performance.now()의 정밀도를 1ms 또는 100마이크로초로 낮추고, 무작위 '지터(Jitter)'를 도입하여 통계적인 고정밀 클록 재구성을 방지합니다 [2, 8]. 또한 고해상도 타이머를 만들 수 있는SharedArrayBuffer기능을 비활성화합니다 [8]. - 타임스탬프 양자화 (Quantization): WebGPU와 같은 최신 API는 보안을 위해 타임스탬프 쿼리의 정밀도를 낮추는 양자화 기법을 도입했습니다 [1, 11]. 컨텍스트의 교차 출처 격리(Cross-origin isolated) 상태에 따라 타이머 분해능을 조절(예: 100마이크로초로 제한)하여 타이밍 공격과 핑거프린팅을 방지합니다 [11-14].
- 분기 없는 보안 검사 (Branchless Security Checks): 스펙터 공격이 조건부 분기 명령을 악용하는 것을 막기 위해, 브라우저는 인덱스 마스킹(Index masking)과 포인터 포이즈닝(Pointer poisoning) 기법을 도입했습니다 [2, 8, 15, 16]. 이를 통해 분기 없이 타입 검사나 경계 검사(Bounds Check)를 수행하여 추측 실행으로 인한 취약점을 근본적으로 차단합니다 [8, 16].
- 타이머 정밀도 감소 및 지터(Jitter) 도입: 브라우저 엔진은 캐시 사이드 채널 공격을 막기 위해
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- 정책 변화: Programming & Language 분야의 자동 자산화 수행.
🔗 지식 연결 (Graph)
- Related Topics: Side-channel Attack, Spectre and Meltdown, Speculative Execution, Timestamp Quantization, Branchless Security Checks
- Projects/Contexts: WebKit, WebGL, WebGPU
- Contradictions/Notes: 소스 내에서 특별한 모순점은 발견되지 않았습니다. 개발자들의 성능 분석 요구와 타이밍 공격(보안)이라는 상충하는 두 가지 목표를 해결하기 위해, WebGPU 표준에서는 타임스탬프 쿼리를 전면 차단하는 대신 '정밀도 양자화(Quantization)'를 절충안으로 도입하는 데 합의했습니다 [1, 10, 11].
Last updated: 2026-04-19
- Raw Source: 00_Raw/2026-04-20/Timing Attack.md