VirtualBox 시스템을 완전히 격리


17

VirtualBox를 사용하여 호스트 컴퓨터에 액세스 할 수없는 소프트웨어를 설치하고 싶습니다 (또는 그 반대). 그러나 제로 데이 익스플로잇을 실행하고 그들이 할 수있는 일을 보는 것과 같이 "위험한"것을 시도 할 가능성도 생각합니다.

호스트에서 가상 머신을 얼마나 격리시킬 수 있습니까? 게스트와 호스트간에 방화벽을 설정 해야합니까 (또는 할 수 있습니까?)? 게스트 애드온은 보안 상 위험합니까? 공유 디렉토리는 어떻습니까?

현재 게스트 머신은 GNU / Linux 데비안 테스트를 실행하고 있습니다.


7
자세한 보안 질문을하려면 Stack Exchange에 정보 보안 그룹이 있습니다.
cybernard

@cybernard를 두 번째로 여기에. 약간의 육체 화를 거친 후에는 이것이 Security.SE에 대해 매우 적절한 질문이 될 것입니다. 복제본이 아니라고 가정합니다 (커뮤니티 성장에 따라 두려울 수도 있습니다).
0xdd

1
VirtualBox는 순수한 사용자 공간 구현보다 훨씬 높은 커널 모듈을 통해 시스템과 상호 작용하므로 사용하지 않아야합니다. 그리고 특히 가상 박스 커널 모듈은 커널 개발자들에 의해 쓰레기 로 간주됩니다 . 더 나은 선택은 qemu와 같이 권한이없는 사용자로 실행되는 일부 에뮬레이터입니다.이 에뮬레이터는 해당 대상에 대한 네트워크 액세스를 방해하는 흥미로운 규칙 및 방화벽 규칙에 액세스 할 수 없습니다. (VirtualBox에 대한 질문에 직접 답변하지 않으므로 의견으로 게시)
allo

답변:


36

나는이 질문이 매우 광범위하고 독창적 인 연구를 거의 보여주지 않으며,이 답변이 그러한 유형의 질문을 장려하는 것으로 여겨져서는 안된다는 것부터 시작하겠습니다. 대신이 답변은 맬웨어 분석으로 시작하는 사람들에게 매우 기본적인 안전 팁을 제공하기를 희망합니다.

알려진 이전에 검색된 맬웨어를 실행하고 있다는 가정하에 환경을 격리하는 방법은 맬웨어의 기능에 따라 크게 다릅니다. 에 적용되는 일부 일반 규칙 대부분의 현대적인 악성 코드에 수 있습니다 :

  • 인터넷에서 VM을 분리하십시오. 이는 게스트 컴퓨터에 인터페이스 전달을 설정하지 않는 것만 큼 간단 할 수 있으며 맬웨어가 예상치 못하게 작동하도록 지시 할 수있는 잠재적 명령 및 제어 노드와 통신하지 못하게합니다.

  • 적절한 하이퍼 바이저를 사용하십시오. VirtualBox, HyperV, QEMU 및 macOS를 포함하여 시장에 몇 가지 주요 사항이 있습니다 Hypervisor.framework. 이들 중 일부는 맬웨어의 공격을 적극적으로 받고 있으며 버전에 따라 게스트 컴퓨터에서 침입하는 맬웨어에 취약 할 수 있습니다.

  • 게스트 추가 또는 다른 플랫폼의 아날로그를 설치하지 마십시오 . 이러한 종류의 소프트웨어의 문자 적 ​​목표는 게스트와 호스트 사이의 통합을 설정하여 이들 사이의 분리를 효과적으로 약화시키는 것입니다. 나는 악성 코드 연구자가 아니지만, 이런 종류의 표면을 겨냥한 악성 코드가 없다면 놀랄 것입니다.

일부 요점을 직접 해결하려면 :

호스트에서 가상 머신을 얼마나 격리시킬 수 있습니까?

이 시점에서 VM은 완전히 격리 될 수 있지만 일부 기능은 하이퍼 바이저 보호 기능이 거의 없어도 호스트를 직접 직접 통과해야합니다. VirtualBox와 같은 대부분의 비 VMVM 가상 머신 은 호스트 OS와 커널을 공유하지 않습니다 . 이것만으로도 수많은 익스플로잇 클래스에 대한 차단 역할을하며, 호스트 커널에 대해 임의의 syscall을 실행하는 기능을 차단합니다.

