Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

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:

  1. Backup completo verificado com gbak
  2. Backup incremental não verificado com nbackup
  3. Backup no nível de VM (para ambiente virtual)
  4. 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!