Mirai DDoS Botnet: Análisis de Código Fuente y Binarios

Mirai es una botnet de DDoS que ha saltado a los medios de comunicación recientemente debido a varios ataques de alto impacto: uno al periodista Brian Krebs y el segundo uno de los mayores ataques en Internet hasta la fecha realizado el pasado viernes 21 de octubre 2016 contra el ISP Dyn, que desconectó una gran parte de Internet.

Aparte de la cobertura mediática, Mirai es muy interesante porque por un lado tenemos binarios reales capturados de sistemas comprometidos y, por otro, el código fuente fue liberado recientemente, por lo que seguramente podemos esperar muchas variantes de Mirai próximamente. El tener binarios y código fuente nos permite estudiar este malware con más detalle.

Lo que es realmente sorprendente es que estando en el 2016 todavía hablemos de gusanos, contraseñas débiles / por defecto y ataques DDoS: hola gusano de Morris (1988) y proyecto Rivolta (2000), por mencionar algunos.

Análisis de código fuente

Hemos compilado el código fuente de Mirai con Tintorera, una herramienta de análisis estático desarrollada por VULNEX que genera inteligencia mientras se compila código C/C++, proporcionando una rápida panorámica del código.

Con Tintorera obtenemos un resumen en detalle de la aplicación que muestra archivos compilados, numero de líneas de código, comentarios, líneas en blanco y otras métricas de interés. Tintorera también calcula el tiempo necesario para auditar el código. Mirai es un proyecto pequeño y no demasiado complicado de auditar. (Figura 1)

srf_mirai_sc1
Figura 1

Mirai utiliza diferentes funciones del API de Linux, principalmente relaciones con operaciones de red. (Figura 2)

srf_mirai_sc2
Figura 2

En el informe de inteligencia generado por Tintorera tenemos un listado de archivos, nombres de funciones, bloques básicos, Complejidad Ciclomática, llamadas al API y ensamblador en línea utilizado por Mirai. Al examinar esta lista nos hacemos una idea del código. (Figura 3)

srf_mirai_sc3
Figura 3

En el archivo killer.c existe una función llamada killer_init que mata diversos servicios: telnet (puerto 23), ssh (puerto 22) y http (puerto 80) para impedir acceso al sistema comprometido por otros. (Figura 4)

srf_mirai_sc4
Figura 4

En el mismo archivo, killer.c, otra función llamada memory_scan_match busca en memoria indicadores de otros malware. (Figura 5)

srf_mirai_sc5
Figura 5

La función get_random_ip del archivo scanner.c genera IPs aleatorias que atacar, exceptuando direcciones de la siguiente lista blanca de General Electric, Hewlett-Packard, el servicio de correo y el departamento de defensa americanos. (Figura 6)

srf_mirai_sc6
Figura 6

Mirai contiene una lista de 62 contraseñas por defecto / débiles para realizar ataques a dispositivos IoT. Esta lista esta declarada en la función scanner_init del archivo scanner.c. (Figura 7)

srf_mirai_sc7
Figura 7

En el archivo main.c tenemos la función principal que impide que el dispositivo comprometido pueda reiniciar, para ello Mirai mata el servicio watchdog, y también lanza el scanner buscando nuevas víctimas, otros dispositivos IoT. En la Figura 8 vemos el callgraph de este archivo.

srf_mirai_main_callgraph
Figura 8

Mirai tiene capacidades ofensivas que consiste en lanzar ataques DDoS utilizando diferentes protocolos: UDP, TCP y HTTP.

Análisis de binarios

Ahora es el turno del análisis de binarios. Hasta el momento hemos analizado 19 binarios, obtenidos de distintas fuentes, para las siguientes arquitecturas: x86, ARM, MIPS, SPARC, Motorola 68020 y Renesas SH (SuperH).

Para el análisis de binarios hemos utilizado la plataforma BinSecSweeper de VULNEX, que permite analizar binarios y otros tipos de ficheros en gran detalle combinando SAST y Big Data.

En la Figura 9 tenemos gráfico del tipo de ficheros y arquitectura de los binarios. Todas las muestras son 32 bits.

srf_mirai_bin2
Figura 9

Mediante el uso de BinSecSweeper hemos obtenido mucha información de cada muestra, similitudes entre ellos y diversas vulnerabilidades. Actualmente no muchos Antivirus identifican todas las muestras, así que cuidado con el Antivirus que utilices! En la Figura 10 tenemos una visualización del tamaño de los ficheros en bytes.

