Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Confidential Computing

Azure Confidential Computing

Azure Confidential Computing "la nueva era de la computación cloud" , para la #GlobalAzure Spain 2024

Jose María Flores Zazo

April 15, 2024
Tweet

More Decks by Jose María Flores Zazo

Other Decks in Technology

Transcript

  1. #GlobalAzure #YourLocationHashTag Azure Confidential Computing la nueva era de la

    computación cloud Jose María Flores Zazo Solution Architect at Avanade
  2. Agenda • Introducción: ¿Qué Confidential Computing? Pilares Casos de uso

    Trusted Execution Environment Cleanroom Confidential AI ¿Qué tenemos en Azure? • Manos a la obra • Futuro • Mis conclusiones • ¿Quieres saber más? https://jmfloreszazo.com
  3. Introducción Término que se usa en la industria por el

    Consorcio de Computación Confidencial (CCC), una fundación que se dedica a definir y acelerar el proceso de adopción de la computación confidencial. La CCC lo define como: la protección de datos en uso mediante la realización de cálculos en un entorno de ejecución fiable (Trusted Execution Environment, TEE). Un TEE es un entorno que impone la ejecución de solo código autorizado. Cualquier dato en el TEE no puede ser leído ni manipulado por ningún código fuera del entorno. El modelo de amenazas en informática confidencial tiene como objetivo eliminar o reducir la capacidad de un operador del proveedor de nube y otros actores en el dominio del inquilino para acceder al código y los datos mientras se ejecuta. ¿Qué es Confidential Computing (CC)? (1/2)
  4. Introducción ¿Qué es Confidential Computing (CC)? (2/2) Datos en descanso

    Datos en storages, blobs, etc. se en encriptan cuando estan inactivos Datos en transito Encriptar datos en cuando viajan en redes privadas o publicas Datos en uso Proteger/encriptar datos en uso, tanto en RAM como en computación Encriptado estándar y existente Confidential Computing
  5. Introducción Pilares de una nube confidencial Los datos estan bajo

    el control del cliente en la fase de descanso, tránsito y uso El proveedor de la plataforma en la nube esta fuera de la base informática de confianza El código que se ejecuta en la nube está protegido y verificado por el cliente El historial de actividades es inmutable y auditable
  6. Introducción Casos de uso Gobierno: identidad digital, anticorrupción, prevención del

    cibercrimen, procesos judiciales, seguridad ciudadana, etc. Industria: propiedad intelectual, patentes, procesos, cumplimientos regulatorios, auditorias, etc. Financiero y Seguros: prevención de fraudes, pagos seguros, blanqueo de capitales, algoritmos de ML propietarios, etc. Salud: diagnósticos, prevención de fraudes a seguros, desarrollo de fármacos, seguimientos, historiales, confidencialidad, etc.
  7. Introducción Pilares: ¿La nube publica pasa a ser “privada”? Sin

    computación confidencial: El proveedor de la nube y la infraestructura puede acceder a tus datos del clúster de tu Kubernetes o VM. Cloud Con computación confidencial: Tus despliegues de Kubernetes o VM estan encriptados en runtime y protegidos de la infraestructura. Cloud
  8. Introducción Trusted Execution Environment (TEE) Sistema Operativo Hipervisor Host OS

    Hardware App App TEE Datos Código Enclave Entrono aislado de código y datos de un Workload confidencial de otro sistema con una memoria encriptada
  9. Introducción ¿Cómo se ejecuta el flujo de una aplicación en

    el TEE? Parte no segura de la aplicación #2 Creación del Enclave la aplicación crea el enclave #3 CallTrusted() llamando a la parte segura #6 Logica de Aplicación procesado de negocio OS, VM, BIOS, … #1 App parte segura e insegura Parte segura de la aplicación #4 Proceso secreto la aplicación del enclave #5 Return función de retorno segura Enclave Bridge
  10. Cleanroom con Confidential Computing Confianza entre organizaciones La adopción de

    "clean rooms" (salas limpias) es una realidad, las empresas de diversos sectores colaboran con sus datos para obtener valiosos Insights. Sin embargo, para industrias fuertemente reguladas que manejan datos altamente sensibles e información personal identificable (PII), este escenario puede parecer un campo minado de posibles brechas de datos y responsabilidades. Estas empresas requieren los más altos niveles de seguridad en su infraestructura de colaboración, algo que la computación confidencial ofrece mediante ambientes de ejecución confiables basados en hardware y procesos de atestiguación para proteger los datos durante su procesamiento. Enabling data clean rooms with confidential computing Empresa A Empresa B Proceso de información Información sensible Información sensible Los Insights se envían a la empresa Los Insights se envían a la empresa Casos de uso potenciales: • Servicios financieros: Detectar fraudes, obtener insights sobre riesgos de cartera, calcular tasas de seguros y recomendar productos financieros personalizados. • Salud: Reclutamiento para ensayos clínicos y análisis post-ensayo con datos de salud en tiempo real y de determinantes sociales de la salud, mejorando la colaboración en consorcios.
  11. Confidential AI Diseñara para mejorar la seguridad y privacidad de

    aplicaciones de IA Se usa hardware especializado y entornos de ejecución de confianza (TEE). Protege los datos y modelos de IA durante todo su ciclo de vida, incluidos los momentos críticos en que están en uso. Esto es esencial en sectores como finanzas, salud, y otros, donde la confidencialidad y la protección de propiedad intelectual son primordiales. Permite escenarios avanzados como entrenamiento confidencial, ajuste de precisión, entrenamiento multiuso, aprendizaje federado e inferencia confidencial. Algunos casos de uso prácticos incluyen reconocimiento facial y de voz, detección de fraude y blanqueo de dinero, y diagnósticos médicos. La computación confidencial se posiciona como una solución a los desafíos de seguridad y cumplimiento normativo con mínimas sobrecargas de rendimiento.
  12. Introducción Azure ofrece ya muchas herramientas para salvaguardar los datos

    en reposo a través de modelos de cifrados en el cliente y servidor. Además, también existen mecanismos de seguridad como TLS y HTTPS para los datos en tránsito. Y aquí es donde se muestra la tercera fase: el cifrado de lo datos en uso. Azure nos ofrece como proveedor de la nube varios mecanismos para depender menos de la confianza en la infraestructura de la computación confidencial: minimiza la confianza en el kernel del sistema operativo, del host, del hipervisor, del administrador de la máquina virtual o del host. Azure Confidential Computing, nos puede ayudar con: • Evitar acceso no autorizados. • Cumplimiento de normativas. • Garantiza colaboración segura y no confiable. • Procesamiento aislado. ¿Qué tenemos en Azure? (1/3)
  13. Introducción Azure nos ofrece la siguiente oferta de productos: •

    Microsoft Azure Attestation, servicio de atestación remota para validad la confiabilidad de múltiples entornos de ejecución confiables (TEE) y verificar la integridad de los archivos binarios que se ejecutan en el TEE. • Azure Key Vault Managed HSM, es un servicio totalmente administrado, de alta disponibilidad, de un solo inquilino y que cumple con los estándares que permiten proteger con claves criptográficas gracias a su módulo de seguridad gestionado por hardware. • Trusted Launch, disponible en máquinas G2 y que ofrece seguridad reforzada (arranque seguro, módulo de plataforma virtual confiable y monitoreo de integridad en el arranque) que protege conta rootkits y malware a nivel de kernel. • Azure Confidential Ledger (ACL), es un registro a prueba de manipulaciones para almacenar datos confidenciales para el mantenimiento de registros y auditorías o para la transparencia de datos en escenarios multi-party. Ofrece garantías Write-Once-Read-Many, que hacen los datos no se puedan borrar ni modificar. Se basa en el Confidential Consortium Framework (CCF) de Microsoft Research. • Azure IoT Edge, permite ejecuciones seguras a través de enclaves seguros de IoT. Los dispositivos de IoT suelen estar expuestos a manipulaciones y falsificaciones por que se puede trabajar físicamente con ellos. Confidential Edge agrega confianza e integridad a los datos capturados y enviados. ¿Qué tenemos en Azure? (2/3)
  14. Introducción • Siempre cifrado con enclaves seguros en Azure SQL.

    La confidencialidad de los datos para que malware y usuarios con privilegios no autorizados puedan ejecutar consultas SQL directamente dentro de un TEE. • Confidential Containers on ACI. Contenedores Serverless que cumplen con el requisito de computación confidencial. • Azure DCsv3 VMs with Intel SGX (DCsv2 y DCdsv3), Intel Software Guard Extensions nos permite mayor potencia de trabajo con Enclave. En AMD tenemos SEV-SNP (Secure Encrypted Virtualization). En resumen, son mejoras en la CPU que admiten la implementación de CC gracias a extensiones en las VM (cifrado en memoria e integridad de la CPU) está presente en: − Las VM DCsv2, DCsv3 y DCdsv3. − En contenedores compatibles con enclave que se ejecuten en AKS. Los nodos usan Intel SGX. − VMs basadas en AMD SEV-SNP. − Confidential Interference ONNX Runtime, un servidor de ML que restringe el acceso a la parte que aloja el ML tanto en la solicitud como en la respuesta. ¿Qué tenemos en Azure? (3/3)
  15. Manos a la obra Lo primero es crear una infraestructura

    desde el CLI de Azure: • az group create --name myAksGlobalAzure2024 --location eastus • az aks create -g myAksGlobalAzure2024 --name myTestAKSCluster --generate-ssh-keys --enable-addons confcom • az aks nodepool add --cluster-name myTestAKSCluster --name confcompool1 --resource-group myAksGlobalAzure2024 --node-vm-size Standard_DC2s_v3 --node-count 2 • az aks get-credentials --resource-group myAksGlobalAzure2024 --name myTestAKSCluster • Visualizamos los nodos que tenemos y podemos observar que tenemos los confcompool1, los que hemos desplegado con una DC2s_v3 (es muy posible que tengáis que pedir estas máquinas porque no vienen en la cuota estándar) son los que tienen seguridad SGX. • Los nodos, llamados nodepool1, son estándar sin ningún tipo de seguridad. TEE & AKS (1/5) Standard_DC2s_v2
  16. Manos a la obra Ahora lo que vamos a hacer

    es irnos a nuestro CLI y ejecutar: • az login • Nos situamos en la suscripción donde habíamos creado la infra desde el CLI de Azure. • az aks get-credentials --resource-group myTestWithCC-RG --name myTestAKSCluster • Visualizamos los nodos que tenemos funcionando los sgx-device-plugin-xxxx, esto lo podías hacer desde Azure CLI, pero como más adelante lo necesitamos para lanzar un YAML, por eso lo he partido en 2 acciones: TEE & AKS (2/5)
  17. Manos a la obra Creamos el siguiente YAML, con el

    nombre hello-world-enclave.yaml: apiVersion: batch/v1 kind: Job metadata: name: sgx-test labels: app: sgx-test spec: template: metadata: labels: app: sgx-test spec: containers: - name: sgxtest image: oeciteam/sgx-test:1.0 resources: limits: kubernetes.azure.com/sgx_epc_mem_in_MiB: 10 restartPolicy: Never backoffLimit: 0 TEE & AKS (3/5) $ kubectl logs -l app=sgx-test Hello world from the enclave Enclave called into host to print: Hello World!
  18. Manos a la obra Vamos a desgranar que hace este

    contenedor. Lo primero es ir a las fuentes y clonarlas el repositorio a nuestro equipo: https://github.com/openenclave/openenclave/tree/master/samples/helloworld Donde podemos ver dos proyectos. Uno llamado Host y otro Enclave, que se corresponden con la parte no segura de la aplicación y la parte segura de la aplicación. Ver imagen de la introducción. La parte más importante de host.cs es donde se crea y llama al enclave: TEE & AKS (4/5)
  19. Manos a la obra Siendo la parte más interesante de

    enc.cs: Ya que se puede observar, no tiene nada raro en el proyecto, parece un C++ muy puro. TEE & AKS (5/5) En realidad, donde está la magia de la seguridad para los enclaves es en el fichero: helloworld.edl Donde observamos que estamos usando una librería propia del SDK OpenEnclave: • https://openenclave.io/sdk/ • https://github.com/openenclave/openenclave Y donde hemos definido que parte de la aplicación es segura y cual no lo es.
  20. Manos a la obra Demo detallada en: • https://jmfloreszazo.com/azure-confidential-computing/ •

    https://github.com/jmfloreszazo/azureconfidentialcomputingsample TEE & VM (DC2s v2)
  21. El futuro Inversión con visión Debido al aumento en la

    cantidad de datos y por tanto esto conlleva a mayores riesgos de privacidad y cumplimiento, hace que la computación confidencial sea esencial para proteger datos empresariales y de consumidores. Microsoft establece una visión de futuro con una inversión de 20 mil millones de dólares en seguridad y nuevas ofertas de computación confidencial.
  22. Mis conclusiones Lenguajes, avances, pero son lentos • C#: https://github.com/enclaive/enclaive-docker-cs-sgx/

    , pero lo que no he podido hacer es ver cómo funciona una aplicación como la anterior de C++ (separando parte segura e insegura). • En la sección Build Apps de https://microsoft.github.io/CCF/main/build_apps/index.html, ya podemos encontrar ejemplos en: TypeScript, JavaScript y C++. ¿Cómo nos afecta esto?, ¿Por qué Microsoft está desplegando tantas máquinas con Intel SGX y AMD SEV?, ¿Por qué se está haciendo tanta inversión en el consorcio por parte de Google, AMD, Intel, CISCO, NVIDIA, etc.? Que vamos a tener que empezar a pensar cómo hacer aplicaciones con seguridad durante el procesamiento. Tras dos años observando y hablando de Confidential Computing
  23. ¿Quieres saber más? Algunos enlaces para que continues investigando Y

    a continuación algunos enlaces: • Confidential Computing: White Papers & Reports. • Azure Confidential Computing. • nVidia Confidential Computing. • Intel Confidential Computing. • AMD Confidential Computing. • Google Confidential Computing. • AWS Confidential Computing. • IBM Confidential Computing. • OC3 (Open Confidential Computing Conference). • Confidential Computing Summit.