El nuevo error FabricScape en Microsoft Azure Service Fabric afecta las cargas de trabajo de Linux.

Los investigadores de seguridad cibernética de la Unidad 42 de Palo Alto Networks revelaron detalles de una nueva falla de seguridad que afecta a Service Fabric de Microsoft y que podría explotarse para obtener permisos elevados y tomar el control de todos los nodos en un clúster. El problema encontrado se lo nombró FabricScape y fue identificado como CVE-2022-30137, solo podría armarse en contenedores que están configurados para tener acceso en tiempo de ejecución. Se solucionó el 14 de junio de 2022 en Service Fabric 9.0 Cumulative Update 1.0.

Azure Service Fabric

Azure Service Fabric es la plataforma como servicio (PaaS) de Microsoft y una solución orquestadora de contenedores que se utiliza para crear e implementar aplicaciones en la nube basadas en microservicios en un clúster de máquinas.

Service Fabric Cluster

Un clúster de Service Fabric es un conjunto de varios nodos conectados a la red (Windows Server o Linux), cada uno de los cuales está diseñado para administrar y ejecutar aplicaciones que constan de microservicios o contenedores.

Impacto de la vulnerabilidad

La vulnerabilidad permite que un atacante, con acceso a un contenedor comprometido, aumente los privilegios y obtenga el control del nodo SF del host del recurso y de todo el clúster. Aunque el error existe en ambos, operando plataformas de sistema (SO), solo es explotable en Linux; Windows ha sido examinado minuciosamente y se ha encontrado que no es vulnerable a este ataque.

Prueba de concepto explotación CVE-2022-30137

Para explotar el problema, un atacante necesita activar DCA para ejecutar la función vulnerable en un archivo que controla. DCA supervisa la creación de nombres de archivo específicos en los directorios de registro que se mencionó anteriormente y ejecuta una funcionalidad diferente para cada archivo. Uno de esos archivos es ProcessContainerLog.txt.

ProcessContainerLog documentation in the code

Cuando DCA identifica que se creó este archivo, ejecuta una función que finalmente ejecuta GetIndex varias veces en rutas dentro del directorio de registro, que el contenedor puede modificar.

Monitoring ProcessContainerLog

Esto significa que un contenedor malicioso podría desencadenar la ejecución de GetIndex en un archivo que controla e intenta superar la condición de carrera para sobrescribir cualquier ruta en el sistema de archivos del nodo.

Si bien este comportamiento se puede observar tanto en contenedores de Linux como en contenedores de Windows, solo se puede explotar en contenedores de Linux porque en los contenedores de Windows, los actores sin privilegios no pueden crear enlaces simbólicos en ese entorno.

Para mas información a detalle sobre la prueba de concepto de explotación de CVE-2022-30137, se debe dirigir a la pagina oficial.

Ataque exitoso

Para que un ataque tenga éxito en la vulnerabilidad, se requieren estos pasos ordenados:

  • Paso 1: Un atacante debe comprometer una carga de trabajo en contenedores implementada por el propietario de un clúster de Linux SF.
  • Paso 2: El código hostíl que se ejecuta dentro del contenedor podría sustituir un archivo de índice leído por DCA con un enlace simbólico.

Por diseño, el acceso root en la máquina que aloja el nodo SF no se considera un límite de seguridad en un clúster SF; el rol privilegiado más alto en un nodo tiene el mismo privilegio en cualquier parte del mismo clúster.

Recomendaciones

  • Microsoft ha instado a las organizaciones que utilizan el servicio a revisar las cargas de trabajo en contenedores en entornos Linux y Windows, es importante tomar medidas adicionales para crear modos de aislamiento cuando consideren alojar aplicaciones que no son de confianza y eliminar su acceso al tiempo de ejecución de Service Fabric.
  • Aunque no hay evidencia de que la vulnerabilidad haya sido explotada en ataques del mundo real hasta la fecha, es crucial que las organizaciones tomen medidas inmediatas para determinar si sus entornos son susceptibles e implementar los parches.

Para mayor información