
Protection contre les attaques de sérialisation de modèles
Les modèles de Machine Learning (ML) sont partagés publiquement sur Internet, au sein des équipes et entre équipes. L'essor des modèles de fondation a conduit à une consommation croissante des modèles ML publics pour un entraînement ou un fine-tuning supplémentaire. Les modèles ML sont de plus en plus utilisés pour prendre des décisions critiques et alimenter des applications essentielles. Malgré cela, les modèles ne sont pas encore analysés avec la même rigueur qu'un fichier PDF dans votre boîte mail.
Cela doit changer, et des outils adaptés constituent la première étape.

ModelScan est un projet open source de Protect AI qui analyse les modèles afin de déterminer s'ils contiennent du code non sûr. C'est le premier outil d'analyse de modèles à prendre en charge plusieurs formats de modèles. ModelScan prend actuellement en charge les formats H5, Pickle et SavedModel. Cela vous protège lorsque vous utilisez PyTorch, TensorFlow, Keras, Sklearn, XGBoost, et d'autres formats sont à venir.
Si vous êtes prêt à commencer à analyser vos modèles, c'est simple :
pip install modelscan
Une fois installé, analysez un modèle :
modelscan -p /path/to/model_file.pkl
Les modèles sont souvent créés à partir de pipelines automatisés, tandis que d'autres peuvent provenir du portable d'un data scientist. Dans les deux cas, le modèle doit être transféré d'une machine à une autre avant d'être utilisé. Ce processus d'enregistrement d'un modèle sur disque est appelé sérialisation.
Une attaque de sérialisation de modèle consiste à ajouter du code malveillant au contenu d'un modèle pendant la sérialisation (l'enregistrement) avant sa distribution — une version moderne du cheval de Troie.
L'attaque fonctionne en exploitant le processus d'enregistrement et de chargement des modèles. Lorsque vous chargez un modèle avec model = torch.load(PATH), PyTorch ouvre le contenu du fichier et commence à exécuter le code qu'il contient. Dès l'instant où vous chargez le modèle, l'exploit est exécuté.
Une attaque de sérialisation de modèle peut être utilisée pour exécuter :
Ces attaques sont incroyablement simples à exécuter et vous pouvez voir des exemples fonctionnels dans notre dossier 📓notebooks.
ModelScan offre une analyse open source robuste. Si vous avez besoin d'une sécurité IA complète, pensez à Guardian. Il s'agit de notre produit d'analyse de modèles de niveau entreprise.

Si le chargement d'un modèle avec votre framework de machine learning exécute automatiquement l'attaque, comment ModelScan vérifie-t-il le contenu sans charger le code malveillant ?
Simple : il lit le contenu du fichier octet par octet, comme une chaîne de caractères, à la recherche de signatures de code non sûres. Cela le rend extrêmement rapide, analysant les modèles dans le temps que votre ordinateur met pour traiter la taille totale du fichier depuis le disque (quelques secondes dans la plupart des cas). C'est également sécurisé.
ModelScan classe le code non sûr selon les niveaux suivants :

Si un problème est détecté, contactez immédiatement les auteurs du modèle pour en déterminer la cause.
Dans certains cas, du code peut être intégré au modèle pour faciliter la reproduction des résultats par un data scientist, mais cela vous expose à une attaque. À vous de juger si cela est approprié pour vos charges de travail.
Cela sera étendu en continu, alors surveillez les changements dans nos notes de version.
À l'heure actuelle, ModelScan prend en charge tout format dérivé de Pickle et bien d'autres :