fbpx
Wikipedia

Polimorfismo (malware)

En el contexto del malware, un código polimórfico es aquel que usa la técnica del polimorfismo, que consiste en usar un motor polimórfico embebido para cambiar su propio código mientras mantiene su algoritmo original intacto. [1]​ Cambia solo parte del código, en contraste con el metamorfismo que cambia todo el código[2]​, manteniendo otra parte del código igual.[2][3]

Por ejemplo, es habitual que un virus polimórfico tenga un cuerpo de programa de virus cifrado (EVB, del inglés Encrypted Virus Body) y una rutina de descifrado de virus (VDR, del inglés Virus Decryption Routine) que hace de descifrador/cargador.[3][4]​ Cuando se inicia una aplicación infectada, el VDR se encarga de cargar en memoria el texto cifrado, descifrarlo en memoria y finalmente ejecutarlo.[3][4]​ Una vez ejecutado, el virus se vuelve a cifrar y se agrega a otra aplicación vulnerable.[3]​ El cuerpo del virus, que está cifrado no se altera.[3]​ En el descifrador/cargador, que quedaría invariante, aplicamos polimorfismo para generar diferentes versiones del mismo.[4]​ A veces, la clave de cifrado de cada copia es distinta y es generada aleatoriamente para cambiar la apariencia del cuerpo del virus cifrado.[3]

Al malware que tiene código polimórfico se le llama malware polimórfico.

El polimorfismo previene la detección e identificación del malware mediante mecanismos de ajuste de patrones.[5]​ Consigue que el malware no tenga una manifestación constante, ya sea en almacenamiento o en memoria, y que una vez que una instancia sea conocida los sistemas de detección no puedan encontrarla siempre. El polimorfismo varía la apariencia de las instancias de malware.[6]​ La detección de malware usando ajuste de patrones de códigos es una técnica que usan antivirus y sistemas de detección de intrusiones para intentar localizar programas maliciosos analizando ficheros, paquetes de red, memoria,... Si ese tipo de software encuentra patrones de código que coinciden con el de una amenaza conocida, toman los pasos apropiados para neutralizar dicha amenaza.

Para conseguir código polimórfico el malware dispone de un motor polimórfico embebido que automáticamente puede generar distintas transformaciones del código, del orden de millones. Para realizar estas transformaciones el motor polimórfico usa técnicas de ofuscación y, a veces, cifrado[4][6]​ De esta forma el motor polimórfico cambia las características identificables del malware (nombres de ficheros, tipos, cadenas, flujo de control, claves de cifrado,...[5]​) mientras mantiene su funcionalidad.[1]​ Para facilitar la creación del motor polimórfico se han creado toolkits polimórficos.[7]

Es habitual que muchos tipos de malware sean polimórficos incluyendo virus, gusanos, troyanos, keyloggers o bots[5]

Historia

El primer malware polimórfico fue 1260 también llamado V2PX, creado en 1989 por Mark Washburn como prueba de concepto para demostrar las carencias para detectar malware de las firmas en base a strings.[8]​. Este malware insertaba código basura, que hacía que el tamaño del fichero fuera engañoso y así evitaba la detección.[9]​ Más tarde esta prueba de concepto evolucionaría a un nuevo virus conocido como V2P2. A partir de estos desarrollos, otros investigadores desarrollaron los toolkits polimórficos, que facilitaban desarrollo de malware polimorfico.[8]​ El primer toolkit polimórfico se creó en 1992 y se llamaba Mutation Engine (MtE).[4]

Hay multitud de ejemplos de malware polimórfico. En 2016 investigadores afirmaban que el 97% de las infecciones de malware emplean técnicas polimórficas.[5]​ Ejemplo de malware polimórfico son LoveLetter[8]​, Storm Worm Email[5]​ y los ransomware CryptoWall[5]​, Virlock,[2]​ CryptXXX [2]​, CryptoLocker[2]​ y Wannacry[2]​.

Ejemplo simple

Un algoritmo que usa, por ejemplo, las variables A y ß, pero no la variable C, puede permanecer intacto incluso tras añadir grandes cantidades de código que modifiquen la variable C

Algoritmo original:

Inicio: GOTO Codigo_De_Descifrado 
Cifrado: ... Mucho código cifrado ... 
Codigo_De_Descifrado: A = Cifrado Loop: B = *A ß = ß XOR ClaveDeDescifrado *A = ß A = A + 1 GOTO Loop IF NOT A = Codigo_De_Descifrado GOTO Cifrado 
ClaveDeDescifrado: numero_aleatorio 

El mismo algoritmo con código innecesario que modifica la variable C:

