- Spectre 완화가 약 6년간 이어졌지만, iLeakage는 Mac·iPad·iPhone의 Safari에서 추측 실행 사이드채널이 여전히 악용될 수 있음을 보여줌
- 공격자는 사용자가 악성 웹페이지를 방문해 클릭하도록 유도한 뒤, JavaScript와 WebAssembly로 Safari가 임의 웹페이지를 렌더링하게 만들어 민감 정보를 복구할 수 있음
- 시연에는 Gmail 최근 메시지 제목, Instagram 자동완성 자격 증명, YouTube 시청 기록, Apple M3 기반 MacBook Pro의 Facebook 비밀번호와 SMS 2FA 토큰 복구가 포함됨
- 영향 범위는 Apple A-series·M-series CPU를 쓰는 macOS·iOS 기기이며, Safari 17.2가 포함된 iOS 17.2와 macOS 14.2에서 완화됨
- Lockdown Mode나 JavaScript 비활성화로도 막을 수 있지만 기능 제약이 있고, Safari 안에서 실행되며 시스템 로그에 흔적을 남기지 않아 탐지가 매우 어려움
Apple 기기에서 다시 드러난 Spectre 위험
- iLeakage는 Safari 웹브라우저를 대상으로 하는 추측 실행 사이드채널 공격임
- 대상은 Apple의 A-series 또는 M-series CPU를 사용하는 macOS·iOS 기기임
- 최근 iPhone과 iPad가 포함됨
- 2020년 이후 Apple 노트북과 데스크톱도 포함됨
- 원래 한 브라우저 탭의 코드는 다른 탭의 내용을 추론하지 못해야 하지만, iLeakage는 공격자 페이지를 방문하고 클릭한 사용자의 대상 웹페이지 내용을 읽을 수 있음
- 복구 가능한 정보에는 개인 정보, 비밀번호, 신용카드 정보가 포함될 수 있음
- 연구진은 2022년 9월 12일 Apple에 결과를 공개했으며, 이는 공개 릴리스 408일 전이었음
실제로 복구된 민감 데이터
- 연구진은 대중적인 서비스에서 고가치 정보를 복구하는 사례를 시연함
-
Instagram 자격 증명
- macOS Safari에서 사용자가 LastPass 자동완성 자격 증명 관리자로 Instagram에 로그인하는 상황을 사용함
-
Gmail 받은편지함
- iOS Safari에서 사용자가 Google에 로그인된 상태라고 가정하고, iPad에서 Gmail 계정의 최근 메시지 제목을 복구함
-
YouTube 시청 기록
- iOS용 Chrome에서 YouTube 시청 기록을 복구함
- iOS용 Chrome은 Apple App Store 정책 때문에 Safari 브라우징 엔진 위의 셸로 동작함
-
Facebook 비밀번호와 2FA 토큰
- Apple M3 칩이 탑재된 MacBook Pro, macOS 14.1.1, Safari 17.1 환경에서 Facebook 비밀번호를 먼저 복구함
- 이후 Android 휴대전화로 전송된 SMS 2FA 토큰을 Google Messages를 통해 복구함
Spectre와 사이드채널의 동작 방식
- 대부분의 현대 CPU는 분기 결과가 즉시 나오지 않을 때 실행 경로를 예측하고, 해당 경로의 명령을 먼저 처리하는 추측 실행을 사용함
- 예측이 틀리면 CPU는 상태 변경을 되돌리지만, 캐시 같은 마이크로아키텍처 상태에는 흔적이 남을 수 있음
- Spectre는 이 흔적을 이용해 원래 프로그램 의미상 접근할 수 없는 데이터를 읽는 하드웨어 취약점임
- 사이드채널은 프로그램이 안전한 알고리듬을 실행하더라도 시스템 구현 특성을 악용할 수 있음
- 예시로 소리, 전자기 방사, 열 스로틀링, CPU 마이크로아키텍처 자원 공유가 있음
- 공격자와 대상이 같은 CPU에서 실행되면 코어, 캐시, 내부 버퍼 같은 자원을 공유하며, 이 경합은 타이밍이나 전력 소비 같은 변수로 간접 측정될 수 있음
Safari 방어를 우회한 타이머리스 공격 구성
- 브라우저 벤더들은 Spectre 이후 추측 실행·일시적 실행 공격에 대한 방어를 강화해 왔음
- Safari 방어에는 35-bit addressing, value poisoning, 탭당 프로세스 격리 정책, 저해상도 타이머가 포함됨
- iLeakage는 Apple Silicon CPU와 Safari를 상대로 한 첫 추측 실행 공격 시연임
- 공격은 Apple CPU의 공개되지 않은 캐시 구성을 실증적으로 복구하는 데서 시작함
- 이후 낮은 해상도 타이머만으로 캐시 히트와 미스를 구분하는 speculation 기반 가젯을 만듦
- 타이머 없이 race condition을 활용하는 변형도 시연함
- 이 가젯은 eviction set 생성 테스트와 covert channel 양쪽에 사용됨
- Safari로 기법을 옮긴 뒤에는 CPU가 추측 실행 중일 때 Safari가 특정 데이터 타입용 코드를 공격자가 만든 잘못된 타입 객체에 실행하게 만듦
- 최종적으로 Safari 렌더링 프로세스 주소 공간 어디서든 out-of-bounds read가 가능해짐
- 서로 다른 도메인의 웹사이트를 같은 주소 공간으로 통합하는 새 방법과 결합해, 민감 정보를 유출하는 speculative type confusion 공격을 수행함
완화책, 탐지 난이도, 브라우저별 영향
- iLeakage는 Safari 17.2에서 완화됐으며, Safari 17.2는 iOS 17.2와 macOS 14.2에 포함됨
- 대응책은 Apple 기기를 최신 OS 버전으로 업데이트하는 것임
- Lockdown Mode는 Safari의 JIT 컴파일을 비활성화해 iLeakage를 완화함
- JIT 컴파일은 iLeakage가 공격 프리미티브를 만드는 데 사용하는 성능 기능임
- Lockdown Mode는 일부 메시지 첨부파일과 알 수 없는 FaceTime 통화를 차단하는 등 기기 동작을 바꿀 수 있음
- 전체 목록은 Apple의 Lockdown Mode 문서에 있음
- JavaScript 비활성화도 iLeakage를 막지만, Safari가 일부 웹사이트를 잘못 또는 불완전하게 렌더링할 수 있고 온라인 결제 같은 고급 웹 기능이 동작하지 않을 수 있음
- iLeakage는 Safari 안에서 실행되고 시스템 로그 파일에 흔적을 남기지 않아 탐지가 매우 어려움
- 다만 공격자 웹페이지를 방문한 흔적은 최근 방문 페이지에 대한 브라우저 캐시에 남을 수 있음
- 실제 악용 증거는 없음
- 종단 간 공격 구성은 매우 어렵고, 브라우저 기반 사이드채널 공격과 Safari 구현에 대한 고급 지식이 필요함
- 자격 증명 관리자는 계속 사용하는 편이 권장됨
- iLeakage는 웹페이지에 자동완성된 자격 증명을 복구할 수 있음
- 많은 플랫폼은 자동완성이 일어나기 위해 사용자 상호작용을 요구함
- macOS의 Chrome, Firefox, Microsoft Edge는 다른 JavaScript 엔진을 사용하므로 Safari JavaScript 엔진의 특수성을 악용하는 iLeakage가 동작하지 않음
- iOS에서는 Apple App Store와 샌드박싱 정책 때문에 다른 브라우저 앱도 Safari JavaScript 엔진을 사용함
- iOS용 Chrome, Firefox, Edge는 북마크와 설정 동기화 같은 보조 기능을 제공하는 Safari 위 래퍼임
- App Store의 거의 모든 브라우저 애플리케이션이 iLeakage에 취약함
- 학술 논문은 iLeakage paper로 제공되며, 2023 ACM Conference on Computer and Communications Security에 게재됨