
Una colección de exploits del mundo real de AI/ML para vulnerabilidades divulgadas de manera responsable.
El mundo de la IA tiene un problema de seguridad y no solo está en las entradas dadas a LLMs como ChatGPT. Basado en investigaciones realizadas por Protect AI y expertos en seguridad independientes en la Plataforma de Bug Bounty Huntr, existen ataques mucho más impactantes y prácticos contra las herramientas, bibliotecas y marcos utilizados para construir, entrenar e implementar modelos de aprendizaje automático. Muchos de estos ataques conducen a tomas completas del sistema y/o pérdida de datos sensibles, modelos o credenciales, la mayoría de las veces sin necesidad de autenticación.
Con el lanzamiento de este repositorio, Protect AI espera desmitificar para la comunidad de Seguridad de la Información cómo se ven los ataques prácticos contra la infraestructura de IA/Aprendizaje Automático en el mundo real y crear conciencia sobre la cantidad de componentes vulnerables que existen actualmente en el ecosistema de IA/ML. Se pueden encontrar más vulnerabilidades aquí:
Este repositorio, ai-exploits, es una colección de exploits y plantillas de escaneo para vulnerabilidades divulgadas de manera responsable que afectan a herramientas de aprendizaje automático.
Cada herramienta vulnerable tiene varias subcarpetas que contienen tres tipos de utilidades: módulos de Metasploit, plantillas de Nuclei y plantillas CSRF. Los módulos de Metasploit son para profesionales de la seguridad que buscan explotar las vulnerabilidades y las plantillas de Nuclei son para escanear un gran número de servidores remotos para determinar si son vulnerables.
Video que muestra la ejecución de uno de los módulos de Metasploit contra Ray:
La forma más fácil de usar los módulos y las plantillas de escaneo es construir y ejecutar la imagen Docker proporcionada por el Dockerfile en este repositorio. La imagen Docker tendrá Metasploit y Nuclei ya instalados junto con toda la configuración necesaria.
Construir la imagen:
git clone https://github.com/protectai/ai-exploits && cd ai-exploits
docker build -t protectai/ai-exploits .
Ejecutar la imagen Docker:
docker run -it --rm protectai/ai-exploits /bin/bash
El último comando lo llevará a una sesión de bash en el contenedor con msfconsole y nuclei listos para usar.
Inicie la consola de Metasploit (los nuevos módulos estarán disponibles bajo la categoría exploits/protectai), cargue un módulo, configure las opciones y ejecute el exploit.
msfconsole
msf6 > use exploit/protectai/ray_job_rce
msf6 exploit(protectai/ray_job_rce) > set RHOSTS <IP objetivo>
msf6 exploit(protectai/ray_job_rce) > run
Cree una carpeta ~/.msf4/modules/exploits/protectai y copie los módulos de exploit en ella.
mkdir -p ~/.msf4/modules/exploits/protectai
cp ai-exploits/ray/msfmodules/* ~/.msf4/modules/exploits/protectai
msfconsole
msf6 > use exploit/protectai/<nombre_del_exploit.py>
Nuclei es un motor de escaneo de vulnerabilidades que se puede utilizar para escanear grandes cantidades de servidores en busca de vulnerabilidades conocidas en aplicaciones web y redes.
Navegue a la carpeta de plantillas de nuclei, por ejemplo ai-exploits/mlflow/nuclei-templates. En el contenedor Docker, estas se almacenan en la carpeta /root/nuclei-templates. Luego simplemente apunte al archivo de plantilla y al servidor objetivo.
cd ai-exploits/mlflow/nuclei-templates
nuclei -t mlflow-lfi.yaml -u http://<objetivo>:<puerto>
Las vulnerabilidades de Cross-Site Request Forgery (CSRF) permiten a los atacantes levantar un servidor web que aloje una página HTML maliciosa que ejecutará una solicitud al servidor objetivo en nombre de la víctima. Este es un vector de ataque común para explotar vulnerabilidades en aplicaciones web, incluyendo aplicaciones web que solo están expuestas en la interfaz de localhost y no en la red más amplia. A continuación se muestra un ejemplo de demostración simple de cómo usar una plantilla CSRF para explotar una vulnerabilidad en una aplicación web.
Inicie un servidor web en la carpeta csrf-templates. Python permite levantar un servidor web simple en cualquier directorio. Navegue a la carpeta de plantillas e inicie el servidor.
cd ai-exploits/ray/csrf-templates
python3 -m http.server 9999
Ahora visite la dirección del servidor web que acaba de levantar (http://127.0.0.1:9999) y presione F12 para abrir las herramientas de desarrollador, luego haga clic en la pestaña Network. Haga clic en el enlace a ray-cmd-injection-csrf.html. Debería ver que el navegador envió una solicitud al servidor vulnerable en su nombre.
Damos la bienvenida a las contribuciones a este repositorio. Lea nuestras Guías de Contribución para obtener más información sobre cómo contribuir.
Este proyecto está licenciado bajo la Licencia Apache 2.0.