2P by neo 5일전 | ★ favorite | 댓글 1개

SLAP: 데이터 추측 공격 (data Speculation attacks via Load Address Prediction)

  • SLAP 공격은 Apple Silicon의 M2/A15 CPU에서 발생하는 새로운 추측 실행 공격임.
  • 로드 주소 예측기(LAP) 를 통해 메모리 접근 패턴을 기반으로 다음 메모리 주소를 예측하여 성능을 향상시킴.
  • 잘못된 예측 시, CPU가 접근해서는 안 되는 데이터를 추측 실행으로 처리하여 보안 위험을 초래함.
  • 실제 사례로, Safari 웹 브라우저에서 원격 공격자가 이메일 내용과 브라우징 행동을 복구할 수 있는 공격을 시연함.

FLOP: 잘못된 로드 출력 예측(False Load Output Predictions)

  • FLOP 공격은 Apple M3/A17 CPU에서 데이터 의존성을 예측하여 발생하는 또 다른 추측 실행 공격임.
  • 로드 값 예측기(LVP) 를 통해 메모리 서브시스템이 반환할 데이터 값을 예측하여 성능을 향상시킴.
  • 잘못된 예측 시, 메모리 안전을 위한 프로그램 논리의 중요한 검사를 우회하여 메모리에 저장된 비밀을 유출할 수 있는 공격 표면을 열게 됨.
  • Safari와 Chrome 웹 브라우저에서 위치 기록, 캘린더 이벤트, 신용카드 정보 등을 복구하는 공격을 시연함.

데모

  • Proton Mail의 받은 편지함 데이터 유출: M3 CPU의 LVP를 WebKit 내의 JavaScript 코드로 훈련하여 받은 편지함 내용을 주소 공간에 가져옴.
  • 위대한 개츠비 읽기: Apple M2 CPU에서 LAP를 사용하여 비밀 문자열을 복구하는 개념 증명 시연.
  • 해리 포터 읽기: Apple M3 CPU에서 LVP를 사용하여 잘못된 배열 인덱스를 예측하고 문자열의 문자를 참조하는 개념 증명 시연.

연구진

  • Jason Kim, Jalen Chuang, Daniel Genkin (Georgia Institute of Technology)
  • Yuval Yarom (Ruhr University Bochum)

SLAP 및 FLOP FAQ

Is my Apple device affected?

  • Mac 노트북: 2022년 이후 출시된 모든 모델 (MacBook Air, MacBook Pro)
  • Mac 데스크톱: 2023년 이후 출시된 모든 모델 (Mac Mini, iMac, Mac Studio, Mac Pro)
  • iPad: 2021년 9월 이후 출시된 모든 iPad Pro, Air, Mini 모델
    • Pro 6세대 및 7세대, Air 6세대, Mini 6세대
  • iPhone: 2021년 9월 이후 출시된 모든 모델
    • iPhone 13, 14, 15, 16 전 모델 및 SE 3세대

Why are the SLAP and FLOP attacks significant?

  • 보호 메커니즘: 일반적으로 웹 브라우저는 두 개의 열린 웹페이지가 서로 격리되도록 하여 하나의 페이지가 다른 페이지의 콘텐츠를 읽지 못하도록 보호
  • 취약점: SLAP 및 FLOP는 이러한 보호를 무력화하여, 공격자 페이지가 타겟 페이지의 민감한 데이터를 읽을 수 있게 만듦
    • 노출되는 데이터: 위치 기록, 신용카드 정보 등

How can I defend against SLAP and FLOP?

  • FLOP는 완화 방안이 있지만, 이는 소프트웨어 벤더의 패치가 필요하며 사용자가 직접 해결할 수 없음
  • Apple은 향후 보안 업데이트에서 이 문제를 해결할 것이라 밝혔으며, 자동 업데이트를 활성화하고 최신 OS 및 애플리케이션을 유지하는 것이 중요함

What about other processor vendors?

  • Intel, AMD, Qualcomm, Ampere 등의 제품에서는 아직 SLAP 또는 FLOP의 징후를 발견하지 못함

What about other web browsers?

  • Firefox 등 기타 브라우저는 테스트하지 않음

Can I detect if someone is using SLAP or FLOP on my device?

  • SLAP 및 FLOP는 마이크로아키텍처 기반 공격으로, 시스템 로그에 흔적을 남기지 않음

Are any malicious actors abusing SLAP or FLOP in the wild?

  • 현재까지 SLAP 또는 FLOP가 실제로 사용된 증거는 없음

When did you notify Apple?

  • SLAP: 2024년 5월 24일 Apple에 보고
  • FLOP: 2024년 9월 3일 Apple에 보고

기술적 질문

사이드 채널(Side Channel)이란?

  • 컴퓨터 하드웨어 구현의 취약점을 악용하는 공격
    • 소프트웨어 버그 대신 하드웨어 동작에서 발생하는 정보 유출을 활용
  • 데이터 유출 경로
    • 소리, 전자기파, 열 발산 등의 물리적 현상
    • CPU의 공유 자원(코어, 캐시, 내부 버퍼 등)에서 발생하는 경쟁(contention)
  • CPU 경쟁으로 인한 정보 노출
    • 시간 측정, 전력 소비 등의 간접 변수를 통해 타겟의 행동 패턴을 유추

