Downfall 공격 - 인텔 CPU의 새로운 Meltdown 취약점
(downfall.page)- 구글의 선임 연구원인 Daniel Moghimi는 6세대 ~ 11세대 인텔 CPU에 영향을 주는 Downfall 취약점 (CVE-2022-40982)을 공개함.
- 인텔 CPU의 메모리 최적화 기법에서 데이터 유출이 발생하여 신뢰할 수 없는 프로세스가 다른 메모리에 접근 가능.
- 메모리에 흩어져 있는 데이터에 빠르게 접근하기 위한 Gather 명령어가 예측 실행되는 동안 내부 벡터 레지스터 파일의 내용을 유출함.
- 이를 악용하기 위해 GDS(Gather Data Sampling) 및 GVI(Gather Value Injection) 기술을 도입.
- Linux 환경에서 다른 사용자의 암호화 키를 훔치거나, 커널의 데이터를 추출하는 데모를 공개.
- 특히 GDS 기법이 매우 효과적이라서 OpenSSL에서 키를 훔치는 PoC 공격을 2주 만에 성공시킴.
- 이 취약점은 일반적인 가상 머신이나 사용자-커널 격리는 물론, 하드웨어 보안 기술인 Intel SGX도 우회 가능.
- 이론상 Downfall 공격은 웹 브라우저에서도 실행이 가능하나, 추가 연구가 필요함.
- 또한 Downfall 공격은 일반적인 프로그램과 유사하게 보여 탐지하기 매우 어려우며, 상용 백신 소프트웨어는 이를 탐지할 수 없음.
- 2022년 8월 24일에 인텔에 취약점을 공유하였으며, 인텔은 취약점을 완화하는 업데이트를 준비 중.
- 단 최대 50%의 오버헤드가 발생할 수 있다고 함.
- PoC 코드도 공개되어 있음.
해커 뉴스 쪽 댓글을 살펴보니 Gather 명령어에만 최대 50%의 오버헤드가 발생할 수 있다는 것 같네요.
일반적인 애플리케이션의 성능 하락은 크지 않을 거라고 합니다.
논문에 대한 AI 요약:
이 논문은 현대 CPU에서 "Gather Data Sampling" (GDS) 취약점을 이용한 "Downfall" 공격을 소개한다. GDS는 SIMD 레지스터 버퍼와 같은 CPU 구성 요소에서 오래된 데이터를 유출시켜 사용자-커널 및 가상 머신과 같은 보안 경계를 통해 공격을 가능하게 한다.
GDS는 동시에 여러 바이트의 데이터를 도난할 수 있어 최대 5.7KB/s의 고속 은밀한 채널을 프로세스 간에 구축할 수 있다. OpenSSL의 AES 암호화를 대상으로 한 블라인드 공격을 통해 암호화 키를 도난하는 것을 시연한다.
GDS를 통해 소프트웨어가 명시적으로 읽지 않아도 캐시되지 않은 메모리나 노-옵 연산을 가진 페이지에 접근함으로써 임의의 데이터를 유출시킬 수 있다. GDS를 통해 악용되었을 때 데이터를 유출하는 memcpy를 기반으로 한 "가젯" 코드가 식별된다. 이를 통해 Linux 커널에서 데이터를 도난한다.
"Gather-based Volatile Injection" (GVI) 공격이 소개되어, gather 이후의 데이터 종속 연산을 통해 오래된 데이터를 주입하여 임의의 정보를 유출시킬 수 있다. 이를 통해 다른 프로세스에서 데이터를 유출하는 것을 시연한다.
GDS는 마이크로아키텍처 버퍼를 플러시한 후에도 여전히 효과적임을 보여준다. 이는 이전 취약점에 대한 패치가 적용된 Intel CPU를 포함한 모든 테스트된 Intel CPU에 영향을 미친다.
이 논문은 전 세계 컴퓨터의 보안을 약화시키는 중요한 취약점을 식별하고, 현재의 방어 수단이 효과적이지 않다며 긴급한 하드웨어 수정을 요구한다. CPU 설계와 테스트 방법론의 심각한 한계를 드러낸다.