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.
- Avería grave en la CPU o en uno o varios de los discos (un
incendio en la nave, por ejemplo).
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.
- 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.
- 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:
- Emplea una base de datos relacional y esto significa:
- Un programa que gestiona una base de datos (PostgreSQL) con su configuración y sus conexiones de red.
- Un sistema de archivos opaco donde termina guardando datos.
- 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
- 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:
- Realizar al menos tres copias de seguridad de cada aspecto o servicio (luego hablo más de esto).
- Que estén en dos formatos físicos diferentes o realizados con
dos programas distintos.
- 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:
- 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.
- 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.
- 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:
- Disponer de espacio donde poder restaurar los datos porque no
es factible hacerlo sobre la información activa.
- Disponer de un mecanismo para probar que los datos obtenidos
son correctos.
- 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.
- 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, …
- 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.
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:
- 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.
- Regla de 3 2 1:
- Realizar tres copias: sólo se realizan dos
- En dos formatos distintos: cubierto al 50%.
- Una de ellas fuera de las instalaciones: casi completada.
- Recuperación de datos:
- Los archivos individuales recuperables por programa al 100%
- Los volcados de bases de datos recuperables por programa al 100%
- La importación de volcados de bases de datos recuperables manualmente.
- Los archivos individuales recuperables por programa al 100%
- 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.
- Planes de contingencia ante desastres completos:
- Recuperación de elementos individuales como discos, enrutadores y demás: manual y no documentado
- 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.