VM에는 여전히 호스트 시스템의 하드웨어 내에 프로세스 공간이 있지만, 현대 OS는 적절한 프로세스 공간 격리를 제공하기 때문에 일반적 으로 위험 하지는 않지만 , 행 해머 와 같은 매우 낮은 수준의 공격을 악용하는 데 여전히 사용될 수 있습니다 . 여기서 프로세스는 소유하지 않은 인접 메모리 블록을 읽을 수있을 때까지 프로세스가 특정 방식으로 메모리에 순차적으로 기록되므로 프로세스 간 메모리 누수가 효과적으로 발생합니다.

또한 본질적으로 모든 종류의 I / O를 수행하려는 경우 격리가 다소 사라지는 경향이 있습니다. 입력 및 출력은 반드시 통과를 의미하며 호스트 작업을 수행하는 데 활용할 수있는 공격 영역을 노출시킵니다. 여기에는 네트워크 패스 스루와 같은 마우스 및 키보드와 같은 HID 패스 스루가 포함됩니다. 비록 일반적으로 VM에서 I / O 패스 스루가 얼마나 잘 구현되었는지에 달려 있습니다.

게스트와 호스트간에 방화벽을 설정해야합니까 (또는 할 수 있습니까?)?

그것은 달려 있지만 일반적으로 나쁜 생각은 아닙니다 . 대부분의 주요 플랫폼은 하이퍼 바이저 수준의 방화벽을 지원합니다. 이들은 대부분에서 차례로 당신의 호스트 시스템에 방화벽, 등의 허용으로 가장에서 당신의 LAN 또는 VLAN의 방화벽으로 허용한다. 가상 네트워크 인터페이스의 연결을 끊어 네트워크 액세스를 완전히 차단하는 대신이 기능을 활용하려면 선택한 멀웨어가 대상으로하는 포트와 호스트를 조사한 후 그 위치로 이동하는 것이 좋습니다.

게스트 애드온은 보안 상 위험합니까?

. 호스트 시스템과 게스트 시스템 간의 모든 종류의 통합을 허용하며 열려있는 항목을 볼 수있는 개방형 사양을 항상 제공하지는 않습니다. 위 참조.

공유 디렉토리는 어떻습니까?

그것은 당신이 어떻게하고 있는지에 달려 있지만, 종종 나쁜 생각 입니다. 많은 하이퍼 바이저는 루트가 해당 디렉토리에있는 게스트 머신 내에 마운트 된 가상 드라이브를 작성하여이를 수행합니다. 프레임 워크마다 약간 다를 수있는 메커니즘의 구현에 따라 테스트하려는 맬웨어에 따라 안전하거나 안전하지 않을 수 있습니다.


내 우려는 당신이 이것에 대해 거의 연구를 수행하지 않았으며 결국 당신의 컴퓨터 나 데이터를 손상시킬 수 있다는 것입니다. 계속하기 전에 일반적인 OS (KVM)의 다른 격리 메커니즘, 상위 가상화 프레임 워크 ( ), 컨테이너 ( ) 및 chroot메커니즘 ( )과 이름 을 통합하는 방법을 살펴 보는 것이 좋습니다. 몇), 각각이 적절할 때, 그들이 할 수있는 것과 할 수없는 것. 이 시점에서 적절하게 격리 된 환경에서 맬웨어를 안전하게 처리 할 수 ​​있는지 판단 할 수 있습니다.

마지막으로, 노련한 보안 연구원이 아니라면이 답변이 노련한 보안 연구원을 목표로하지 않는 한, 새로운 또는 알려지지 않은 맬웨어로 작업하려고 시도해서는 안됩니다. 악의적 인 행위자는 자신이 악용하는 것과 악용하는 방법에 있어 매우 창의적입니다. 이에 대한 아이디어를 얻으려면 사회 공학에 중점을 두지 않거나 기계적 수단을 통해 물리적 접근을 얻지 않은 최근의 DEFCON 대화를 살펴보십시오 .


3
KVM과 VirtualBox / VMWare / 사이에 격리 측면에서 큰 차이가 없다고 생각합니다. 모두 커널 모듈 지원이 필요하고 하드웨어 지원 가상화를 사용하기 때문입니다. 용기 / 도커를 의미했을까요? 그러나 순수한 qemu 익스플로잇은 사용자 공간에만있을 것이지만 요즘에는 kvm보다 훨씬 덜 정밀한 조사를 받았지만 (플로피 드라이브 익스플로잇 참조) kvm이나 qemu는 커널에 직접 syscall을 허용하지 않지만 간접적으로 (가상화 또는 반 가상화를 통해) 허용합니다. .
Maciej Piechotka

@MaciejPiechotka 내 실수는 잘못되었다. 나는 대답을 업데이트했지만 이것을 가져 주셔서 감사합니다!
0xdd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.