Como proteger bancos de dados Firebird contra ransomware?
06-dezembro-2016, por Alexey Kovyazin
Os ataques de ransomware se tornaram um problema sério para muitas empresas: durante a última semana, tivemos 3 incidentes de clientes diferentes que tiveram seus bancos de dados Firebird criptografados por vírus de ransomware. Felizmente, conseguimos ajudar todos eles, mas a escala do problema definitivamente aumenta.
Neste artigo, vamos considerar como esses problemas foram resolvidos.
Em geral, o ransomware não é projetado para criptografar especificamente bancos de dados Firebird; ele apenas criptografa todos os arquivos do computador e depois pede o resgate para fornecer a senha de descriptografia, e mesmo que você pague, pode não receber nenhuma senha de descriptografia ou resposta (além disso, é necessário verificar sites de antivírus: eles frequentemente publicam códigos PIN ou até ferramentas de descriptografia para esse ransomware. Por exemplo, um deles: noransom.kaspersky.com/)
Claro, é necessário ter um antivírus confiável (e adequado para servidores), mas podemos fazer algo especificamente para proteger o banco de dados Firebird?
Existem diferentes tipos de ransomware, vamos considerar seu impacto nos bancos de dados Firebird.
As 2 empresas foram atingidas por ransomware que criptografou parcialmente seus bancos de dados Firebird.
Como você sabe, o arquivo de banco de dados Firebird é um conjunto de páginas do mesmo tamanho. As páginas do banco de dados Firebird contêm diferentes tipos de informação: metadados, dados do usuário, índices, geradores, etc.

Geralmente, esse tipo de ransomware não criptografa o arquivo inteiro do banco de dados, mas uma pequena parte dele - a página de cabeçalho e alguns % das páginas do banco de dados.
Como todas as páginas têm fortes relações, mesmo algumas páginas criptografadas tornam o banco de dados inteiro ilegível pelo mecanismo Firebird. Por exemplo, em um banco de dados de 10Gb, menos de 1% dos dados foi criptografado, e os outros 99% estavam intactos.
Nesse caso, esse banco de dados criptografado pode ser considerado como um arquivo de banco de dados gravemente corrompido, e o IBSurgeon FirstAID é a ferramenta que pode realizar a exportação dos dados do arquivo de banco de dados Firebird criptografado. A mesma abordagem é usada para recuperar bancos de dados de discos rígidos corrompidos.
Exportando dados do banco de dados Firebird criptografado
O IBSurgeon FirstAID pode recuperar bancos de dados com correção direta ou com extração de dados. A correção direta é rápida, pode corrigir rapidamente corrupções diretamente no arquivo do banco de dados. No entanto, no caso de ransomware, isso não ajudará, pois a página de cabeçalho e os principais metadados estão perdidos, então a extração é a única opção.
O FirstAID lê o arquivo do banco de dados diretamente - ele não usa o Firebird para acessar o arquivo do banco de dados, ele lê o arquivo diretamente, byte por byte. Como ele se concentra apenas na extração dos dados corrompidos e sacrifica o desempenho, o FirstAID pode exportar dados até mesmo de bancos de dados Firebird gravemente corrompidos. Claro, o FirstAID ignora os dados criptografados como corrompidos e exporta apenas os dados bons.
Se o ransomware não criptografou os metadados críticos, é possível abrir o arquivo do banco de dados criptografado com o FirstAID e visualizar os registros: selecione a tabela na lista à esquerda e abra a aba Preview, e então navegue pelas páginas de dados.
Os registros que você pode ver podem ser exportados para um novo banco de dados com a mesma estrutura:

A quantidade aproximada de perdas pode ser estimada com a porcentagem de Bad pages na aba Pages Summary do banco de dados:

