logo ghidra

La Agencia Nacional de Seguridad (NSA, por sus siglas en inglés) lanzó de manera gratuita para la comunidad Ghidra en el año pasado, la herramienta para el análisis de malware que ha utilizado la agencia durante varios años, liberando así todo el código fuente de una de sus herramientas más poderosas, un framework de ingeniería inversa para software.

Ghidra fue desarrollada por la dirección de investigación de la NSA para sus misiones de ciberseguridad. Sirve para analizar código malicioso como el de virus y otros tipos de malware, de forma que ayude a los expertos a entender mejor las potenciales vulnerabilidades en sus redes y sistemas.

Esta herramienta sirve para realizar ingeniería inversa de binarios que incluye un descompilador y una interfaz de usuario completa. Además, es de código abierto. Dado que la mejor opción anterior para esto era IDA Pro, con miles de dólares en licencias esperadas, esto abrió una gran cantidad de puertas. 

Fue lanzada al público en marzo de 2019 y durante más de un año en el mercado ha demostrado su eficacia y eficiencia con un conjunto de funciones que eclipsa a casi todas las demás herramientas gratuitas e incluso se compara con ciertas herramientas costosas con licencia comercial. En particular, admite el desmontaje, el ensamblaje y la descompilación multiplataforma en una extensa lista de arquitecturas de instrucciones y formatos ejecutables.

Para muchos internautas, su competencia directa es Radare2, una conocida herramienta y muy utilizada desde sus inicios. Aunque ambas tienen múltiples beneficios, en el siguiente artículo te explicaremos sus ventajas y tú pues, ¡Serás el juez!

 

Profundicemos sobre Ghidra.

Con Ghidra, los profesionales en el campo de la ciberseguridad tienen al alcance de su mano un instrumento para el análisis de malware que les permite comprender y descubrir vulnerabilidades en sus redes y sistemas. En este sentido, funciona como alternativa gratuita de una conocida herramienta de ingeniería inversa como es IDA Pro. Entre sus principales funcionalidades se incluye una suite de herramientas para el análisis de código compilado en diversas plataformas, como Windows, Mac OS y Linux; capacidad de desensamblar, ensamblar, decompilar, graficar y realizar scripting; y la posibilidad de hacer o deshacer acciones. Por otra parte, soporta una amplia variedad de instrucciones de procesador y formatos ejecutables y los usuarios tienen la posibilidad de desarrollar sus propios plugins o scripts para Ghidra mediante su API.

Una herramienta crucial para los analistas

La herramienta está actualmente disponible para descargar gratuitamente en su versión 9.0 en sistemas operativos Windows, Linux y macOS. Tiene numerosas aplicaciones, entre las que destacan el análisis de código malicioso o la traducción del código software hasta hacerlo comprensible para el ser humano. La ingeniería inversa es un proceso crucial para los analistas de malware porque permite revertir el camino hasta el origen y descubrir la auténtica naturaleza, las capacidades, el funcionamiento y la procedencia de la amenaza.

Además, los usuarios pueden manejarla en modo interactivo, automatizar las tareas y acceder a una interfaz mucho más accesible que facilita lo máximo posible las labores de ingeniería inversa.

Sus aplicaciones prácticas son de gran utilidad para mejorar el desempeño de la ciberseguridad, detectar la vulnerabilidad de los sistemas, optimizar la comprensión de los componentes del software y contribuir a la construcción de una comunidad más segura.

Según la presentación realizada en la RSA, la decisión de publicar Ghidra tuvo como objetivo contribuir al desarrollo de mejores herramientas en el campo de la ciberseguridad, construir una comunidad y fines educativos. Asimismo, “ayudar a nivelar el conocimiento de los profesionales en ciberseguridad, fundamentalmente el de aquellos que recién están comenzando”, publicó la NSA en su web oficial. Además, aseguran que la publicación de Ghidra permite que la NSA pueda reclutar profesionales que conozcan la herramienta. Es decir, que beneficiará fuentes de empleo.