srf_mirai_bin1
Figura 10

También hemos analizado todas las secciones de la cabecera ELF de las muestras. (Figura 11)

srf_mirai_bin3
Figura 11

Como se mencionó anteriormente, las muestras son para diferentes arquitecturas, por lo que en este post no mostraremos el análisis de código.

Hemos actualizado el motor de análisis de BinSecSweeper para identificar el malware Mirai. Un informe al completo del análisis de binarios esta disponible para los clientes de los servicios de Ciber Inteligencia de VULNEX, por favor visiten nuestra web o póngase en contacto con nosotros para mas información.

Conclusiones

A pesar de ser un código bastante simple, Mirai tiene interesantes capacidades ofensivas y defensivas y se ha hecho un nombre. Ahora que el código fuente ha sido liberado es solo cuestión de tiempo que veamos variantes de Mirai.

Mirai botnet es una llamada a los fabricantes de dispositivos IoT para que mejoren la seguridad. Por desgracia, ya existen millones de dispositivos IoT inseguros en internet, por lo que habrá muchos más ataques IoT en un futuro cercano.

¿Qué opinas sobre la seguridad de Internet de las cosas (IoT)?

— Simon Roses Femerling / Twitter @simonroses

Posted in Hacking, Malware, Seguridad, Tecnologia | Tagged , , , , , , | Leave a comment

Solución CTF: Fristileaks 1.3

Esta VM vulnerable es un divertido y simple CTF que puede descargarse desde el estupendo portal VulnHub.

Nota: Para vmware puede ser necesario configurar la dirección MAC 08:00:27:A5:A6:76 para conseguir que funcione (obtenga DHCP). Yo lo hice, ver Fig 1.

srf_fristileaks_1

¡Que comience el juego!

En este caso ya sé la dirección IP, por lo que empezamos lanzando un escaneo nmap. Del resultado podemos ver solo 1 puerto abierto (HTTP) y el archivo robots.txt con algunos directorios.

srf_fristileaks_2

Abrimos el sitio Web.

srf_fristileaks_3

Nada interesante por el momento. Ahora vamos a probar abrir el robots.txt

srf_fristileaks_4

En estos directorios solo encontramos una imagen del Jedi Obi-Wan Kenobi y nada más.

srf_fristileaks_5

Pensando un poco en próximos pasos y teniendo en cuenta que este es el juego fristi, llegamos a la siguiente URL; un portal admin con inicio de sesión y contraseña.

srf_fristileaks_6

Revisando el código HTML encontramos que la imagen se codifica en Base64 y también un posible nombre de usuario: eezeepz

srf_fristileaks_7

Mirando más de cerca el código fuente HTML nos encontramos con otro texto posiblemente codificado en base64.

srf_fristileaks_8

Vamos a poner el texto codificado en base64 en el decodificador de Burp Proxy. Vemos una cabecera PNG. ¡Suena a una imagen!

srf_fristileaks_9

Escribamos un script en Python para obtener la imagen.

srf_fristileaks_10

Abrimos la imagen y ¡tiene pinta de ser una contraseña!

srf_fristileaks_11

Ahora tenemos un nombre de usuario y una contraseña. ¡Continuemos!

srf_fristileaks_12

Genial, tenemos acceso al portal.

srf_fristileaks_13

Podemos subir una imagen.

srf_fristileaks_14

¿Por qué no una webshell? 🙂 Modificamos una de las que trae Kali para añadir mi dirección IP.

srf_fristileaks_15

Subimos la webshell pero ocurre un error. ¡Algún tipo de filtro!

srf_fristileaks_16

Abrimos Burp Proxy para intentar saltar el filtro, cambiando el nombre del archivo para agregar una extensión “.png”.

srf_fristileaks_17

Perfecto! filtro saltado y tenemos una webshell subida.

srf_fristileaks_18

Llamemos a nuestro webshell

srf_fristileaks_19

Recuerda que antes de llamar a la webshell debemos poner Netcat a la escucha. Caballeros, tenemos shell 🙂

srf_fristileaks_20

Un buen lugar para empezar es analizar el código de la aplicación web, escrita en PHP. En el directorio /var/ podemos ver un directorio llamado /fristigod/ del usuario fristigod, interesante.

srf_fristileaks_21

Hurgando en el directorio /var/www/ encontramos un archivo llamado notes.txt.

srf_fristileaks_22

En el directorio /home/ podemos ver varios usuarios.

srf_fristileaks_23

Dentro del directorio /eezeepz/ encontramos otro archivo notes.txt con un mensaje interesante. Podemos ejecutar comandos, ¡genial!

