
Protezione contro gli attacchi di serializzazione dei modelli
I modelli di Machine Learning (ML) vengono condivisi pubblicamente su internet, all'interno dei team e tra team diversi. L'ascesa dei Foundation Model ha portato a un consumo sempre maggiore di modelli ML pubblici per ulteriore addestramento/fine-tuning. I modelli ML sono sempre più utilizzati per prendere decisioni critiche e alimentare applicazioni mission-critical. Nonostante ciò, i modelli non vengono ancora scansionati con il rigore riservato a un file PDF nella tua casella di posta.
Questo deve cambiare, e gli strumenti adeguati sono il primo passo.

ModelScan è un progetto open source di Protect AI che scansiona i modelli per determinare se contengono codice non sicuro. È il primo strumento di scansione di modelli a supportare più formati di modelli. ModelScan attualmente supporta: formati H5, Pickle e SavedModel. Questo ti protegge quando usi PyTorch, TensorFlow, Keras, Sklearn, XGBoost, con altri in arrivo.
Se sei pronto per iniziare a scansionare i tuoi modelli, è semplice:
pip install modelscan
Con lo strumento installato, scansiona un modello:
modelscan -p /path/to/model_file.pkl
I modelli sono spesso creati da pipeline automatizzate, altri possono provenire dal laptop di un data scientist. In entrambi i casi, il modello deve essere spostato da una macchina all'altra prima di essere utilizzato. Questo processo di salvataggio del modello su disco è chiamato serializzazione.
Un attacco di serializzazione del modello è un attacco in cui codice dannoso viene aggiunto al contenuto di un modello durante la serializzazione (salvataggio) prima della distribuzione — una versione moderna del Cavallo di Troia.
L'attacco funziona sfruttando il processo di salvataggio e caricamento dei modelli. Quando carichi un modello con model = torch.load(PATH), PyTorch apre il contenuto del file e inizia a eseguire il codice al suo interno. Nell'istante in cui carichi il modello, l'exploit è già stato eseguito.
Un attacco di serializzazione del modello può essere utilizzato per eseguire:
Questi attacchi sono incredibilmente semplici da eseguire e puoi vedere esempi funzionanti nella nostra cartella 📓notebooks.
ModelScan offre una solida scansione open source. Se hai bisogno di una sicurezza AI completa, considera Guardian. È il nostro prodotto di scansione di modelli di livello enterprise.

Se caricare un modello con il tuo framework di machine learning esegue automaticamente l'attacco, come fa ModelScan a controllare il contenuto senza caricare il codice dannoso?
Semplice: legge il contenuto del file un byte alla volta, proprio come una stringa, cercando firme di codice non sicure. Questo lo rende estremamente veloce: scansiona i modelli nel tempo impiegato dal tuo computer per elaborare la dimensione totale del file dal disco (secondi nella maggior parte dei casi). È anche sicuro.
ModelScan classifica il codice non sicuro come:

Se viene rilevato un problema, contatta immediatamente gli autori del modello per determinare la causa.
In alcuni casi, il codice può essere incorporato nel modello per rendere più facile la riproduzione per un data scientist, ma ti espone ad attacchi. Usa la tua discrezione per determinare se è appropriato per i tuoi carichi di lavoro.
Questo sarà in continua espansione, quindi tieni d'occhio le modifiche nelle nostre note di rilascio.
Al momento, ModelScan supporta qualsiasi formato derivato da Pickle e molti altri: