Recentemente, os desenvolvedores do gerenciador de senhas KeePass solucionaram uma vulnerabilidade que permitia que a senha mestra fosse recuperada da RAM, onde era armazenada em texto não criptografado. Da mesma forma, fragmentos de outras informações importantes, como mensagens recentes ou informações de bancos de dados corporativos, podem ser “raspados” da memória. Os desenvolvedores do KeePass rapidamente encontraram uma solução pouco ortodoxa para o problema, mas na maioria dos outros aplicativos, as senhas ainda são armazenadas na RAM em texto não criptografado, tornando-se um ponto fraco generalizado dos sistemas de segurança.
Um ataque de memória parece exótico e complexo, mas na verdade é bastante fácil para os cibercriminosos realizarem um ataque bem-sucedido – se os administradores não adotarem medidas especiais de proteção.
Como alguém pode acessar a memória do computador
Áreas de RAM usadas por diferentes aplicativos são amplamente isoladas umas das outras pelo sistema operacional e pelo hipervisor. Portanto, não é possível ler um fragmento de memória em que outro aplicativo esteja sendo executado. No entanto, processos com privilégios de kernel (sistema no Windows, root no *Linux) são capazes de fazer isso. E existem várias maneiras de escalar privilégios para o nível necessário, sendo as vulnerabilidades no sistema operacional ou nos drivers de dispositivo as mais comuns.
Outra maneira de entrar na RAM é por meio de um ataque DMA. Esse tipo de ataque é baseado no fato de que as interfaces de alta velocidade (USB 4.0, Thunderbolt, Firewire, etc.) têm acesso direto à memória para acelerar os processos de E/S. Um dispositivo especialmente projetado pode abusar desse recurso para ler quaisquer bits de memória. E esta não é uma ameaça hipotética; houve casos reais (FinFireWire).
Mas mesmo sem dispositivos sofisticados e vulnerabilidades, ainda é possível! Como o sistema operacional grava o conteúdo da RAM em arquivos, as informações contidas nele podem ser acessadas simplesmente pela leitura desses arquivos.
Existem vários tipos de arquivos no Windows:
- Arquivos de troca temporários (pagefile.sys)
- Arquivos de hibernação salvos (hiberfil.sys)
- Falha e depuração de despejo de memória (memory.dmp, minidump). E tais arquivos podem ser gerados manualmente.
No Linux, a troca e a hibernação usam uma partição de disco dedicada compartilhada para essas finalidades.
Conseguir passe livre para esses arquivos geralmente requer acesso físico ao computador, mas não é necessário conhecer as credenciais de login ou mesmo ligar a máquina. Simplesmente é possível remover o disco rígido e inseri-lo em outro computador.
Como prevenir um ataque na memória
Como existem várias maneiras de invadir a memória, você precisa se defender em vários níveis simultaneamente. Algumas proteções serão hostis ao usuário, portanto, antes de aplicá-las, considere os cenários de uso de cada computador em sua empresa e avalie os riscos.
Ações diretas
Vamos começar com algumas medidas relativamente simples, que são recomendadas em todos os casos, sem exceção.
- Implemente o princípio do menor privilégio. Todos os usuários devem trabalhar sem direitos de administrador. Mesmo os próprios aqueles profissionais que podem utilizá-los para desenvolver trabalhos preventivos e rotinas de atualização, só devem recebê-los quando necessário para essas operações.
- Instale sistemas de proteção em todos os computadores físicos e virtuais. As empresas devem ter sistemas EDR. Certifique-se de que as políticas de segurança evitem que os funcionários executem utilitários legítimos, mas potencialmente perigosos, que podem ser usados para escalonamento de privilégios e despejo de memória (Sysinternals, PowerShell, drivers redundantes/desatualizados, etc.).
- Mantenha o Sistema Operacional e todas as aplicações essenciais atualizadas.
- Certifique-se que o boot dos computadores esteja no modo UEFI, e não na BIOS. Atualize o firmware UEFI regularmente em todos os computadores.
- Defina configurações seguras de UEFI. Desative a unidade de gerenciamento de memória de entrada/saída (IOMMU) para evitar ataques de DMA. Proteja o UEFI com senha e defina a ordem correta de inicialização do sistema operacional para reduzir os riscos de ser iniciado a partir de mídia maliciosa externa e as configurações serem alteradas para inseguras. Os recursos Secure Boot e Trusted Boot também impedem a execução de código não confiável do sistema operacional.
Medidas ambíguas
Todas as medidas listadas nesta seção melhoram muito a segurança do sistema, mas às vezes afetam negativamente o desempenho do computador, a facilidade de uso e/ou a capacidade de recuperação diante de desastres. Cada um deles precisa de consideração cuidadosa no contexto de funções específicas dentro da empresa, e a implementação requer precisão e implantação em fases com testes detalhados.
- Armazenamento de chaves de hardware baseado em TPM 2.0 O Trusted Platform Module oferece autenticação segura do sistema operacional, usa biometria para entrar na conta e torna o processo de extração de chaves mais difícil. O TPM também aumenta muito a proteção oferecida pela criptografia de disco completo, pois suas chaves também são armazenadas no módulo. Potenciais armadilhas: falta de TPM em alguns computadores; combinações de SO/hardware incompatíveis; dificuldades com gerenciamento centralizado de chaves (devido a diferentes sistemas e versões de TPM).
- Criptografia de disco completa. Essa medida reduz drasticamente o risco de vazamento de dados, principalmente de laptops perdidos ou roubados; por isso é recomendado até para quem não tem muita preocupação com ataques de memória. A implementação nativa da Microsoft é o BitLocker, mas também existem soluções de terceiros. A criptografia de disco completo (FDE, na sigla em inglês) também se tornou parte de muitos sistemas baseados em Linux (por exemplo, no Ubuntu versão 20 e superior) e geralmente é baseada no LUKS. Uma combinação de TPM e FDE oferece confiabilidade máxima. Potenciais armadilhas: no caso de uma grande falha, nada pode ser restaurado da unidade. Portanto, um sistema de backup que funcione bem é uma necessidade absoluta. Às vezes, há uma desaceleração perceptível no desempenho da unidade, especialmente ao inicializar o computador.
- Desativação do modo de repouso/stanby. Se você desativar o modo de repouso e deixar apenas o modo de hibernação, as situações em que os invasores tiverem acesso a um computador inicializado e parcialmente descriptografado vulnerável a ataques DMA e outros métodos se tornarão extremamente raras. A desvantagem dessa solução também é óbvia, pois o modo de repouso é a maneira mais rápida e conveniente de “desligar” o computador após o trabalho ou ao mudar de local no escritório. Se você decidir seguir esse caminho, sempre implemente o FDE; caso contrário, os funcionários provavelmente usarão a hibernação que deixa o arquivo indefeso contra os ataques.
- Desativando o modo de hibernação. Se a hibernação estiver desabilitada, uma imagem da memória não pode ser copiada de um arquivo em um computador desligado. Para computadores críticos, você pode desabilitar a hibernação e a suspensão; essas máquinas só poderão ser desligadas. Em combinação com FDE, TPM e outras medidas, haverá poucas chances de ataques de memória; mas a inconveniência para os usuários seria considerável, então vale a pena pensar seriamente em quais casos justificam tal abordagem.
Conversa franca
Se você decidir que desativar o modo de repouso ou hibernação é justificado por questões de segurança, considere cuidadosamente para quais usuários essa política precisa ser aplicada. É improvável que seja 100% dos funcionários; ou pelo menos aqueles que trabalham com informações críticas. Você deve explicar a eles que senhas e outros dados podem ser roubados de várias maneiras, então medidas como “use um antivírus” e “evite tais e tais sites” não são suficientes para evitar incidentes graves de segurança.
É uma boa ideia dizer algumas palavras sobre cada medida de segurança – explicando sua finalidade aos colaboradores. A criptografia total de disco oferece proteção contra a simples cópia de dados de um computador esquecido ou roubado, bem como contra os ataques da “funcionária malvada” – ou seja, um estranho com acesso físico à máquina. Desativar a suspensão e a hibernação reforça essas proteções, portanto, os cinco minutos extras necessários para ligar e desligar o computador ajudarão a garantir que o profissional não seja o bode expiatório se a senha for usada em um ciberataque.