srf_fristileaks_24

Vamos a ejecutar un comando para poder acceder al directorio /admin/ utilizando el truco del archivo /tmp/runthis.

srf_fristileaks_25

Dentro del directorio /admin/ vemos un montón de archivos interesantes.

srf_fristileaks_26

Tenemos algunos archivos cifrados y un script de Python utilizado para cifrar los archivos.

srf_fristileaks_27

Es hora de un poco más de Python, vamos a modificar el script de cifrar para descifrar los archivos.

srf_fristileaks_28

Ahora que tenemos algunas contraseñas vamos a cambiar nuestro actual usuario al usuario fristigod. Recuerda que uno de los archivos cifrados se llamaba “whoisyourgodnow.txt”. Necesitamos una terminal real por lo que vamos a conseguir una, una buena chuleta aquí.

srf_fristileaks_29

El contenido del directorio /fristigod/ no revela nada.

srf_fristileaks_30

Recordamos que en el directorio /var/ teníamos un directorio llamado /fristigod/. En este directorio podemos encontrar algunos archivos interesantes, ¡incluso ejecutar un binario con permisos root!

srf_fristileaks_31

Al examinar el archivo. bash_history aprendemos cómo ejecutar el anterior binario root.

srf_fristileaks_32

Es momento de examinar el contenido del directorio /root/ utilizando el binario root.

srf_fristileaks_33

Premio! Tenemos shell de root y la bandera 🙂

srf_fristileaks_34

¡Felicitaciones al autor por crear este divertido CTF!

¿Has conseguido root y la bandera utilizando otras tácticas?

— Simon Roses Femerling / Twitter @simonroses

Posted in Hacking, Hacking Etico, Seguridad, Tecnologia | Tagged , , | Leave a comment

Análisis del APT Equation mediante la plataforma de Security Data Science: BinSecSweeper

Como muchos lectores sabrán, en VULNEX llevamos tiempo trabajando en nuestro proyecto BinSecSweeper, cuyo desarrollo comenzó en el 2013 gracias a una beca de I+D ofrecida por el DARPA dentro de su programa piloto Cyber Fast Track (CFT), y además fuimos la única startup española en ganar una de estas becas. En mayo del año pasado fui invitado al Pentágono por el DARPA para presentar mi proyecto junto a los otros participantes del CFT. ¡Toda una experiencia!

Desde entonces BinSecSweeper ha cambiado en todos los sentidos gracias a una fuerte apuesta en ingeniería durante este último año. Con la aparición de tantos APT últimamente, he pensado que sería interesante analizar un APT reciente que ha dado mucho que hablar utilizando técnicas de Data Science: Equation APT Group.

Para este análisis he conseguido 419 ejecutables Windows que vamos a proceder a examinar con BinSecSweeper, ¡veamos los resultados del análisis!

En la Fig. 1 tenemos el panel del proyecto y podemos ver de forma rápida un sumario del análisis. BinSecSweeper, al identificar malware y vulnerabilidades de carácter elevado, ha establecido el nivel de alerta en severo (basado en el sistema de seguridad de EE.UU. Homeland). También nos llaman la atención diferentes características como Packers, Información Identificable y similitudes entre binarios.

binsecsweeper_Online1
Fig. 1.

En Métricas (Fig. 2) vemos más detalle sobre el análisis. La métrica que más nos interesa, por lo menos a mi, son los riegos identificados y el número de ficheros afectados. BinSecSweeper ha identificado riesgos muy interesantes en este APT.

binsecsweeper_Online2
Fig. 2.

En BinSecSweeper podemos profundizar en el análisis de uno, varios o todos los ficheros, pero para este análisis rápido, nuestro objetivo es obtener la panorámica completa. Para ello observemos la analítica de datos, una poderosa herramienta (ver Fig. 3)

binsecsweeper_Online3
Fig. 3.

BinSecSweeper ofrece impresionantes gráficas que nos ayudan a entender los datos de forma rápida y visual. En la Fig. 4 vemos una visualización de la entropía de los binarios, “medida del desorden”. La mayoría de binarios están alrededor de 0.80 con algunos binarios en los extremos 0.65 y 1.00.

binsecsweeper_Online4
Fig. 4.

En la Fig. 5 vemos los diferentes tipos de binarios y llama la atención que la mayoría son DLL y luego tenemos un Driver, sin duda un fichero para analizar más en detalle.

binsecsweeper_Online5
Fig. 5.

