El RGPD no es cosa de un día

Por fin ha llegado el día 25 de mayo. El día D donde todos los datos personales pasan a estar protegidos. Donde ya no se van a producir incidentes de seguridad. Donde todos los tratamientos de datos personales pasan a ser legítimos. Donde los datos ya no van a ser conservados sine díe. Donde los usuarios tenemos todo el control de nuestros datos. Donde el derecho al olvido es una realidad. Donde todo el mundo ha sido informado de que todas las políticas de privacidad del planeta han sido actualizadas (sí, la nuestra también). El día más esperado ha llegado. Y una vez llegado a este grado de regocijo, ¿y ahora qué?

Pues siento deciros que el RGPD no es cosa de un día. Hoy, 25 de mayo de 2018, entra en aplicación el Reglamento General de Protección de Datos, conocido por RGPD o GDPR por sus siglas en inglés. Pero que entre hoy en aplicación (lleva en vigor desde 2016) no quiere decir que todo lo que no hayamos hecho no hace falta hacerlo, o que si ya hemos hecho una adecuación no tengamos que hacer nada más. ¿Por qué?
[Read more…]

Simple & crazy covert channels (I): Asciinema

En la preparación de nuestras auditorias muchas veces perdemos bastante tiempo desarrollando herramientas que requieren de un gran trabajo y que, en muchos casos, no llegan a pasar desapercibidas para esos usuarios con un perfil algo más técnico.
Sin embargo, existen otros métodos más sencillos (e igualmente efectivos) de llevar a cabo la exfiltración de información, como es a través de herramientas no pensadas en un primer momento para ello y, que con ajustes relativamente sencillos, nos permiten llevarlo a cabo.

Así pues, durante el siguiente artículo se llevará a cabo el análisis de la herramienta asciinema, así como las diferentes posibilidades de uso y como ésta puede ser integrada con un vector de ataque.

Asciinema es una herramienta bastante simpática que suelo utilizar para demos cuya única función es el registro de la sesión del usuario y la de facilitar una URL que nos permite compartir de forma sencilla la visualización de la actividad del usuario. Una información muy valiosa que puede ser usada de forma malintencionada.

A continuación vamos a ver si podríamos llegar a usarla como un keylogger de Linux y cuales serían las modificaciones necesarias a aplicar.
[Read more…]

CSIRT-CV publica un informe sobre Cryptomining Malware

Estoy seguro que muchos de vosotros habréis oído hablar de las criptomonedas, el bitcoin, la tecnología Blockchain basada en cadenas de bloques para registrar transacciones y muchos otros términos relacionados. Pues bien, vamos a centrarnos un poco en esa parte del registro de transacciones.

¿Qué es la minería de criptomonedas?

La cadena de bloques requiere de una minería constante con el fin de mantenerse consistente e íntegra de forma permanente para que las nuevas transacciones entrantes puedan ser recogidas de forma correcta. Dichas transacciones cuando son en grupo son conocidas como “bloques”.
[Read more…]

TeleRAT: Un nuevo troyano que utiliza Telegram como covert channel.

Este es el nombre del último troyano de Android, que ha sido descubierto por investigadores de Palo Alto Network. Está diseñado y programado para usar los servicios de Telegram, más concretamente se utiliza el “API Bot de Telegram” como canal encubierto para la comunicación con su servidor Command and Control (C&C) con el fin de exfiltrar datos.

Según informan, la API Bot de Telegram ya estaba siendo empleada por atacantes para robar información que abarca desde SMS e historial de llamadas hasta listas de archivos de dispositivos Android infectados. Funcionalidades de otro malware denominado IRRAT.  Gracias a los estudios que se estaban realizando, se encontraron las trazas de este nuevo malware.

Pero… ¿cómo funciona TeleRAT?

Aunque se están haciendo comparaciones entre IRRAT y TeleRAT, el funcionamiento de ambos es muy diferente. Si hablamos de IRRAT,, este roba contactos, lista de cuentas de Google registradas en los dispositivos, historial de SMS, etc. Una vez que se ha hecho esto, mantiene a los datos robados en la tarjeta SD del teléfono y además los envía a un servidor después del primer lanzamiento de la aplicación.
[Read more…]

