Articulo de referencia

Código polimórfico

En informática, el código polimórfico es aquel que utiliza un motor polimórfico para mutar manteniendo intacto el algoritmo original ; es decir, el código cambia cada vez que se...

En informática, el código polimórfico es aquel que utiliza un motor polimórfico para mutar manteniendo intacto el algoritmo original ; es decir, el código cambia cada vez que se ejecuta, pero su función (su semántica ) permanece inalterada. Por ejemplo, las expresiones matemáticas simples 3+1 y 6-2 dan el mismo resultado, pero se ejecutan con código máquina diferente en una CPU . Esta técnica a veces la utilizan virus informáticos , shellcodes y gusanos informáticos para ocultar su presencia. [ 1 ]

El cifrado es el método más común para ocultar código. Al cifrar, el cuerpo principal del código (también llamado carga útil ) se encripta y se vuelve ininteligible. Para que el código funcione como antes, se le añade una función de descifrado. Cuando se ejecuta el código , esta función lee la carga útil y la descifra antes de ejecutarla.

El cifrado por sí solo no constituye polimorfismo. Para obtener un comportamiento polimórfico, el par cifrador/descifrador se modifica con cada copia del código. Esto permite la existencia de diferentes versiones de un mismo código que funcionan de la misma manera. [ 2 ]

Código malicioso

La mayoría de los programas antivirus y sistemas de detección de intrusiones (IDS) intentan localizar código malicioso analizando archivos y paquetes de datos enviados a través de una red informática . Si el software de seguridad encuentra patrones que corresponden a virus o gusanos informáticos conocidos, toma las medidas necesarias para neutralizar la amenaza. Los algoritmos polimórficos dificultan que este software reconozca el código malicioso, ya que este muta constantemente.

Los programadores maliciosos han intentado proteger su código cifrado de esta estrategia de análisis de virus reescribiendo el motor de descifrado no cifrado (y la carga útil cifrada resultante) cada vez que se propaga el virus o gusano. El software antivirus utiliza un análisis de patrones sofisticado para encontrar patrones subyacentes dentro de las diferentes mutaciones del motor de descifrado, con la esperanza de detectar de forma fiable este tipo de malware .

La emulación puede utilizarse para contrarrestar la ofuscación polimórfica, permitiendo que el malware se descomponga en un entorno virtual antes de emplear otros métodos, como el análisis de firmas tradicional. Este entorno virtual se conoce a veces como sandbox . El polimorfismo no protege al virus contra dicha emulación si la carga útil descifrada permanece invariable, independientemente de las variaciones en el algoritmo de descifrado. Las técnicas de código metamórfico pueden utilizarse para dificultar aún más la detección, ya que el virus puede ejecutarse sin que existan bloques de código identificables en la memoria, que permanecen constantes entre infecciones.

El primer virus polimórfico conocido fue escrito por Mark Washburn. El virus, llamado 1260 , fue escrito en 1990. [ 3 ] Un virus polimórfico más conocido fue creado en 1992 por el hacker Dark Avenger como un medio para evitar el reconocimiento de patrones del software antivirus. Un virus polimórfico común y muy virulento es el infector de archivos Virut .

Véase también

Referencias

  1. Raghunathan, Srinivasan (2007). Protección del software antivirus frente a ataques virales (M.Sc.). Universidad Estatal de Arizona. CiteSeerX 10.1.1.93.796 . 
  2. Wong, Wing; Stamp, M. (2006). "En busca de motores metamórficos". Journal in Computer Virology . 2 (3): 211– 229. CiteSeerX 10.1.1.108.3878 . doi : 10.1007/s11416-006-0028-7 . S2CID 8116065 .  
  3. "Un ejemplo de descifrador de 1260" . userpages.umbc.edu . Consultado el 21 de marzo de 2025 .
  • Spinellis, Diomidis (enero de 2003). "La identificación confiable de virus de longitud limitada es NP-completa" . IEEE Transactions on Information Theory . 49 (1): 280–4 . doi : 10.1109/TIT.2002.806137 .