추론 실행(Speculative Execution) 공격이란?

  • 추론 실행: CPU가 제어 흐름을 예측하여 명령을 미리 실행하는 최적화 기법
    • 예측이 틀리면 상태를 되돌리지만, 캐시 등 미세한 흔적이 남음
  • Spectre 공격
    • 잘못된 흐름으로 예측 실행을 유도
    • 예측 실행 중 민감한 데이터를 사용하는 명령이 실행되면, 데이터 값이 간접적으로 노출됨
  • SLAP 및 FLOP에서의 확장
    • Apple CPU는 제어 흐름뿐 아니라 데이터 흐름까지 예측
    • FLOP는 잘못된 데이터 값에 대한 명령 실행을 유발

SLAP 동작 방식

  1. Load Address Prediction (LAP) 분석
    • 특정 메모리 주소 패턴을 학습시키면, LAP가 다음 주소를 예측하여 데이터 작업 실행
    • 하드웨어 사전 가져오기(prefetching)와 다르게, 예측된 데이터로 명령 실행
  2. Safari 취약점 악용
    • iLeakage가 발견한 Safari의 격리 문제를 기반으로, 서로 다른 웹페이지가 동일 프로세스에서 처리되도록 강제
    • 공격자 웹페이지가 타겟 웹페이지의 문자열 데이터에 접근

FLOP 동작 방식

  1. Load Value Prediction (LVP) 분석
    • 동일한 데이터 값이 반복 반환되면, LVP가 결과를 예측
    • 잘못된 메모리 값을 사용하여 명령 실행
  2. Safari 및 Chrome 공격
    • Safari: JavaScript 데이터 구조의 유형 정보를 예측해 잘못된 데이터 구조로 명령 실행
    • Chrome: WebAssembly 함수 호출 시 잘못된 인수로 인해 메모리 읽기 오류 발생

SLAP과 FLOP의 차이점

  • SLAP: Load Address Predictor (LAP)를 사용해 문자열 할당 근접성을 악용
  • FLOP: Load Value Predictor (LVP)를 사용해 데이터 무결성 검사를 우회
  • LAP vs LVP
    • LAP: 다음 메모리 주소를 예측
    • LVP: 다음 메모리 값 반환을 예측
    • LAP는 긴 학습 과정이 필요하지만, 패턴 예측이 가능

JavaScript와 WebAssembly란?

  • JavaScript: 웹 콘텐츠를 동적으로 업데이트하는 언어
  • WebAssembly: 고성능 웹 애플리케이션을 위한 언어로, JavaScript와 연동
  • 공격 영향
    • 두 언어 모두 브라우저에서 자동 실행되므로, 악성 코드를 다운로드하지 않아도 공격 가능

Safari와 Chrome을 공격 대상으로 선택한 이유

  • Safari:
    • 사이트 격리(Site Isolation)가 없어 서로 다른 도메인의 웹페이지가 동일 프로세스에서 실행 가능
    • LAP 및 LVP 기반 공격 표면 확대
  • Chrome:
    • 사이트 격리가 적용되었지만, 일부 경우에 동일 사이트의 서브도메인이 하나의 프로세스에서 처리됨
    • LAP 및 LVP 공격이 여전히 가능

연구 지원

  • 이 연구는 AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco, Zama의 지원을 받음.
Hacker News 의견
  • SLAP 데모는 방어 심층이 어떻게 취약점의 실행 가능성을 좌우할 수 있는지를 잘 보여줌. Safari의 취약점은 window.open 호출 시 새로운 창을 개별 프로세스로 격리하지 못하기 때문에 발생함

  • M3에서 LVP 존재를 역설계하는 부분이 흥미로움. 8바이트 로드 시 로드 값이 0일 때만 LVP가 활성화됨. 이는 메모리 안전을 위한 대책일 수 있음

  • Spectre와 Meltdown 공격 및 관련 논문은 처음 보는 사람들에게 읽어볼 가치가 있음

  • Safari에서 캐시 히트와 미스를 구분하기 위해 NOT 게이트 기반 캐시 증폭 원리를 사용함. 웹 환경에서도 캐시 히트와 미스를 구분할 수 있음

  • Chrome의 사이트 격리가 완벽한 완화책이 아님을 보여줌. 동일 사이트의 두 하위 도메인이 하나의 프로세스로 병합될 수 있는 코너 케이스가 존재함

  • 하드웨어 취약점 발표를 위한 마케팅 문화가 이상하게 느껴짐. 왜 단순히 취약점을 보고하고 논문을 발표하는 대신 커스텀 도메인, 로고, FAQ 등을 만드는지 의문임

  • 작년에 Intro to Cyber Security 수업에서 Daniel Genkin 교수를 만났음. Apple CPU에 대한 투기 공격을 연구 중이라고 했음. 보안은 거의 보장되지 않음을 이해하게 됨

  • 신뢰할 수 없는 사이트에서 기본적으로 js를 비활성화하는 경향이 있음. 이는 우리가 기계에서 실행하는 누군가의 프로그램임

  • Apple이 최근 macOS와 iOS에 보안 수정을 포함한 마이너 버전 업데이트를 발표함. 이 취약점을 해결했는지 확인한 사람이 있는지 궁금함

  • RUB가 고급 공격 보안 작업의 글로벌 중심지가 된 것 같음. 10년 전에는 주의를 기울이지 않았던 것인지, 아니면 새로운 현상인지 궁금함