À retenir
- Le code se réécrit lui-même en profondeur à chaque copie.
- L'objectif est de rendre la détection par signature impossible.
- Contrairement au polymorphisme, il ne se contente pas de se chiffrer, il change sa structure même.
Le métamorphisme est une technique de programmation avancée où un logiciel réécrit intégralement son propre code source à chaque fois qu'il se duplique, tout en conservant son fonctionnement initial. C'est comme un espion qui changerait de visage, de taille et de voix à chaque mission, mais dont l'objectif resterait exactement le même.
Étymologie
Issu du grec meta (transformation) et morphé (forme). Initialement utilisé en géologie pour décrire la transformation des roches sous pression, le terme a été adopté en informatique pour désigner des programmes dont la forme change radicalement sans altérer le fond.
Exemples d'usage
- Le remplacement d'instructions équivalentes : changer une addition (
x = x + 1) par une incrémentation (x++). - La réorganisation de l'ordre des fonctions dans le fichier sans impacter l'exécution.
- L'insertion de "code mort" (des instructions inutiles qui ne font rien) pour modifier l'apparence du programme.
Cas d'usage
Ce concept intervient principalement dans la conception de logiciels malveillants (virus, vers) pour contourner les antivirus qui recherchent des signatures numériques spécifiques (des empreintes de fichiers connues).
Bonnes pratiques
Du point de vue de la cybersécurité, la défense contre le métamorphisme repose sur l'analyse comportementale (observer ce que fait le programme plutôt que ce à quoi il ressemble) et l'utilisation de bacs à sable (sandboxing) pour tester le code suspect.
Synonymes
Antonymes
Conseil
Si vous débutez, retenez que le métamorphisme est le niveau 'expert' de la dissimulation de code. Pour le comprendre, intéressez-vous aux langages de bas niveau comme l'Assembleur, car c'est là que se joue la manipulation des instructions machines.
Questions fréquentes
Quelle est la différence entre métamorphisme et polymorphisme ?
Le polymorphisme utilise une clé de chiffrement différente pour cacher un code qui reste identique, tandis que le métamorphisme modifie directement les instructions du code sans nécessairement le chiffrer.
Est-ce que tous les virus sont métamorphiques ?
Non, car c'est une technique extrêmement complexe à programmer. La plupart des malwares utilisent des méthodes plus simples comme l'obfuscation ou le polymorphisme.