Eu estava brincando com uma máquina virtual e de alguma forma me encontrei em um site malicioso (na máquina virtual → Ubuntu, Firefox). O que eu absolutamente não esperava era o Avast Antivirus na minha máquina host enviando as habituais notificações de "Ameaça bloqueada".
A fonte da ameaça de acordo com a Avast foi o site que eu estava visitando na minha VM. Como isso é possível? Eu pensei que as VMs deveriam ser totalmente colocadas em sandbox da máquina host. Na verdade, eu queria testar um software potencialmente malicioso em uma VM antes de executá-lo em minha máquina host. O que está acontecendo aqui?
A VM não pode ser totalmente isolada, pois não possui hardware próprio. Está usando os recursos de hardware do host, como disco, CPU, GPU e o adaptador de rede.
Todo esse hardware é usado pela VM via VirtualBox e seus drivers virtuais.
O Avast Antivirus está monitorando o adaptador de rede do host, para que possa monitorar todas as solicitações e respostas, quando vindas do host ou da VM. Como ele é executado no host, não na VM, você verá suas notificações e ações no host.
Como o @harrymc disse, isso se deve à configuração da rede.
Você provavelmente tem o adaptador de rede no VirtualBox configurado como NAT. Dependendo de como o Avast funciona (disclaimer: eu não o executo), você pode tentar:
Usei o último em testes de rede e a máquina host não conseguiu interferir no tráfego da rede.
Na verdade, eu mesmo já vi isso. Parte do problema é que a VM está sendo executada no hardware do host, sim, mas, como mencionado, o antivírus não deve ser capaz de ver o tráfego HTTPS (se o site infectado não for apenas HTTP).
É aí que acontece a parte interessante. O Avast Antivirus em particular, mas também várias outras ferramentas desse tipo, instalam um proxy man-in-the-middle para ler até mesmo o tráfego da Web criptografado em caso de vírus. (A Avast também usa essas informações para realizar pesquisas sobre como as pessoas usam a Internet.) Isso também funciona em toda a conexão de rede, não apenas no seu navegador (o que faz sentido se você quiser verificar outros protocolos ou serviços).
Uma grande ressalva (além da preocupação com a privacidade) é que, em muitas dessas implementações, se o certificado do site original não existir ou estiver expirado, o próprio certificado do programa antivírus fará com que o site ainda pareça "seguro" mesmo que sua conexão através da Internet mais ampla não será.
No que diz respeito ao escape do sandbox, no entanto, várias ações dentro do Virtualbox travaram todo o meu sistema operacional antes em várias ocasiões. Este não é um escape de sandbox (ainda), mas esse tipo de BSoD pode ser um sinal de que algum código de design questionável está em execução e pode ser explorado para fazer um escape de sandbox.