Disposable VMs no Qubes OS oferecem uma abordagem altamente segura para neutralizar ameaças como spywares e malwares, especialmente em ataques zero-click. Essas máquinas virtuais descartáveis são projetadas para eliminar qualquer vestígio de software malicioso após cada reinicialização, garantindo que tanto os dados do usuário quanto os privilégios de root permaneçam protegidos. No entanto, é crucial entender que, ao usar uma disposable VM, é necessário tomar precauções ao abrir arquivos ou links, uma vez que a proteção durante a sessão não impede a possível captura de dados. Neste artigo, exploraremos como configurar e utilizar eficazmente as disposable VMs, abordando desde a criação personalizada até as melhores práticas de segurança para maximizar sua eficácia contra diversas ameaças cibernéticas.
Domine a default-dvm: disposable template padrão do Qubes
Quando você instala o Qubes OS, tem a opção de instalar a default-dvm, que é um template para criar disposable VMs. Um erro comum entre usuários iniciantes do Qubes é acreditar que a default-dvm funciona como uma disposable VM, onde tudo que for criado e todos os rastros gerados serão voláteis, tanto no nível de root quanto no nível de usuário normal. Porém, isso não é verdade.
Ao iniciar a default-dvm normalmente e abrir programas pelo terminal, como se faz com uma appVM, você a estaria usando como uma appVM regular, e todos os rastros, arquivos e programas locais permanecem mesmo após o reinício da VM. Isso se deve ao fato de que a default-dvm é apenas um template para disposable VMs.
As disposable VMs criadas a partir do template default-dvm são 100% voláteis. Isso significa que, se um malware ou spyware for instalado, seja no nível de root ou local, ele não persistirá após o reinício da VM. Tudo será apagado, retornando à condição original do template.
Portanto, você deve acessar a default-dvm e instalar programas a nível de usuário normal, como o Telegram, na pasta /home/seu_usuario, se desejar personalizar essa VM. Se você instalar o Telegram na default-dvm, todas as disposable VMs criadas a partir desse template também terão o Telegram instalado, assim como ocorre com os templates em relação às appVMs.
O Qubes automatiza o uso da default-dvm com atalhos pelo botão direito do mouse e pelo Qubes Application Menu ao selecionar o default-dvm. Para abrir arquivos em disposable VMs criadas com base no default-dvm, clique com o botão direito do mouse no arquivo que deseja abrir ou editar e escolha:
Uma disposable VM baseada no default-dvm será criada apenas para abrir ou visualizar esse arquivo. Isso agiliza o processo, pois não é necessário criar uma nova disposable VM, iniciar, e mover o arquivo para ela antes de abri-lo com segurança. Com esse atalho, tudo está otimizado! Você só precisa ter a default-dvm padrão do Qubes.
Para abrir o Firefox ou outros programas da default-dvm em disposable VMs, vá ao canto superior esquerdo no Qubes Application Menu, selecione default-dvm, e escolha o Firefox. Isso abrirá uma disposable VM com o navegador. O mesmo procedimento pode ser realizado para todos os outros programas disponíveis na default-dvm!
A mesma lógica se aplica ao disposable template baseado no Whonix Workstation, exceto que o Qubes não possui atalhos pelo botão direito do mouse para abrir ou editar arquivos em disposable VMs criadas com base no whonix-workstation-17-dvm (17 para o Qubes 4.2, que é a versão abordada neste artigo).
Para abrir programas do Whonix Workstation em uma disposable VM, a lógica permanece a mesma. Para usar o Tor do Whonix em uma disposable VM, siga este procedimento:
Uma disposable VM baseada no disposable template do Whonix Workstation será aberta, e tudo será 100% volátil! O mesmo se aplica a outros programas da VM!
Para configurar a default-dvm para ser roteada através do Whonix ou de uma VPN como gateway isolado, siga estas etapas:
Disposable VMs são consideradas o setup mais seguro por várias razões:
A desvantagem da disposable VM é que não é possível armazenar arquivos e novas configurações, pois tudo é apagado no desligamento ou reinício. Portanto, é necessário copiar qualquer arquivo gerado, como fotos, documentos e downloads, para outra appVM dedicada, que seja offline. Um exemplo é a Vault Offline, uma qube padrão para armazenar arquivos 100% offline.
Para operações sensíveis, é sempre preferível utilizar uma disposable VM e se dedicar a mover ou copiar os arquivos gerados para a qube Vault Offline. Essa precaução vale a pena em termos de segurança, evitando o uso de appVMs para tarefas potencialmente arriscadas!
Compartimentalização avançada que deve ser aplicada:
Uma Disposable VM para Twitter, outra para Telegram, outra para Simplex, outra para aplicativo de bancos, etc. É preciso aproveitar a estrutura do Qubes para compatimentalizar o máximo possível, minimizando os impactos de qualquer incidente!
Para criar uma Disposable VM, você precisa primeiro criar um template descartável ou usar um já existente. Já discutimos dois templates padrão no Qubes: default-dvm e whonix-workstation-17-dvm. Você pode criar Disposable VMs baseadas nessas templates para acessar todos os programas de uma vez, iniciando a Disposable VM e acessando manualmente os programas!
Um Disposable Template sempre será uma AppVM que, após criada, será designada para servir como template descartável. Vamos criar a AppVM antes:
No canto superior direito, vá em Qubes Domains, Open Qube Manager, New Qube, Name and Label: coloque o nome da AppVM, exemplo: appvm_aula Type: AppVM Template: escolha o desejado, como debian-xfce-12 Networking: escolha o que desejar, como sys-firewall ou sys-whonix (Tor gateway isolado) Na aba Advanced, em Storage Pool, escolha vm-pool. Outras configurações, como tamanho de RAM, podem ser personalizadas em Settings depois. Finalize... A appvm_aula estará pronta...
Agora vamos transformar a appvm_aula em um Disposable Template:
No canto superior direito, vá em Qubes Domains, Open Qube Manager, appvm_aula, Settings, Aba Advanced, Marque: Disposable Template. Pronto, agora a appvm_aula é um Disposable Template e poderemos criar Disposable VMs baseadas nela!
Usando a appvm_aula:
No canto superior esquerdo, vá em Open Qubes Application Menu, appvm_aula (o Disposable Template), Terminal ou Thunar (adicione em Settings se necessário). Ou no terminal, digite: thunar, que abrirá o navegador de arquivos.
Digamos que você deseja instalar um software local, como o Mullvad Browser, que você baixa compactado e fica tudo em uma pasta. Copie então a pasta do Mullvad Browser para /home/seu-usuario e agora a appvm_aula terá o Mullvad Browser, onde bastará entrar na pasta e executar o aplicativo pelo terminal!
No canto superior direito, vá em Qubes Domains, Open Qube Manager, New Qube, Name and Label: coloque o nome da AppVM, exemplo: appvm_aula-dvm Type: Disposable VM Template: appvm_aula (o Disposable Template criado) Networking: escolha o mesmo do Disposable Template. O Qubes recomenda e avisa se você selecionar networking diferente do template. Na aba Advanced, em Storage Pool, escolha vm-pool. Outras configurações, como tamanho de RAM, podem ser personalizadas em Settings depois. Finalize...
No canto superior esquerdo, vá em Open Application Menu, selecione appvm_aula-dvm e inicie o Firefox ou o terminal, etc. Pronto, você está usando a appvm_aula-dvm, que é uma Disposable VM. Tudo é 100% volátil!
Crie um Disposable Template chamado twitter-template.
Entre nele e faça login no Twitter com o navegador configurado para manter os cookies e as configurações, permitindo o acesso sem precisar logar novamente.
Crie uma Disposable VM baseada no Disposable Template twitter-template que foi criado e nomeie essa Disposable VM como twitter-dvm.
Sempre que acessar a twitter-dvm, ela será 100% volátil. O ideal é usá-la apenas para acessar o Twitter, evitando qualquer outro uso. A cada reinício da Disposable VM, ela retornará ao estado original do Disposable Template.
Esse mesmo setup pode ser aplicado para contas de e-mail, outras redes sociais, determinadas wallets de criptomoedas, etc., sempre compatimentalizando o máximo possível.
Considere o exemplo: a Disposable VM do seu Twitter com 1 milhão de inscritos (VM sensível). Se você abrir um arquivo ou clicar em um link que comprometa seu PC, ao desligar a VM, você aniquila o spyware, mas... durante o tempo em que a Disposable VM ficou ligada após a invasão, se o atacante tiver certos privilégios, ele poderá roubar os cookies do seu navegador com a sessão ativa, logar no seu Twitter sem a autenticação de dois fatores (2FA) e, talvez, roubar sua conta ou promover algum golpe, tendo poder para usar sua conta do Twitter!
O mesmo se aplica a contas de e-mail online usadas em navegadores que estão com a sessão ativa. É um erro abrir qualquer arquivo apenas porque você está usando uma Disposable VM que eliminará o spyware com o reboot, pois, antes do reboot, o invasor poderá causar grandes estragos!
Mesmo em Disposable VMs, sempre use Disposable VMs diferentes para abrir arquivos e links.
Você pode usar os atalhos para default-dvm para abrir arquivos clicando com o botão direito, com as opções:
Ou copie ou mova o arquivo para uma Qube offline, como a Vault Offline, que sempre fica offline, utilizando as opções:
Vamos dizer que você deseja que sua Disposable VM utilize o navegador Chromium. No entanto, o Chromium não pode ser instalado a nível local como o Telegram, Simplex ou Electron Bitcoin Wallet, que podem ser instalados. Ele só pode ser instalado a nível de root, usando um comando como sudo apt install chromium.
Portanto, precisamos criar um template personalizado que tenha o Chromium instalado!
No canto superior direito, vá em Qubes Domains, Open Qube Manager, Escolha um template, vamos escolher o debian-xfce-12 (Qubes 4.2). Clique com o botão direito do mouse, Clone. Nomeie para debian-xfce-12-chromium (será instalado o Chromium nele).
Ainda no Qube Manager, selecione debian-xfce-12-chromium.
No canto superior direito em Qubes Domains, em debian-xfce-12-chromium, selecione Terminal. No terminal, não é preciso configurar o template para conexão com a internet. Você pode usar o comando sudo apt para instalar e atualizar o template mesmo estando offline! Isso é feito por uma VM intermediária do Qubes que atualiza os templates mesmo quando eles estão offline.
No terminal, digite: sudo apt update sudo apt install chromium
Desligue o template personalizado com o Chromium. Agora, qualquer AppVM ou Disposable Template que selecionar o debian-xfce-12-chromium como template terá o Chromium disponível.
Agora crie o Disposable Template e o nomeie como chromium-disposable-template. Na criação, em Template, escolha debian-xfce-12-chromium.
Crie a Disposable VM chamada chromium-dvm, selecionando como Disposable Template o chromium-disposable-template, que tem como template o debian-xfce-12-chromium.
Agora, a Disposable VM chamada chromium-dvm é 100% volátil a nível de root e usuário, e tem o Chromium disponível!
Lembre-se de compartimentalizar o máximo possível, clonando o template original, que é o mais seguro, e criando outros, cada qual com um programa para ser usado em casos específicos de preferência. Quanto mais compartimentalizado, mais seguro será!
Os ataques zero-click são vulnerabilidades que podem ser exploradas apenas ao receber ou observar um dado, como uma mensagem, um convite de chamada ou até mesmo um registro de presença, sem que a vítima precise interagir, abrir um link ou instalar um arquivo.
A maioria dos zero-click divulgados para o WhatsApp envolve imagens, vídeos, PDFs e áudios, pois esses tipos de arquivos passam por rotinas de decodificação complexas, onde pequenos erros de validação podem ser explorados. Outros tipos de arquivos podem ser usados também. Contudo, vetores como chamadas, notificações e sincronizações também podem servir como portas de entrada.
Tenha o hábito de reiniciar a Disposable VM várias vezes ao dia!
Prevenção no uso de aplicativos de mensagem: ao receber PDFs, áudios, comprovantes de clientes e notificações, visualize, reinicie a VM e volte a usar! Como o vetor de ataque em aplicativos de mensagens é esse, é um bom hábito reiniciar a máquina após receber esses arquivos ou notificações.
Basta ter o hábito de reiniciar a Disposable VM várias vezes ao dia! Ao receber um PDF, foto ou fazer download de arquivos, mesmo estando em uma Disposable VM, crie outra e execute esses arquivos em outra Disposable VM.
Links e arquivos recebidos ou baixados: sempre abra um Disposable VM alternativo. Use o default-dvm para abrir arquivos e o atalho do botão direito do mouse para facilitar o processo. Para abertura de links, configure o default-dvm com o net qube para o Whonix, permitindo a abertura do link, se possível, pelo Tor, para manter sua atividade anônima. Para configurar, vá no canto superior direito em Qubes Domains, Open Qube Manager, selecione default-dvm, vá em Settings e, em Net Qube, selecione sys-whonix ou outra AppVM que tenha VPN ou proxy, criada como Net Qube para ser usada no login do Tor, caso o link censure a conexão Tor (avançado).
Você pode ainda criar Disposable VMs personalizadas e configurar da mesma forma o networking ou Net Qube para o sys-whonix, fazendo com que a AppVM seja roteada pelo Tor ou por outra Net Qube usando VPN ou proxy (avançado).
Na instalação, por padrão, é possível escolher essas AppVMs essenciais como Disposable VM. Se invadidas, principalmente sys-net e sys-firewall, que são as mais críticas, ao reiniciar as VMs, todas as modificações são obliteradas!
Muitos usuários do Qubes utilizam sys-firewall e sys-net como AppVMs normais. Porém, se invadidas, ao reiniciar, a invasão poderá continuar persistente se a invasão conseguir persistência a nível de usuário local, já que, no caso das AppVMs, essa persistência é mantida, e apenas os arquivos de root são voláteis. Por isso, é mais seguro usar sys-firewall e sys-net como Disposable VM, opção que pode ser escolhida durante a instalação. Sempre escolha essa opção para um maior hardening do Qubes!
Tutoriais avançados sobre Qubes OS: Clique aqui!
Qubes OS Espectro Proibido: Clique aqui!
Doar monero para ajudar no crescimento desse projeto: Clique aqui!