
Una raccolta di exploit reali di AI/ML per vulnerabilità divulgate in modo responsabile.
Il mondo dell'AI ha un problema di sicurezza e non riguarda solo gli input forniti ai LLM come ChatGPT. Sulla base delle ricerche condotte da Protect AI e da esperti di sicurezza indipendenti sulla piattaforma di bug bounty Huntr, esistono attacchi molto più impattanti e pratici contro gli strumenti, le librerie e i framework utilizzati per costruire, addestrare e distribuire modelli di machine learning. Molti di questi attacchi portano alla totale compromissione del sistema e/o alla perdita di dati sensibili, modelli o credenziali, spesso senza necessità di autenticazione.
Con il rilascio di questo repository, Protect AI spera di demistificare per la comunità della sicurezza informatica l'aspetto reale degli attacchi pratici contro l'infrastruttura AI/Machine Learning e di aumentare la consapevolezza sulla quantità di componenti vulnerabili attualmente presenti nell'ecosistema AI/ML. Ulteriori vulnerabilità sono disponibili qui:
Questo repository, ai-exploits, è una raccolta di exploit e template di scansione per vulnerabilità divulgate in modo responsabile che interessano gli strumenti di machine learning.
Ogni strumento vulnerabile contiene diverse sottocartelle con tre tipi di utilità: moduli Metasploit, template Nuclei e template CSRF. I moduli Metasploit sono per i professionisti della sicurezza che desiderano sfruttare le vulnerabilità, mentre i template Nuclei servono per scansionare un gran numero di server remoti per determinare se sono vulnerabili.
Video che mostra l'esecuzione di uno dei moduli Metasploit contro Ray:
Il modo più semplice per utilizzare i moduli e i template di scansione è costruire ed eseguire l'immagine Docker fornita dal Dockerfile in questo repository. L'immagine Docker avrà Metasploit e Nuclei già installati insieme a tutta la configurazione necessaria.
Costruisci l'immagine:
git clone https://github.com/protectai/ai-exploits && cd ai-exploits
docker build -t protectai/ai-exploits .
Esegui l'immagine Docker:
docker run -it --rm protectai/ai-exploits /bin/bash
L'ultimo comando ti aprirà una sessione bash nel container con msfconsole e nuclei pronti all'uso.
Avvia la console Metasploit (i nuovi moduli saranno disponibili nella categoria exploits/protectai), carica un modulo, imposta le opzioni ed esegui l'exploit.
msfconsole
msf6 > use exploit/protectai/ray_job_rce
msf6 exploit(protectai/ray_job_rce) > set RHOSTS <IP target>
msf6 exploit(protectai/ray_job_rce) > run
Crea una cartella ~/.msf4/modules/exploits/protectai e copia i moduli di exploit al suo interno.
mkdir -p ~/.msf4/modules/exploits/protectai
cp ai-exploits/ray/msfmodules/* ~/.msf4/modules/exploits/protectai
msfconsole
msf6 > use exploit/protectai/<nome_exploit.py>
Nuclei è un motore di scansione delle vulnerabilità che può essere utilizzato per scansionare un gran numero di server alla ricerca di vulnerabilità note in applicazioni web e reti.
Naviga nella cartella dei template Nuclei, ad esempio ai-exploits/mlflow/nuclei-templates. Nel container Docker questi sono memorizzati nella cartella /root/nuclei-templates. Quindi punta al file del template e al server target.
cd ai-exploits/mlflow/nuclei-templates
nuclei -t mlflow-lfi.yaml -u http://<target>:<porta>
Le vulnerabilità di Cross-Site Request Forgery (CSRF) consentono agli attaccanti di mettere in piedi un server web che ospita una pagina HTML malevola che eseguirà una richiesta al server target per conto della vittima. Questo è un vettore di attacco comune per sfruttare vulnerabilità in applicazioni web, incluse quelle esposte solo sull'interfaccia localhost e non sulla rete più ampia. Di seguito un semplice esempio dimostrativo di come utilizzare un template CSRF per sfruttare una vulnerabilità in un'applicazione web.
Avvia un server web nella cartella csrf-templates. Python permette di avviare un semplice server web in qualsiasi directory. Naviga nella cartella dei template e avvia il server.
cd ai-exploits/ray/csrf-templates
python3 -m http.server 9999
Ora visita l'indirizzo del server web che hai appena avviato (http://127.0.0.1:9999) e premi F12 per aprire gli strumenti di sviluppo, poi clicca sulla scheda Network. Clicca sul link a ray-cmd-injection-csrf.html. Dovresti vedere che il browser ha inviato una richiesta al server vulnerabile per tuo conto.
Accogliamo con favore i contributi a questo repository. Leggi le nostre Linee guida per i contributi per maggiori informazioni su come contribuire.
Questo progetto è concesso in licenza secondo i termini della Licenza Apache 2.0.