Las herramientas de ingeniería inversa son populares en estos días para encontrar riesgos de seguridad en el software. También, se utiliza esta técnica para entender las aplicaciones maliciosas y desbaratarlas. Pero los investigadores no son los únicos que lo hacen: los malos actores también quieren encontrar fallos en el software a través de la ingeniería inversa. Actores maliciosos y benévolos hacen ingeniería inversa del código para encontrar vulnerabilidades. La diferencia es lo que hacen con esa información sobre la vulnerabilidad.
Así, los hackers usan la información para producir un ataque a una aplicación y desmontan los programas para crear versiones maliciosas de los mismos. Hay muchas aplicaciones que se pueden utilizar para inspeccionar un elemento de software binario y aprender mucho sobre las mismas.
Aunque la ingeniería inversa conlleva un peligro mayor para las apps, muchas de ellas llegan al mercado sin ninguna protección contra esta práctica. Para contrarrestar los ataques de este tipo, los equipos de ciberseguridad deben saber cuáles plataformas están disponibles y cómo funcionan. Así pues, estas son las principales que debes tener en cuenta.
1. IDA Pro
IDA Pro es considerada por los expertos del sector como una de las mejores herramientas de ingeniería inversa. No solo por su precio, sino por su conjunto de funciones. Una licencia de IDA Pro cuesta miles y miles de dólares, pero merece la pena. Es un software completo y muy versátil, según los expertos. Su codificación está escrita en C++, IDA Pro es un desensamblador interactivo que funciona en Windows, macOS y Linux.
Hace algún tiempo atrás, se ha puesto en tela de juicio el lugar del programa como el mejor. Esto se debe a que muchas herramientas de nivel medio están desafiando a IDA Pro, esto se debe a que son más económicas. De hecho, pueden costar una décima parte del precio de esta herramienta.
2. Ghidra
Ghidra se hizo famosa este año cuando la NSA abrió el marco de las herramientas de ingeniería inversa. Además, es compatible con Windows, macOS y Linux. Entre sus funciones se incluyen: el desensamblaje, ensamblaje, descompilación y los scripts. De igual manera, admite una serie de instrucciones de proceso y formatos ejecutables que pueden efectuarse en modo interactivo o automatizado. Igualmente, puedes personalizar esta herramienta, codificando y programando plugins o scripts con Python y Java.
De esta forma, no hay ninguna característica importante de Ghidra que no exista ya en las actuales herramientas de ingeniería inversa de software. La mayor diferencia, es que Ghidra es gratis para todo el mundo. Tiene un conjunto completo de características y tiene la mejor interfaz de usuario de la actualidad.
3. Binary Ninja
Este software destaca entre los demás por su facilidad de uso, haciendo que la automatización sea más sencilla y accesible que otras soluciones del mercado. Es compatible con Ubuntu de 64 bits, macOS 10.13 y Windows 10 de 64 bits. Así como con archivos binarios PE.COFF, ELF, Mach-O, .NES y RAW. Actualmente, no tiene un descompilador, pero los desarrolladores de este programa planean incorporar uno en una próxima versión avanzada del mismo.
Aunque es fácil de usar, ha tenido algunos problemas para ganarse la aceptación de la comunidad de la ingeniería inversa. Es por ello que, cuando se le pregunta a los entendidos en el tema, muchos no han oído hablar de Binary Ninja o les ha resultado difícil averiguar cómo incorporarlo como herramienta en su trabajo diario.
4. Hopper
Hopper es un desensamblador para macOS y Linux. Puede desensamblar, descompilar y depurar ejecutables de 32 y 64 bits. La versión para Mac utiliza el framework Cocoa, mientras que la edición para Linux utiliza Qt 5. Así pues, Hopper incluye un Kit de Desarrollo de Software o SDK. Esto para que puedas ampliar sus funciones e incluso escribir tu propio archivo y soporte de CPU.
Además, la mayoría de las características del software pueden ser llamadas desde scripts de Python, lo que le da la flexibilidad de transformar códigos binarios. De esta forma y para facilitar la comprensión de los procedimientos, cuando se activa dicho software se muestra una representación gráfica del gráfico de control de flujo. El cual también se puede exportar como archivo PDF.
5. Radare2
Esta era una de las principales herramientas de ingeniería inversa de código abierto antes de que la NSA decidiera publicar Ghidra. Se trata de un software basado en líneas de comandos. Esto hace que su curva de aprendizaje pueda ser algo elevada. Pero a lo largo de los años, se han desarrollado para él una interfaz web y una interfaz gráfica, llamada Cutter.
Además, el software incluye un desensamblador y admite depuradores locales y remotos. Puede funcionar en Linux, BSD, Windows, OSX, Android, iOS, Solaris y Haiku. De esta manera, se puede programar en Python, JavaScript, Go y otros. Del mismo modo, es compatible con más de 15 formatos de archivo, incluidos WinRAR y binarios sin procesar. Aparte de unos 35 conjuntos de instrucciones, incluidos Intel x86 y ARM.
6.- ApkTool
ApkTool se centra en la ingeniería inversa de aplicaciones de terceros, cerradas y binarias del Sistema Operativo Android. Este programa de código abierto puede decodificar recursos hasta casi su forma original, realizando cambios en ellos y reconstruyéndolos de nuevo a APK / JAR binarios.
La estructura de archivos en forma de proyecto que utiliza el desensamblador y su uso de la automatización, hacen que la utilización del mismo sea más fácil que otras ofertas del mercado. Por último, solo se requiere Java 7 para utilizar el programa.
Con el Curso en Hacking Ético podrás estar al tanto de todas las herramientas que necesitas para realizar actividades en pro de la seguridad de tu empresa u organización. Obtendrás los conocimientos necesarios para que, a través de estas actividades, puedas lograr mejores soluciones en los ámbitos de seguridad y protección.