# 애플 CPU에 대한 새로운 위험한 공격들 : SLAP, FLOP

> Clean Markdown view of GeekNews topic #18957. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18957](https://news.hada.io/topic?id=18957)
- GeekNews Markdown: [https://news.hada.io/topic/18957.md](https://news.hada.io/topic/18957.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-01-29T09:47:42+09:00
- Updated: 2025-01-29T09:47:42+09:00
- Original source: [predictors.fail](https://predictors.fail/)
- Points: 2
- Comments: 1

## Topic Body

### 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의 지원을 받음.

## Comments



### Comment 33942

- Author: neo
- Created: 2025-01-29T09:47:42+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42856023) 
- 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년 전에는 주의를 기울이지 않았던 것인지, 아니면 새로운 현상인지 궁금함
