[논문 리뷰] Fallout: Reading Kernel Writes From User Space
Fallout은 저장 버퍼를 통해 커널이 쓴 데이터를 사용자 공간에 누출하는 일시적 실행 공격으로, Meltdown식 방어를 우회하고 커널 데이터 누출 및 KASLR의 난수화를 역전시키고 가능하게 한다.
Recently, out-of-order execution, an important performance optimization in modern high-end processors, has been revealed to pose a significant security threat, allowing information leaks across security domains. In particular, the Meltdown attack leaks information from the operating system kernel to user space, completely eroding the security of the system. To address this and similar attacks, without incurring the performance costs of software countermeasures, Intel includes hardware-based defenses in its recent Coffee Lake R processors. In this work, we show that the recent hardware defenses are not sufficient. Specifically, we present Fallout, a new transient execution attack that leaks information from a previously unexplored microarchitectural component called the store buffer. We show how unprivileged user processes can exploit Fallout to reconstruct privileged information recently written by the kernel. We further show how Fallout can be used to bypass kernel address space randomization. Finally, we identify and explore microcode assists as a hitherto ignored cause of transient execution. Fallout affects all processor generations we have tested. However, we notice a worrying regression, where the newer Coffee Lake R processors are more vulnerable to Fallout than older generations.
연구 동기 및 목표
- Meltdown 및 Foreshadow를 넘어선 일시적 실행 공격에 대한 이해를 자극하고 전망을 제시한다.
- 저장 버퍼 포워딩(WTF)의 새로운 취약점을 보여주고 그것이 권한이 필요한 데이터를 누출한다.
- Fallout가 사용자 공간에서 최근에 커널에 의해 쓰여진 데이터를 재구성하고 커널 주소 공간 난수화(KASLR)를 역전시킬 수 있는 방법을 보여준다.
- Intel 아키텍처 전반에 걸친 영향 평가와 마이크로코드 보조 일시적 실행 위험 식별한다.
제안 방법
- 저장 버퍼에서의 WTF(Write Transient Forwarding) 최적화를 설명한다.
- 부분 주소 일치가 발생할 때 잘못된 로드가 앞선 저장소로부터 값을 일시적으로 전달하는 방식을 설명한다.
- 결함 유발 로드와 캐시 은닉 채널(Flush+Reload)을 통한 악용 시연이다.
- 아키텍처 간 하드웨어 동작 의존성을 기술한다 (Pre Coffee Lake R 대 Coffee Lake R).
- 스토어 버퍼 크기를 실험적으로 측정하고 하이퍼스레딩이 스토어 버퍼의 파티셔닝에 미치는 영향을 평가한다.
실험 결과
연구 질문
- RQ1비권한 사용자 프로세스가 WTF 최적화를 사용해 최근에 커널에 의해 쓰여진 데이터를 읽을 수 있는가?
- RQ2하드웨어 방어책(멜트다운식 완화책)이 인텔 세대에 걸쳐 Fallout에 대해 보호해 주는가?
- RQ3Fallout가 Kernel Address Space Layout Randomization(KASLR)를 역전시킬 수 있는가?
- RQ4아키텍처 및 마이크로코드 보조가 CPU 세대에 걸친 Fallout의 실행 가능성에 어떤 영향을 미치는가?
주요 결과
- Fallout는 저장 버퍼와 Write Transient Forwarding(WTF)을 이용해 사용자 공간에서 커널에 의해 쓰여진 값을 읽을 수 있게 한다.
- Coffee Lake R에서는 WTF가 누출되려면 특정 fault-억제 메커니즘이 필요하다는 회귀가 나타나 초기 세대와 다르다.
- 공격은 커널 주소를 난수화에서 벗어나게 만들어 KASLR 보호를 약화시킨다.
- Skylake 시대 아키텍처에서 저장 버퍼 크기는 56 엔트리와 일치하며, 하이퍼스레딩 간 파티셔닝이 확인된다.
- 마이크로코드 보조는 faulting 예외와 무관하게 일시적 실행을 촉발할 수 있어 잠재적 공격 표면을 확장한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.