No todos los datos están destinados a hacerse públicos. El cambio de cargas de trabajo que manejan datos secretos o privados de implementaciones locales a la nube pública introduce nuevas superficies de ataque con diferentes riesgos. Dado que el entorno de la nube pública comparte su infraestructura de hardware, es posible que las fallas en el mecanismo de aislamiento de la nube no conduzcan a proteger los datos confidenciales. El principal entorno de nube pública resuelve este problema mediante la creación de seguridad siguiendo un enfoque de defensa en profundidad. La informática confidencial es una capa adicional de seguridad en este entorno, que puede proteger la privacidad de los datos incluso cuando se encuentran defectos en otros mecanismos de defensa. Aunque el campo de la informática confidencial ha atraído mucho interés científico y académico, las soluciones prácticas de hoy implican un enclave aislado del sistema principal. En esta publicación de blog, estudiamos cómo usar la máquina virtual confidencial Ubuntu Pro para lograr el aislamiento en la plataforma Microsoft Azure.
Aunque existen muchas soluciones que involucran enclaves seguros en la actualidad, generalmente requieren un software especializado para aprovecharlas. Por otro lado, la máquina virtual confidencial de Microsoft Azure solo requiere cambios en el sistema operativo, mientras que las cargas de trabajo existentes pueden ejecutarse sin ningún cambio en entornos familiares como Ubuntu. Esto la convierte en una de las tecnologías más prometedoras en informática confidencial.
Aunque la tecnología todavía está en Etapa de vista previa pública, Ubuntu es uno de los primeros sistemas operativos que lo admite. Puede unirse a esta fase de vista previa ahora y verificar su carga de trabajo con Ubuntu.Para más información, ver Esta guía de inicio rápido de Microsoft.
Tabla de Contenidos
¿Cómo mantener privada la carga de trabajo en la nube?
La informática confidencial no es nueva. Durante décadas, los círculos científicos y académicos han estado trabajando para lograr este objetivo a través del cifrado homomórfico. El objetivo del cifrado homomórfico es permitir que las partes que no son de confianza manipulen los datos sin acceder a los datos. Se han dedicado muchos artículos a informar sobre el trabajo y los resultados del cifrado homomórfico, pero aunque existen muchos esquemas de cifrado homomórfico en la actualidad, rara vez se utilizan en la práctica.
Aunque es probable que la búsqueda del cifrado homomórfico para permitirnos ocultar completamente nuestros datos de los proveedores de nube pública tenga éxito en el futuro, la informática confidencial actual mejora la seguridad de las nubes públicas en lugar de apuntar a todo o nada. La informática confidencial reduce la superficie de ataque del entorno de la nube a través de una arquitectura de defensa en profundidad. Esto se logra aprovechando las tecnologías de seguridad disponibles en la CPU, como la tecnología de la serie AMD SEV, TPM y las funciones de seguridad del sistema operativo (como Ubuntu). Ahora veamos cómo se establecen estas defensas en el entorno Azure de Ubuntu.
¿Cómo habilita Ubuntu la informática confidencial en Microsoft Azure?
Cifrado de memoria de VM durante el tiempo de ejecución
VM confidencial basada en Microsoft Azure AMD se basa en la tecnología de la serie AMD SEV (SEV, SEV-ES, SEV-SNP). Esto asegura que las VM se ejecuten en un entorno especial donde sus registros de memoria y CPU están encriptados con una clave AES, asegurando así que otras VM o administradores de host no puedan echar un vistazo a los datos procesados. Su principio de funcionamiento se muestra en la siguiente figura.
Cuando la CPU se ejecuta en una máquina virtual invitada, siempre cifra la ubicación de la memoria en la que escribe y la descifra cuando la lee. Diferentes VM pueden acceder a diferentes áreas marcadas para ellas. Esto significa que si el hipervisor se ve comprometido, la VM no puede recuperar la memoria de una VM diferente, sino que solo puede ver su versión encriptada.
Este modelo admite máquinas virtuales privadas en nubes públicas y puede manejar cargas de trabajo confidenciales. Al mismo tiempo, esto es solo una parte de la historia de la seguridad en la nube. Aunque el cifrado de la memoria en tiempo de ejecución es una parte muy importante de toda la historia, las cargas de trabajo que se ejecutan en la nube se cargan desde el disco duro, que generalmente se encuentra en la infraestructura de la nube.
Cifrado de máquina virtual estática
Esto nos lleva al cifrado de disco de VM. La seguridad de los datos estáticos la proporciona el sistema operativo Ubuntu. Con soporte para el cifrado de disco completo, Ubuntu garantiza que todos los datos escritos en el disco estén cifrados y descifrados mediante AES, y cada paso de arranque se verifica mediante el arranque seguro UEFI. La clave para el cifrado del disco se almacena en el disco virtual en forma cifrada. Este blob de claves de cifrado solo puede descifrarlo el módulo de plataforma de confianza virtual de Azure (vTPM) asociado con la instancia de máquina virtual.
Cifrado de VM al inicio y en tiempo de ejecución
Durante el inicio, el entorno de inicio temprano de Ubuntu (initrd) carga el blob de claves en el vTPM, luego carga el kernel a su vez y demuestra que está en un estado específico antes de que el vTPM haga que la clave de descifrado de VM sea accesible. La clave de descifrado solo puede ser leída por esta máquina virtual. La siguiente figura muestra una vista simplificada de este proceso.
El vTPM se ejecuta en el espacio de direcciones de la máquina virtual invitada, por lo que está protegido por el cifrado de la memoria en tiempo de ejecución de la CPU y también está cifrado en reposo.
Máquina virtual en tiempo de ejecución
En tiempo de ejecución, el sistema aísla sus recursos de otros inquilinos al aprovechar las características de la CPU de AMD, las características de seguridad de Ubuntu y la capacidad de vTPM para separar secretos. Por lo tanto, la superficie de seguridad es más compacta y el aislamiento de la máquina virtual se proporciona mediante la prevención de ataques al hipervisor. La siguiente figura demuestra el uso de Ubuntu para la memoria y el aislamiento de disco.
Qué significa esto para mi?
Al migrar a la nube pública, la organización confía en su infraestructura de nube pública y en su propio departamento de TI para garantizar la seguridad de sus datos. Con la informática confidencial, también puede beneficiarse de los mecanismos de seguridad integrados del hipervisor para la memoria de la máquina virtual y el aislamiento del disco, y utilizar el cifrado como mecanismo de aislamiento. La CPU implementa el cifrado como mecanismo de aislamiento de memoria, y Ubuntu y vTPM implementan el cifrado como mecanismo de aislamiento de disco. Esto se integra en la protección existente del hipervisor, agregando una línea a la arquitectura de defensa en profundidad.
Al mismo tiempo, la protección proporcionada por la informática confidencial en Azure se basa en imágenes de VM especialmente habilitadas, pero no cambia la carga de trabajo. Ya sea una base de datos como postgres que se ejecuta en Ubuntu o un clúster de kubernetes, su administración y operación son las mismas que las de las VM «no confidenciales» estándar anteriores. Ubuntu ha absorbido la complejidad de la implementación y puede realizar una transición sin problemas al nuevo entorno confidencial.
¿Cómo utilizar la informática confidencial de Ubuntu en Azure?
Se puede usar una imagen de Ubuntu diseñada para computación confidencial en Microsoft Azure (actualmente en versión preliminar) para probar la migración a la plataforma. Para cargas de trabajo de producción, proporcionamos imágenes de Ubuntu Pro diseñadas para la informática confidencial.Para probar Confidential Computing Ubuntu en Azure ahora mismo, consulte Esta guía de inicio rápido de Microsoft.