Gostaria de usar o VirtualBox para instalar algum software que não deveria ter acesso ao meu computador host (e vice-versa). No entanto, também imagino a possibilidade de tentar coisas mais "perigosas", como tentar executar exploits de dia zero e ver o que eles podem fazer.
Quão isolada uma máquina virtual pode ser feita do host? Devo (ou posso ?) configurar um firewall entre o convidado e o host? Os complementos de convidados são um risco de segurança? E os diretórios compartilhados?
No momento, a máquina convidada está executando o teste GNU/Linux Debian.
Vou começar dizendo que essa pergunta é muito ampla e mostra muito pouca pesquisa original, e essa resposta não deve ser vista como um incentivo a esse tipo de pergunta. Em vez disso, esta resposta espera fornecer algumas dicas de segurança extremamente básicas para 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 e pesquisado anteriormente, a forma como você isola seu ambiente depende muito do que esse malware é capaz. Algumas regras gerais que se aplicam à maioria dos malwares modernos 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 impedir que o malware se comunique com quaisquer nós de comando e controle em potencial que possam direcioná-lo para agir de forma imprevisível.
Use um hipervisor apropriado. Existem alguns dos principais no mercado, incluindo VirtualBox, HyperV, QEMU e macOS's
Hypervisor.framework
, para citar alguns; alguns deles são ativamente visados por malware e, dependendo da versão, podem ser vulneráveis ao malware que sai da máquina convidada.Definitivamente, não instale adições de convidados ou algum análogo de outra plataforma. O objetivo literal desse tipo de software é estabelecer a integração entre o convidado e o host, enfraquecendo efetivamente a separação entre eles. Não sou um pesquisador de malware, mas ficaria surpreso se não houvesse um malware direcionado especificamente para esse tipo de superfície.
Para abordar alguns de seus pontos diretamente:
Neste ponto, uma VM pode ser totalmente isolada, mas algumas funções ainda precisam passar pelo host mais ou menos diretamente, com pouca proteção do hipervisor. Logo de cara, a maioria das máquinas virtuais não KVM (como o VirtualBox) não compartilhará um kernel com o sistema operacional host. Isso por si só serve como um bloqueador contra várias classes de exploração, principalmente bloqueando a capacidade de executar syscalls arbitrárias contra o 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).
No entanto, sua VM ainda tem um espaço de processo dentro do hardware da máquina host - e embora isso geralmente não seja um risco porque os sistemas operacionais modernos fornecem isolamento de espaço de processo decente, ele ainda pode ser usado para explorar ataques de nível extremamente baixo, como um martelo de linha , onde um processo grava sequencialmente na memória de uma maneira específica até que possa ler blocos de memória adjacentes que não possui - permitindo efetivamente o vazamento de memória entre os processos.
Também vale a pena notar que o isolamento tende a desaparecer um pouco quando você deseja fazer essencialmente qualquer tipo de E/S: entrada e saída necessariamente significam passagem, que expõe uma superfície de ataque que pode ser aproveitada para executar ações de host. Isso inclui passagem HID como um mouse e teclado, bem como coisas como passagem de rede - embora isso geralmente dependa de quão bem implementado a passagem de E/S é implementada em sua VM.
Depende, mas geralmente não é uma má ideia . A maioria das principais plataformas oferece suporte a firewalls no nível do hipervisor. Eles são no máximo tão permissivos quanto o firewall em sua máquina host, que por sua vez é tão permissivo quanto o firewall em sua LAN ou VLAN. Se você quiser aproveitar isso em vez de cortar totalmente o acesso à rede desconectando as interfaces de rede virtual, recomendo fazer uma pesquisa sobre quais portas e hosts seus alvos de malware selecionados e partir daí.
Sim . Eles permitem todos os tipos de integrações entre sua máquina host e a máquina convidada e nem sempre apresentam especificações abertas onde você pode ver o que está sendo aberto; Veja acima.
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 de qual malware está tentando testar.
Minha preocupação é que você fez muito pouca pesquisa sobre isso e pode acabar prejudicando sua máquina ou seus dados. Antes de continuar, aconselho você a examinar os diferentes mecanismos de isolamento em sistemas operacionais comuns (KVMs, como eles se integram a estruturas de virtualização de nível superior ( virtual-machine ), contêineres ( container ) e o
chroot
mecanismo ( chroot ) para nomear alguns), quando cada um é apropriado e o que eles podem ou não fazer. Nesse ponto, você poderá julgar melhor se pode ou não brincar com malware com segurança 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 esta resposta não se destina a pesquisadores de segurança experientes). Atores mal-intencionados são extremamente criativos quando se trata do que exploram e como o exploram. Para ter uma ideia disso, dê uma olhada nas palestras recentes do DEFCON que não estão centradas na engenharia social ou na obtenção de acesso físico por meios mecânicos.