Les frameworks open source jouent un rôle crucial dans le domaine de l’apprentissage automatique, mais la rapidité de leur développement peut parfois compromettre la sécurité. Selon un rapport de Trail of Bits, une entreprise new-yorkaise de sécurité informatique, le modèle de détection d’objets en temps réel YOLOv7 présenterait 11 vulnérabilités. Il conclut également que la base de code du modèle n’est pas adaptée aux applications critiques ou aux applications nécessitant une haute disponibilité.
YOLO, acronyme de “You Only Look Once”, est une famille de modèles de détection d’objets en vision par ordinateur. L’idée principale derrière YOLO est d’effectuer la détection d’objets en une seule passe sur une image entière, contrairement à d’autres approches qui peuvent nécessiter plusieurs analyses de l’image. YOLO est ainsi plus rapide et plus efficace pour la détection en temps réel.
Ces modèles peuvent être utilisés dans des applications telles que la vidéosurveillance, la conduite autonome, la détection d’objets dans des images médicales, la robotique et bien d’autres domaines nécessitant la détection précise d’objets dans des images ou des vidéos.
YOLOv1 a été introduit en 2015, YOLOv8 a été développé cette année par Ultralytics. Cependant, Trail of Bits s’est intéressé à la version précédente, très populaire.
Les vulnérabilités de sécurité dans YOLOv7
YOLOv7 est un algorithme largement utilisé, notamment pour un usage commercial et intégré dans des applications critiques, malgré son origine académique. Pourtant, les cadres open source peuvent présenter des lacunes en matière de sécurité en raison du développement rapide et du manque de pratiques robustes.
Onze vulnérabilités majeures ont été identifiées dans YOLOv7, allant de l’exécution de code à distance (RCE) au déni de service, en passant par des risques tels que les différentiels de modèle. Ces vulnérabilités pourraient être exploitées pour compromettre la confidentialité, l’intégrité et la disponibilité des modèles et de leurs actifs associés.
Un examen approfondi de la base de code a révélé des lacunes majeures, notamment l’absence de tests unitaires, une confiance totale accordée aux fichiers externes et l’utilisation de fonctions permissives propices à l’exécution de code arbitraire. Un modèle de menace a été élaboré pour éclairer la revue de code, identifier des scénarios de menace spécifiques à l’apprentissage automatique et les composants critiques.
Les trois menaces majeures identifiées sont la compromission de l’ensemble de données, la compromission de l’hôte et la compromission du processus YOLO (comme l’injection de code malveillant dans le système YOLO ou l’une de ses dépendances).
Les résultats de la revue de code
La revue de code a mis en lumière douze problèmes de sécurité, dont cinq de gravité élevée. Parmi ceux-ci, une analyse YAML non sécurisée a été mise en évidence, ouvrant la voie à une RCE potentielle. De plus, l’utilisation répandue de fichiers pickle dans l’écosystème ML a été pointée comme un risque, permettant l’exécution de code arbitraire.
Des recommandations sont formulées pour renforcer la sécurité de YOLOv7, notamment la mise en œuvre de tests adéquats, la suppression de fonctions permissives et l’amélioration du processus de développement. Des correctifs spécifiques, tels que la réécriture des architectures données dans les fichiers de configuration, ont été suggérés.
En divulguant ces problèmes, Trail of Bits vise à sensibiliser la communauté à la nécessité d’une sécurité renforcée dans les frameworks de vision par ordinateur, surtout lorsqu’ils sont utilisés dans des contextes critiques, soulignant l’importance de l’audit de sécurité.
Références de l’article : blog Trail of Bits rédigé par Alvin Crighton, Anusha Ghosh, Suha Hussain, Heidy Khlaaf et Jim Miller.