Describiendo las copias de seguridad a los jefes

16 enero 2020

Jueves, 16 de enero de 2020

En un largo correo electrónico que aún queda por discutir pero que necesita escribir, entre otros muchos, para que supiesen cuánto queda por hacer y en qué situación estamos.

Transcribo a continuación el texto tal y como se lo envié ayer.


El concepto copias de seguridad

Hay varios escenarios en los que es imprescindible tener un respaldo de archivos y servicios:

  • Falla en un programa que requiera recuperar una versión anterior de una información (bien sea una hoja de cálculo o un registro en una base de datos).
  • Falla en un componente físico, generalmente un disco, que necesite reinstalar un programa y darle acceso a los datos de nuevo
  • Falla en todo un sistema que requieran adquirir un equipo nuevo, almacenamiento incluido, instalar el sistema operativo, los programas y su configuración, y los datos que gestionan. Esto puede deberse a:
    • Avería grave en la CPU o en uno o varios de los discos (un incendio en la nave, por ejemplo).
    • Sabotaje externo procedente de un programa malware: la amenaza de los programas de secuestro de información (ransomware) es mucho más real que antes dado que estamos empleando Windows.

La empresa actualmente puede enfrentar lo siguiente:

  • Puede recuperar archivos y bases de datos casi en su totalidad. Faltan los archivos personales de las máquinas Windows.
  • Los componentes físicos como los discos están instalados en pares en los servidores. Que los dos fallen al mismo tiempo es improbable si se debe a un fin de vida del dispositivo. Razonablemente cubiertos.
  • La respuesta ante un incidente catastrófico tiene dos vertientes:
    • La renovación completa de un equipo sólo está disponible parcialmente en los equipos de usuario, especialmente si llevan Linux. Los sistemas Windows requieren más tiempo de instalación, actualización y ajustes, así como posiblemente comprar nuevas licencias porque están asociadas íntimamente a las máquinas. El tiempo de despliegue se puede medir en días y no en horas.
    • En el caso de servidores la respuesta, con suerte, sería de días. Tendríamos que adquirir equipos de gama media/alta como servidores, instalar y recuperar configuración de sistemas operativos al completo (factible porque están respaldados) y hacer lo mismo con los programas y sus datos.
  • No tenemos a día de hoy ningún plan de contingencia, ni presupuesto disponible, para afrontar nada de esto. Existen programas que automatizan la recuperación ante estas situaciones, los tengo echados un ojo pero no he llegado nunca a tener tiempo de aprenderlos y probarlos.

Una de las ventajas que tiene alquilar servidores fuera es que de todo lo anterior se encargan ellos y tú puedes moverte con más libertad, incluso anticipándote a la falla física del servidor. La desventaja es un coste más directo, claro.

Si me he expresado bien te darás cuenta de que existen dos aspectos: uno es dónde y cómo pones a salvo la información, otro es cómo de preparado estás para recuperar el servicio.

Servicios contra archivos

Como cualquier empresa moderna tenemos dos tipos de sistemas de información: uno está basado en archivos, otro en aplicaciones. Las copias de seguridad raramente están orientadas a las aplicaciones (servicios) dado que estas pueden tener instalaciones imposibles de anticipar y es mejor hacerlo a mano.

El sistema de información basado en archivos es simple: documentos de texto, hojas de cálculo, PDF, … y programas que los manipulan que pueden instalarse con facilidad.

El servicio es una mezcla de todo lo anterior. Por ejemplo el caso de un ERP como Odoo en nuestro servidor:

  1. Emplea una base de datos relacional y esto significa:
    1. Un programa que gestiona una base de datos (PostgreSQL) con su configuración y sus conexiones de red.
    2. Un sistema de archivos opaco donde termina guardando datos.
  2. Una aplicación (odoo) conectada con la base de datos que a su vez también necesita una configuración en forma de archivos en el sistema
  3. Una aplicación que da acceso al exterior a odoo en forma de servidor web. El programa nginx también necesita una configuración concreta.

Si algo de lo anterior falla el servicio puede darse por fallido. Como pueden residir en máquinas distintas los programas de backup nunca los tienen en cuenta como tales. Poner en marcha algo como el ERP requiere de muchas horas de trabajo manual actualmente. Poco a poco voy trabajando en ello pero dista mucho de estar siquiera disponible. Aunque, eso sí, hemos ganado bastante separando las instalaciones en dos máquinas y las bases de datos en dos en cada una. Un punto que me puedo anotar, que falta me hace.

Regla del 3 2 1

La regla 3, 2, 1 para las copias de seguridad es un enfoque muy razonable (y muy empleado últimamente) para respaldar sistemas, y es el que estoy intentando aplicar en Venexma.

Consiste en lo siguiente:

  1. Realizar al menos tres copias de seguridad de cada aspecto o servicio (luego hablo más de esto).
  2. Que estén en dos formatos físicos diferentes o realizados con dos programas distintos.
  3. Que la tercera copia esté físicamente fuera de la instalación.

Las copias de seguridad en realidad consisten en copiar archivos de un sitio a otro con seguridad: que nadie pueda colarse en la transmisión y que el contenido sea fiel al original. El problema es que no todos los datos están accesibles como archivos simples. Algunos son programas que necesitan una instalación especial, no basta con una copia, y en otros casos como las bases de datos es necesario que el propio programa extraiga la información en un formato que pueda ser reinsertado después en otra instalación o en la misma en caso de desastre.

Copia de seguridad fuera de las instalaciones

Es un caso especial porque al tratarse de uno o varios discos donde guardar un respaldo de la información de la empresa presenta un problemática muy específica: cualquiera que se haga con el disco tiene empaquetada y lista para usar toda la información crítica: bases de datos, documentos, programas, contraseñas, certificados, historiales, …

Así que hay que asegurarse de que el mecanismo tenga varias características:

  1. Tiene que estar disponible cuando los programas de respaldo lo necesiten y no siempre. Esto impide que los virus, por ejemplo, puedan arrasar también las copias de seguridad dado que están en línea para todo el mundo.
  2. Debe ser inútil si alguien lo substrae o es perdido. Para eso se puede emplear el cifrado de discos. Un mecanismo muy probado y empleado en todo el mundo desde hace años.
  3. Debe poder ser trasladado con facilidad sin perder ninguna de las dos condiciones (por ejemplo de una nave a un domicilio particular)

La buena noticia es que ya he trabajado sobre este tema y está casi completado. Estoy escribiendo unos programas que se aseguran de cifrar la información del disco y guardar la clave en un lugar de nuestra red interna y al mismo tiempo tenerlo disponible bajo demanda. Precisa de pruebas, especialmente de seguridad y acceso remoto, pero diría que está acabado en un 80%.

Recuperación de copias

Se dice que una copia de seguridad está siempre en un estado de incertidumbre hasta que no se prueba a restaurar. Es muy posible haber estado guardando datos corruptos durante mucho tiempo y darlos como válidos porque no se ha verificado su contenido.

Por ejemplo, un ataque de ransomware puede haberse sufrido en silencio semanas atrás y haber estado cifrando archivos y destruyendo información sin que nadie se percate. Por supuesto estos datos se guardan en las copias y como el espacio no es infinito, cuando éste falta se borran las más antiguas (que es lo que pasó durante mi baja laboral con odoo). Un fallo en el programa de copias también puede estar guardando información corrupta, no es necesario que sea algo adrede como con los virus.

Los problemas de recuperar copias de seguridad son dos, simplificando bastante:

  1. Disponer de espacio donde poder restaurar los datos porque no es factible hacerlo sobre la información activa.
  2. Disponer de un mecanismo para probar que los datos obtenidos son correctos.
    1. Bien que el programa (como odoo) pueda cambiar de escenario y trabajar con los datos restaurados para ver si son correctos. Y, mejor aún, que tenga alguna opción que permita comprobarlos todos. El programa Atila de Adriano era justamente eso: un verificador de datos en conjunto y trabajaba todas las noches.
    2. Bien que exista otro programa que verifique que los archivos sigan siendo lo que su nombre indica: imágenes, hojas de cálculo, documentos de texto, …

Venexma actualmente no tiene ningún plan ni mecanismo de restauración de datos de programas (de servicios), aunque sí de archivos compartidos. Esa parte está cubierta por el software de copias que mantiene diferentes versiones de las copias durante mucho tiempo y ahorrando espacio en disco.

Resumiendo

Respecto al concepto de seguridad de información (no entramos en nada que tenga que ver con seguridad de redes y sistemas) la situación actual es la siguiente:

  1. Copias de seguridad: automatizadas en servidores principales y en las máquinas Linux individuales (Víctor y Gruñón). Pendiente de realizar las copias de datos personales de Windows.
  2. Regla de 3 2 1:
    1. Realizar tres copias: sólo se realizan dos
    2. En dos formatos distintos: cubierto al 50%.
    3. Una de ellas fuera de las instalaciones: casi completada.
  3. Recuperación de datos:
    1. Los archivos individuales recuperables por programa al 100%
    2. Los volcados de bases de datos recuperables por programa al 100%
    3. La importación de volcados de bases de datos recuperables manualmente.
  4. Respaldo de servicios: todo lo que atañe a este tema es manual. No hay nada planificado y sólo existe documentación parcial sobre ello.
  5. Planes de contingencia ante desastres completos:
    1. Recuperación de elementos individuales como discos, enrutadores y demás: manual y no documentado
    2. Recuperación de sistemas completos: todo manual y sin un proceso documentado tampoco.

Queda mucho por hacer si queremos que la empresa esté mejor preparada ante catástrofes y para reducir la dependencia de personal y medios externos. La dependencia cero no es posible. Espero que en eso estemos de acuerdo, pero sí que se puede reducir mucho si lo anterior está documentado y probado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *