martes, 20 de septiembre de 2022

AttachMe: la vulnerabilidad crítica de OCI que permitió el acceso no autorizado a los volúmenes de almacenamiento de la nube de clientes

Apache: ¿Qué es Log4Shell? ¿Por qué es la peor vulnerabilidad informática  de la década? | Tecnología | EL PAÍS
Fuente: https://www.wiz.io/blog/attachme-oracle-cloud-vulnerability-allows-unauthorized-cross-tenant-volume-access

Antes de que se parcheara, #AttachMe podría haber permitido a los atacantes acceder y modificar los volúmenes de almacenamiento OCI de otros usuarios sin autorización, violando así el aislamiento de la nube. Tras la divulgación, Oracle solucionó la vulnerabilidad en cuestión de horas. No se requirió ninguna acción del cliente.

En junio, los ingenieros de Wiz descubrieron e informaron #AttachMe, una importante vulnerabilidad de aislamiento de la nube en Oracle Cloud Infrastructure (OCI), lo que llevó a Oracle a corregir la vulnerabilidad en cuestión de horas y sin necesidad de que el cliente hiciera nada.

Impacto potencial: antes de que se parcheara, todos los clientes de OCI podrían haber sido atacados por un atacante con conocimiento de #AttachMe. Cualquier volumen de almacenamiento no conectado, o volúmenes de almacenamiento adjuntos que permitan la conexión múltiple, podrían haber sido leídos o escritos siempre que un atacante tuviera su Oracle Cloud Identifier (OCID), lo que permitía filtrar datos confidenciales o iniciar ataques más destructivos. manipulación de archivos ejecutables.

Remediación: dentro de las 24 horas posteriores a la notificación de Wiz, Oracle parcheó #AttachMe para todos los clientes de OCI. No se requirió ninguna acción del cliente.

Conclusiones clave: el aislamiento de inquilinos en la nube es un elemento clave en la nube. Los clientes esperan que otros clientes no puedan acceder a sus datos. Sin embargo, las vulnerabilidades de aislamiento de la nube rompen las barreras entre los inquilinos. Esto destaca la importancia crucial de la
investigación proactiva de vulnerabilidades de la nube, la divulgación responsable y el seguimiento público de las vulnerabilidades de la nube para la seguridad de la nube.

¿Qué es Adjuntarme?

#AttachMe es una de las vulnerabilidades en la nube más graves reportadas, ya que podría haber afectado a todos los clientes de OCI. Las vulnerabilidades de aislamiento de la nube generalmente afectan un servicio de nube específico. Sin embargo, en este caso, el impacto está relacionado con un servicio central en la nube.

Los ingenieros de Wiz descubrieron que adjuntar un disco a una máquina virtual en otra cuenta no requería ningún permiso. Esto significa que un atacante potencial podría haber accedido y modificado datos de cualquier cliente de OCI y, en algunos casos, incluso apoderarse del entorno.

El flujo de ataque potencial era simple:

Descubra un ID (OCID) del volumen de una víctima de destino buscando en la web o utilizando un permiso de usuario con pocos privilegios para leer el volumen OCID del entorno de la víctima.

Inicie una instancia informática en un arrendatario controlado por un atacante ubicado en el mismo dominio de disponibilidad (AD) que el volumen de destino.

Adjunte el volumen de la víctima a la instancia informática del atacante, obteniendo así privilegios de lectura/escritura sobre el volumen.

A partir de ahí, un atacante potencial podría haber realizado numerosas acciones graves:

Extraiga los datos confidenciales almacenados en el volumen.

Busque en el volumen secretos de texto claro para moverse lateralmente a través del entorno de la víctima y/o aumentar los privilegios. ype paravirtualizado -- instance-id <instancia_ocid> --volume-id <volumen_ocid>

Según la referencia de la política, los permisos necesarios para AttachVolume son:

  • VOLUME_WRITE, 
  • VOLUME_ATTACHMENT_CREATE e 
  • INSTANCE_ATTACH_VOLUME. 
No es necesario que la instancia y el volumen estén en el mismo compartimento.

La conexión de volumen es un recurso de OCI que reside en el compartimento de la instancia informática y describe una conexión de un volumen a una instancia informática. Los permisos se aplican a un compartimento (y su árbol de compartimentos). 

Por lo tanto, se requieren VOLUME_ATTACHMENT_CREATE e INSTANCE_ATTACH_VOLUME en el ámbito del compartimento de la instancia (en este caso, el compartimento del atacante) y VOLUME_WRITE en el ámbito del compartimento del volumen (el compartimento de la víctima).

