Protector de software

De Wikipedia, la enciclopedia libre

Un protector de software es un software que al aplicarse sobre programas dificulta la modificación y la ingeniería inversa sobre ellos.[1]​ Puede usar técnicas de empaquetamiento de ejecutables, cifrado y ofuscación.[1]

Este tipo de herramientas son usadas frecuentemente para dificultar tanto la piratería de programas como la detección de malware.[1]​ Se calcula que aproximadamente el 80% del malware usa estas herramientas.[2]​ Esto obliga a los fabricantes de antimalware a implementar algoritmos que desempaqueten automáticamente estos programas antes de ser analizados para ver si se tratan o no de malware.[2]

Historia[editar]

Los protectores de software surgieron como empaquetadores de ejecutables que, además de reducir el tamaño de un ejecutable, obtenían el beneficio añadido de proteger el programa frente a ataques de ingeniería inversa al impedir que el código fuera analizado estáticamente.[2]

Con el tiempo fueron evolucionando de tal forma que la protección del software frente a ataques de ingeniería inversa era cada vez más importante, creándose así herramientas con métodos de protección más sofisticados y sacrificando, en algunos casos, el tamaño del ejecutable final y su tiempo de ejecución.[2]​ El tamaño del ejecutable deja de ser un aspecto crítico, aunque es habitual que los protectores de software sean también Empaquetador de ejecutables.[2]

Ejemplos[editar]

Algunos de los empacadores más importantes son:

  • Ultimate Packer for Executables (UPX). Utiliza un algoritmo de código abierto y no requiere memoria adicional para la descompresión.[3]​ Es el más usado.[4]
  • The Enigma Protector[3]
  • MPRESS.[3]
  • Exe Packer 2.300.[3]
  • ExeStealth.[3]
  • Morphine.[3]
  • Themida.[3]
  • MEW.[3]
  • FSG.[3]
  • PESpin.[3]
  • Andromeda.[3]
  • VMProtect.[3]
  • Obsidium.[3]
  • ASPack.[4]
  • PE Compact.[4]
  • ASProtect.[4]
  • NSPack.[4]
  • UPack.[4]
  • EXECryptor.[4]
  • Armadillo.[4]

Análisis[editar]

Hay una serie de herramientas que permite analizar el código que puede determinar en algunos casos el protector de software usado[5]​ Estas son algunas de las estas herramientas:

  • Windows Executable Packer Detection.[3]
  • PackerID.[3]
  • PEiD.[3]
  • RDG Packer Detector.[3]
  • Exeinfo PE.[3]

Algunos protectores, como UPX, permiten desempaquetar y obtener el código original para poder analizarlo y aplicar técnicas de ingeniería inversa.[5][6]​ Por ejemplo, podría usar un depurador como OllyDbg o Pe Explorer para desarrollar un análisis más profundo.[5][6]​ Hay herramientas especializadas, como MASTIFF, automatizan el análisis estático del código malware.[6]

Referencias[editar]

  1. a b c Explained: Packer, Crypter, and Protector. Pieter Arntz. malwarebytes.com. 27 de marzo de 2017
  2. a b c d e Análisis de rendimiento y niveles de protección de protectores de software. María Asunción Bazús Castán. Universidad de Zaragoza. Marzo de 2014
  3. a b c d e f g h i j k l m n ñ o p q Top 13 Popular Packers Used in Malware. Matthew Jones. infosecinstitute.com
  4. a b c d e f g h El reinado de UPX. Joaquín Rodríguez Varela. welivesecurity.com. 22 de marzo de 2011
  5. a b c Analyzing Packed Malware. Tyra Appleby. infosecinstitute.com
  6. a b c ANÁLISIS ESTÁTICO Y DINÁMICO DE UNA MUESTRA DE MALWARE EN SISTEMAS MICROSOFT WINDOWS XP PARA DETERMINAR QUÉ EFECTOS PRODUCE SOBRE UN SISTEMA INFECTADO. GALOGET JONTZE LATORRE CHENG. ESCUELA POLITÉCNICA NACIONAL. FACULTAD DE INGENIERÍA DE SISTEMAS. Quito, Octubre 2014