• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
보안

Epyc Rome 및 Milan 프로세서에서 AMD SEV 보안 결함 시연

달소 달소 52

0

0

출처 : https://www.hardwaretimes.com/researchers-demonstrate-amd-sev-security-flaw-in-epyc-rome-and-milan-processors/

AMD’s Secure Encrypted Virtualization (SEV) is one of the key highlights of AMD’s Epyc processors. It...
Hardware Times - Areej / 2021-08-13

 

 

패치가능여부 / 패치했을떄 성능향상이 있는지에대한 여부가 중요해보이네요.

 

AMD의 SEV(Secure Encrypted Virtualization)는 AMD Epyc 프로세서의 주요 하이라이트 중 하나입니다. 기본적으로 메모리 및 레지스터 암호화를 통해 신뢰할 수 없는 환경의 가상 머신을 보호합니다. 민감한 작업을 실행하기 위해 별도의 AMD 보안 프로세서(AMD-SP)를 활용함으로써 기본 x86 코어에 대한 공격을 덜 효율적으로 만듭니다. 응용 프로그램의 일부를 보호하는 데 중점을 둔 Intel의 SGX(Software Guard Extensions)와 달리 SEV는 전체 VM을 보호합니다.

 

VM의 런타임 보호는 VM의 메모리를 투명하게 암호화하여 달성됩니다. SEV의 원격 증명 기능을 통해 클라우드 고객은 VM의 올바른 배포를 확인할 수 있습니다. AMD는 2016년 출시 이후 SEV에 추가 보호 기능을 추가하는 두 가지 확장 기능을 SEV에 도입했습니다. SEV-ES가 게스트 VM 레지스터에 대한 암호화를 추가하는 동안 SEV-SNP는 무엇보다도 소프트웨어 기반 무결성 보호 및
CEK(칩 인증 키)에 대한 향상된 TCB( 신뢰할 수 있는 컴퓨팅 기반) 버전 관리 기능을 도입합니다.

 

CEK는 대상 플랫폼을 AMD 신뢰 루트에 암호화 방식으로 연결합니다. 런타임 보호 및 원격 증명 기능을 사용하려면 하이퍼바이저가 AMD-SP에서 실행되는 전용 펌웨어에서 제공하는 인터페이스를 사용해야 합니다. SEV 펌웨어는 VM의 메모리 암호화 키를 관리하고 SEV의 원격 증명 기능을 구현하는 역할을 합니다.

 

이 백서에서는 AMD-SP를 대상으로 SEV로 보호되는 가상 머신(VM)을 공격하는 새로운 접근 방식을 소개합니다. 공격자가 현재 시장에 나와 있는 SEV(Zen 1, Zen 2 및 Zen 3)를 지원하는 모든 마이크로아키텍처의 AMD-SP에서 사용자 지정 페이로드를 실행할 수 있는 전압 글리칭 공격을 제시합니다. 제시된 방법을 사용하면 AMD-SP에 맞춤형 SEV 펌웨어를 배포할 수 있으므로 공격자가 VM의 메모리를 해독할 수 있습니다. 또한 우리의 접근 방식을 사용하여 SEV 지원 CPU의 보증 키를 추출할 수 있으므로 대상 호스트에 대한 물리적 액세스 없이도 증명 보고서를 위조하거나 VM 마이그레이션을 위한 유효한 대상으로 가장할 수 있습니다. 또한 SEV-SNP(Secure Nested Paging)와 함께 도입된 VCEK(Versioned Chip Endorsement Key) 메커니즘을 역설계했습니다.

 

VCEK는 인증 키를 SEV와 관련된 TCB 구성 요소의 펌웨어 버전에 바인딩합니다. 보증 키를 추출하는 기능을 기반으로 임의의 펌웨어 버전에 대해 유효한 VCEK를 파생하는 방법을 보여줍니다. 우리의 연구 결과를 통해 SEV는 현재 사용 가능한 CPU에서 rouge 관리자와 같은 내부 공격자로부터 클라우드 환경의 기밀 데이터를 적절하게 보호할 수 없음을 증명합니다.

 

시나리오 1

디버그 재정의. SEV API는 VM 메모리의 암호 해독 및 암호화를 허용하는 디버그 기능을 제공합니다. SEV-SNP에도 유사한 기능이 있습니다. SEV 및 SEV-SNP의 디버그 기능은 모두 SEV 펌웨어에 의해 시행되는 정책 확인의 대상입니다. 게스트 소유자가 초기 배포 중에 명시적으로 디버깅을 활성화한 경우에만 SEV 펌웨어에서 디버그 API 명령을 허용합니다. SEV 펌웨어를 변경함으로써 공격자는 게스트 소유자의 정책에 관계없이 디버그 명령을 허용하도록 이 정책 시행을 무시할 수 있습니다. 이를 위해 공격자는 대상 VM을 호스팅하는 물리적 시스템에서 SEV 펌웨어를 교체해야 합니다.

 

또는 공격자는 먼저 대상 VM을 이전에 준비된 시스템으로 마이그레이션할 수 있습니다. 그런 다음 공격자는 앞에서 언급한 디버그 API 호출을 사용하여 게스트 소유자가 지정한 정책에 관계없이 VM의 메모리를 해독할 수 있습니다

 

시나리오 2

위조 증명. 이 두 번째 시나리오에서 공격자는 하이퍼바이저의 제어 인터페이스에 액세스하여 SEV로 보호되는 VM의 마이그레이션을 시작합니다. 그러나 첫 번째 시나리오와 달리 공격자는 대상 호스트의 펌웨어를 변경할 필요가 없습니다. 대신 공격자는 대상 호스트의 CPU와 동일한 CPU 마이크로아키텍처의 CPU별 보증 키를 추출해야 합니다. 이러한 인증 키는 SEV 기술의 원격 증명 기능에서 중심적인 역할을 합니다. VM의 메모리를 해독하기 위해 공격자는 증명을 위조할 수 있습니다.


배포 또는 마이그레이션 중에 보고하여 VM이 악의적인 MA를 수락하도록 속입니다. MA는 VM TCB의 일부이며 내보낸 VM의 OEK(오프라인 암호화 키)에 액세스할 수 있습니다. OEK를 사용하여 악의적인 MA는 VM의 메모리를 해독할 수 있습니다. pre-SEV-SNP 시스템의 경우 유사한 공격이 제안되었습니다. 제시된 두 가지 예시 시나리오에서는 공격자가 AMD-SP에서 코드를 실행해야 합니다.

image.png.jpg

 

신고공유스크랩
0

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story