Um ataque de dump de memória é a captura e uso de conteúdo RAM que foi escrito em um drive de armazenamento durante um erro irrecuperável, que foi tipicamente acionado pelo atacante.
Developers normalmente usam memory dumps para coletar informações de diagnóstico no momento de um travamento para ajudá-los troubleshoot issues and learn more about the event. The information stored in RAM at the time of a crash contains the code that produced the error. A retenção desse erro e do ambiente em que ele ocorreu é o propósito usual de um despejo. Como esses despejos podem incluir qualquer coisa na RAM ativa do computador, eles podem apresentar preocupações com privacidade e segurança.
Hackers acessam despejos de memória para obter dados ou informações de outra forma protegidas ou para comprometer o computador host e/ou sistemas aos quais ele se conecta. Se um atacante ganha alguma execução de código e capacidade de leitura, ele pode causar um despejo de memória através de um erro de buffer overflow (por exemplo) e o despejo resultante pode ser lido na reinicialização. Quando esses dados são armazenados na unidade, ele também pode apresentar riscos de segurança se hackers experientes acessarem e encontrarem informações sensíveis, senhas de texto limpo ou chaves de decriptação que normalmente não seriam facilmente acessíveis.
Ataques de despejo de memória podem ser frustrados por vários meios:
- Programas que usam hashes de senha em vez de armazenarem senhas de texto limpo.
- Tokenization para que somente dados representativos fiquem na memória e dados sensíveis sejam armazenados em outro lugar.
- .NET podem usar o SecureString e a Proteção de Dados para limitar o tempo de disponibilidade de senhas não criptografadas.
- Alguns sistemas operacionais da Microsoft e outros permitem despejos de memória que contêm menos informações e também podem tornar possível desativar despejos de memória.
No caso de um despejo de memória ser acionado, a resposta mais segura a resposta é rastrear o programa que o causou e verificar sinais de intrusão, como keyloggers e packetsniffers.