A porcentagem de páginas ruins mostra quantas páginas do banco de dados foram criptografadas e seus dados estão perdidos.
Assim, em 2 casos, os bancos de dados foram salvos usando o FirstAID Extractor, que exportou os dados dos bancos de dados criptografados.
Ransomware com criptografia de 100%
Infelizmente, o ransomware frequentemente criptografa 100% dos arquivos e os criptografa totalmente, sem exceção.
Geralmente, esse tipo de ransomware injeta código malicioso no bootloader do sistema operacional, reinicia o computador e simula a execução do CHKDSK, mas em vez de verificar os discos, ele criptografa tudo.
A única maneira de se proteger contra esse vírus é ter um backup do banco de dados importante em algum local de terceiros: na nuvem ou em outro escritório.
Existem 4 abordagens possíveis de backup para bancos de dados Firebird:
- Backup completo verificado com gbak
- Backup incremental não verificado com nbackup
- Backup no nível de VM (para ambiente virtual)
- Warm Standby (espelho do banco de dados), baseado na replicação
Qual método de backup é o melhor para proteção contra ransomware? Vamos considerar seus prós e contras no exemplo real de um banco de dados Firebird de 50Gb.
| Recurso | Backup completo verificado (gbak) | Backup incremental (nbackup) | Backup no nível de VM | Warm-standby (replicação) |
|---|---|---|---|---|
| Tamanho para enviar | ~30Gb todos os dias | 50Gb inicialmente, depois partes alteradas | ||
| Frequência máxima de backup | Todos os dias | A cada hora | Depende das configurações da ferramenta de backup da VM | A cada minuto |
| Degradação de desempenho do banco de dados | Alta | Moderada | Baixa | Muito baixa |
| Confiabilidade do método de backup | Alta | Baixa | Baixa | Alta |
| Tempo necessário para realizar o backup | 2-3 horas (depende da velocidade de E/S) | Inicial é 15-20 minutos para criar o nível 0, depois 3-4 minutos | Requer fazer um snapshot completo do disco (depende de E/S e do tamanho do disco) | Inicial é 15-20 minutos, sempre online |
Backup completo verificado com gbak
A ferramenta de backup (gbak) lê todo o banco de dados e o armazena em um formato especial (fbk). Este método de backup é chamado de verificado devido ao fato de que lê cada registro no banco de dados e garante que o banco de dados está íntegro. É um método de backup muito confiável.
No entanto, o backup completo verificado não é conveniente para backup em nuvem de bancos de dados grandes (como 50Gb no nosso exemplo), pois requer o envio do backup completo a cada vez e exige muito tempo para ser realizado (é o tipo de backup mais lento no Firebird). Durante a execução do gbak, o desempenho do banco de dados é baixo devido à leitura e gravação intensivas de disco aleatório.
Backup incremental com nbackup
O backup incremental é feito com nbackup - outra ferramenta de backup do Firebird. O nbackup cria backups como incrementos de alterações: primeiro, cria um backup de nível 0, que é a cópia exata do banco de dados, e depois, na próxima iteração, escaneia o banco de dados e armazena apenas as páginas alteradas como Nível 1, Nível 2, etc. É possível definir backup completo (Nível 0) uma vez por trimestre, incrementos de Nível 1 a cada mês, Nível 2 a cada semana, Nível 3 a cada dia e Nível 4 a cada hora.
É bastante rápido, cria backups quase na velocidade de cópia linear de arquivos.
A principal desvantagem do nbackup é a ausência de verificação - se uma página do banco de dados estiver corrompida, o nbackup a copiará para o arquivo de backup, que também estará corrompido (diferente do gbak, que dará um erro nesse caso). Além disso, como a criação de cada nível faz o Firebird escanear todo o banco de dados (no Firebird 2.5, o v3 tem melhorias), não é possível executar o nbackup com muita frequência em bancos de dados grandes.
Como você pode entender, o nbackup requer um agendamento bastante sofisticado, mas com ferramentas adequadas, é uma tarefa fácil.
Uma maneira correta é usar o nbackup em combinação com o gbak: o gbak verifica o banco de dados todos os dias ou todas as semanas, e o nbackup fornece a maneira rápida de fazer backup do banco de dados com bastante frequência.
Então, o nbackup parece uma boa escolha para armazenar o banco de dados na nuvem.
Backups de VM
E os backups de máquinas virtuais? Os fornecedores de ferramentas de VM e backup afirmam que suportam backup de bancos de dados, no entanto, muitas vezes não especificam quais bancos de dados são suportados. O backup de VM requer que o provedor de Volume Shadow Service (VSS) para o banco de dados específico esteja instalado para realizar o backup online corretamente. Para Firebird, o provedor VSS está disponível como parte da distribuição avançada do HQbird.
Claro, não há mágica no backup de VM com provedor VSS - nos bastidores, ele usa o nbackup para colocar o banco de dados no modo adequado para cópia. Sem o provedor VSS, o resultado do backup no nível de VM será como uma cópia de um banco de dados em um estado semelhante a um reset forçado: o Firebird usa intensivamente o cache de dados na RAM, e é possível que o backup seja corrompido devido a alterações não gravadas.
Warm-standby
Algumas empresas não querem perder nenhum dado do banco de dados. As faturas recentes antes da falha podem ser críticas, e o último envio poderia colocar uma dúzia de caminhões na estrada. Nesse caso, mesmo os backups por hora não são suficientes; a única solução possível é o warm standby (um espelho somente leitura) do banco de dados, que é baseado na replicação nativa assíncrona.
Nativa significa que a replicação não requer triggers ou alteração de metadados (o único requisito é ter chaves primárias ou únicas para todas as tabelas replicadas), e funciona muito rápido.
O warm-standby requer a criação de uma cópia inicial do banco de dados, inicializando-a como réplica e enviando-a para o servidor standby. Depois disso, as alterações de dados serão enviadas do mestre com atraso mínimo (a partir de 1 minuto). Apenas as alterações são enviadas, então não suprime o desempenho de leitura do banco de dados.
Esta opção de backup é muito confiável - garante a existência de uma cópia ativa do banco de dados em outro servidor.
O que o IBSurgeon pode fazer por você?
Oferecemos o serviço de suporte por assinatura para Firebird, e ele inclui opções de backup em nuvem e warm standby. É fácil e acessível ($99/mês), e inclui as seguintes opções:
- Monitoramento do banco de dados Firebird e automação de backups
- Suporte por área de trabalho remota e mensageiro instantâneo
- Solução Firebird Failover (warm standby) e backup em nuvem
Por favor, leia mais detalhes sobre o serviço de suporte Firebird aqui.
Outra opção é usar o HQbird, nossa distribuição avançada do Firebird, e implementar backup em nuvem ou warm standby você mesmo. Você pode encontrar mais detalhes sobre o HQbird aqui.
E, claro, como última chance, o FirstAID Extractor.
Sinta-se à vontade para entrar em contato conosco com qualquer dúvida!