포스팅 내용

국내외 보안동향

연구원들, AMD의 SEV 가상 머신 암호화 풀어내

Researchers Defeat AMD's SEV Virtual Machine Encryption




독일의 보안 연구원들이 AMD의 SEV(Secure Encrypted Virtualization) 기술로 암호화 된 가상 머신들(VM)에 대한 공격을 발견했다고 밝혔습니다. 이를 악용하면 공격자가 게스트 VM에서 메모리 데이터를 순수 텍스트 형태로 복구 가능할 수 있습니다.


EPYC 프로세서 라인과 함께 제공 되는 AMD의 SEV(Secure Encrypted Virtualization) 기술은 게스트만이 데이터에 접근할 수 있도록 각각의 VM의 메모리를 암호화해 다른 VM, 컨테이너들 또는 신뢰할 수 없는 하이퍼바이저로부터 보호할 수 있는 하드웨어의 기능입니다.


SEVered라 명명 된 이 페이지 오류 사이드 채널 공격은 메인 메모리의 페이지 암호화의 무결성 보호가 결여되었다는 점을 악용해 악성 하이퍼바이저가 SEV로 암호화 된 VM에서 메인 메모리의 내용을 순수 텍스트 형태로 추출해낼 수 있도록 허용합니다.


연구원들은 SEVered 공격에 대해 아래와 같이 설명했습니다:


“VM의 GVA(게스트 가상 주소)에서 GPA(게스트 실제 주소)로의 변환은 VM 자체에서 제어하며 HV는 이를 이해하기 힘듭니다. HV는 SLAT(2번째 주소 변환)에 대한 책임이 있으며, 이는 메인 메모리에서 VMA의 GPA to HPA 매핑을 유지한다는 의미입니다.


이 때문에, 우리는 HV 내의 VM의 메모리 레이아웃을 변경할 수 있었습니다. 우리는 이를 이용해 웹서버와 같은 VM의 서비스가 VM의 임의의 페이지를 순수 텍스트 형태로 리턴하도록 속였습니다.


첫번째로, 서비스가 특정 요청에 대한 응답으로 리턴하는 리소스에 해당하는 암호화 된 페이지를 메모리에서 식별합니다. 식별 된 메모리 페이지들을 remapping하는 동시에 서비스로 동일한 리소스 요청을 반복적으로 보내면, 우리는 VM의 메모리 전체를 순수 텍스트 형태로 추출해낼 수 있습니다.”


연구원들은 테스트 서버의 메모리 데이터 전체인 2GB를 추출해낼 수 있었습니다. 여기에는 또 다른 게스트 VM의 데이터도 포함 되어 있었습니다.


연구원들은 이 실험에 SEV가 활성화 되었고 웹서비스를(Apache, Nginx 웹서버) 및 SSH 서버, 분리 된 VM의 OpenSSH 웹서버를 실행하는 AMD Epyc 7251프로세서를 사용하는 리눅스 기반 시스템을 사용했습니다.


악성 HV로써, 연구원들은 시스템의 커널 기반 가상 머신(KVM)을 사용했으며, 게스트의 소프트웨어가 물리적 RAM에 접근할 때를 관찰하기 위해 이를 수정했습니다.


Apache 및 Nginx 웹서버의 메모리 데이터 추출은 빠르게 이루어졌으며 (79.4 KB/초), OpenSSH는 41.6KB/초에 그쳤습니다.


연구원들은 호스트와 GPA(게스트 실제 주소) 사이의 변환 과정을 분리하여 SEVered 공격을 완화시키기 위해 AMD가 취할 수 있는 몇 가지 단계를 제안했습니다.


SEVered에 대한 자세한 내용은 여기에서 확인하실 수 있습니다.






참고 :

https://thehackernews.com/2018/05/amd-sev-encryption.html

https://arxiv.org/pdf/1805.09604.pdf

티스토리 방명록 작성
name password homepage