Aunque es una herramienta de la NSA, no es ni de cerca una herramienta de espionaje.

A contrario de lo que podrías pensar de una herramienta proveniente de la NSA, Ghidra no está hecha para hackear cosas o para espiar, pero no deja de ser bastante interesante y potente.

Aunque ya te explicamos sus funciones, Ghidra sirve, explicado de forma más simple, para hacer cosas como tomar un software que ya ha sido compilado y “decompilarlo”. Es decir, es capaz de traducir todo el código que transmite un software a un ordenador a una estructura que puedan entender un ser humano. Esto permite entender mejor el funcionamiento y la creación del sistema. 

En el campo de la ciberseguridad esta función permite a los investigadores entender cómo funcionan los malware y de dónde vienen. Asimismo, sirve para identificar vulnerabilidad en los sistemas propios. 

Las 1.2 millones de líneas de códigos de Ghidra fueron liberadas, y también se puede descargar la herramienta con interfaz gráfica y está disponible para Windows, Linux y macOS

¿Cómo descargar e instalar GHIDRA?

Instalar Ghidra es tan simple como descomprimir el archivo ZIP en cualquier parte de nuestro equipo y ejecutarlo. El único requisito es tener instalado en nuestro equipo la versión 11 del Java Development Kit o posterior.

Análisis de código con Ghidra

Ghidra cuenta con una página de GitHub activa donde se han abordado cientos de errores, preguntas y solicitudes de mejora. Desde su lanzamiento, Ghidra atrajo a una creciente comunidad de contribuyentes y ha visto cuatro lanzamientos menores.

Cargando un ejecutable

Para comenzar, inicie el archivo por lotes de Ghidra. Luego, cree un proyecto seleccionando Archivo >> Nuevo proyecto. Dado que los esfuerzos de ingeniería inversa a menudo se dirigen a muestras de malware de varios componentes, Ghidra se enfoca sabiamente en proyectos en lugar de archivos individuales.

Las opciones del proyecto incluyen “No compartido” para el análisis de un solo usuario y “Compartido” para el trabajo colaborativo, donde varios usuarios pueden acceder a un repositorio de proyectos en un servidor. Después de seleccionar la opción de proyecto, es el momento de darle un nombre.

Modificar elementos de visualización

Ahora puedes usar CodeBrowser para revisar el archivo de destino mientras Ghidra realiza un análisis en segundo plano. Puede resultar beneficioso realizar algunos cambios en la ventana Listado (donde se muestra el código ensamblador) para mejorar la legibilidad. Para acceder a las opciones de CodeBrowser, seleccione Editar >> Opciones de herramienta. Y a continuación, te enseñamos algunos truquitos fáciles y necesarios:

  • Visualización de listado>> aumenta el tamaño de fuente y habilita el formato en negrita para facilitar la lectura.
  • Listado de campos >> Campo de bytes: cambia “Máximo de líneas para mostrar” a 1 para simplificar el espaciado entre líneas de código ensamblador.
  • Listado de campos >> Resaltado del texto del cursor: Cambia “Botón del mouse para activar” a IZQUIERDA. Esto resaltará todas las instancias del texto seleccionado cuando se haga clic en el botón izquierdo del mouse (similar a otros desensambladores).
  • Listado de campos >> Campo de comentarios EOL: Marca “Mostrar punto y coma al comienzo de cada línea” para separar mejor el texto de ensamblaje de los comentarios insertados.
  • Listado de campos >> Campo de operandos: marca “Agregar espacio después del separador” para mejorar la legibilidad del texto.

El lanzamiento de Ghidra trajo poderosas capacidades de ingeniería inversa a las masas sin costo alguno. Un tiempo después, comenzó con el análisis de malware, y en la actualidad es una herramienta muy completa. Si eres un analista experimentado, la exposición a este marco alternativo puede ser reveladora. En el mejor de los casos, descubre una nueva herramienta y métodos para expandir tu arsenal de RE. En el peor de los casos, encontrarás aún más razones para amar tu herramienta actual de elección.