Drupalgeddon 2: una lucha entre mineros

El pasado 28 de marzo el equipo de Drupal publicó la vulnerabilidad CVE-2018-7600, la cual permite la ejecución remota de código en las versiones 7.x 8.x y ha sido calificada como crítica.

Tal y como se hizo eco el portal https://isc.sans.edu/, dicho CVE está siendo utilizado para el minado de criptomoneda. Sin embargo, no solo hemos encontrado que hay más de un grupo utilizando la presente vulnerabilidad, sino que compiten entre ellos por el control de los mismos.
Así pues, en el siguiente post se va a llevar a cabo el análisis de los diferentes malware que hacen uso de la vulnerabilidad de Drupal, así como de la metodología utilizada tanto para la detección de servidores vulnerables como para la infección del mismo por parte de las diferentes muestras detectadas.

Según hemos podido encontrar, la detección de los servidores vulnerables se hace a través de lo que ha sido bautizado como Drupalgeddon 2: [Read more…]

Exchange forensics: El misterioso caso del correo fantasma (IV)

Volvemos a la investigación del incidente examinando lo que nuestra compañera había encontrado en los logs del OWA. Si recogemos todos los accesos realizados desde las dos IP con el User-Agent de Firefox, encontramos varios patrones de interés:

  • Patrón 1: Acceso directo: Se observa en los logs cómo los atacantes acceden a la página de login, y luego a la pantalla principal del correo.
  • Patrón 2: Accesos incorrectos: Los atacantes acceden a la página de login, pero la contraseña es incorrecta (observamos repetidos intentos de inicio de sesión, como si estuvieran realizando un ataque manual de fuerza bruta).
  • Patrón 3: Accesos incorrectos + correcto: En un caso específico comprobamos como los atacantes realizan varios intentos de inicio de sesión y al quinto logran entrar.

Este último patrón es el más curioso ¿Cómo han podido los atacantes extraer las contraseñas de un usuario (que son robustas al tener 12 caracteres y forzada la complejidad) en unos pocos intentos? [Read more…]

Exchange forensics: El misterioso caso del correo fantasma (III)

Después de una noche con poco sueño (vueltas, vueltas al incidente intentando comprender qué ha podido pasar, qué nos hemos podido pasar por alto, qué nos falta por probar), volvemos cargados de cafeína a la Organización.

Autopsy ha terminado el procesado de la imagen de disco duro, pero tras un análisis superficial de los resultados nuestra teoría inicial se confirma: el equipo del usuario está limpio. De hecho, está tan limpio que el correo malicioso ni siquiera llegó a tocar ese equipo. Por lo tanto, se confirma que todo lo que haya pasado ha tenido que pasar en el Exchange.

Seguimos dándole vueltas al incidente, y hay algo que nos reconcome: si los atacantes tuvieran control completo del Exchange, habrían podido borrar el correo de la carpeta de los Elementos Recuperables, cosa que no han hecho. Pero lo que sí que han logrado ha sido poder borrarlo de la tabla EventHistoryDB, que opera a más bajo nivel… ¿o a lo mejor no lo han hecho?

[Read more…]

Exchange forensics: El misterioso caso del correo fantasma (II)

(Nota: Esta es una historia de ficción; los personajes y situaciones no son reales; lo único real es la parte técnica, que se basa en una mezcla de trabajos realizados, experiencias de otros compañeros e investigaciones llevadas a cabo. Si queréis una versión con la misma dosis técnica pero con menos narrativa, podéis consultar el vídeo de la charla que el autor dio en   las XI Jornadas STIC del CCN-CERT aquí )

Dejamos el anterior artículo con nuestras miras puestas sobre el servidor de correo de la Organización, un Microsoft Exchange 2010.  Lo primero que podemos hacer es solicitar a Sistemas que haga un message tracking (seguimiento del mensaje) del correo, que mediante una herramienta gráfica (aunque también podemos hacerlo por consola) nos localiza el histórico de un correo a alto nivel dentro de Exchange.