Inicio: GOTO Codigo_De_Descifrado 
Cifrado: ... Mucho código cifrado ... 
Codigo_De_Descifrado: A = Cifrado C = 3 Loop: B = *A C = C + ß B = B XOR ClaveDeDescifrado *A = ß C = C * A A = A + 1 C = C + 20 GOTO Loop IF NOT A = Codigo_De_Descifrado C = A + C C = 2 + ß GOTO Cifrado 
ClaveDeDescifrado: numero_aleatorio 

El código dentro de la sección "Cifrado" puede posteriormente buscar el código entre "Codigo_De_Descifrado" y "ClaveDeDescifrado" eliminando todo el código que altere la variable C. Antes de que el algoritmo de cifrado sea usado de nuevo, puede añadir de nuevo código que afecte a la variable C, o incluso modificar el código del algoritmo por nuevo código con la misma finalidad.

Normalmente el creador de un malware utiliza una clave nula (con valor cero) en la primera generación del malware, esto hace que sea todo más fácil para el desarrollador ya que con esta clave el virus no se encuentra cifrado. Luego para las siguientes infecciones puede implementar una clave incremental o aleatoria.

Referencias

  1. Polymorphism. malwarebytes.com
  2. Polymorphic Malware and Metamorphic Malware: What You Need to Know. Casey Crane. thesslstore.com. 21 de mayo de 2019
  3. metamorphic and polymorphic malware. Margaret Rouse. searchsecurity.techtarget.com. Octubre de 2010
  4. Malware vs. Antivirus: the never-ending story (Part I). Eva Chen. blueliv.com/. 25 de diciembre de 2019
  5. What is Polymorphic Malware? A Definition and Best Practices for Defending Against Polymorphic Malware. Nate Lord. digitalguardian.com. 11 de septiembre de 2018
  6. Malware Intrusion Detection. Morton G. Swimmer. página 24. Lulu.com. 5 de julio de 2005
  7. Polymorphic Generators.
  8. Malware complejo: metamorfismo, polimorfismo y EPO | Teoria y ejemplos practicos. reversecodes.wordpress.com. 11 de septiembre de 2016
  9. Threat Spotlight: Advanced polymorphic malware. Kevin Williams. smartermsp.com. 13 de junio de 2018
  • Diomidis Spinellis. Reliable identification of bounded-length viruses is NP-complete. IEEE Transactions on Information Theory, 49(1):280–284, January 2003. doi:10.1109/TIT.2002.806137
  •   Datos: Q950981

