El metamorfismo es una técnica empleada por malware para evitar su detección, dando lugar al llamado malware metamórfico. Consiste en usar un motor metamórfico, embebido dentro del mismo malware, que muta su código. Este motor cambia por completo el cuerpo del malware, incluido el propio motor de mutación. El malware metamórfico no tiene parte cifrada y, por lo tanto, no necesita descifrador. Se trata de malware polimórfico aquel que consiste en usar un motor polimórfico embebido para cambiar su propio código mientras mantiene su algoritmo original intacto. Cambia solo parte del código, en contraste con el metamorfismo que cambia todo el código.[1]
De esta forma cada vez que se propaga un malware metamórfico bien construido, se crea una nueva versión que mantendrá el mismo efecto y comportamiento general. Se supone que un buen motor metamórfico crea un número infinito de versiones sin patrones de cadena identificables comunes, lo que hace que su detección mediante firmas sea prácticamente imposible.[2] Para detectar este tipo de malware se han de emplear técnicas basadas en el análisis de comportamiento y heurísticas.[1]
Algunos malware metamórficos llevan su propio motor metamórfico. Por ejemplo, Zperm lleva su propio motor metamórfico al que llama Real Permuting Engine (RPME). Otros usan generadores metamórficos que son independientes del malware sobre el que se usa.[3] Por ejemplo, los toolkits polimórficos, como CLET o ADMmutate, permiten realizar metamorfismo.[4] Algunas herramientas de construcción de malware como NGVCK, VCL32, MPCGEN o G2 incluyen motores metamórficos.[5]
El motor metamórfico realiza las siguientes actividades:[2][6]
De esta forma cada nueva copia puede tener diferente estructura, secuencia de código, tamaño y propiedades sintácticas, pero el comportamiento del malware no cambia.[1]
Como ejemplos reseñables de malware metamórfico podemos destacar:[2]
Podemos clasificar el malware metamórfico en dos subcategorías:[1]