하이퍼 바이저가 RDRAND 명령을 활용하는 게스트 VM의 능력을 제거하고자하는 경우, 어떤 단계가 달성하기 위해 수행해야하는이게스트 VM이 RDRAND 명령어를 활용하는 기능을 제거하는 방법은 무엇입니까?
0
A
답변
1
예, 인텔 VMX 하드웨어 가상화는 VM에 rdrand
및 rdseed
를 만들기위한 하드웨어 지원이 출구. 호스트 가하는 경우에도 손님이 RDSEED
을 지원하도록 구성되지 않을 수 있습니다
:
예를 들어, KVM (내장 된 리눅스 하이퍼 바이저를) 패치에 대한 discussion on the Linux kernel mailing list를 참조하십시오. 게스트가
RDSEED
을 지원하지 않으면 명령어를 가로 채고 #UD를 합성합니다.RDSEED
의 "allowed-1"비트를IA32_VMX_PROCBASED_CTLS2
MSR에서 으로 끝내십시오.
관련 VMX ctrl은 SECONDARY_EXEC_RDRAND_EXITING
및 SECONDARY_EXEC_RDSEED_EXITING
입니다. (this patch에서 KVM 소스 코드의 이름을 변경하여 x86 Software Development Manuals (SDM)에서 Intel이 무엇을 호출하는지 알려줍니다.
방금 KVM 관련 링크를 사용했습니다. 그 이유는 HW 지원이 있는지 전혀 확인하지 않았기 때문입니다.
@MichaelPetch에서 cpiud를 에뮬레이트하고 rdrand 기능을 제거하면 어떻게 될까요? – raxx
@MichaelPetch : VMX와 같은 하드웨어 가상화는 선택적으로 CPUID에서 VM 탈출을 수행합니다. 그러나 실제로 CPUID 기능 플래그 대신 ISA 확장을 실제로 비활성화 할 수 있는지 확실하지 않습니다. CPUID에서 AVX를 비활성화하면 게스트 OS에서 지원하지 않으므로 AVX 명령어는 실제로 게스트에서 오류를 일으 킵니다. 그러나 RDRAND 또는 BMI2는 다릅니다. –
@PeterCordes : 하드웨어 지원 가상화 (예 : Intel-VT)에 대한 언급이 없기 때문에 잘못 가정했을 수도 있습니다. 이는 잘못된 가정 일 수 있으며 OP가 정리해야하는 것이어야합니다. –