Sin embargo, como descubrimos, había una brecha en la validación del permiso VOLUME_WRITE al adjuntar un volumen, lo que hizo posible adjuntar cualquier volumen sin autorización. Además, la conexión fue posible en diferentes arrendamientos: logramos adjuntar un volumen de un arrendamiento a una instancia informática en otro arrendamiento. Manifestación

Cuando un usuario no autorizado intenta realizar cualquier operación en un volumen, el servicio (correctamente) devuelve un error que indica que el usuario carece de los permisos necesarios:

elad_gabay@cloudshell:~ (us-ashburn-1)$ oci bv volumen get --volume-id ocid1.bootvolume.oc1.iad.abuwcljrybvvdsn******************* *********************** Error
de servicio: { "client_version": "Oracle-PythonSDK/2.69.0, Oracle-PythonCLI/3.10.0", "código": "No autorizado o no encontrado", "logging_tips": "Ejecute el comando OCI CLI usando el indicador --debug para encontrar más información de depuración"., "message": "Autorización fallida o recurso solicitado no encontrado.", "opc-request-id": "DFB9SCC25*****", "nombre_operación": "obtener_volumen", "request_endpoint": "OBTENGA https://iaas.us-ashburn-oraclecloud.com/20160918/volumes/ocid1.bootvolume.oc1.iad.abuwcljrybvvdsn***************** ***************************", "estado": 404, "target_service": "almacenamiento en bloque", "marca de tiempo": "2022-06-07114:12:21.408280", "troubleshooting_tips": "Consulte
https://docs.oracle.com/iaas/Content/API/References/apierrors.htm#apierrors_404_404_notauthorizedornotfound para obtener más información sobre cómo resolver este error. Si no puede resolver este problema, ejecute este comando CLI con la opción --debug, comuníquese con el soporte de Oracle y proporcióneles el mensaje de
error completo". }

Sin embargo, antes de que se remediara #AttachMe, intentar adjuntar un volumen a una instancia de cómputo tuvo éxito, ya sea que el usuario tuviera suficientes permisos o no:

elad_gabay@cloudshell:~(us-ashburn-1)$ oci computar volumen-archivo adjunto adjuntar --instance-id ocid1.instance.oc1.iad.anuwcljrixjtluica*****************
************************** --volume-id ocid1.bootvolume.oc1.iad.abuwcljrybvvdsn3********** ******************************** --tipo paravirtualizado { "datos": {
"tipo-de-archivo adjunto": "paravirtualizado", "dominio-de-disponibilidad": "zSfH:US-ASHBURN-AD-1", "id-compartimento":
"ocid1.tenancy.oc1..aaaaaaaaaote2dzazv***********************", "dispositivo": "nulo", "nombre para mostrar": "archivo adjunto de volumen20220607141228", "id":
"ocid1.archivo adjunto de volumen.oc1.iad.anuwcljrixjtluic***********************", "id-de-instancia": "ocid1.instancia-
oc1.iad.anuwcljrixjtluica************************", "es-multipath": nulo, "es-pv-encryption-in-transit-enabled": falso, "es de solo lectura": falso, "es-
compartible": falso, "iscsi-login-state": nulo, "estado del ciclo de vida": "ADJUNTAR", "tiempo-creado": "2022-06-07T14:12:29.027000+00:00", "id-volumen":
"ocid1.bootvolume.oc1.iad.abuwcljrybvvdsn3***********************", }, "etag": "992e06ff86b86a5fe732308092a55***********************************" }

Una vez adjunto el volumen, pudimos visualizar y modificar su contenido.

Los requisitos detallados para explotar #AttachMe fueron:

El atacante debe conocer el OCID del volumen de destino. Si bien los OCID generalmente son privados, no se tratan como secretos, por lo que esto se logra fácilmente.

La instancia informática del atacante debe estar en el mismo dominio de disponibilidad (AD) que el volumen de destino. Esta condición se puede cumplir fácilmente ya que la cantidad de zonas de disponibilidad es relativamente pequeña (hasta tres en algunas regiones) y, por lo tanto, se puede enumerar.

El volumen de destino debe estar desconectado o adjunto como compartible: los volúmenes desconectados son relativamente comunes porque, de forma predeterminada, los volúmenes de arranque asociados con las instancias informáticas terminadas no se eliminan. Además, los volúmenes de datos de copia de seguridad a menudo no se adjuntan a una instancia informática en ejecución.

Análisis de riesgo

Cuando un atacante obtiene acceso de lectura a sus volúmenes, el principal riesgo es la violación de datos. Los volúmenes pueden contener información confidencial, como información de identificación personal (PII), secretos y más.

Otro riesgo es la manipulación de datos y intrusión en su red en la nube. Adjuntar un volumen proporciona acceso de escritura que podría usarse para manipular cualquier dato en el volumen, incluido el tiempo de ejecución del sistema operativo (por ejemplo, mediante la modificación de archivos binarios), obteniendo así la ejecución del código en la instancia informática remota y un punto de apoyo en el entorno de la nube de la víctima. una vez que el volumen se utiliza para iniciar
una máquina.

Las posibles rutas de ataque incluyen:

Aumento de privilegios dentro del compartimento o arrendamiento: si un atacante logró obtener acceso inicial al entorno OCI de una víctima, #AttachMe podría haber sido explotado para aumentar aún más los privilegios. Un atacante habría podido consultar todos los volúmenes disponibles en el compartimento para obtener sus OCID, montarlos y leer cualquier información confidencial almacenada en ellos. Acceso entre inquilinos: un escenario más impactante es si un atacante logra
obtener OCID de volúmenes en un inquilino remoto. #AttachMe podría haberse utilizado para obtener acceso inicial al entorno de la víctima mediante la lectura de información confidencial y secretos de larga duración que se almacenaron en los volúmenes de destino. Además, el atacante podría haber manipulado volúmenes de bloque y volúmenes de arranque existentes de una manera que proporcionaría la ejecución del código del atacante cuando los volúmenes estaban montados en
instancias informáticas.

Consideramos que ambas posibles rutas de ataque son bastante factibles dado que los OCID generalmente no se tratan como secretos. Se pueden encontrar numerosos OCID de volúmenes de bloque y volúmenes de arranque de varios entornos, incluidos los de las principales empresas, mediante una simple búsqueda en línea.

También es posible encontrar OCID de volúmenes que se publicaron en GitHub, lo que indica que los desarrolladores no tratan estos ID como secretos. Los usuarios con pocos privilegios y los proveedores externos con acceso de lectura al entorno podrían obtener OCID muy fácilmente. Cronología de descubrimiento y divulgación

Al descubrir #AttachMe, inmediatamente divulgamos nuestros hallazgos a Oracle, quien investigó y solucionó este problema en menos de 24 horas. Estamos felices de colaborar con un equipo tan profesional.

  • 6 de junio de 2022: Wiz descubre la vulnerabilidad 9 de junio de 2022: vulnerabilidad informada a Oracle 
  • 10 de junio de 2022: Oracle reconoce el informe 10 de junio de 2022: se corrige la vulnerabilidad

Lecciones para constructores y defensores de la nube

La validación insuficiente de los permisos de usuario es una clase de error común entre los proveedores de servicios en la nube. La mejor manera de identificar tales problemas es realizar revisiones de código rigurosas y pruebas exhaustivas para cada API sensible en la etapa de desarrollo. Oracle compartió con nosotros que utiliza tecnología de análisis de código estático para detectar tales problemas que ya están en desarrollo e investigar los problemas conocidos e informados para garantizar que el patrón problemático no se repita en otra parte de la base de código.

También recomendamos realizar pruebas de penetración específicas del servicio y participar en programas de recompensas por errores, ya que estos han demostrado ser efectivos con este tipo de problemas. Seguimiento de vulnerabilidades en la nube #AttachMe es la última de una larga lista de vulnerabilidades de aislamiento en la nube descubiertas por la comunidad de investigación: los ejemplos recientes incluyen "ExtraReplica", una vulnerabilidad de base de datos de inquilinos cruzados en Azure PostgreSQL también descubierta por la investigación de Wiz, y una vulnerabilidad de inquilinos cruzados en Azure Cloud Shell descubierto por Chen Cohen del equipo de pruebas de penetración de eBay.

Hoy en día, no existe un proceso claro en torno a las vulnerabilidades de la nube impuestas por la comunidad de seguridad. Las vulnerabilidades de la nube no se emiten CVE, por lo que son muy difíciles de rastrear para los clientes. Recientemente, los investigadores de Wiz junto con otros miembros de la comunidad de seguridad en la nube iniciaron la base de datos de problemas de seguridad y vulnerabilidades de la nube abierta para ayudar a los usuarios y defensores de la nube a
monitorear y rastrear las vulnerabilidades de la nube.

Si está interesado en contribuir, puede consultar OpenCVDB GitHub.

Asegure todo lo que crea y ejecuta en la nube


No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar