pile·
보안·cloudflare-blogCloudflare Blog·

Cloudflare Workers의 원격 Spectre 공격 재평가

Cloudflare 보안팀이 2021년 DyPrIs(Dynamic Process Isolation) 방어책 배포 이후, 새롭게 등장한 Spectre 공격 기법들이 실제 프로덕션 Workers 환경에서도 동작하는지 재평가한 연구다. 2024~2025년에 걸쳐 수행된 이 연구에서 초당 최대 12비트, 99% 정확도로 원격 데이터 유출에 성공했으며, Cloudflare는 V8 Sandbox·MPK 기반 격리·개선된 DyPrIs를 계층적으로 배포해 대응했다.

핵심 포인트
  • 프로덕션 환경에서 초당 12비트(99% 정확도) 원격 데이터 유출 입증 — Spectre 위협이 이론에 그치지 않음을 증명.
  • 신호 증폭: 트리 기반 의사 LRU(PLRU) 캐시 교체 정책으로 마이크로초 차이를 밀리초 규모로 확대, WebSocket 원격 타이머로 캐시 히트·미스 구분.
  • Co-location 달성: Workers의 fetch() 특성으로 공격자·피해자 인스턴스를 같은 프로세스에서 실행, 오프피크 지역 선택으로 CPU 경합 최소화.
  • 기존 DyPrIs 회피 원인 규명: Durable Object 장시간 실행(post-execution 격리 우회) + iTLB 활동 왜곡(탐지 임계값 이하 유지).
  • 대응 계층: V8 Sandbox(64비트 포인터 제거) + MPK 기반 인프로세스 격리 + 개선된 DyPrIs(장시간 실행 우선 처리).
상세 정리
  • 연구 배경: 2021년 DyPrIs 배포 후 새로운 Spectre 기법이 학계에서 발표되며 프로덕션 환경에서의 실제 위협 수준 재평가 필요성 대두.
  • 가젯 1: V8 Sandbox 미배포 당시 TypedArray의 64비트 힙 포인터를 Spectre 가젯으로 유출 → isolate 루트 주소 획득.
  • 가젯 2: 타입 혼동(type confusion)으로 획득한 주소에서 임의 64비트 데이터 읽기 → 메모리 임의 영역 접근.
  • 신호 증폭: PLRU 캐시 교체 정책의 트리 구조를 이용해 단일 캐시 라인 접근을 대규모 증폭, 네트워크 타이밍으로 감지 가능한 수준까지 신호 강도 상승.
  • 원격 타이머: WebSocket 연결로 외부 서버의 고해상도 타이머에 접근 → sub-밀리초 해상도 달성, 캐시 히트/미스 구분.
  • 리소스 제한 우회: Durable Objects의 WebSocket keep-alive 메시지로 30초 CPU 제한 반복 리셋, 이벤트 루프에 주기적 제어권 반환으로 공격 지속.
  • DyPrIs 회피 이유 1: Durable Object 기반 장시간 실행 → post-execution 격리 적용 전에 공격 완료.
  • DyPrIs 회피 이유 2: I/O-heavy 워커의 iTLB 활동이 branch misprediction 정규화 비율을 낮춰 탐지 임계값 이하 유지.
  • 대응 1 — V8 Sandbox: JavaScript 힙에서 64비트 포인터 제거 → 타입 혼동 기반 가젯 공격 면적 감소.
  • 대응 2 — MPK 기반 격리: Memory Protection Keys로 각 isolate의 힙을 하드웨어 수준 보호 → 크로스-isolate 힙 읽기 차단.
  • 대응 3 — 개선된 DyPrIs: 장시간 실행 워크로드 우선 처리 + 계산 집약적 구간 주변 반복 타이머 I/O 패턴 탐지 강화 검토.
  • 공격 흔적: 지난 3년간 활발한 악용 흔적 미발견 — 현재 대응책들이 공격 비용을 충분히 높은 수준으로 유지.
왜 읽나서버리스 환경의 사이드채널 공격 원리와 방어 계층(V8 Sandbox·MPK·이상 탐지)을 실전 사례로 배우고 싶은 보안·인프라 엔지니어에게 필수 레퍼런스.
cloudflare-blog
Cloudflare Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·gitlab-engGitLab Blog·

    Serena MCP 에이전트의 치명적 원격 코드 실행 취약점 분석

    GitLab 보안팀이 AI 코딩 에이전트 Serena(월 PyPI 다운로드 13.6만 건)에서 치명적 원격 코드 실행 취약점을 발견했다. Jinja2 비샌드박스 환경과 신뢰 모델의 미검사 경로가 결합해 개발자가 악의적 저장소를 열기만 해도 코드가 실행된다. serena-agent 1.7.0에서 SandboxedEnvironment 교체로 수정 완료됐다.

    요약 이어보기
    #mcp#security#rce+2