Magika, le détecteur de fichiers ultra-rapide de Google
La dernière nouveauté dans le domaine de l’IA c’est la détection des types de fichiers. Hé ouais ! Google a récemment ouvert les sources de Magika, un système d’identification de types de fichiers basé sur l’IA, qui a pour but de nous aider (enfin, nos outils) à détecter avec précision les types de fichiers binaires et textuels.
Depuis longtemps maintenant, les systèmes Linux sont équipés de libmagic et de l’utilitaire file, qui ont servi de norme de facto pour l’identification des types de fichiers, et ce pendant plus de 50 ans !!
Les navigateurs web, les éditeurs de code et d’innombrables autres logiciels s’appuient sur la détection des types de fichiers pour décider comment afficher correctement un fichier. Par exemple, les IDE modernes utilisent la détection des types de fichiers pour choisir le schéma de coloration syntaxique à utiliser lorsque le développeur commence à taper dans un nouveau fichier.
La détection précise des types de fichiers est un problème difficile, car chaque format de fichier a une structure différente, ou pas de structure du tout. Et c’est encore plus dur pour les formats textuels et les langages de programmation, car ils ont des constructions très similaires. Jusqu’à présent, libmagic et la plupart des autres logiciels d’identification des types de fichiers s’appuyaient sur une collection plutôt artisanale (hmm hmm) d’heuristiques et de règles personnalisées pour détecter chaque format de fichier.
Cette approche manuelle étant à la fois longue et sujette aux erreurs, ce n’est pas forcément l’idéal notamment pour les applications de sécurité où la création d’une détection fiable est particulièrement difficile, car les attaquants tentent constamment de tromper la détection avec des payloads maison :)
Pour résoudre ce problème et fournir une détection rapide et précise des types de fichiers, Google a donc développé Magika, un nouveau détecteur de types de fichiers basé sur l’IA.
Sous le capot, Magika utilise un modèle de deep learning personnalisé et hautement optimisé conçu et formé à l’aide de Keras qui ne pèse environ que 1 Mo. Magika utilise aussi Onnx comme moteur d’inférence pour garantir que les fichiers soient identifiés en quelques millisecondes, presque aussi rapidement qu’un outil non basé sur l’IA, même sur un CPU.
En termes de performances, Magika, grâce à son modèle d’IA et son grand ensemble de données d’apprentissage, est capable de surpasser d’autres outils existants d’environ 20 % lorsqu’il est évalué sur un benchmark de 1 million de fichiers englobant plus de 100 types de fichiers. En décomposant par type de fichier, comme indiqué dans le tableau ci-dessous, on observe des gains de performance encore plus importants sur les fichiers textuels, notamment les fichiers de code et les fichiers de configuration avec lesquels d’autres outils peuvent avoir des difficultés.
Magika est utilisé en interne chez Google à grande échelle pour aider à améliorer la sécurité des utilisateurs de leurs services notamment pour l’acheminement des fichiers au sein de Gmail, Drive ou encore Safe Browsing vers des scanners de sécurité et des filtres de contenu.
En examinant une moyenne hebdomadaire de centaines de milliards de fichiers, Google a constaté que Magika améliorait la précision de l’identification des types de fichiers de 50 % par rapport à leur système précédent basé sur de simples règles. Cette augmentation de la précision leur a permis d’analyser 11 % de fichiers en plus avec leurs scanners de documents malveillants spécialisés en IA et ils ont ainsi pu réduire le nombre de fichiers non identifiés à 3 %.
La prochaine intégration de Magika se fera dans VirusTotal et viendra ainsi compléter la fonctionnalité Code Insight existante de la plateforme, qui utilise l’IA générative de Google pour analyser et détecter les codes malveillants. Magika agira alors comme un pré-filtre avant que les fichiers ne soient analysés par Code Insight, améliorant ainsi l’efficacité et la précision de la plateforme. Cette intégration, en raison de la nature collaborative de VirusTotal, contribue directement à l’écosystème cyber, et ça c’est plutôt une bonne nouvelle pour tout le monde.
En ouvrant les sources de Magika, l’objectif de Google est d’aider d’autres éditeurs de logiciels à améliorer leur précision d’identification des fichiers et d’offrir aux chercheurs une méthode fiable pour identifier les types de fichiers à très grande échelle. Le code et le modèle de Magika sont disponibles gratuitement sur Github sous la licence Apache2.
Si vous êtes intéressé, vous pouvez essayer la démo web de Magika.
Magika peut également être rapidement installé en tant qu’utilitaire autonome et bibliothèque python via le gestionnaire de paquets pypi en tapant simplement :
pip install magika
Et pas besoin de GPU !
Pour en savoir plus sur la façon de l’utiliser, je vous invite à vous rendre sur la documentation de Magika.
Merci à Letsar pour l’info !