MongoDB introduce encriptación a nivel de campo

0
66

MongoDB ha lanzado hoy una nueva versión que incluye encriptación a nivel de campo (FLE), un nuevo mecanismo que protege la información sensible almacenada en una base de datos, incluso si los atacantes comprometen la base de datos misma o el servidor en el que se ejecuta.

La implementación de FLE de MongoDB 4.2 no implica el almacenamiento de claves ni la realización de operaciones de cifrado y descifrado en el servidor. En su lugar, estas operaciones son realizadas por la biblioteca de cliente de MongoDB, también conocida como el controlador, que es utilizado por las aplicaciones.

Desde la perspectiva del servidor, el texto cifrado (datos cifrados) enviado por el cliente es solo otro tipo de datos para almacenar en un campo. Esto significa que incluso si el servidor está comprometido, o si la base de datos queda expuesta a Internet con credenciales administrativas débiles o predeterminadas, los atacantes no podrán robar ninguna información confidencial que haya sido cifrada. Sin embargo, FLE no evitará los ataques de destrucción de datos que son posibles si los atacantes obtienen acceso administrativo a una base de datos.

En el pasado, los hackers han comprometido decenas de miles de almacenes de datos MongoDB expuestos públicamente y otros tipos de almacenes de datos. Algunos de esos ataques provocaron graves filtraciones de datos, mientras que otros se utilizaron para ataques de tipo «ransomware«. MongoDB y otros tipos de bases de datos también son constantemente blanco de ataques de adivinación de contraseñas por fuerza bruta, también conocidos como relleno de credenciales.

Cambiar el controlador MongoDB, no el código de la aplicación
En el lado del cliente, el nuevo FLE es transparente para la aplicación, porque es manejado por el controlador MongoDB, no por el código real de la aplicación. Esto significa que, en muchos casos, el código de la aplicación ni siquiera tiene que ser cambiado para que se utilice la nueva característica, señaló Kenneth White, jefe de seguridad del producto en MongoDB, a CSO. Los desarrolladores solo necesitan actualizar el controlador.

También se han introducido algunos cambios en el servidor para advertir a las aplicaciones cliente si están intentando escribir datos de texto plano en campos marcados para datos cifrados; pero, en última instancia, los clientes son autoritativos. Para beneficiarse de esta función de asesoramiento, es mejor que los usuarios actualicen tanto la biblioteca de clientes de MongoDB como el servidor.

En muchos sentidos, FLE funciona como una encriptación de extremo a extremo, donde los dos puntos finales son aplicaciones diferentes que necesitan almacenar y trabajar con datos sensibles de los clientes. La implementación utiliza encriptación autenticada para prevenir ciertos ataques criptográficos.

«Hemos construido algunas defensas para cosas como la manipulación intencional o la corrupción de los datos, como con los ataques de pre-mensaje o de oráculo de relleno», anotó White. «Hemos usado algoritmos modernos que se resisten a tales intentos de manipulación».

Beneficios de cumplimiento normativo
FLE también ayuda a las empresas a cumplir con los requisitos reglamentarios, como el Reglamento General de Protección de Datos (GDPR) y el derecho a ser olvidado en la Unión Europea. Una vez que se destruyen las claves asociadas con un cliente, los datos en el servidor y en todas las aplicaciones se vuelven inútiles.

La nueva característica también permite a las empresas un mejor control sobre quién tiene acceso a la información sensible. Por ejemplo, en la mayoría de los casos, los administradores de servidores y bases de datos tienen acceso ilimitado a las bases de datos, y esto puede representar un riesgo para la privacidad o la seguridad. Incluso si las organizaciones cuentan con políticas que prohíben a los equipos de infraestructura de TI examinar los datos confidenciales de los clientes, normalmente no existen mecanismos técnicos para evitarlo. FLE puede ayudar a aplicar esta segregación de tareas, permitiendo a los administradores gestionar clústeres de bases de datos y la infraestructura del servidor sin tener las claves para descifrar los datos.

La nueva característica FLE está dirigida a industrias como la salud o las finanzas que tienen requisitos regulatorios para proteger ciertos tipos de registros de clientes. Sin embargo, como una característica central de privacidad, puede ser útil para cualquier compañía, indicó White.

También vale la pena señalar que, dado que el cifrado se gestiona en el lado del cliente, no hay un impacto adicional en el rendimiento del servidor. Además, las llaves se pueden almacenar por separado, en un gestor de llaves externo.

Flujo de trabajo de encriptación a nivel de campo de MongoDB
Así es como MongoDB explicó el flujo de trabajo de encriptación FLE:

  1. Al recibir la consulta, el controlador MongoDB analiza la consulta para determinar si hay campos encriptados involucrados en el filtro.
  2. El controlador solicita las claves de cifrado de los campos al administrador de claves externo.
  3. El gestor de claves devuelve las claves al controlador, que a su vez cifra los campos sensibles.
  4. El controlador envía la consulta al servidor MongoDB con los campos cifrados que se muestran como texto cifrado.
  5. MongoDB devuelve los resultados cifrados de la consulta al controlador.
  6. Los resultados de la consulta son descifrados por las teclas del controlador y devueltos al cliente.

Lucian Constantin, CSOonline.com