KVM의 취약점으로 인해 AMD 프로세서의 게스트 시스템 외부에서 코드 실행이 가능합니다.

Google Project Zero 팀의 연구원은 며칠 전 블로그 게시물에서 KVM 하이퍼 바이저에서 취약점 (CVE-2021-29657)을 식별했습니다. (x86, ARM, PowerPC 및 S / 390에서 하드웨어 가속 가상화를 지원하는 오픈 소스 Linux 기반 하이퍼 바이저) 게스트 시스템의 격리를 방지 할 수 있습니다. 호스트 환경 측에서 코드를 실행하십시오.

게시물은 문제가 Linux 커널 5.10-rc1에서 v5.12-rc6까지 매니페스트, 즉, 커널 5.10 및 5.11 만 다룹니다. (대부분의 안정적인 분포 분기는 문제의 영향을받지 않았습니다.) AMD SVM (Secure Virtual Machine) 확장을 사용하여 구현되고 게스트 시스템의 중첩 된 시작을 허용하는 nested_svm_vmrun 메커니즘에 문제가 있습니다.

이 블로그 게시물에서는 AMD 전용 KVM 코드의 취약점을 설명하고이 버그가 어떻게 완전한 가상 머신 탈출로 바뀔 수 있는지 논의합니다. 내가 아는 한, 이것은 QEMU와 같은 사용자 공간 구성 요소의 버그에 의존하지 않는 KVM 게스트-호스트 브레이크 아웃의 최초 공개 글입니다.

논의 된 버그는 CVE-2021-29657이 할당되었으며 커널 버전 v5.10-rc1에서 v5.12-rc6까지 영향을 미치며 2021 년 5.10 월 말에 패치되었습니다. 버그는 v5에서만 악용 될 수 있고 약 XNUMX 개월 후에 발견되었으므로 대부분의 실제 KVM 배포는 영향을받지 않아야합니다. 나는 여전히 문제가 KVM에 대한 안정적인 게스트-호스트 이스케이프를 구축하는 데 필요한 작업에서 흥미로운 사례 연구라고 생각하며이 기사가 하이퍼 바이저 타협이 이론적 인 문제가 아니라는 사례를 만들 수 있기를 바랍니다.

연구원들은이 기능의 올바른 구현을 위해 하이퍼 바이저는 모든 SVM 명령을 차단해야합니다. 게스트 시스템에서 실행 동작을 에뮬레이트하고 상태를 하드웨어와 동기화합니다. 꽤 어려운 작업입니다.

제안 된 KVM 구현을 분석 한 후 연구원들은MSR의 내용을 허용하는 논리적 오류가 발생했습니다. (모델 별 등록) 호스트 게스트 시스템의 영향을 받다, 호스트 수준에서 코드를 실행하는 데 사용할 수 있습니다.

특히 두 번째 중첩 수준 게스트 (다른 ​​게스트에서 시작된 L2)에서 VMRUN 작업을 실행하면 nested_svm_vmrun에 대한 두 번째 호출이 발생하고 svm-> nested.hsave 구조가 손상됩니다.이 구조는 L2 게스트 시스템의 vmcb 데이터와 중첩됩니다. .

결과적으로 L2 게스트 레벨에서 svm-> nested.msrpm 구조의 메모리를 해제 할 수있는 상황이 발생합니다.이 구조는 계속 사용되지만 MSR 비트를 저장하고 호스트의 MSR에 액세스합니다. 환경.

예를 들어, 게스트의 메모리는 사용자 공간 프로세스에 할당 된 메모리를 덤프하여 검사 할 수 있거나 CPU 시간 및 메모리에 대한 리소스 제한을 쉽게 적용 할 수 있습니다. 

또한 KVM은 장치 에뮬레이션과 관련된 대부분의 작업을 사용자 공간 구성 요소로 오프로드 할 수 있습니다.

이 문제는 AMD 프로세서 (kvm-amd.ko 모듈)가있는 시스템에서 사용되는 코드에 존재하며 Intel 프로세서에는 나타나지 않습니다.

 인터럽트 처리와 관련된 몇 가지 성능에 민감한 장치 외에 가상 디스크, 네트워크 또는 GPU 액세스를 제공하기위한 모든 복잡한 저수준 코드를 사용자 공간에 배포 할 수 있습니다.  

연구자들은 문제를 설명하는 것 외에도 그들은 또한 익스플로잇의 작동하는 프로토 타입을 준비했습니다. AMD Epyc 7351P 프로세서와 Linux 5.10 커널이있는 시스템의 호스트 환경에서 게스트 환경에서 루트 셸을 실행할 수 있습니다.

관찰되는 것은 이것은 KVM 하이퍼 바이저의 취약점을 호스트하는 첫 번째 게스트입니다. QEMU와 같은 사용자 공간 구성 요소의 버그와 관련이 없습니다. 수정은 XNUMX 월 말에 커널에서 승인되었습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면 메모에 대한 자세한 내용을 확인할 수 있습니다. 다음 링크에서.


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.