Un error crítico en el marco de pruebas de IA MLflow puede comprometer el servidor y los datos
MLflow, un marco de código abierto utilizado por muchas organizaciones para administrar sus pruebas de aprendizaje automático y registrar los resultados, recibió un parche para una vulnerabilidad crítica que podría permitir a los atacantes extraer información confidencial de servidores como claves de extracción SSH y credenciales de AWS. Los ataques se pueden llevar a cabo de forma remota sin autenticación porque MLflow no implementa la autenticación de forma predeterminada y un número cada vez mayor de implementaciones de MLflow están expuestas directamente a Internet.
«Básicamente, cualquier organización que utilice esta herramienta corre el riesgo de perder sus modelos de IA, comprometer un servidor interno y comprometer su cuenta de AWS», dijo a CSO Dan McInerney, ingeniero de seguridad sénior en la startup de ciberseguridad Protect AI. «Es bastante brutal».
McInerney encontró la vulnerabilidad y lo informó en privado al proyecto MLflow. ha sido arreglado en la versión 2.2.1 del marco lanzado hace tres semanas, pero no se menciona ninguna solución de seguridad en las notas de la versión.
Montaje de archivos local y remoto a través de la ruta transversal
Escrito en Python, MLflow está diseñado para automatizar los flujos de trabajo de aprendizaje automático. Tiene varios componentes que permiten a los usuarios implementar modelos de diferentes bibliotecas de ML. administrar su ciclo de vida, incluido el control de versiones del modelo, las transiciones de fase y las anotaciones; Seguir experimentos para registrar y comparar parámetros y resultados; e incluso empaquetar código ML en una forma reproducible para compartir con otros científicos de datos. MLflow se puede controlar a través de una API REST y una interfaz de línea de comandos.
Todas estas capacidades hacen que el marco sea una herramienta valiosa para cualquier organización que experimente con el aprendizaje automático. Los escaneos con el motor de búsqueda de Shodan lo confirman y muestran un aumento constante en las instancias de MLflow de acceso público durante los últimos dos años, con un número actual que supera las 800. Sin embargo, se puede suponer que existen muchas más implementaciones de MLflow en redes internas y podrían ser accesibles para los atacantes que obtienen acceso a estas redes.
“Nos pusimos en contacto con nuestros contactos en varias empresas de Fortune 500 [and] Todos confirmaron que usan MLflow internamente para su flujo de trabajo de ingeniería de IA”, dice McInerney a CSO.
La vulnerabilidad encontrada por McInerney se rastrea como CVE-2023-1177 y se califica con 10 (crítica) en la escala CVSS. Lo describe como un montaje de archivos local y remoto (LFI/RFI) a través de la API, donde un atacante remoto y no autenticado podría enviar solicitudes especialmente diseñadas al extremo de la API que obligarían a MLflow a exponer el contenido de todos los archivos legibles en el servidor.
Por ejemplo, el atacante puede incluir JSON como parte de la solicitud, donde cambia el parámetro de origen para que sea cualquier archivo en el servidor y la aplicación lo devolverá. Uno de esos archivos pueden ser las claves ssh, que generalmente se almacenan en el directorio .ssh en el directorio de inicio del usuario local. Sin embargo, conocer el directorio de inicio del usuario de antemano no es un requisito previo para el exploit, ya que el atacante puede leer primero el archivo /etc/passwd, que está disponible en todos los sistemas Linux y enumera todos los usuarios disponibles y sus directorios de inicio. Ninguno de los otros parámetros enviados como parte de la solicitud maliciosa debe estar presente y puede ser cualquier cosa.
Para agravar la vulnerabilidad, la mayoría de las empresas configuran sus instancias de MLflow para usar Amazon AWS S3 para almacenar sus modelos y otros datos confidenciales. Según la revisión de Protect AI de la configuración de las instancias de MLflow disponibles públicamente, siete de cada diez utilizaron AWS S3. Esto significa que los atacantes pueden establecer el parámetro de origen en su solicitud JSON en la URL s3:// del depósito utilizado por la instancia para robar modelos de forma remota.
Esto también significa que es probable que las credenciales de AWS se almacenen localmente en el servidor de MLflow para permitir que el marco acceda a los depósitos de S3, y estas credenciales generalmente se almacenan en una carpeta llamada ~/.aws/credentials en el directorio de inicio del usuario. La divulgación de las credenciales de AWS puede ser una infracción grave porque puede permitir que los atacantes atraviesen la infraestructura de AWS de una organización, según la política de IAM de una organización.
La falta de autenticación básica conduce a implementaciones inseguras
Requerir autenticación para acceder al extremo de la API evitaría la explotación de esta falla, pero MLflow no implementa un mecanismo de autenticación. La autenticación básica con un nombre de usuario y contraseña estáticos se puede agregar implementando un servidor proxy como nginx frente al servidor MLflow y, por lo tanto, aplicando la autenticación. Desafortunadamente, casi ninguna de las instancias de acceso público utiliza una configuración de este tipo.
«Difícilmente puedo llamar a esto una implementación segura de la herramienta, pero al menos la implementación más segura de MLflow actualmente es mantenerla en una red interna, en un segmento de red separado de todos los usuarios, excepto aquellos que necesitan usarla, y una Nginx.» proxy con autenticación básica», dice McInerney. «Esto aún no impide que cualquier usuario con acceso al servidor descargue modelos y artefactos de otros usuarios, pero al menos limita la divulgación. Divulgación en un servidor público con acceso a Internet requiere: que absolutamente nada se almacene en el servidor o el servidor de almacenamiento de artefactos remotos contenga datos confidenciales».
Derechos de autor © 2023 IDG Communications, Inc.
Este contenido de ciberseguridad nos ha llegado de: CSO Online
Podrás encontrar la noticia original en el siguiente enlace: https://www.csoonline.com/article/3691612/critical-flaw-in-ai-testing-framework-mlflow-can-lead-to-server-and-data-compromise.html#tk.rss_news