일부 소프트웨어에는 가상 머신에서 실행 중인지 확인하는 테스트가 포함되어 있습니다.
"죄송합니다. 이 애플리케이션은 가상 머신에서 실행할 수 없습니다."와 같은 경고 메시지를 보는 것은 매우 불쾌합니다. 소프트웨어를 중지하십시오!
이러한 테스트를 무시해야 하는 법적 이유는 많습니다. 또한 이러한 제한 사항은 (대부분의 경우) 사용자 라이센스 계약에 명시되어 있지 않습니다.
그렇다면... 가상 머신이 프로그램을 실행하고 있다는 사실을 어떻게 숨길 수 있을까요? 나는 이 스캔을 수행하는 프로그램이 실행 중인 VM을 성공적으로 감지하는 것을 원하지 않습니다.
Hyper-V와 함께 VPS(Virtual Private Server)를 사용하고 있습니다. 저는 Hyper-V 관리자가 아니라 이 VPS에 설치된 운영 체제(Windows 2003)의 관리자입니다.
답변1
간단히 말해서, 나는 당신이 할 수 없다고 생각합니다. 맬웨어를 확인하기 위해 코드를 실행하기 위해 VM을 사용하는 시스템에서 감지되는 것을 피하기 위해 맬웨어가 VM에서 실행 중인지 감지하려고 하는 맬웨어에 대한 논의입니다.
몇 가지 빠른 참조는 다음과 같습니다.VRT: 악성코드는 가상 세계와 현실 세계의 차이를 어떻게 알 수 있나요?그리고VM 인식 악성 코드의 치명적인 선물.
답변2
내가 아는 한, 사용 중인 가상화 종류에 따라 다릅니다.
몇 가지 사항(예: MAC 주소 변경, 게스트 추가 제거)을 확실히 완화할 수 있다고 말씀드리겠습니다.
즉, 전체 가상화를 실행하는 경우 하이퍼바이저는 게스트에 대한 하드웨어를 에뮬레이트합니다. 에뮬레이트된 CPU에는 조만간 표시되어서는 안 될 때 다른 속도를 표시하는 자체(소프트웨어) 시계가 있습니다.
이는 어떤 식으로든 복구할 수 없는 문제 중 하나이며 프로그램(주로 맬웨어)은 해당 프로그램이 VM에서 실행되고 있음을 알게 됩니다.
폐쇄된 환경에서 실제 하드웨어를 사용하는 반가상화를 사용하면 이를 바로 얻을 수 있습니다.