En la Fig. 6 vemos una métrica muy interesante, el nombre de las secciones de un ejecutable. Nos ayuda a identificar packers y secciones sospechosas.

binsecsweeper_Online6
Fig. 6.

La Fig. 7 se relaciona con la métrica anterior, en este caso tenemos el número de secciones de los ejecutables. Destaca un fichero con diez secciones.

binsecsweeper_Online7
Fig. 7.

La siguiente métrica (Fig. 8) tenemos el número de librerías importadas por los ejecutables.

binsecsweeper_Online8
Fig. 8.

Las funciones que importan los ejecutables son interesantes para entender la funcionalidad. En la Fig. 9 tenemos esta métrica, específicamente las funciones Top 15.

binsecsweeper_Online9
Fig. 9.

También podemos ver las funciones que exportan las ejecutables (Fig. 10).

binsecsweeper_Online10
Fig. 10

En la Fig. 11 vemos los diferentes compiladores identificados. Interesante para entender las herramientas que utilizan los autores del APT.

binsecsweeper_Online211
Fig. 11.

La última métrica que vamos a ver es la fecha de compilación de los ejecutables organizada por años. Claramente en el 2008 los autores estuvieron muy ocupados.

binsecsweeper_Online212
Fig. 12.

De forma sencilla y rápida hemos obtenido una buena panorámica de este APT sin entrar en complejos/costosos análisis o ingeniería inversa, que sería nuestro siguiente paso. Para que luego digan que en España no se hace nada interesante 😉

Hoy en día dados los millones de malware que circulan y la complejidad de cualquier software es necesario contar en nuestro arsenal con poderosas herramientas de análisis como BinSecSweeper, que utiliza técnicas avanzadas de Data Science para analizar la seguridad y privacidad del software.

Quizá sería interesante pasar todos los antivirus por BinSecSweeper 😉

Sayonara baby, pronto volveré con más análisis 

Para mas información sobre BinSecSweeper puedes contactarnos en BinSecSweeper@vulnex.com

¿Tu organización utiliza Security Data Science? ¿Qué te gustaría analizar?

— Simon Roses Femerling / @simonroses

Posted in Malware, Privacidad, Seguridad, Tecnologia | Tagged , , , , , , | Leave a comment

Una brecha de seguridad puede hacerte mucho daño, ¡más de lo que piensas!

Semana tras semana leemos sobre brechas de seguridad en conocidos portales Web del mundo entero, donde se han expuesto millones de datos de usuarios y la empresa afectada ni siquiera pide disculpas. Hasta ahora nadie en la alta dirección asumía responsabilidad alguna de la brecha, que en muchas ocasiones se debía a la falta de seguridad, pero esta tendencia está empezando a cambiar.

Algunos altos ejecutivos están dejando su cargo debido a brechas de seguridad como el de Target en 2014 o el infame de Ashley Madison recientemente en julio de 2015. La alta dirección tiene que empezar a hablar sobre ciberseguridad y asumir la responsabilidad de las brechas de seguridad.

Una brecha de seguridad puede ser realmente lesiva. Tomemos por ejemplo el ataque de Ashley Madison: 36 millones de datos de usuarios expuestos – seamos honestos muchos de estos usuarios son perfiles falsos – pero de todos modos ha habido muchos usuarios reales afectados por el ataque. El verdadero problema para Ashley Madison no es el ataque en sí, sino lo que ha sido revelado, ya que la compañía tenía planes de hacerse pública pero examinando los datos parece era una estafa, ¡ay!

Otro brecha de seguridad reciente y de gran impacto ha sido Hacking Team, una empresa de seguridad que desarrolla soluciones ofensivas para FCSE pero que también ha estado vendiendo sus productos a regímenes opresivos por todo el mundo. Hacking Team era una empresa conocida desde hace tiempo por actividades sospechosas, pero no fue confirmado hasta que una brecha de seguridad reveló 400 gigabytes de sus datos conteniendo código fuente de productos, contratos de clientes, correos electrónicos y mucho más, en definitiva el lado oscuro de esta empresa. ¡Realmente ay!

Las escuelas de MBA necesitan empezar a incluir concienciación de ciberseguridad en sus cursos para que la alta dirección entienda los problemas y cómo lidiar con ellos. En estos momentos no es suficiente tener un buen CSO/CISO; la alta dirección debe estar implicada al 100%, si no una brecha de seguridad podría afectar seriamente tu empresa.

¿Debería la alta dirección estar involucrada en la ciberseguridad?

— Simon Roses Femerling – @simonroses

Posted in Seguridad, Tecnologia | Tagged , , , | Leave a comment

Carrera por el 0day en Sistemas Operativos de Estado Nación

El cambio de sistema operativo (S0) se acerca…

Todos sabemos que Windows aún domina la arena del escritorio con Linux y MacOS tratando de cogerle y que Android domina el espacio móvil con iOS y Windows Phone intentando alcanzarlo. Lo que muchos de estos sistemas operativos tienen en común es que son desarrollados por empresas de los Estados Unidos de América (Hola NSA!).

Con la silenciosa (o no tan silenciosa 🙂 ciber guerrilla que discurre en Internet entre el Oeste y el Este no es de extrañar que muchos Estados Naciones estén desarrollando sus propios sistemas operativos para reducir la dependencia de los Estados Unidos como proveedor de software.

Los ataques cibernéticos contra Sony por Corea del Norte (supuestamente, no probado todavía) han llamado mucho la atención de los medios de comunicación – incluso el Presidente Obama ha hablado sobre la necesidad de incrementar la ciberseguridad- y para hacer las cosas más interesantes el sistema operativo utilizado por el gobierno de Corea del Norte se filtró en Internet y está siendo analizado actualmente por muchas empresas de seguridad y agencias de inteligencia para encontrar 0day.

Varios Estados Naciones han anunciado el desarrollo de su propio sistema operativo “seguro (ejem, ejem)”, los que conozco:

  • Red Star OS: Basado en Linux (Red Hat) con la apariencia de Windows XP, utilizado por Corea del Norte.
  • China: Varios SO personalizados.
    • COS: China Sistema Operativo (China Operating System) basado en Linux para dispositivos móviles.
    • Kylin: Primera versión se basó en FreeBSD, aunque la versión actual está basada en Ubuntu.
  • Rusia: Varios OS personalizados.
    • RoMOS: Es una modificación de Android enfocada a dispositivos móviles. (este sistema operativo no envía ninguna información a Google).
    • Linux: El gobierno ruso anunció el cambio a un entorno Linux como sistema operativo nacional este año 2015.
  • Francia: No tienen realmente su propio sistema operativo, pero los militares franceses cambiaron a Linux Ubuntu (alegando ahorro de costes).
  • India: También anunció su propio SO seguro (no hay mucha información publicada)
  • Los Estados Unidos de América: Varios SO personalizados.
    • La Agencia de Sistemas de Información de Defensa (DISA) está desarrollando una versión segura de Android para ser utilizado en dispositivos móviles en todo el gobierno.
    • Plan X: Un SO desarrollado por el DARPA para ser utilizado por los militares para las operaciones de guerra cibernética en tiempo real.

El que los Estados Naciones estén desarrollando sus propios SO personalizados por razones defensivas fuerza a los adversarios a intentar obtener copias de estos SO para encontrar 0day si quieren realizar acciones ofensivas, por lo que podemos suponer que el mercado de 0day experimentará un crecimiento en los próximos años para obtener vulnerabilidades y rootkits para todos estos SO de Estados Naciones.

Existe una buena oportunidad para la contrainteligencia de los Estados Naciones para publicar falsos SO y software pretendiendo ser auténticos para que los adversarios gasten recursos tratando de obtener copias y tiempo analizando el software o, por qué no, incluir software ofensivo dentro del sistema operativo para atacar los sistemas utilizados para analizar el software y comprometer la red del equipo de análisis.

Con toda certeza las empresas de seguridad y agencias de inteligencia de ambos lados (Este y Oeste) deberán vigilar las tecnologías utilizadas por sus adversarios y tener preparados varios 0days para estos sistemas operativos, ya que las versiones de Windows, Linux y Android estándar probablemente desaparecerán.

Los Estados Naciones que no empleen los suficientes recursos para desarrollar sus capacidades ofensivas serán incapaces de realizar cualquier acción contra adversarios que utilicen SO personalizados en el futuro.

Lector: Si sabes de algún SO de Estado Nación envíame un mensaje y si tienes copias de cualquiera de ellos me los envías, por favor!!!! (Ya tengo Red Star OS, gracias)

¿Qué opinas de los Estados Naciones que desarrollan su propio sistema operativo?

— Simon Roses Femerling | @simonroses

Posted in Hacking, Privacidad, Seguridad, Tecnologia | Tagged , , , , , | Leave a comment

Terminando el año con un gran evento de ciberseguridad: CyberCampES

Los pasados 5, 6 y 7 de diciembre se celebró en Madrid la primera edición del CyberCampES organizado por INCIBE (el antiguo INTECO), un evento enfocado a los jóvenes y familias donde coincidieron desde talleres sobre seguridad infantil hasta universitarios para concienciarles sobre ciberseguridad, y desde luego que el objetivo se consiguió: fue todo un éxito de asistencia y participación.

Con unas 5000 personas inscritas al evento y un cartel de ponencias y talleres de lujo con expertos nacionales e internacionales, han sido tres días intensos de ciberseguridad. ¡Más foros como este son los que España necesita para seguir progresando en esta materia!

Personalmente tuve el placer de impartir una charla el sábado por la tarde sobre mi proyecto de I+D como única empresa española (VULNEX) en trabajar para el DARPA CyberFast Track (CFT) y mi presentación del proyecto en el Pentágono (puedes leer sobre esta increíble experiencia aquí).

El domingo impartí un extenso taller técnico de 3 horas sobre auditoría de código de forma práctica, donde enseñé diferentes métodos, procedimientos y herramientas para auditar código como un profesional a los asistentes. Aprovechando el taller, mostré uno de mis últimos proyectos en I+D llamado Tintorera, una herramienta de análisis estático que utiliza el compilador GCC para analizar código C/C++ permitiendo obtener inteligencia del código fuente, un tema apasionante del que prácticamente nadie habla y en el que queda mucho por hacer. Este taller lo podéis encontrar en la web de VULNEX.

Para mí fue un deleite participar en este magnífico evento donde coincidí con viejos amigos e hice nuevos. Desde aquí quiero dar las gracias a la gente de INCIBE por invitarme y espero que repitan el evento el año que viene y que cuenten conmigo otra vez 🙂

¿Qué te pareció el CyberCamp?

— Simon Roses Femerling @simonroses

Posted in Conferencia, Hacking, OWASP, SDL, Seguridad | Tagged , , , , | Leave a comment

Universo de Ciber Inteligencia

En los últimos años todo lo ciber está de moda, ¡y la inteligencia aplicada al mundo ciber no podía ser menos! El concepto de inteligencia tiene un carácter ofensivo por el uso que le dan las agencias de inteligencia (valga la redundancia) y militares, pero ahora existen demasiados fabricantes de productos de seguridad que dicen proporcionar inteligencia y ser capaces de identificar amenazas potenciales.

Con el uso de estos productos de seguridad muchas organizaciones privadas “creen” que están obteniendo inteligencia, pero en realidad su visión es muy limitada:

  1. La inteligencia se obtiene por la cantidad y calidad de sus fuentes (muchas organizaciones no saben ni sus fuentes de información).
  2. El factor humano de análisis es vital (no es instalar un producto y esperar un informe en plan “todo automatizado”).
  3. Se enfocan al exterior (Internet), como si las amenazas internas no existieran.

Es gracioso o triste, según se mire, cuando muchas organizaciones y fabricantes de productos hablan de la capacidad de monitorizar y analizar logs de sistemas, antivirus, cortafuegos, IDS, Honeypots, etc. y de proporcionar inteligencia y luego no saben ni el número de equipos, usuarios o software instalados en la organización. La inteligencia aplicada al exterior es insuficiente si no aplicamos inteligencia en el interior de la organización.

En VULNEX (disclaimer: startup en ciberseguridad fundada por mi) nos planteamos esta cuestión y hemos desarrollado algunas soluciones que ayudan en este sentido, por ejemplo BinSecSweeper, una herramienta para analizar binarios Windows, Linux y MacOS. Podemos escoger un sistema operativo y analizar todos los binarios para determinar su postura de seguridad -por ejemplo todos los 7000 (aprox.) binarios de Kali Linux en unos 30 minutos ;)- o determinar si un software tiene librerías antiguas, entre muchas más cosas.