Ahora bien, creo que ya te dimos toda la información que necesitabas, y hasta un poco más sobre esta herramienta pero.. ¿qué hay de su contraste? Sigamos…

Todo lo que debes saber sobre Radare2

Radare inició como una herramienta forense para hacer búsquedas en discos duros, pero luego su desarrollador principal, el español Sergi Álvarez, también conocido como pancake o trufae, empezó a exigirle más a esta herramienta y fue integrando cada vez más funcionalidades. Fue así como junto a un pequeño grupo de desarrolladores decidieron reescribir el Radare para darle vida al Radare2: una herramienta que aunque mantiene algunas funciones forenses de su antecesor Radare, sin embargo, está más enfocado a convertirse en un completo framework para el análisis de archivos binarios e ingeniería inversa ¿Ahora entiendes por qué lo comparamos con la herramienta anterior?

Después de la reestructuración de Radare bajo el nombre de Radare2 su popularidad subió bastante entre los investigadores de seguridad informática y para algunos se catalogó como «el mayor proyecto libre de seguridad informática creado». Aunque para algunos es una herramienta nueva, en realidad lleva casi una década en desarrollo desde las primeras ediciones de «Radare» y son muchas las funcionalidades integradas.

Radare2, o R2 como algunos le llaman, es tan versátil que se puede usar en análisis forenses hasta en depuración de ejecutables o para realizar fuzzing o exploiting.

Su popularidad no es gratuita, Radare2 es de las pocas herramientas que se permite soportar una gran cantidad de formatos de ficheros ejecutables, desde los conocidos COFF  y ELF hasta formatos de consolas de videojuegos como GameBoy, GameBoy Advance o Xbox, pasando por soportar una gran cantidad de Instruction Sets de casi todos los procesadores populares desde la familia de los Intel y los ARM`s, hasta los SuperH de la Japonesa Hitachi.

Además, esta herramienta es multiplataforma, puede correr en Linux, *BSD, Windows, OSX, Android, iOS, Solaris y Haiku, incluso podemos acceder a una versión de Radare2 en la nube, accediendo a cloud.rada.re, y cuenta con una excelente documentación con un 2 libros gratuitos uno para cada versión

Ahora bien, la pregunta más común…¿Qué opción elegir entre Ghidra y Radare2?

Aquí te vamos a decepcionar un poco, porque si esperabas que te recomendaramos decidirte por una sola de las dos, estas equivocado, al contrario te diremos que no hay una respuesta correcta.

Tu elección dependerá de si te gusta un enfoque minimalista de solo CLI de minutos o Radare. Ahora, si eres un actual usuario de Radare y dudas si vale la pena la curva de aprendizaje  para manejar Ghidra, ¡Claro que la vale! 

Eso sí, te advertimos que Ghidra necesita un poco más de tiempo para acostumbrarse, ya que es una herramienta más profesional.

También queremos advertir, que la descompilación de Ghidra es actualmente extremadamente buena y es muy útil si eres nuevo en la ingeniería inversa porque simplemente puede hacer clic en las líneas en la ventana de descompilación y te llevará al ensamblaje relevante en la ventana principal, lo cual es bueno para aprender qué construcciones C parece en montaje.

Si solo necesitas desmontar algunas líneas de x86 para completar algún desafío CTF básico, usa Radare2. De lo contrario, te recomendamos que aprendas a amar a Ghidra.

La conclusión final a la que llegamos en Creante Lab, es que en un mundo ideal aprendas a usar ambas de manera competente.

¡Siempre hay una herramienta que se adapta mejor a una tarea en particular! Y como el conocimiento no pesa, no será una pérdida de tiempo, todo lo contrario, será una inversión. Ya que, manejar ambas herramientas a la perfección, o incluso lo básico de cada una te permitirá conocer en qué momentos te será una más idónea que la otra.

Fuentes:

www.welivesecurity.com/

www.genbeta.com/

www.coalfire.com/

www.dragonjar.org/

 

No hay comentarios

Sorry, the comment form is closed at this time.