KYOSH1RO

Magika : vérifier le véritable type d’un fichier avec l’outil open source de Google

POST 14/04/2026 · 00:00 MAGIKA GOOGLE CYBERSÉCURITÉ OPEN SOURCE +4

Découvrez comment installer et utiliser Magika pour identifier le type réel d’un fichier, analyser un dossier et repérer une extension trompeuse.

Identifier un fichier au-delà de son extension
Un fichier nommé facture.pdf n’est pas forcément un document PDF. Il peut s’agir d’une image, d’une archive, d’un exécutable ou simplement d’un autre format dont l’extension a été modifiée.

Les extensions sont pratiques pour indiquer au système et aux applications comment ouvrir un fichier, mais elles ne constituent pas une preuve de son contenu. Il suffit de renommer photo.jpg en facture.pdf pour créer une incohérence entre le nom du fichier et les données réellement présentes.

Magika est un outil open source développé par des équipes de Google pour identifier le type probable d’un fichier en analysant son contenu. Contrairement à une simple vérification de l’extension, il utilise un petit modèle d’intelligence artificielle spécialement entraîné pour reconnaître les caractéristiques de nombreux formats.

Google utilise notamment Magika pour mieux orienter les fichiers traités par Gmail, Google Drive et Safe Browsing vers les outils de sécurité appropriés.
Comment fonctionne Magika ?
Les outils classiques de détection recherchent généralement des signatures, aussi appelées magic bytes, placées au début des fichiers. C’est notamment le principe utilisé par la commande file sous Linux.

Magika adopte une approche différente. Son modèle de deep learning examine une partie limitée du contenu et tente d’en déduire le format le plus probable. Cette méthode est particulièrement intéressante pour distinguer des formats textuels qui ne possèdent pas toujours une signature claire, comme du JavaScript, du Python, un fichier CSV ou une configuration INI.

D’après la documentation officielle, le modèle a été entraîné et évalué sur environ 100 millions de fichiers couvrant plus de 200 types de contenus. Google annonce une précision et un rappel moyens proches de 99 % sur son jeu de test.

Le modèle ne pèse que quelques mégaoctets et l’analyse prend environ 5 millisecondes par fichier après son chargement, même sur un seul processeur.
Magika effectue une prédiction. Il ne découvre pas une “véritable extension” avec une certitude absolue et peut toujours produire une mauvaise identification.
Installer Magika
Pour utiliser uniquement l’outil en ligne de commande, la méthode recommandée consiste à passer par pipx. Cela permet d’installer Magika dans un environnement Python isolé.
pipx install magika
Sur macOS et certaines distributions Linux, Magika peut également être installé avec Homebrew.
brew install magika
Pour utiliser son API dans un projet Python, il faut installer le paquet avec pip.
pip install magika
Une fois l’installation terminée, vérifiez que la commande est disponible.
magika --version
Magika fonctionne sous Linux, macOS et Windows. Une démonstration Web est aussi disponible pour tester l’outil sans rien installer. Le traitement est alors réalisé localement dans le navigateur.
Analyser un premier fichier
L’utilisation la plus simple consiste à passer le chemin du fichier à la commande magika.
magika facture.pdf
Le résultat indique le format détecté et sa catégorie générale. Magika peut par exemple reconnaître un document PDF, une image JPEG, une archive ZIP, un exécutable Windows ou un fichier de code source.

Pour simuler un fichier avec une extension trompeuse sous Linux, copiez une image JPEG en lui donnant une extension PDF.
cp photo.jpg facture.pdf
magika facture.pdf
Même si le fichier se termine par .pdf, Magika devrait continuer à identifier son contenu comme une image JPEG.

On peut comparer le résultat avec la commande file, généralement présente par défaut sous Linux.
file facture.pdf
magika facture.pdf
Les deux outils sont complémentaires. file reste très rapide et efficace pour les formats possédant une signature connue. Magika peut être plus pertinent pour certains contenus textuels ou lorsque les règles traditionnelles sont ambiguës.
Afficher le score et le type MIME
L’option -s affiche le score de confiance associé à la prédiction.
magika -s facture.pdf
Un score élevé indique que le modèle est plutôt sûr de sa réponse. Cela ne garantit toutefois pas que le fichier est légitime ou sans danger.

Pour obtenir directement le type MIME détecté, utilisez l’option -i.
magika -i facture.pdf
La sortie JSON est plus adaptée à l’intégration dans un script ou une chaîne de traitement automatisée.
magika --json facture.pdf
Elle contient notamment le format détecté, les extensions habituellement associées, le type MIME, la catégorie du fichier et le score de confiance.

Pour une automatisation, la documentation recommande de se baser principalement sur le champ output.label. Il correspond à la décision finale de Magika après prise en compte du score et des seuils de confiance.
Analyser tout un dossier
Magika peut examiner plusieurs fichiers en une seule commande.
magika fichier1.pdf image.jpg archive.zip
L’option -r permet de parcourir récursivement un répertoire.
magika -r ./telechargements
Cette fonction peut servir à faire un premier tri dans un dossier de pièces jointes, d’échantillons ou de fichiers envoyés par des utilisateurs.

Il faut néanmoins rester prudent avec les liens symboliques. L’option --no-dereference permet de les identifier comme tels au lieu de suivre automatiquement leur destination.
magika -r --no-dereference ./fichiers
Magika n’est pas un antivirus
Détecter qu’un fichier nommé document.pdf contient en réalité un exécutable Windows est une information utile. Cela ne permet cependant pas de savoir si cet exécutable est malveillant.

Magika ne recherche pas de virus, ne vérifie pas la réputation du fichier et n’analyse pas son comportement. Un véritable PDF peut également contenir une charge malveillante exploitant une vulnérabilité dans un lecteur de documents.

L’outil ne cible pas non plus la détection des fichiers polyglottes, conçus pour être interprétés comme plusieurs formats différents selon l’application utilisée.
Un fichier correctement identifié peut toujours être dangereux. Magika doit rester une première étape d’analyse, éventuellement complétée par un antivirus, une sandbox ou un service comme VirusTotal.
Magika est donc un petit outil pratique à conserver dans sa boîte à outils. Il s’installe rapidement, fonctionne localement et apporte un second avis lorsqu’une extension semble douteuse. Pour un fichier réellement suspect, sa réponse constitue un indice utile, pas un verdict définitif.

Sources et documentation :

Dépôt GitHub de Magika
Documentation officielle
Démonstration Web de Magika
← Retour aux posts