Primer intento, y el correo sigue sin aparecer. Repetimos las direcciones y el técnico de Sistemas repite la búsqueda sin éxito. El correo tiene que estar por fuerza, así que le pedimos que busque de nuevo en todo el día completo… y por fin lo encontramos, 14 minutos más tarde de cuando tenía que haber sido enviado.

Al parecer la Organización no tiene bien implementada su estrategia de sincronización de tiempos, y tenemos una deriva de 14 minutos entre el servidor Exchange y los clientes (nota mental: insistir en la necesidad de desplegar un servidor NTP lo antes posible), pero al fin hemos localizado el correo. El pantallazo enviado por Sistemas sería algo similar a este (por temas de confidencialidad no podemos poner ninguno de los originales):

[Read more…]

Exchange forensics: El misterioso caso del correo fantasma (I)

(Nota: Esta es una historia de ficción; los personajes y situaciones no son reales; lo único real es la parte técnica, que se basa en una mezcla de trabajos realizados, experiencias de otros compañeros e investigaciones llevadas a cabo. Si queréis una versión con la misma dosis técnica pero con menos narrativa, podéis consultar el vídeo de la charla que el autor dio en   las XI Jornadas STIC del CCN-CERT aquí).

Otro día más en la oficina, con una lista de tareas pendientes a planificar más larga que la barba de Richard Stallman y ninguna de ellas entretenida: informes, documentación de un par de proyectos y la preparación de una reunión es lo que depara el menú del día para casi toda la semana.

Por suerte, el dicho de que “ningún plan sobrevive al contacto con el enemigo” en este caso juega a nuestro favor. Suena el teléfono, y mi jefe va directo al turrón: “Ha saltado una regla YARA del grupo ATD en la CARMEN de [Redacted] (entidad cuya identidad vamos a dejar en el anonimato denominándola a partir de ahora “la Organización”). Coge tus cosas y ve para allí a la carrera”.

El subidón ante la emoción de la caza es instantáneo: ATD es nuestra denominación interna de un grupo de atacantes que cazamos hace unos meses en otro cliente, y nuestros reverser destriparon el malware de arriba a abajo sin piedad. El análisis permitió detectar una serie de “irregularidades” particulares en su forma de actuar, lo que nos permitió generar una serie de reglas de YARA de alta fidelidad (es decir, falsos positivos prácticamente nulos). Si ha saltado en CARMEN (nuestra herramienta de detección avanzada de intrusos), es que tenemos “trufa” al 99%. [Read more…]

Las herramientas de los dioses

Hoy en SAW no vamos a hablar de seguridad sino de religión. De la religión verdadera, de la buena: de Unix. Y de sus dioses: Kernighan, Ritchie, Thompson… podríamos citar unos cuantos. Y de las herramientas que, en los años setenta, estos dioses nos enviaron a los pobres mortales, como el maná caído del cielo para el pueblo elegido. Y es que estos dioses crearon un sistema operativo de verdad, con unas herramientas técnicamente maravillosas y una filosofía muy sencilla: capacidades simples que combinadas hacen tareas complejas. La perfección. La vida es Unix ejecutando un script. Han pasado más de cuarenta años y nosotros, pobres mortales que éramos el pueblo elegido, ¿qué hemos hecho en este tiempo? Tratar de deshonrar ese legado divino con capas artificiales e inútiles (“de abstracción”, las llaman, para tratar de darles sentido) que introducen dos problemas innecesarios en cualquier entorno tecnológico “moderno”: complejidad, y por tanto probabilidad de error, y lentitud. Sirva de ejemplo el ejecutable “true”, al hilo de la historia que hace poco comentaba Rob Pike en Twitter:

$ >mytrue;chmod +x mytrue
$ ./mytrue
$ echo $?
0
$

Un programa cuya única finalidad es devolver siempre 0. Un ejecutable vacío. VACÍO. No puede haber algo más simple y que funcione, desde hace cuarenta años… pues bien, aquí entramos los mortales. Año 2018:

$ ls -l /usr/bin/true
-rwxr-xr-x 1 root wheel 17760 29 abr 2017 /usr/bin/true
$ file /usr/bin/true
/usr/bin/true: Mach-O 64-bit executable x86_64
$ otool -L /usr/bin/true
/usr/bin/true:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
$ /usr/bin/true
$ echo $?
0
$

Por supuesto, este es solo un ejemplo, y no de los graves, sobre cómo nos gusta complicarnos. Como dijo un profeta hace años, “Those who do not understand Unix are condemned to reinvent it, poorly.”. Me imagino el brainstorming inicial en un grupo que luego acaba sacando a la luz determinadas tecnologías:

– Tíos, vamos a hacer unas herramientas para manejar grandes conjuntos de datos que ahora están en ficheros planos.
– Pero, si ya tenemos awk, sed, grep…
– Funcionan demasiado bien y la gente no contrata mantenimiento. Escuchad, las llamaremos “bases de datos”.
– ¿Bases de datos? Irás de coña, ¿no?
– No, no, lo tengo todo atado: hacen que el fichero por debajo sólo se pueda procesar con nuestro programa metiendo varias capas de abstracción, pero realmente también están manejando archivos de texto, como hasta ahora…
– Jajajaja, ¡qué cabrón! ¡No hay huevos, Larry!
– Sujetadme la cerveza.

#define SELECT grep
#define ALTER sed
#define DELETE cut
#define DROP “>”
int make_program_look_bigger[1000000];

– Eres el puto amo, Larry. ¿Qué va a ser lo próximo, chicos? ¿Un lenguaje de programación que pueda convertir esta Sun 3500 en un 8086, con alguna excusa? ¿Qué se os ocurriría?
– Podemos meter un sleep en las líneas pares de nuestro código C y decimos que es independiente de plataforma.
– Jajajajajaja, no colará… Espera, ¿qué haces, James?
– Sujetadme la cerveza…

Evidentemente, situaciones como las anteriores se producen porque aunque sabemos que Unix es la religión verdadera, Kernighan, Ritchie y demás son sus dioses y algunos otros son sus profetas, aún así hay entre nosotros ateos (los llamaremos así para no ser crueles, aunque el nombre técnico es Human Malware), perfiles aparentemente técnicos que no han querido, sabido o podido ver la luz verdadera; los perfiles no técnicos están disculpados, porque Unix no ha iluminado sus vidas aún. Todos conocemos a algún ateo: son los que siempre buscan soluciones complejas a problemas triviales. Preguntadle a cualquier creyente cómo realizar una operación sobre, pongamos, un log, y con una línea de awk lo resolverá. Preguntadle a un ateo y definirá una estructura en base de datos, parseará el log con un programa en Java que tira de varias librerías bajadas de github para convertirlo en un XML, para luego insertarlo en la base de datos de antes, y montará un comité para determinar aspectos críticos, como elegir los tonos pastel para la interfaz gráfica o analizar la ubicación de los botones en una aplicación web que conecta vía API contra un servidor en cloud que a su vez aplica técnicas de machine learning sobre el puto log. ¿Y esto para qué? Para sacar las líneas que contienen la cadena “foo”. Ojo, en el tercer campo, ahí es nada.

Dentro de esa familia que estamos denominando amablemente “ateos” podemos diferenciar varios tipos característicos; son los siguientes:

Proceseitor. Lo arregla todo con comités, procesos, procedimientos, controles, controles de los controles, seguimientos periódicos y derivados. Realmente esta subespecie no es un ateo, sino que es peor: está intentando convertir gente a otra religión, ITIL, considerada como secta destructiva en muchos entornos. Debe considerarse a proceseitor como ALTAMENTE PELIGROSO y, en caso de encontrase con uno, se recomienda no acercarse a él y avisar inmediatamente a las autoridades; también podemos cambiarles alguna de sus obras de cabecera, como Coaching for IT Strategists: a fist fucking approach, por un ejemplar de The Magic Garden Explained o The Design of the Unix Operating System, lo que conseguirá una combustión espontánea en cuanto comiencen la lectura.

Visual developer. Programador que no sabe usar punteros y por tanto reniega de C; el scripting no es una alternativa porque “son ñapas”. Ante un problema (“especificación de requisitos” le llaman) analiza durante días la situación, hace comparativas entre varias tecnologías, monta unos entornos de desarrollo para realizar benchmarkings y, en seis meses, determina que va a desplegar diez capas de abstracción para empoderar al usuario en su relación con la tecnología y evitar así el tratamiento personalizado del dato. Ríete tú de ISO/OSI. Por supuesto el programa nunca funcionará, pero será por culpa de una especificación de requisitos incorrecta; en estos casos, invitar al ateo leer e interiorizar las Sagradas Escrituras, The C Programming Language y The Unix Programming Environment, puede ser útil, aunque no tanto como un disparo en la rodilla.

Segurata. Acaba de actualizar su LinkedIn para poner que es “Senior Security Architect, Red Team Leader and Chief Strategist Hacker” porque se ha leído un manual de metasploit mientras acaba el máster y ya va a tope, con su Kali Linux y sus menús; por supuesto, prefiere ese manual al Computer Networks o al Modern Operating Systems de Tanenbaum, porque Tanenbaum no es jaker y además usa troff, y eso no es cool… Al contrario que en el caso anterior, el disparo en la rodilla suele ser contraproducente, porque el ateo seguiría molestando y encima se pondría paranoico, activando en su vida el modo MOSSAD_CLAIMS_FOR_ME y siendo aún más pesado; es más efectivo modificar su /etc/hosts para apuntar www.sgae.es a www.fsb.ru, convencerlo para atacar a la SGAE por el tema del canon de los CD, que nunca pasa de moda, y dejar que la naturaleza siga su curso.

DevOps. Administra máquinas Ubuntu y se ha comprado una Raspberry, así que lo debemos considerar devops, porque cree que es un BOFH de verdad pero de vez en cuando se le escapan palabros como XML o agile. Acude regularmente a encuentros endogámicos donde algunos devops explican a otros devops cosas de devops, con dockers y tal, y cuenta la leyenda que una vez uno de ellos recompiló un núcleo Linux y no se lo contó a los demás. A Quarter Century of Unix History puede ser un buen detalle con estos ateos, para que sean conscientes de que muchas cosas no las han descubierto ellos, como también puede serlo un teclado sin intro, que nunca viene mal en estos casos. Y si además nos lo queremos pasar bien, tampoco está mal meterles el evil.sh en su .bash_profile.

El usuario. Aunque se considera a sí mismo un perfil técnico porque una vez consiguió salir de vi y se hizo youtuber e instagramer a la vez, realmente sus conocimientos no son muy amplios y debemos considerarlo un usuario. De vez en cuando dice frases como “Nosotros, los técnicos” o “Aquí todos venimos de la parte técnica”, que te suenan como cuando los gibraltareños dicen “Nozotro lo ingleze”. Ante este tipo particular de ateo no podemos recomendar ninguna lectura, sólo comprensión y paciencia, y también hablarles despacito para que no hagan swap; por otro lado, es fácil -y divertido, hay que decirlo- entretenerlos con algunos palabros sabiamente combinados para que no molesten, como “Es que en el red team estamos trabajando con una VPN a través de USB que envía paquetes TCP a dispositivos IoT”. Ale, a procesar, campeón.

¿Qué hacemos con esta gente? Guardad el AK-47, por favor, que os veo venir y no debemos legislar en caliente. La situación es compleja, principalmente porque los ateos no tienen depredadores naturales y, sobre todo en los últimos años, se han dedicado a reproducirse de manera exponencial; si os cruzáis con uno podéis regalarle condones para frenar su tendencia reproductiva, pero un consejo: jamás os hagáis los héroes, que esta gente ya no tiene nada que perder, como los administradores de Lotus Notes, y pueden incluso ponerse agresivos. Por ejemplo, a proceseitor le molestan especialmente cosas como que alguien se salte el paso 3, punto 3.8, apartado 3.8.A, párrafo 3.8.A.c, línea 3.8.A.c.XVI, del procedimiento “Gestión de recursos informáticos corporativos en plena sinergia con el negocio”, que dice que todo renice debe ser aprobado mediante un burofax con el sello oficial, firmado por el IT Manager y dirigido al Business Strategist de la organización. Se pone nervioso, le da vueltas la cabeza y empieza a hablar en ITIL.

En SAW no tenemos la solución mágica para hacer frente al colectivo de ateos que pululan en las organizaciones; algunos ingenuos piensan que se pueden recuperar con iniciativas sencillas, por ejemplo con campañas donde se use el hashtag #AdoptaUnAteo (#AdoptALuser) para enviarles indirectas simpáticas que traten de marcarles el buen camino, del tipo “biff también avisa de nuevos mensajes… desde hace 40 años y sin soniditos ridículos, imbécil #AdoptaUnAteo”, “Menos stackoverflow y más RTFM #AdoptaUnAteo” o “No abras ficheros CSV con Excel, hijo de puta! #AdoptaUnAteo”. Pero nosotros sabemos que esto no funcionará: ni devolverá al ateo al camino verdadero ni tampoco conseguiremos que convierta el agua en vino. Por eso miramos a la Historia: ¿qué se ha hecho de siempre con la gente que abandona la religión verdadera? Dos cosas: exorcismos y sacrificios humanos. Punto.

Si vamos a exorcizar ateos, por ejemplo poseídos por systemd, debemos ir con cuidado; desde SAW recomendamos que un exorcismo lo ejecuten sólo profesionales, porque si sale mal nos confiamos, creemos haberlo recuperado y un día nos encontramos al falso creyente diciendo en un foro que ifconfig está deprecated. Cuando se dé cuenta de que vamos a exorcizarlo, el ateo tratará de confundirnos para hacernos creer que ha visto la luz verdadera; puede decir cosas en idiomas desconocidos, fruto de la posesión, del tipo “Powered by Solaris…” o “alias nano=‘rm -f’”, pero no nos dejemos engañar: al acercarle el Essential System Administration, su solo contacto le producirá quemaduras, comenzará a girar la cabeza 180 grados, a escupir espuma por la boca y a soltar blasfemias como “Has visto lo que ha hecho la cerda de tu hija”, “Tómame, tómame” o “Yo soy el Maligno y capturo SIGKILL”. Cuidado. Aquí es cuando el exorcista, un profesional, arrojará varios SIGTERM contra el PID del ateo y pronunciará unas palabras sagradas para liberar su alma:

Te exorcizamos Espíritu Inmundo, quienquiera que seas, Java, XML o Word. En el nombre de Unix seas arrojado de las almas de la religión verdadera. No oses oscurecer a los elegidos a quienes pretendes hacerte semejante; te lo ordena Brian, te lo ordena Dennis, te lo ordena Rob, que se hicieron carne y habitaron entre nosotros. Que los descendientes de MULTICS se apiaden de ti, que la pureza de un buen script limpie tu alma, que uses goto cuando tengas que usarlo. Unix es la senda y yo soy su pastor, así está escrito en mi GECOS. Hosanna, K&R, limpiad esta alma.

En este momento el ateo debe mostrar signos de reconversión, por ejemplo desinstalando la máquina virtual de Java o recitando de memoria la página man de getpwent(3). Si no es así ya debemos rociarlo de SIGKILL o, directamente, ejecutar un shutdown, que es el último recurso del exorcista antes de pasar a mayores: si el exorcismo no funciona ya sólo nos queda el sacrificio humano. Por ejemplo, en SAW, desde el fallecimiento de Ritchie hace más de siete años, mensualmente sacrificamos en su honor a un ateo en la hoguera, a la antigua, con encanto; lo hemos puesto en el cron y así no falla, que si no luego se reencarnan en consultores ISO y la liamos. Pero no penséis que es un simple kill -9, no: antes de quemarlo lo abrimos en canal con un CD donde están las fuentes de System V, nos comemos sus vísceras, bebemos su sangre y rezamos dos scriptnuestros para que aquellos dioses que se hicieron carne en los 70 vuelvan a poner cordura en este mundo 4.0 que nos rodea. Todo esto en honor a los creadores de maravillas como Unix, C o awk y, por qué no, también porque nos gusta.

DISCLAIMER: Todo este post está basado en hechos ficticios y no refleja en ningún momento opiniones personales del autor, efectivamente y no. Cualquier parecido con la realidad es pura coincidencia.