Cómo proteger las bases de datos Firebird del ransomware?
06-diciembre-2016, por Alexey Kovyazin
Los ataques de ransomware se han convertido en un problema grave para muchas empresas: durante la última semana, tuvimos 3 incidentes de diferentes clientes cuyas bases de datos Firebird fueron cifradas por virus ransomware. Afortunadamente pudimos ayudar a todos ellos, pero la escala del problema definitivamente aumenta.
En este artículo, consideraremos cómo se resolvieron estos problemas.
En general, el ransomware no está diseñado para cifrar específicamente bases de datos Firebird; simplemente cifra todos los archivos de la computadora y luego pide un rescate para proporcionar la contraseña para descifrarlos, e incluso si pagas, es posible que no recibas ninguna contraseña de descifrado o respuesta (también, es necesario revisar los sitios web de antivirus: a menudo publican códigos PIN o incluso herramientas de descifrado para ese ransomware. Por ejemplo, uno de ellos: noransom.kaspersky.com/)
Por supuesto, es necesario tener un antivirus confiable (y adecuado para servidores), pero ¿podemos hacer algo específicamente para proteger la base de datos Firebird?
Existen diferentes tipos de ransomware, consideremos su impacto en las bases de datos Firebird.
Las 2 empresas fueron afectadas por ransomware que cifró parcialmente sus bases de datos Firebird.
Como sabes, el archivo de base de datos Firebird es un conjunto de páginas del mismo tamaño. Las páginas de la base de datos Firebird contienen diferentes tipos de información: metadatos, datos de usuario, índices, generadores, etc.

Generalmente, este tipo de ransomware no cifra todo el archivo de la base de datos, sino una pequeña parte de él: la página de encabezado y algún porcentaje de las páginas de la base de datos.
Dado que todas las páginas tienen relaciones fuertes, incluso unas pocas páginas cifradas hacen que toda la base de datos sea ilegible para el motor Firebird. Por ejemplo, en una base de datos de 10Gb se cifró menos del 1% de los datos, y el otro 99% estaba bien.
En este caso, dicha base de datos cifrada puede considerarse como un archivo de base de datos gravemente corrupto, e IBSurgeon FirstAID es la herramienta que puede realizar la exportación de los datos desde el archivo de base de datos Firebird cifrado. El mismo enfoque se utiliza para recuperar bases de datos de discos duros dañados.
Exportando datos desde la base de datos Firebird cifrada
IBSurgeon FirstAID puede recuperar bases de datos con una corrección directa o con extracción de datos. La corrección directa es rápida, puede corregir rápidamente corrupciones directamente en el archivo de la base de datos. Sin embargo, en el caso de un ransomware, no ayudará, ya que la página de encabezado y los metadatos principales se pierden, por lo que la extracción es la única opción.
FirstAID lee el archivo de la base de datos directamente - no utiliza Firebird para acceder al archivo de la base de datos, lee el archivo de la base de datos directamente, byte por byte. Dado que se enfoca solo en la extracción de los datos corruptos y sacrifica el rendimiento, FirstAID puede exportar datos incluso de bases de datos Firebird gravemente corruptas. Por supuesto, FirstAID omite los datos cifrados como corruptos y exporta solo los datos buenos.
Si el ransomware no cifró los metadatos críticos, es posible abrir el archivo de base de datos cifrado con FirstAID y previsualizar los registros: selecciona la tabla en la lista de la izquierda y abre la pestaña Vista previa, y luego navega por las páginas de datos.
Los registros que puedes ver pueden exportarse a una base de datos nueva con la misma estructura:

La cantidad aproximada de pérdidas puede estimarse con el porcentaje de páginas malas en la pestaña Resumen de páginas de la base de datos:

El porcentaje de páginas malas muestra cuántas páginas de la base de datos fueron cifradas y sus datos se perdieron.
Así, en 2 casos las bases de datos se guardaron usando el Extractor de FirstAID, que exportó los datos de las bases de datos cifradas.
Ransomware con cifrado del 100%
Desafortunadamente, el ransomware a menudo cifra el 100% de los archivos, y los cifra totalmente, sin excepción.
Generalmente, este tipo de ransomware inyecta código malicioso en el cargador de arranque del sistema operativo, luego reinicia la computadora y simula la ejecución de CHKDSK, pero en lugar de verificar discos, cifra todo.
La única forma de protegerse de este virus es tener una copia de seguridad de la base de datos importante en alguna ubicación de terceros: en la nube o en otra oficina.
Hay 4 enfoques posibles de copia de seguridad para bases de datos Firebird:
- Copia de seguridad completa verificada con gbak
- Copia de seguridad incremental no verificada con nbackup
- Copia de seguridad a nivel de VM (para entornos virtuales)
- Warm Standby (espejo de base de datos), basado en replicación
¿Qué método de copia de seguridad es el mejor para la protección contra ransomware? Consideremos sus pros y contras en el ejemplo real de una base de datos Firebird de 50Gb.
| Característica | Copia de seguridad completa verificada (gbak) | Copia de seguridad incremental (nbackup) | Copia de seguridad a nivel de VM | Warm-standby (replicación) |
|---|---|---|---|---|
| Tamaño a subir | ~30Gb cada día | 50Gb inicialmente, luego porciones cambiadas | ||
| Frecuencia máxima de copia | Cada día | Cada hora | Depende de la configuración de la herramienta de copia de VM | Cada minuto |
| Degradación del rendimiento de la base de datos | Alta | Moderada | Baja | Muy baja |
| Fiabilidad del método de copia | Alta | Baja | Baja | Alta |
| Tiempo requerido para realizar la copia | 2-3 horas (depende de la velocidad de E/S) | Inicial 15-20 minutos para crear nivel 0, luego 3-4 minutos | Requiere hacer una instantánea completa del disco (depende de E/S y tamaño del disco) | Inicial 15-20 minutos, siempre en línea |
Copia de seguridad completa verificada con gbak
La herramienta de copia de seguridad (gbak) lee toda la base de datos y la almacena en un formato especial (fbk). Este método de copia se llama verificado debido al hecho de que lee cada registro de la base de datos y asegura que la base de datos esté bien. Es un método de copia de seguridad muy confiable.
Sin embargo, la copia de seguridad completa verificada no es conveniente para copias en la nube de bases de datos suficientemente grandes (como 50Gb en nuestro ejemplo), ya que requiere subir la copia completa cada vez, y requiere mucho tiempo para realizarse (es el tipo de copia más lento en Firebird). Durante la ejecución de gbak, el rendimiento de la base de datos es bajo debido a las lecturas y escrituras intensivas aleatorias del disco.
Copia de seguridad incremental con nbackup
La copia de seguridad incremental se realiza con nbackup - otra herramienta de copia de Firebird. Nbackup crea copias como incrementos de cambios: primero, crea una copia de nivel 0, que es la copia exacta de la base de datos, y luego, en la siguiente iteración, escanea la base de datos y almacena solo las páginas cambiadas como Nivel 1, Nivel 2, etc. Es posible configurar una copia completa (Nivel 0) una vez por trimestre, incrementos de Nivel 1 cada mes, Nivel 2 cada semana, Nivel 3 cada día y Nivel 4 cada hora.
Es bastante rápido, crea copias casi a la velocidad de copia lineal de archivos.
La principal desventaja de nbackup es la ausencia de verificación - si una página de la base de datos está corrupta, nbackup la copiará al archivo de copia, que también estará corrupto (a diferencia de gbak, que dará un error en este caso). Además, dado que la creación de cada nivel hace que Firebird escanee toda la base de datos (en Firebird 2.5, v3 tiene mejoras), no es posible ejecutar nbackup con demasiada frecuencia en bases de datos grandes.
Como puedes entender, nbackup requiere un cronograma bastante sofisticado, pero con las herramientas adecuadas, es una tarea fácil.
La forma correcta es usar nbackup en combinación con gbak: gbak verifica la base de datos cada día o cada semana, y nbackup proporciona la forma rápida de hacer copias de la base de datos con bastante frecuencia.
Entonces, nbackup parece una buena opción para almacenar la base de datos en la nube.
Copias de VM
¿Qué hay de las copias de seguridad de máquinas virtuales? Los proveedores de herramientas de VM y copia de seguridad afirman que soportan copias de bases de datos, sin embargo, a menudo no especifican qué bases de datos están soportadas. La copia de VM requiere que el proveedor de Volume Shadow Service (VSS) para la base de datos específica esté instalado para realizar la copia en línea correctamente. Para Firebird, el proveedor VSS está disponible como parte de la distribución avanzada de HQbird.
Por supuesto, no hay magia en una copia de VM con proveedor VSS - detrás de escena, usa nbackup para poner la base de datos en el modo adecuado para copiar. Sin el proveedor VSS, el resultado de la copia a nivel de VM será como una copia de una base de datos en un estado similar a un reinicio duro: Firebird usa intensivamente el caché de datos en RAM, y es posible que la copia esté corrupta debido a cambios no vaciados.
Warm-standby
Algunas empresas no quieren perder ningún dato de la base de datos. Las facturas recientes antes del fallo podrían ser críticas, y el último envío podría enviar una docena de camiones a la carretera. En este caso, incluso las copias por hora no son suficientes; la única solución posible es warm standby (un espejo de solo lectura) de la base de datos, que se basa en la replicación nativa asíncrona.
Nativa significa que la replicación no requiere disparadores ni cambios de metadatos (el único requisito es tener claves primarias o únicas para todas las tablas replicadas), y funciona muy rápido.
El warm-standby requiere crear una copia inicial de la base de datos, inicializarla como réplica y subirla al servidor de respaldo. Después de eso, los cambios de datos se enviarán desde el maestro con un retraso mínimo (desde 1 minuto). Solo se envían los cambios, por lo que no suprime el rendimiento de lectura de la base de datos.
Esta opción de copia es muy confiable: garantiza la existencia de una copia viva de la base de datos en otro servidor.
¿Qué puede hacer IBSurgeon por ti?
Ofrecemos el servicio de soporte por suscripción para Firebird, e incluye opciones de copia en la nube y warm standby. Es fácil y asequible ($99/mes), e incluye las siguientes opciones:
- Monitoreo de la base de datos Firebird y automatización de copias de seguridad
- Soporte por escritorio remoto y mensajería instantánea
- Solución Firebird de conmutación por error (warm standby) y copia en la nube
Por favor, lee más detalles sobre el servicio de soporte Firebird aquí.
Otra opción es usar HQbird, nuestra distribución avanzada de Firebird, e implementar la copia en la nube o warm standby tú mismo. Puedes encontrar más detalles sobre HQbird aquí.
Y, por supuesto, como última oportunidad, Extractor de FirstAID.
No dudes en contactarnos con cualquier pregunta.