El software hoy en día no se escribe sino que se compone, los programadores utilizan diferentes librerías y código comercial o de código abierto para componer su producto en el menor tiempo posible y sacarlo al mercado. Las organizaciones utilizan todo tipo de software sin saber si es seguro o de qué se compone, ¡error!

bss1_cap_int_univ
Fig. 1 – Escaneado software con BinSecSweeper

Otra necesidad que nos surge en VULNEX es obtener inteligencia de código fuente a la hora de realizar auditorías de código. Las auditorías son complejas, largas y generalmente limitadas en el tiempo y por eso es necesario obtener información valiosa para focalizar el trabajo. Con este objetivo hemos desarrollado Tintorera, un plugin para GCC que, mientras compilamos un proyecto en C, realiza un análisis que nos ayuda a entender el código sin haber leído el código fuente en sí. En este punto no estamos buscando vulnerabilidades, pero sí que queremos entender la relación entre funciones, métricas de código, complejidad y otros parámetros que nos ayudarán a ser más efectivos para escrutar el código y encontrar vulnerabilidades. Inteligencia aplicada al código fuente! 

tintorera1
Fig. 2 – Informe de Tintorera

tintorera2
Fig. 3 – Visualizando código

Si crees que tu organización está haciendo ciber inteligencia, replantéatelo y determina vuestras capacidades de análisis y visión reales que seguramente no son tan buenas como crees…

Sin duda mucho queda por hacer en la ciber inteligencia a nivel externo e interno para obtener una visión real y global de las amenazas.

¿Tiene tu organización un proceso de ciber inteligencia?

— Simon Roses Femerling @simonroses

Posted in Hacking, Hacking Etico, SDL, Seguridad, Tecnologia | Tagged , , , | Leave a comment

Ataques Teóricos a un sex robot: Roxxxy

La empresa True Companion comercializa desde hace unos años el primer robot para tener relaciones sexuales: Roxxxy. Por desgracia no es posible encontrar demasiada información sobre las características técnicas del robot en la propia web de la empresa, pero sí que podemos sacar unas cuantas conclusiones y he pensado que sería divertido hacer un post sobre posibles vectores de ataque.

Disclaimer: todo lo que aquí descrito se basa en información obtenida de la web de la compañía y mi imaginación, ningún ataque ha sido probado en real (aún) ya que no dispongo de este robot, pero si algún lector quiere enviarme un par de robots para que haga ingeniería inversa, estaré encantado de informarle primero de todos los 0day que encuentre 🙂

Roxxxy-Poupee-Robot-Sexuel-True-Companion-01

Se pueden elegir diferentes versiones a gusto del consumidor: color de pelo, personalidad (hasta 5 diferentes, que se pueden personalizar más aún por el usuario), y según el modelo hasta puede hablar, tener cierta comprensión y responder al tacto. Estas características me hacen pensar que el robot tiene que tener diferentes tipos de sensores y microprocesadores. Además cuenta con puerto USB, Ethernet y Wi-fi por lo que también tiene capacidad de comunicarse (puede recibir actualizaciones vía Internet). El USB se conecta a un ordenador Windows para que el robot puede hablar con nosotros.

Un interesante concepto es que podemos prestar la personalidad de nuestro robot personalizado a otros usuarios en el foro de la empresa (Swingers para robots) de forma temporal, esto significa que el robot puede cambiar su personalidad por otra creada por otros usuarios.

Ahora con esta información planteamos diferentes escenarios teóricos/ficticios de ataque:

1. El robot podría traer de fabrica algún implante malicioso para comprometer el ordenador del usuario vía USB.
2. Se podría incluir un AP malicioso, tipo Wifi Pineapple, dentro del robot para realizar ataques a la red/sistemas.
3. Un atacante podría robar el perfil (personalidad) del robot para revendérselo al cliente (Ransomware).
4. Un atacante podría modificar los motores internos del robot para hacer daño al cliente cuando este metido “en faena” (aunque dudo que el robot tenga motores suficientemente potentes en la versión actual).
5. No se dice nada de la vista del robot, pero en caso de tenerla, se podría usar sus cámaras para espiar al usuario (¡hola, NSA!)
6. Igualmente se podría usar el robot para grabar la voz del cliente.
7. Y, con toda esta información, chantajear al cliente para no hacer públicos sus gustos/tendencias sexuales.
8. Un atacante podría enviar una personalidad maliciosa a los foros para que las víctimas se lo instalen en sus robots con diferentes fines.

31400

Mucho hablamos de riesgos a las infraestructuras críticas, la Nube, Big Data y el Internet de las Cosas (IoT), pero en los próximos años la seguridad y riesgos en los robots cobrarán más relevancia cuando estén cada vez más presentes en nuestras vidas personales y profesionales…

¿Qué más ataques se te ocurren? 😉

— Simon Roses Femerling / @simonroses

Posted in Hacking, Seguridad, Sin categorizar | Tagged , , , , , | Leave a comment

Mi visita al Pentágono

Pues sí caballeros, he visitado el Pentágono el pasado mayo gracias a un evento organizado por el DARPA (Agencia de Proyectos de Investigación Avanzados de Defensa del Departamento de Defensa de Estados Unidos) llamado “Demo Day”, donde se presentaba lo último en proyectos de ciberseguridad, robótica y tecnología militar, entre otras muchas cosas, y tengo que decir que fue toda una experiencia 🙂

pentagono

Mi asistencia al evento se debe que a VULNEX participó en el DARPA Cyber Fast Track (CFT), (por cierto, única empresa española) con un desarrollo en tecnología para mejorar la seguridad del software (más información sobre el proyecto aquí). A continuación os dejo una captura de la tecnología que creé para el proyecto: BinSecSweeper.

binsecsweeper_v08

El primer día del evento, miércoles 21, tuve la oportunidad de ver el Plan X, un programa para realizar operaciones militares en el ciberespacio controlado mediante gafas de realidad virtual o una pantalla táctil a lo más puro estilo Johnny Mnemonic, un impresionante brazo robótico para soldados heridos en combate, gamificación aplicada a la seguridad informática, cascos militares con realidad aumentada, así como todo tipo de soluciones en ciber seguridad. ¡Todo muy espectacular!

El segundo día, jueves 22, fue en exclusiva para las personas que habíamos participado en el CFT: éramos unos 100 stands en el patio interior del Pentágono, donde teníamos que exponer nuestras demos y atender a todos los visitantes. En mi stand tuve el placer de charlar y presentar BinSecSweeper a gente del US Cyber Comand, Navy, Army, NSA, la academia de West Point, contratistas de defensa y personas de todo tipo de agencias 😉 Sin duda, una experiencia muy interesante.

El tercer día, viernes 23, estuvimos en el Steven F. Udvar-Hazy Center, Museo Nacional del Aire y Espacio, y fue increíble. Durante todo el día los participantes del CFT estuvimos en la sala de conferencias debatiendo sobre diversos temas y el estado actual de la ciberseguridad, pero lo mejor fue por la tarde, cuando a las 18:00 cerraron el museo y nos lo dejaron entero para nosotros. Os puedo decir que es uno de los mejores museos en que he estado nunca: pudimos ver todo tipo de aviones de la Segunda Guerra Mundial, helicópteros, un concorde, el mismísimo Blackbird o incluso el transbordador Discovery (todo auténtico ;). ¡¡Recomiendo visitar este museo alguna vez en la vida!!

discovery

blackbird

Aunque el CFT ya finalizó, espero que en algún momento vuelva el programa y que el DARPA siga apoyando a individuos y pequeñas empresas como VULNEX que tienen altas capacidades de innovación.

Agradecer a la gente del DARPA y BITS la fantástica organización del evento y por supuesto haber podido participar en el CFT.

Más información del evento aquí.

Twitter: @simonroses

Posted in Conferencia, Hacking, Seguridad, Tecnologia | Tagged , , , , , , | Leave a comment

Heartbleed: sangre, dolor y código

La semana pasada todas las alarmas saltaron cuando se publicó un grave fallo de seguridad llamado Heartbleed en la librería criptográfica OpenSSL, que utilizan tanto una gran parte de los servidores en Internet así como mucho software de seguridad.

Como no podía ser de otra manera, las teorías conspiracionistas hablan de este bug introducido o abusado desde hace tiempo por la NSA. Lo que sí está claro es que este bug deja en evidencia que el software Open Source no es más seguro si nadie lo mira (se ha tardado dos años en identificar este fallo!!!!) y si no se siguen unas prácticas de desarrollo seguro.

Desconozco si el equipo de OpenSSL utiliza algún marco de desarrollo seguro, pero que un solo programador pueda realizar cambios al código sin ningún tipo de validación ¿? es un error mucho más grave que el propio bug.

Sin duda es un duro golpe a la comunidad Open Source que se suele presentar como más seguro, ya que cualquiera puede ver el código. Este fallo demuestra que solo por ser código abierto no es garantía suficiente.

No me cansaré de repetirlo: da igual que seas software Open Source o software comercial, que tu empresa solo desarrolle software de uso interno o que tengas un ISV que te desarrolla a medida, siempre se necesita un marco de desarrollo seguro como el MS SDL, BSIMM o OpenSAMM.

Esperemos que este bug sea una llamada de atención para todo el que desarrolle software sobre la importancia de la seguridad e invertir en ella.

Y puedo confirmaros que este bug funciona a la perfección 😉

¿Qué opinión te merece este bug?

— Simon Roses Femerling

Posted in Hacking Etico, Seguridad, Tecnologia | Tagged , , , , , | Leave a comment