Isolar completamente uma máquina VirtualBox


17

Gostaria de usar o VirtualBox para instalar algum software que não deve ter acesso ao meu computador host (e vice-versa). No entanto, também vejo a possibilidade de tentar coisas mais "perigosas", como tentar executar explorações de dia zero e ver o que elas podem fazer.

Quão isolada pode ser feita uma máquina virtual do host? Devo (ou posso ?) Configurar um firewall entre o convidado e o host? Os complementos de convidado são um risco à segurança? E os diretórios compartilhados?

No momento, a máquina convidada está executando o teste do GNU / Linux Debian.


7
O Stack Exchange possui um grupo de Segurança da Informação se você quiser fazer perguntas detalhadas sobre segurança.
cybernard

Destacando @cybernard aqui. Após um pouco de aprimoramento, essa seria uma pergunta extremamente apropriada para o Security.SE, supondo que não seja uma duplicata (que eu receio que seja, dado o crescimento da comunidade).
0xdd 5/04

1
Você não deve usar o VirtualBox, porque ele interage com seu sistema através de um módulo do kernel, que é um risco muito maior do que as implementações puras do espaço do usuário. E especialmente o módulo do kernel da caixa virtual é considerado uma porcaria pelos desenvolvedores do kernel. Uma escolha melhor é um emulador como o qemu sendo executado como um usuário sem privilégios, que não tem acesso a nada de interessante e regras de firewall que impedem o acesso à rede para esse usuário. (Publicação como comentário uma vez que não responder à pergunta sobre VirtualBox diretamente)
allo

Respostas:


36

Começarei dizendo que esta pergunta é muito ampla e mostra muito pouca pesquisa original, e que essa resposta não deve ser vista como um incentivo para esse tipo de pergunta. Em vez disso, essa resposta espera fornecer algumas dicas de segurança extremamente básicas para as pessoas que estão começando com a análise de malware.

Trabalhando sob a suposição de que você está executando um malware conhecido, pesquisado anteriormente, como você isola seu ambiente depende muito do que esse malware é capaz. Algumas regras gerais que se aplicam ao malware mais moderno podem ser:

  • Isole sua VM da Internet. Isso pode ser tão simples quanto não configurar o encaminhamento de interface para a máquina convidada e impede que o malware se comunique com possíveis nós de comando e controle que possam direcioná-lo a agir de forma imprevisível.

  • Use um hypervisor apropriado. Existem alguns dos principais no mercado, incluindo VirtualBox, HyperV, QEMU e macOS Hypervisor.framework, para citar alguns; alguns deles são ativamente direcionados por malware e, dependendo da versão, podem estar vulneráveis ​​ao rompimento do malware na máquina convidada.

  • Definitivamente, não instale adições de convidados ou qualquer outra plataforma analógica. O objetivo literal desse tipo de software é estabelecer a integração entre o convidado e o host, enfraquecendo efetivamente a separação entre eles. Eu não sou um pesquisador de malware, mas ficaria surpreso se não houvesse malware que vise especificamente esse tipo de superfície.

Para abordar alguns de seus pontos diretamente:

Quão isolada pode ser feita uma máquina virtual do host?

Nesse ponto, uma VM pode ser completamente isolada, mas algumas funções ainda precisam passar pelo host mais ou menos diretamente, com pouca proteção de hipervisor. Logo de cara, a maioria das máquinas virtuais que não são da KVM (como o VirtualBox) não compartilham um kernel com o sistema operacional host. Isso por si só serve como bloqueador de várias classes de exploração, mais notavelmente bloqueando a capacidade de executar chamadas arbitrárias no kernel do host (com o notável asterisco de que uma implementação de camada de VM quebrada pode permitir que o malware contorne isso de maneiras menos óbvias).

Porém, sua VM ainda possui um espaço de processo no hardware da máquina host - e, embora isso geralmente não seja um risco, porque os sistemas operacionais modernos oferecem um isolamento decente do espaço de processo, ainda pode ser usado para explorar ataques de nível extremamente baixo, como um martelo de linha , onde um processo grava seqüencialmente na memória de uma maneira específica até poder ler blocos de memória adjacentes que não são seus - permitindo efetivamente o vazamento de memória entre processos.

Também é importante notar que o isolamento tende a desaparecer um pouco quando você deseja fazer essencialmente qualquer tipo de E / S: entrada e saída significam necessariamente passagem, que expõe uma superfície de ataque que pode ser aproveitada para executar ações do host. Isso inclui a passagem HID como mouse e teclado, além de coisas como a passagem de rede - embora isso geralmente dependa de quão bem implementada a passagem de E / S é implementada na sua VM.

Devo (ou posso?) Configurar um firewall entre o convidado e o host?

Depende, mas geralmente não é uma má idéia . A maioria das principais plataformas suporta firewalls no nível do hipervisor. Eles são no máximo tão permissivos quanto o firewall em sua máquina host, o que é, no entanto , tão permissivo quanto o firewall em sua LAN ou VLAN. Se você deseja aproveitar isso em vez de interromper totalmente o acesso à rede, desconectando as interfaces de rede virtual, recomendo fazer uma pesquisa sobre quais portas e hospeda os destinos de malware selecionados e a partir daí.

Os complementos de convidado são um risco à segurança?

Sim . Eles permitem todos os tipos de integrações entre a máquina host e a máquina convidada e nem sempre apresentam especificações abertas, onde é possível ver o que está sendo aberto; Veja acima.

E os diretórios compartilhados?

Isso depende de como você está fazendo isso, mas geralmente é uma má ideia . Muitos hipervisores fazem isso criando uma unidade virtual montada na máquina convidada cuja raiz está nesse diretório. Dependendo da implementação desse mecanismo, que pode variar um pouco entre as estruturas, você pode ou não estar seguro, dependendo do malware que está tentando testar.


Minha preocupação é que você tenha realizado muito pouca pesquisa sobre isso e que possa acabar prejudicando sua máquina ou seus dados. Antes de continuar, aconselho a analisar os diferentes mecanismos de isolamento em sistemas operacionais comuns (KVMs, como eles se integram a estruturas de virtualização de nível superior ( ), contêineres ( ) e o chrootmecanismo ( ) para nomear alguns), quando cada um é apropriado e o que eles podem ou não fazer. Nesse ponto, você poderá avaliar melhor se pode ou não brincar com malware em um ambiente adequadamente isolado.

Por fim, você não deve tentar trabalhar com malware novo ou pouco conhecido (a menos que seja um pesquisador de segurança experiente, mas essa resposta não se destine a pesquisadores de segurança experientes). Atores maliciosos são extremamente criativos quando se trata do que eles exploram e de como o exploram. Para ter uma idéia disso, dê uma olhada nas conversas recentes do DEFCON que não estão centradas na engenharia social ou no acesso físico por meios mecânicos.


3
Não acho que exista muita diferença em termos de isolamento, em princípio, entre o KVM e o VirtualBox / VMWare / ..., pois todos eles exigem suporte ao módulo do kernel e usam virtualização assistida por hardware. Talvez você quis dizer contêineres / estivadores? Dito isso, explorações de qemu discutivelmente puras só estariam no espaço do usuário, mas atualmente elas provavelmente têm muito menos escrutínio que kvm (veja também exploração de unidades de disquete), mas nem kvm nem qemu permitem syscalls diretos no kernel, mas permitem indiretamente (via virtualização ou para-virtualização) .
Maciej Piechotka

@MaciejPiechotka meu erro, isso foi errado. Atualizei a resposta, mas obrigado por trazer isso à tona!
0xdd 06/04
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.