Exprimiendo interfaces APIs para cazar amenazas

Carlos Ávila    12 marzo, 2020
Exprimiendo interfaces APIs para cazar amenazas

En la actualidad, con la gran cantidad de amenazas informáticas, los equipos de investigación y analistas necesitan acceder de manera rápida a fuentes de datos que comiencen a dar pistas sobre el incidente que tienen bajo la lupa. En la década de los 90 eran muy pocas las plataformas o servicios de donde podías recolectar información tal como datos acerca de un dominio, hashes de malware, direcciones de phishing, datos de un email, identificación de botnets, etc. Varios de estos indicadores dentro de un ataque informático son conocidos hoy en día como IoCs.

De hecho, en muchos casos tenías que desarrollar tus propios scripts para obtener dichos datos, armarte de honeypots para recolectar algunos o descargar los pocos datos que podías de servicios de terceros. Y por supuesto ni hablar de analizar dicha información: debías integrarla con tu equipo de desarrollo y realizar toda una travesía para obtener finalmente las funcionalidades deseadas. Esto era un proceso lento, rudimentario y poco escalable para las empresas, instituciones gubernamentales, fuerzas de la ley y equipos de seguridad.

Con las interfaces APIs, todo cambió

A medida que las industrias tecnológicas evolucionaron, las empresas comenzaron a hacer uso de las interfaces API. De igual manera, la gente de InfoSec evidenció una oportunidad para mejorar sus herramientas y plataformas que almacenaban datos de brechas de seguridad, IoCs, vulnerabilidades, etc. La cantidad de servicios y bases de datos que alojan información de seguridad es muy amplia, tanto pública como privada, por lo que suele estar dispersa y en algunos casos es volátil.

Los equipos de SOCs, fuerzas de la ley, gobiernos, analistas y equipos de respuesta a incidentes necesitan monitorear, investigar, obtener y mantener estos datos lo mas rápido posible. Con esta perspectiva, hace poco escribíamos una entrada del blog contando una de nuestras recientes herramientas, TheTHE, que a partir de una interfaz muy simple y potente a la vez, se basa en la idea de que un dato de IoCs sea utilizado como disparador para que se ejecuten búsquedas (a través de sus plugins). De esta manera se puede ir descubriendo y consolidando toda la información posible de diversas fuentes. Para entenderlo mejor, veamos un caso de uso con uno de sus plugins.

Imagen 1: API REST de servicio de DIARIO para análisis de malware en ofimática

Caso de uso con DIARIO de 11Paths

Teniendo un hash como un IoC durante un ataque a una organización, podríamos llevarlo a TheTHE y lanzar algún plugin, en este caso el de DIARIO, con el fin de consumir su API REST y determinar si contiene un malware embebido como macro.

Imagen 2: Analizando hash mediante API REST a DIARIO

De hecho, también es posible lanzar otro plugin simultáneamente para conocer la IP del servidor C2C, que se encuentra en el archivo con la macro, y revisar la reputación de la dirección IP. Así mantendremos cada dato de manera simple y sintetizada en una sola plataforma, pudiendo almacenarla y compartirla en nuestra red local, e incluso monitorear los cambios durante el tiempo que dure la investigación.

Imagen 3: Lanzando plugin de Reputación de IP y otro de whois

Sin embargo, éstos sólo son algunos escenarios que podríamos utilizar dentro un proceso de respuesta a incidentes o Threat Hunting, dado que la modularidad de TheTHE permite que cualquiera pueda desarrollar sus propios plugins dependiendo de sus necesidades. A continuación podemos ver un ejemplo de los archivos básicos y necesarios que se deberían desarrollar para poder generar un nuevo plugin y recibir los datos en el frontend de la aplicación.

Pasos mínimos para generar un plugin

Subtasks: [thethe/tasks/subtasks] generar un archivo ‘nombredeplugin.py’ (botscout.py) con toda la programación del mismo y básicamente deberemos devolver como resultado un objeto de tipo JSON de Python.

Tasks: [thethe/tasks/tasks.py] invocar los métodos del anterior archivo creado de tu plugin (botscout.py) y luego método con las directrices como lo muestra en la siguiente imagen.

Finalmente, [frontend/src/tempate/] crear una carpeta con el nombre del plugin (en este caso “botscout”) y dentro de la misma generar un index.vue donde desarrollar nuestra parte del frontend en vueJS.

Desde ElevenPaths creemos en la importancia de contribuir con diferentes organismos para el intercambio de información sobre amenazas, ya que el poder compartir información y herramientas OpenSource como TheTHE en base a experiencias propias incentiva a toda la comunidad a participar activamente en este tipo de iniciativas.

Esperamos que esta herramienta ayude a analistas y equipos de Threat Hunting a agilizar sus investigaciones, de la misma manera que deseamos que las diversas experiencias que tenga cada uno nos ayuden a enriquecer esta plataforma.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *