Utilizando la ingeniería inversa para enfrentar Malware
Using reverse engineering to tackle Malware
Este artículo es producto del proyecto de investigación “Cyber Security Architecture for Incident Management” desarrollado en la Escuela Colombiana de Ingeniería Julio Garavito en el año 2018.Introducción: La ingeniería inversa permite deconstruir y extraer conocimiento de objetos. El uso de la ingeniería inversa en el análisis de malware es extremadamente útil para comprender las funcionalidades y los propósitos de una muestra sospechosa. Métodos: Este artículo utiliza Radare, la cual es una de las herramientas de código abierto más populares para ingeniería inversa con el objetivo de hacer frente a las amenazas de malware. Resultados: Se presenta un caso de uso relacionado al análisis de malware antisandbox, de forma que sea posible analizar el comportamiento de la muestra utilizando una sandbox. Además, se presenta otro caso de uso en el que se desarrolla un análisis en profundidad de una aplicación maliciosa de Android dirigida a la audiencia de un evento popular (Copa Mundial de la FIFA 2018), que permite demostrar la relevancia de las técnicas de ingeniería inversa en las estrategias de protección al usuario final .Conclusiones: Este artículo muestra cómo los resultados de un proceso de ingeniería inversa se pueden integrar con reglas Yara, lo que permite detectar malware, y también muestra una alternativa para generar automáticamente reglas Yara a través del generador yarGen.
1. INTRODUCCIÓN
El objetivo de este trabajo es mostrar el potencial de la ingeniería inversa aplicada a la ciberseguridad [1] para la detección de software con funcionalidades maliciosas u ocultas que puedan afectar a una persona o empresa.
La ingeniería inversa es el proceso de deconstruir algo para descubrir su arquitectura y obtener conocimiento de ello [2]. Un ejemplo para ayudar a entender este proceso es pensar en un gran edificio que, tras aplicar la ingeniería inversa, permite obtener los planos del edificio, el tipo de hormigón utilizado en la construcción e incluso información relacionada con quién lo construyó. En un contexto de software y ciberseguridad, la ingeniería inversa se refiere al proceso de pasar de código binario -código máquina- a un lenguaje más comprensible -generalmente código ensamblador-, este proceso se denomina desensamblaje.
La ingeniería inversa es muy importante en ciberseguridad porque permite examinar muestras mediante análisis estático, lo que permite extraer Indicadores de Compromiso (IoC). Los IoC suelen ser hashes, fechas de compilación, funciones de importación y exportación, secciones de archivos, claves de registro, nombres de host, IPs, correos electrónicos o incluso cadenas de texto existentes en el código, que representan rastros de atacantes.
Recursos
-
Formatopdf
-
Idioma:español
-
Tamaño:16511 kb