polimorfismo, malware, contexto, malware, código, polimórfico, aquel, técnica, polimorfismo, consiste, usar, motor, polimórfico, embebido, para, cambiar, propio, código, mientras, mantiene, algoritmo, original, intacto, cambia, solo, parte, código, contraste, . En el contexto del malware un codigo polimorfico es aquel que usa la tecnica del polimorfismo que consiste en usar un motor polimorfico embebido para cambiar su propio codigo mientras mantiene su algoritmo original intacto 1 Cambia solo parte del codigo en contraste con el metamorfismo que cambia todo el codigo 2 manteniendo otra parte del codigo igual 2 3 Por ejemplo es habitual que un virus polimorfico tenga un cuerpo de programa de virus cifrado EVB del ingles Encrypted Virus Body y una rutina de descifrado de virus VDR del ingles Virus Decryption Routine que hace de descifrador cargador 3 4 Cuando se inicia una aplicacion infectada el VDR se encarga de cargar en memoria el texto cifrado descifrarlo en memoria y finalmente ejecutarlo 3 4 Una vez ejecutado el virus se vuelve a cifrar y se agrega a otra aplicacion vulnerable 3 El cuerpo del virus que esta cifrado no se altera 3 En el descifrador cargador que quedaria invariante aplicamos polimorfismo para generar diferentes versiones del mismo 4 A veces la clave de cifrado de cada copia es distinta y es generada aleatoriamente para cambiar la apariencia del cuerpo del virus cifrado 3 Al malware que tiene codigo polimorfico se le llama malware polimorfico El polimorfismo previene la deteccion e identificacion del malware mediante mecanismos de ajuste de patrones 5 Consigue que el malware no tenga una manifestacion constante ya sea en almacenamiento o en memoria y que una vez que una instancia sea conocida los sistemas de deteccion no puedan encontrarla siempre El polimorfismo varia la apariencia de las instancias de malware 6 La deteccion de malware usando ajuste de patrones de codigos es una tecnica que usan antivirus y sistemas de deteccion de intrusiones para intentar localizar programas maliciosos analizando ficheros paquetes de red memoria Si ese tipo de software encuentra patrones de codigo que coinciden con el de una amenaza conocida toman los pasos apropiados para neutralizar dicha amenaza Para conseguir codigo polimorfico el malware dispone de un motor polimorfico embebido que automaticamente puede generar distintas transformaciones del codigo del orden de millones Para realizar estas transformaciones el motor polimorfico usa tecnicas de ofuscacion y a veces cifrado 4 6 De esta forma el motor polimorfico cambia las caracteristicas identificables del malware nombres de ficheros tipos cadenas flujo de control claves de cifrado 5 mientras mantiene su funcionalidad 1 Para facilitar la creacion del motor polimorfico se han creado toolkits polimorficos 7 Es habitual que muchos tipos de malware sean polimorficos incluyendo virus gusanos troyanos keyloggers o bots 5 Historia EditarEl primer malware polimorfico fue 1260 tambien llamado V2PX creado en 1989 por Mark Washburn como prueba de concepto para demostrar las carencias para detectar malware de las firmas en base a strings 8 Este malware insertaba codigo basura que hacia que el tamano del fichero fuera enganoso y asi evitaba la deteccion 9 Mas tarde esta prueba de concepto evolucionaria a un nuevo virus conocido como V2P2 A partir de estos desarrollos otros investigadores desarrollaron los toolkits polimorficos que facilitaban desarrollo de malware polimorfico 8 El primer toolkit polimorfico se creo en 1992 y se llamaba Mutation Engine MtE 4 Hay multitud de ejemplos de malware polimorfico En 2016 investigadores afirmaban que el 97 de las infecciones de malware emplean tecnicas polimorficas 5 Ejemplo de malware polimorfico son LoveLetter 8 Storm Worm Email 5 y los ransomware CryptoWall 5 Virlock 2 CryptXXX 2 CryptoLocker 2 y Wannacry 2 Ejemplo simple EditarUn algoritmo que usa por ejemplo las variables A y ss pero no la variable C puede permanecer intacto incluso tras anadir grandes cantidades de codigo que modifiquen la variable CAlgoritmo original Inicio GOTO Codigo De Descifrado Cifrado Mucho codigo cifrado Codigo De Descifrado A Cifrado Loop B A ss ss XOR ClaveDeDescifrado A ss A A 1 GOTO Loop IF NOT A Codigo De Descifrado GOTO Cifrado ClaveDeDescifrado numero aleatorio El mismo algoritmo con codigo innecesario que modifica la variable C Inicio GOTO Codigo De Descifrado Cifrado Mucho codigo cifrado Codigo De Descifrado A Cifrado C 3 Loop B A C C ss B B XOR ClaveDeDescifrado A ss C C A A A 1 C C 20 GOTO Loop IF NOT A Codigo De Descifrado C A C C 2 ss GOTO Cifrado ClaveDeDescifrado numero aleatorio El codigo dentro de la seccion Cifrado puede posteriormente buscar el codigo entre Codigo De Descifrado y ClaveDeDescifrado eliminando todo el codigo que altere la variable C Antes de que el algoritmo de cifrado sea usado de nuevo puede anadir de nuevo codigo que afecte a la variable C o incluso modificar el codigo del algoritmo por nuevo codigo con la misma finalidad Normalmente el creador de un malware utiliza una clave nula con valor cero en la primera generacion del malware esto hace que sea todo mas facil para el desarrollador ya que con esta clave el virus no se encuentra cifrado Luego para las siguientes infecciones puede implementar una clave incremental o aleatoria Referencias Editar a b Polymorphism malwarebytes com a b c d e f Polymorphic Malware and Metamorphic Malware What You Need to Know Casey Crane thesslstore com 21 de mayo de 2019 a b c d e f metamorphic and polymorphic malware Margaret Rouse searchsecurity techtarget com Octubre de 2010 a b c d e Malware vs Antivirus the never ending story Part I Eva Chen blueliv com 25 de diciembre de 2019 a b c d e f What is Polymorphic Malware A Definition and Best Practices for Defending Against Polymorphic Malware Nate Lord digitalguardian com 11 de septiembre de 2018 a b Malware Intrusion Detection Morton G Swimmer pagina 24 Lulu com 5 de julio de 2005 Polymorphic Generators a b c Malware complejo metamorfismo polimorfismo y EPO Teoria y ejemplos practicos reversecodes wordpress com 11 de septiembre de 2016 Threat Spotlight Advanced polymorphic malware Kevin Williams smartermsp com 13 de junio de 2018 Diomidis Spinellis Reliable identification of bounded length viruses is NP complete IEEE Transactions on Information Theory 49 1 280 284 January 2003 doi 10 1109 TIT 2002 806137 Datos Q950981Obtenido de https es wikipedia org w index php title Polimorfismo malware amp oldid 127350141, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos