
Une collection d'exploits réels d'IA/ML pour des vulnérabilités divulguées de manière responsable
Le monde de l'IA a un problème de sécurité, et il ne se limite pas aux entrées données aux LLM comme ChatGPT. Basée sur les recherches de Protect AI et d'experts en sécurité indépendants sur la plateforme de Bug Bounty Huntr, il existe des attaques bien plus impactantes et pratiques contre les outils, bibliothèques et frameworks utilisés pour construire, entraîner et déployer des modèles de machine learning. Nombre de ces attaques mènent à des prises de contrôle complètes du système et/ou à la perte de données, modèles ou identifiants sensibles, le plus souvent sans nécessité d'authentification.
Avec la publication de ce dépôt, Protect AI espère démystifier auprès de la communauté de la sécurité de l'information ce à quoi ressemblent les attaques pratiques contre l'infrastructure IA/Machine Learning dans le monde réel et sensibiliser au nombre de composants vulnérables qui existent actuellement dans l'écosystème IA/ML. Plus de vulnérabilités peuvent être trouvées ici :
Ce dépôt, ai-exploits, est une collection d'exploits et de modèles de scan pour des vulnérabilités divulguées de manière responsable affectant les outils de machine learning.
Chaque outil vulnérable contient plusieurs sous-dossiers avec trois types d'utilitaires : des modules Metasploit, des modèles Nuclei et des modèles CSRF. Les modules Metasploit sont destinés aux professionnels de la sécurité souhaitant exploiter les vulnérabilités, tandis que les modèles Nuclei servent à scanner un grand nombre de serveurs distants pour déterminer s'ils sont vulnérables.
Vidéo montrant l'exécution d'un des modules Metasploit contre Ray :
La façon la plus simple d'utiliser les modules et les modèles de scan est de construire et d'exécuter l'image Docker fournie par le Dockerfile de ce dépôt. L'image Docker contiendra Metasploit et Nuclei déjà installés, ainsi que toute la configuration nécessaire.
Construire l'image :
git clone https://github.com/protectai/ai-exploits && cd ai-exploits
docker build -t protectai/ai-exploits .
Exécuter l'image Docker :
docker run -it --rm protectai/ai-exploits /bin/bash
La dernière commande vous placera dans une session bash dans le conteneur, avec msfconsole et nuclei prêts à l'emploi.
Démarrez la console Metasploit (les nouveaux modules seront disponibles sous la catégorie exploits/protectai), chargez un module, définissez les options et exécutez l'exploit.
msfconsole
msf6 > use exploit/protectai/ray_job_rce
msf6 exploit(protectai/ray_job_rce) > set RHOSTS <IP cible>
msf6 exploit(protectai/ray_job_rce) > run
Créez un dossier ~/.msf4/modules/exploits/protectai et copiez les modules d'exploit dedans.
mkdir -p ~/.msf4/modules/exploits/protectai
cp ai-exploits/ray/msfmodules/* ~/.msf4/modules/exploits/protectai
msfconsole
msf6 > use exploit/protectai/<nom_exploit.py>
Nuclei est un moteur de scan de vulnérabilités qui peut être utilisé pour scanner un grand nombre de serveurs à la recherche de vulnérabilités connues dans les applications web et les réseaux.
Naviguez vers le dossier des modèles Nuclei, par exemple ai-exploits/mlflow/nuclei-templates. Dans le conteneur Docker, ceux-ci sont stockés dans le dossier /root/nuclei-templates. Pointez ensuite simplement vers le fichier modèle et le serveur cible.
cd ai-exploits/mlflow/nuclei-templates
nuclei -t mlflow-lfi.yaml -u http://<cible>:<port>
Les vulnérabilités Cross-Site Request Forgery (CSRF) permettent aux attaquants de mettre en place un serveur web hébergeant une page HTML malveillante qui exécutera une requête vers le serveur cible au nom de la victime. C'est un vecteur d'attaque courant pour exploiter les vulnérabilités dans les applications web, y compris celles qui ne sont exposées que sur l'interface localhost et non sur le réseau plus large. Ci-dessous un exemple simple de démonstration de l'utilisation d'un modèle CSRF pour exploiter une vulnérabilité dans une application web.
Démarrez un serveur web dans le dossier csrf-templates. Python permet de mettre en place un serveur web simple dans n'importe quel dossier. Naviguez vers le dossier du modèle et démarrez le serveur.
cd ai-exploits/ray/csrf-templates
python3 -m http.server 9999
Visitez maintenant l'adresse du serveur web que vous venez de lancer (http://127.0.0.1:9999) et appuyez sur F12 pour ouvrir les outils de développement, puis cliquez sur l'onglet Network. Cliquez sur le lien vers ray-cmd-injection-csrf.html. Vous devriez voir que le navigateur a envoyé une requête au serveur vulnérable en votre nom.
Nous accueillons les contributions à ce dépôt. Veuillez lire nos Directives de contribution pour plus d'informations sur la façon de contribuer.
Ce projet est sous licence Apache 2.0.