- Google a publié en open source Magika, un système d’identification de types de fichiers basé sur l’IA
- Magika utilise un modèle de deep learning personnalisé et optimisé, capable d’identifier précisément les fichiers en quelques millisecondes, même sur CPU
- Il est possible d’essayer la démo web de Magika, et de l’installer comme bibliothèque Python ou outil autonome en ligne de commande avec
pip install magika
Pourquoi l’identification du type de fichier est difficile
- Depuis les débuts de l’informatique, détecter correctement le type d’un fichier est essentiel pour déterminer comment le traiter.
- Linux dispose de
libmagic et de l’utilitaire file, qui servent de standard de fait pour l’identification des types de fichiers depuis plus de 50 ans.
- La détection du type de fichier est indispensable pour permettre à divers logiciels, comme les navigateurs web ou les éditeurs de code, d’afficher correctement les fichiers.
- Une détection précise du type de fichier est un problème notoirement difficile, car certains formats ont une structure différente, voire aucune structure.
libmagic et la plupart des logiciels d’identification de types de fichiers reposent sur des heuristiques et des règles écrites manuellement pour détecter chaque format.
- Cette approche manuelle prend du temps et est sujette aux erreurs.
Performances de Magika
- Grâce à son modèle d’IA et à un vaste jeu de données d’entraînement, Magika affiche des performances environ 20 % supérieures à celles des outils existants sur un benchmark d’un million de fichiers couvrant plus de 100 types de fichiers.
- Les gains sont particulièrement marqués sur les types de fichiers qui posent problème aux autres outils, notamment les fichiers texte, le code source et les fichiers de configuration.
Utilisation de Magika chez Google
- En interne chez Google, Magika est utilisé pour améliorer la sécurité des utilisateurs en orientant les fichiers de Gmail, Drive et Safe Browsing vers les scanners adaptés en matière de sécurité et de politiques de contenu.
- À l’échelle de plusieurs dizaines de milliards de fichiers analysés en moyenne chaque semaine, Magika a amélioré de 50 % la précision d’identification des types de fichiers par rapport au système précédent, qui reposait sur des règles manuelles.
- Via son intégration avec VirusTotal, Magika viendra compléter la fonctionnalité Code Insight existante et contribuer à l’écosystème mondial de la cybersécurité afin de créer un environnement numérique plus sûr.
Passage en open source de Magika
- En publiant Magika en open source, l’objectif est d’améliorer la précision de l’identification de fichiers dans d’autres logiciels et d’offrir aux chercheurs une méthode fiable pour identifier les types de fichiers à grande échelle.
- Le code et les modèles de Magika sont disponibles gratuitement sur Github sous licence Apache2, et peuvent être installés facilement via le gestionnaire de paquets pypi.
- Pour plus de détails sur l’utilisation de Magika, consulter la documentation officielle du projet.
L’avis de GN⁺
- La publication en open source de Magika devrait fortement contribuer à améliorer la précision de l’identification des types de fichiers.
- Dans le domaine de la sécurité en particulier, une identification précise des fichiers est cruciale, et Magika pourrait devenir un outil puissant à cet effet.
- L’expertise technologique de Google et sa contribution à la communauté open source devraient jouer un rôle important dans le renforcement de l’écosystème mondial de la cybersécurité.
1 commentaires
Avis Hacker News
Application d’un nouvel outil de détection de types de fichiers à des données de crawl web.
Partage d’une expérience datant de 10 ans sur la détection du type de fichiers de tableur.
Partage des résultats d’un test de détection sur 100 fichiers.
fileexistant, une précision similaire est observée.Réaction positive à l’arrivée d’un nouvel outil dans le domaine de la détection de types de fichiers.
Incompréhension face au fait que Google ait investi des ressources dans un outil de détection de types de fichiers basé sur des réseaux de neurones plutôt que dans l’amélioration de libmagic.
Interrogation sur la manière de détecter des fichiers polyglottes valides dans plusieurs formats.
Questionnement sur la précision ou le rappel d’autres outils pour détecter correctement les fichiers APK ou JAR.
Partage d’une expérience d’implémentation de libmagic en Racket.
Affirmation selon laquelle la détection de type de fichier est intrinsèquement déterministe.