Polimorfismo (malware) para niños
Un código polimórfico es un tipo especial de programa de computadora que puede cambiar su propia apariencia para evitar ser detectado. Imagina que es como un camaleón que cambia de color para esconderse. Esta técnica se llama polimorfismo. El código polimórfico usa una parte de sí mismo, llamada motor polimórfico, para modificar su propio código mientras su función principal sigue siendo la misma.
Cambia solo una parte de su código. Esto es diferente de otros programas que cambian todo su código.
Por ejemplo, un programa malicioso polimórfico suele tener una parte principal que está "cifrada" (es decir, mezclada para que no se entienda fácilmente). También tiene una pequeña parte que sabe cómo "descifrar" esa parte principal. Cuando el programa se activa, la parte descifradora carga el código cifrado, lo descifra en la memoria de la computadora y luego lo ejecuta. Una vez que termina, el programa se vuelve a cifrar y se puede copiar a otra aplicación. La parte principal del programa no cambia, pero la parte que lo descifra sí lo hace, para que parezca diferente cada vez. A veces, incluso la "clave" para descifrarlo es diferente cada vez.
A los programas maliciosos que usan esta técnica se les llama malware polimórfico.
Contenido
¿Por qué el Polimorfismo es un Problema?
El polimorfismo hace que sea muy difícil para los programas de seguridad, como los antivirus, detectar el malware. Los antivirus suelen buscar "patrones" o "firmas" específicas en el código de los programas. Si un programa malicioso cambia su apariencia constantemente, es como si tuviera un disfraz nuevo cada vez. Esto significa que, aunque un antivirus detecte una versión del malware, podría no reconocer las siguientes versiones.
Los sistemas de detección de intrusiones y los antivirus buscan patrones de código en archivos, redes o la memoria de la computadora. Si encuentran un patrón que coincide con una amenaza conocida, actúan para detenerla. Pero el polimorfismo hace que el malware no tenga un patrón constante.
¿Cómo Funciona el Motor Polimórfico?
Para lograr este cambio constante, el malware polimórfico tiene un motor polimórfico integrado. Este motor puede generar millones de versiones diferentes del mismo código. Para hacer esto, usa técnicas de "ofuscación" (hacer que el código sea difícil de entender) y a veces "cifrado" (mezclar el código). De esta manera, el motor polimórfico cambia las características que identifican al malware, como nombres de archivos o la forma en que funciona, pero sin alterar lo que hace.
Existen herramientas especiales, llamadas "toolkits polimórficos", que facilitan la creación de estos motores. Muchos tipos de malware, como virus, gusanos, troyanos, programas que registran lo que escribes (keyloggers) o bots, usan el polimorfismo.
Historia del Código Polimórfico
El primer programa malicioso polimórfico conocido fue creado en 1989. Se llamaba 1260 (también conocido como V2PX). Fue creado por Mark Washburn para demostrar que los antivirus de la época no eran buenos detectando programas que cambiaban su código. Este programa añadía código "basura" para cambiar su tamaño y evitar ser detectado. Más tarde, esta idea evolucionó a un nuevo virus llamado V2P2.
A partir de estos desarrollos, otros investigadores crearon los "toolkits polimórficos". El primer toolkit polimórfico se creó en 1992 y se llamó Mutation Engine (MtE).
Hoy en día, el polimorfismo es muy común. En 2016, algunos expertos decían que el 97% de las infecciones de malware usaban técnicas polimórficas. Algunos ejemplos de malware polimórfico son LoveLetter, Storm Worm Email y programas de secuestro de datos (ransomware) como CryptoWall, Virlock, CryptXXX, CryptoLocker y Wannacry.
Véase también
En inglés: Polymorphic code Facts for Kids