[논문 리뷰] Insecure Until Proven Updated: Analyzing AMD SEV's Remote Attestation
이 논문은 AMD Epyc Naples CPU에서 AMD SEV 원격 인증 프로토콜이 PSP 펌웨어 내에 존재하는 추출 가능한 플랫폼 전용 키로 인해 근본적으로 불안전하다는 것을 입증한다. 펌웨어가 해킹되면 공격자는 SEV 존재성을 위조하고 게스트 메모리 암호를 해독하며, 암호화 보호 기능을 모두 우회할 수 있다. 이는 신뢰할 수 없는 클라우드 제공자에 대비한 SEV의 기능을 무력화시키며, 소프트웨어로만 가능한 보완 조치는 존재하지 않는다.
Customers of cloud services have to trust the cloud providers, as they control the building blocks that form the cloud. This includes the hypervisor enabling the sharing of a single hardware platform among multiple tenants. AMD Secure Encrypted Virtualization (SEV) claims a new level of protection in cloud scenarios. AMD SEV encrypts the main memory of virtual machines with VM-specific keys, thereby denying the higher-privileged hypervisor access to a guest's memory. To enable the cloud customer to verify the correct deployment of his virtual machine, SEV additionally introduces a remote attestation protocol.This paper analyzes the firmware components that implement the SEV remote attestation protocol on the current AMD Epyc Naples CPU series. We demonstrate that it is possible to extract critical CPU-specific keys that are fundamental for the security of the remote attestation protocol.Building on the extracted keys, we propose attacks that allow a malicious cloud provider a complete circumvention of the SEV protection mechanisms. Although the underlying firmware issues were already fixed by AMD, we show that the current series of AMD Epyc CPUs, i.e., the Naples series, does not prevent the installation of previous firmware versions. We show that the severity of our proposed attacks is very high as no purely software-based mitigations are possible. This effectively renders the SEV technology on current AMD Epyc CPUs useless when confronted with an untrusted cloud provider. To overcome these issues, we also propose robust changes to the SEV design that allow future generations of the SEV technology to mitigate the proposed attacks.
연구 동기 및 목표
- AMD Epyc Naples CPU에서 SEV의 원격 인증을 구현하는 펌웨어 구성요소를 분석하기 위해.
- 비승인된 펌웨어 접근을 허용하는 PSP 보안 부팅 메커니즘의 취약점을 특정하기 위해.
- 추출된 키가 어떻게 사용되어 SEV 존재성을 위조하고 게스트 메모리를 해독할 수 있는지 보여주기 위해.
- 기존의 취약한 펌웨어 버전으로 롤백이 가능한지 확인하고, SEV에 대한 신뢰를 약화시키는지 분석하기 위해.
- 펌웨어 결함에도 불구하고 향후 신뢰 보장을 보장할 수 있는 재설계된 원격 인증 프로토콜을 제안하기 위해.
제안 방법
- AMD Epyc Naples CPU의 PSP 펌웨어를 역공학하여 보안 부팅 과정의 보안 결함을 식별했다.
- PSP 메모리에 대한 임의의 읽기 및 왤기 액세스를 확보하기 위해 수정된 펌웨어 이미지를 개발했다.
- 세 대의 다른 Epyc 프로세서에서 PSP 메모리에서 칩 승인 키(CEK)를 추출했다.
- 추출된 CEK를 사용하여 SEV 보호 플랫폼을 위조하고 게스트 메모리를 해독하는 공격을 구성했다.
- CEK를 사용하여 암호화된 VM 상태를 유출할 수 있는 마이그레이션 공격을 시연했다.
- 펌웨어 버전 강제 적용 기능을 포함한 재설계된 원격 인증 프로토콜을 제안했다.
실험 결과
연구 질문
- RQ1AMD Epyc Naples CPU의 PSP 펌웨어에서 SEV 원격 인증에 사용되는 플랫폼 전용 비밀키를 추출할 수 있는가?
- RQ2롤백 보호 기능의 부재가 SEV 원격 인증의 보안에 어느 정도 영향을 미치는가?
- RQ3악성 클라우드 제공자가 추출된 CEK를 악용하여 게스트 메모리를 해독하거나 SEV 존재성을 위조할 수 있는가?
- RQ4이러한 펌웨어 수준의 취약성에 대해 순수 소프트웨어 기반 보완 조치가 왜 효과가 없는가?
- RQ5향후 SEV 설계에서 PSP 펌웨어가 손상된 경우에도 신뢰성을 확보할 수 있는 방법은 무엇인가?
주요 결과
- 세 대의 다른 AMD Epyc Naples 프로세서에서 PSP 펌웨어에서 칩 승인 키(CEK)를 성공적으로 추출했다.
- 추출된 CEK를 통해 공격자는 정당한 SEV 보호 플랫폼을 위조할 수 있으며, 원격 인증을 완전히 위조할 수 있다.
- 수정된 SEV 펌웨어를 통해 PSP에 대한 임의의 메모리 액세스가 가능해져 암호화된 게스트 메모리를 평문으로 추출할 수 있었다.
- 취약한 PSP 펌웨어 버전으로의 롤백이 가능하며, 추출된 CEK는 영구적으로 유효하므로 키가 영구적으로 손상되었다.
- 보안 결함이 펌웨어 및 하드웨어 루트 오브 트러스트 수준에 존재하므로 소프트웨어로만의 보완 조치로는 보안을 복구할 수 없다.
- 현재의 SEV 설계는 Epyc Naples 시스템에서 VM의 정상 배포를 보장할 수 없으며, 결과적으로 SEV의 보안 보장을 무효화한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.