Lanzamiento del sistema de copias de seguridad Restic 0.18. Ataque al CDC.

Se ha presentado la versión 0.18 del sistema de copias de seguridad Restic, que permite almacenar copias de seguridad de forma encriptada en un repositorio versionado con soporte para deduplicación. El sistema está diseñado para que las copias de seguridad se almacenan en entornos no confiables, de modo que la captura de una copia de seguridad no debería comprometer el sistema. Al crear una copia de seguridad, es posible definir reglas flexibles para incluir y excluir archivos y carpetas (el formato de las reglas es similar a rsync o gitignore). Se admite su funcionamiento en sistemas Linux, macOS, Windows y BSD. El código del proyecto está escrito en Go y se distribuye bajo la licencia BSD.

Las copias de seguridad pueden almacenarse en el sistema de archivos local, en externos servidor con acceso mediante SFTP/SSH o HTTP REST, en las nubes de Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage y Google Cloud Storage, así como en cualquier almacenamiento para el cual existan backends de rclone. También se puede utilizar un servidor de rest reservado por el proyecto, que proporciona un rendimiento más alto en comparación con otros backends y que puede funcionar en modo de solo complemento, sin permitir la eliminación o modificación de copias de seguridad en caso de que se comprometa el servidor original y se acceda a las claves de cifrado.

El sistema soporta instantáneas que reflejan el estado de la jerarquía de directorios en diferentes momentos en el tiempo (las instantáneas se crean automáticamente para cada copia de seguridad). Es posible copiar instantáneas entre diferentes repositorios. Para ahorrar tráfico, durante la creación de copias de seguridad solo se copian los datos que han cambiado. Una instantánea de las copias de seguridad puede estar montada como una partición virtual (el montaje se realiza mediante FUSE). También se proporcionan comandos para analizar los cambios y para la extracción selectiva de archivos.

El almacenamiento de copias de seguridad en Restic manipula no archivos enteros, sino bloques de tamaño variable, seleccionados utilizando la firma de Rabin. La información se almacena en función del contenido y no de los nombres de archivos (los nombres y objetos relacionados con los datos se determinan a nivel de metadatos del bloque). Para ahorrar espacio en el almacenamiento y evitar la duplicación innecesaria de datos, se lleva a cabo la deduplicación.

En los servidores externos, la información se almacena de forma cifrada: se utilizan hashes SHA-256 para las sumas de comprobación y deduplicación, el algoritmo AES-256-CTR para el cifrado y códigos de autenticación basados en Poly1305-AES para garantizar la integridad. Se prevé la posibilidad de verificar la copia de seguridad mediante sumas de comprobación y códigos de autenticación para confirmar que la integridad de los archivos no ha sido alterada.

En la nueva versión, se ha eliminado la posibilidad de realizar un ataque (PDF) para determinar la presencia de archivos específicos en el almacenamiento encriptado de copias de seguridad. Este ataque permite determinar si hay un archivo concreto en la copia de seguridad encriptada, accediendo al almacenamiento de copias de seguridad o analizando el tráfico de red relacionado con las copias. Por ejemplo, el ataque podría ser llevado a cabo por un administrador del servidor donde se almacenan las copias de seguridad, un proveedor de internet o agencias de seguridad que hayan obtenido acceso a servidor o al tráfico. El objetivo de llevar a cabo el ataque podría ser investigar una fuga de información, donde las agencias de seguridad podrían evaluar la presencia de documentos de interés en el almacenamiento de copias de seguridad.

Para explotar la vulnerabilidad, el atacante debe conseguir que sus datos sean añadidos a la copia de seguridad de la víctima o tener conocimiento de que un archivo conocido está presente en la copia de seguridad. Si en la copia de seguridad hay un archivo que el atacante conoce (por ejemplo, algún tipo de contenido multimedia o de sistema común), al acceder al almacenamiento encriptado, el atacante puede determinar si hay otros archivos de interés en su interior.

El método se basa en que, a partir de las características de la compresión de contenido, se pueden determinar los parámetros de los bloques utilizados al fragmentar el contenido. Para identificar dichos parámetros, es suficiente con identificar 3 bloques encriptados que contengan datos que sean conocidos por el atacante.

La vulnerabilidad no es específica de Restic y afecta a otros sistemas de copia de seguridad que utilizan la división de datos en bloques mediante la técnica CDC (Content-Defined Chunking), tales como BorgBackup, Tarsnap, Bupstash y Duplicacy. En Tarsnap, el problema fue resuelto en la actualización 1.0.41; en BorgBackup se está trabajando en una corrección que se pretende incluir en la rama borg 2. En Bupstash, el último cambio fue hace 2 años, y en Duplicacy, hace 4 meses.

Se señala que en sistemas que utilizan deduplicación, cuando hay posibilidad de agregar archivos propios a la copia de seguridad, se puede proceder de manera más sencilla y determinar la presencia de archivos de interés de forma indirecta. Después de añadir un archivo que se está verificando, se puede evaluar el cambio en el tamaño del almacenamiento: si el archivo ya está en el almacenamiento, su adición nuevamente no resultará en un aumento significativo en el tamaño debido a la deduplicación.

Además de solucionar la vulnerabilidad en Restic 0.18, se proponen varias novedades:

  • Se ha añadido soporte experimental para 'almacenamientos' fríos de copias de seguridad (los datos están disponibles para extracción minutos u horas después de la solicitud), que soportan el protocolo S3, como Amazon S3 Glacier.
  • Los comandos check y tag ahora soportan la salida en formato JSON.
  • Al crear imágenes para el GitHub Container Registry, se han tenido en cuenta las recomendaciones de SLSA (Niveles de Sustentabilidad para Artefactos de Software).
  • Se ha añadido la opción para seleccionar el método de clasificación de la salida en el comando ls. En el comando find, por defecto se utiliza la clasificación por fecha (de más nueva a más antigua).
  • Se ha proporcionado la opción de exclusión de archivos en la operación de reempaquetado, si su tamaño es menor al especificado.
  • Se ha añadido una configuración para habilitar/deshabilitar la recuperación de atributos extendidos de los archivos.
  • Se ha añadido soporte para el sistema operativo DragonFlyBSD.
  • Se ha añadido soporte para atributos extendidos de archivos en sistemas con NetBSD 10+.
  • En la rama restic 0.19.0, se planea eliminar el soporte para funciones obsoletas activadas a través de las configuraciones de deprecate-legacy-index, deprecate-s3-legacy-layout, explicit-s3-anonymous-auth y safe-forget-keep-tags.
  • Se ha dejado de soportar versiones antiguas de Windows y macOS; ahora se requiere al menos Windows 10, Windows Server 2016 o macOS 11. Se ha dejado de soportar versiones TLS anteriores a 1.2.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster