miércoles, mayo 27, 2020

Raspberry Pi, Machine Learning & Teachable Machine: Cómo detectar si lleva puesta la mascarilla con Visión Artificial

En estos tiempos complicados que nos ha tocado vivir es cuando más que nunca tenemos que utilizar todos los recursos que tengamos a nuestro alcance para resolver los problemas que más nos afectan y sobre todo, ayudar a los demás. El movimiento Maker (nuestro compañero Sergio Sancho Azcoitia del equipo de Ideas Locas en CDCO ha sido uno de ellos) se movilizó en su día para crear las viseras que utiliza el personal sanitario para protegerse, justo cuando más lo necesitaba por falta de stock

Figura 1: Raspberry Pi, Machine Learning & Teachable Machine:
Cómo detectar si lleva puesta la mascarilla con Visión Artificia
l

La tecnología está cada vez al alcance de todos y ese es justo el objetivo de este artículo, poner a disposición de todos, las herramientas más avanzadas al menor coste posible para poder contribuir a encontrar soluciones que nos ayuden a superar esta pandemia. Por cierto, si quieres iniciarte en el mundo Maker, el libro de nuestro buen amigo y compañero Álvaro Núñez-Romero, es un excelente punto de partida.

Figura 2: Arduino para Hackers: PoCs & Hacks Just for fun
en 0xWord de Álvaro Núñez-Romero

Y junto a este libro, el artículo de nuestro compañero Sergio Sancho titulado "Raspberry Pi Zero para "Makers": 6 PoCs & Hacks Just for Fun", tienes seis proyectos para realizar con tu Raspberry Pi Zero que te van a meter de lleno en el mundo de los makers.

Presentación de la PoC

Gracias a herramientas como nuestra querida Teachable Machine, es posible exportar modelos entrenados a dispositivos menos potentes, como por ejemplo una Raspberry Pi B+. De esta forma, el pesado trabajo del entrenamiento ya está realizado y, por lo tanto, lo único que debemos tener en cuenta es entrenar un modelo lo suficientemente ligero para que la Raspberry Pi pueda procesarlo con fluidez. No es la primera vez que hablamos de Teachable Machine, y ya explicamos cómo utilizarlo para “detectar” posibles casos de Covid-19 partiendo de diferentes radiografías

Figura 3: Componentes utilizados para esta PoC

Esta vez, vamos a exportar todo ese conocimiento a la Raspberry Pi para crear un simple detector de mascarillas. Este es el listado de materiales y el precio de cada uno seleccionados en Amazon. Debes tener en cuenta que la crisis actual del Covid-19 también ha afectado a la fabricación de componentes electrónicos y, por lo tanto, se ha notado un incremento en coste de estos. 

 
 
Cámara Raspberry Pi: 13,99€
 

Total aproximado: 83,9 €

Eso sí, si te buscas las piezas con tiempo en varias tiendas, y compras una carcasa más barata - sin ventilador de refrigeración, por ejemplo, puedes conseguir que el proyecto completo salta por unos 70 €. Aparte de estos componentes, hemos utilizado también un par de leds con sus correspondientes resistencias y un breadboard para las pruebas.

Preparando la Raspberry Pi

Como sistema operativo base de la Raspberry Pi para esta PoC hemos utilizado Raspbian. En este enlace tienes todos los pasos para su instalación (para el resto de la PoC, hemos utilizado este enlace para recopilar todos los pasos y las herramientas necesarias). 

Figura 4: Aspecto final de nuestra Raspberry Pi montada con la cámara

Una vez tenemos acceso a la Raspberry Pi (es recomendable conectarla a un monitor HDMI en vez de conectar en remoto, por ejemplo por SSH), instalaremos los siguientes componentes (primero, como suele ser habitual en entornos GNU/Linux, actualizar la Raspberry Pi):
sudo apt update
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y python3-pip
pip3 install --upgrade setuptools
A continuación, una lista de otros paquetes que necesitaremos instalar los cuales podemos realizarlo con la siguiente acción:
sudo apt-get install -y libatlas-base-dev libhdf5-dev libc-ares-dev libeigen3-dev
                        build-essential libsdl-ttf2.0-0 python-pygame festival
En este punto, ya deberíamos de tener la cámara active, Podemos probarlo con el siguiente comando:
raspistill -t 0
Tensorflow y rpi-vision

Como vamos a utilizar la Raspberry Pi exclusivamente para este proyecto, no vamos a crear un entorno virtual para su ejecución, pero si la compartes con otro tipo de aplicaciones no estaría mal crear uno.  El servicio que vamos a crear es un ejemplo claro de cómo utilizar técnicas de Machine Learning a Ciberseguridad, en este caso para detectar medidas de seguridad personal, pero tienes muchos más ejemplos en nuestro libro.

Figura 5: Machine Learning aplicado a Ciberseguridad

Dicho esto, el siguiente paso en nuestra PoC será instalar algunos componentes fundamentales como Pillow (gestión de imágenes), numpy (librería matemática) y pygame (librería para la creación de videojuegos que nos permitirá gestionar más fácilmente la cámara):
pip3 install Pillow numpy pygame
El siguiente paso será descargar las utilidades de rpi-vision. Podemos hacerlo desde varios repositorios, nosotros hemos utilizado el siguiente:
git clone --depth 1 https://github.com/tutRPi/rpi-vision
De esta forma ya tenemos las utilidades principales preparadas (luego volveremos a ellas para realizar algunas modificaciones). La Raspberry Pi utilizará Tensorflow 2.0 para ejecutar el modelo que le vamos a introducir. Para asegurarnos que funciona bien (aunque con versiones superiores también funciona), hemos descargado e instalado la versión 2.0.0 de Tensorflow. Estos son los pasos que realizar:

1) Descargamos y ejecutamos el siguiente script:
 

2) Al ejecutarlo descargaremos la versión 2.0.0 de Tensorflow para la Raspberry Pi. Una vez descargados tenemos que proceder a su instalación de la siguiente manera:
pip3 install tensorflow-2.0.0-cp37-cp37m-linux_armv7l.whl
pip3 install -e .
3) Finalmente haremos un reboot y ya tendremos todas las herramientas preparadas.

Creación del modelo con Teachable Machine

Antes de continuar con la Raspberry Pi, el siguiente paso será entrenar nuestro modelo. Para ello utilizaremos, como hemos comentado antes, Teachable Machine. El entrenamiento básico que hemos realizado consta solamente de dos de muestras, con y sin mascarilla. Para ello hemos generado 467 imágenes sin mascarilla en diferentes posiciones (giros, barbilla arriba, abajo, perfil, etcétera) y, por otro lado, 450 muestras con la mascarilla puesta (con las mismas posiciones variadas).

Figura 6: Captura de las muestras con Teachable Machine. 

En principio, este entrenamiento ha sido suficiente pero claro, cuantas más muestras (como, por ejemplo, con otras mascarillas de colores, otras posiciones, etcétera) mejores resultados obtendremos, pero a su vez, perderemos agilidad en la ejecución en la Rasbperry Pi.

Figura 7: Exportación del modelo Tensorflow desde Teachable Machine

Una vez realizado el entrenamiento, el siguiente paso será exportar el modelo creado. Para ello, utilizaremos el botón “Export Model”, seleccionamos la pestaña “Tensorflow” y finalmente la opción “Saved Model”. Al pulsar en el botón “Download my model”, obtendremos el fichero con la extensión .h5 que será el que utilizaremos en nuestra Raspberry Pi.

Preparación del código principal y activación de los leds

El siguiente paso y final, será importar dicho fichero .h5 (aunque lo empaquetará como un fichero .zip) con el modelo entrenado en la Raspberry Pi. Esto es algo trivial ya que tenemos en rpi-vision un fichero Python que realizará todo el proceso. La única modificación que hemos realizado al fichero pitft_teachablemachine.py del repositorio (dentro de la carpeta tests), es incluir la activación de los leds

Figura 8: Libro de Python para Pentesters

Por supuesto, esto es una tarea sencilla, pero simboliza lo fácil que sería activar cualquier otro tipo de dispositivo como por ejemplo un altavoz, un relé, un panel led para mostrar mensajes, etcétera. Antes de nada, vamos a explicar cómo activar los dos leds, algo muy sencillo. Primero añadimos el import:
import RPi.GPIO as gpio
Utilizaremos los puertos GPIO 11 y 13 de la Raspberry Pi y la activación de los leds los haríamos dentro del bucle for que se encuentra en la línea 95, de la siguiente manera:
for p in prediction:
            label, name, conf = p
            if conf > CONFIDENCE_THRESHOLD:
                print("Detected", name)
	
			gpio.setup(11, gpio.OUT)
			gpio.setup(13, gpio.OUT)

			if name==’Sin_Mascarilla’:
				gpio.output(11, True)
				gpio.output(13, False)
			elif name==’Con_Mascarilla’:
				gpio.output(13, True)
				gpio.output(11, False)
                
persistant_obj = False  
                last_seen.append(name)
                last_seen.pop(0)
			…
De esta forma, cada vez que se detecte la etiqueta “Con_Mascarilla” o “Sin_Mascarilla” activará un led y apagará el otro. Y ya está. Ahora ya sólo queda probar todo el sistema y ver si funciona en la Raspberry Pi.

Ejecución de la PoC en la Raspberry Pi

El primer paso será copiar el fichero con el model (.h5) a la Raspberry Pi (por ejemplo, con scp) y lo copiaremos en la carpeta rpi-vision. Finalmente, ejecutaremos como root el siguiente comando:
sudo python3 tests/pitft_teachablemachine.py ../converted_mimodel.zip
Una vez ejecutado (tardará un poco en levantarse) podemos empezar a hacer las pruebas, simplemente al colocarnos delante de la cámara, debería de detectar y mostrar en pantalla la etiqueta “Con_Mascarilla” o “Sin_Mascarilla”:

Figura 9: Ejecución y salida de la PoC en la Raspberry Pi

Además de la salida por pantalla, también veremos como se activan los leds. El de color verde cuando llevemos la mascarilla y el rojo cuando no. Por supuesto, esta PoC no es perfecta, pero cumple decentemente con su cometido.

Figura 10: PoC de reconocer si lleva la mascarilla en
Raspberry Pi usando Machine Learning & Teachable Machine

De hecho, podríamos ampliar las muestras de entrenamiento en el modelo y de esa forma obtener una salida mucho más precisa, eso sí, deberíamos de utilizar otro modelo de Raspberry Pi con más memoria, pero sobre todo con más CPU (Raspberry Pi 4 por ejemplo).  En el vídeo de la Figura 10 mostramos cómo es la ejecución real de proceso de detección.

Notas finales

Al principio, nuestra idea utilizar Pose en esta PoC, ya que nuestra primera aproximación era crear un detector de caídas (por ejemplo, para personas mayores). Pero nos encontramos con el problema de la limitación de procesamiento de la Raspberry Pi, lo que hacía que se ejecutara bastante lento. Pose registra más información que la captura de imágenes y esto genera un modelo más pesado que el anterior. 

Además, registrar los puntos de las articulaciones es un proceso más complejo de procesar. De todas formas, aquí tenemos todo un campo de exploración, siempre teniendo en cuenta las limitaciones de la Raspberry Pi. Por ejemplo, podríamos conectar otro tipo de sensores para dar más potencia a la detección como un altavoz y un micrófono, detección de guantes, etcétera.

El objetivo final de esta PoC es sencillamente demostrar que es posible integrar tecnología muy potente, como el Machine Learning, en dispositivos IoT los cuales suelen tener una tecnología más modesta. De esta manera, aumentamos las posibilidades del IoT para resolver problemas que antes parecían imposibles de solucionar. Y como decíamos al principio, si además lo utilizamos para un bien social (ya sean monitorizar a nuestros mayores o simplemente detectar si alguien lleva o no mascarilla), pues mucho mejor.

Happy Hacking Hackers!!!

Autores:

Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.


 Figura 11: Contactar con Fran Ramírez en MyPublicInbox

Enrique Blanco, (@eblanco_h) es Investigador en el departamento de Ideas Locas CDCO de Telefónica. Puedes contactar con Enrique Blanco en su buzón público en MyPublicInbox.

Figura 12: Contactar con Enrique Blanco

martes, mayo 26, 2020

Entrevista a la Doctora Marta Beltrán, coordinadora del Grado en Ingeniería de la Ciberseguridad de la URJC

Hoy os traigo una entrevista con Marta Beltrán, que fue mi profesora en la URJC cuando después de haber hecho la Ingeniería Técnica de Informática de Sistemas en la EUI-UPM, me apunté a hacer la Ingeniería Informática y Máster y el Doctorado en la URJC. Durante los años en que estuve haciendo el doctorado, Marta Beltrán fue una de mis tutoras, y me guió en todo el proceso - que ya os conté cómo fue en un artículo largo y detallado -.

Figura 1: Entrevista a la Doctora Marta Beltrán

Con el tiempo, Marta Beltrán ha impulsado el primer Grado de Ingeniería en Ciberseguridad en España, construido dentro de la URJC, mientras yo dedicaba mis días a ElevenPaths, y tuve la suerte de que ella fue la persona que defendió mi candidatura a Doctor Honoris Causa, además de ser la que dio el Laudatio durante el acto de investidura.

Figura 2: Con Marta Beltrán el día de mi investidura como Doctor Honoris Causa

Como os podéis imaginar es imposible para mí, después de una relación de cooperación y trabajo de tantos años hablar de Marta Beltrán sin contar sus virtudes. Una de las profesoras titulares más jóvenes en la universidad, brillante, trabajadora. alegre, detallista - como tutora y correctora de un paper siempre es como un artista buscando mejoras - y siempre con ganas de empezar un nuevo proyecto.

Figura 3: Contactar con Marta Beltrán en MyPublicInbox

Como muchos me habéis preguntado por el Grado de Ingeniería en Ciberseguridad, hoy he preferido preguntarle a ella y que sea la propia coordinadora de él la que explique los detalles de este proyecto tan bonito y transformacional en el sistema educativo universitario. Espero que os guste la entrevista.

Saludos Malignos!

Entrevista a la Doctora Marta Beltrán

1.- ¿Cómo describirías el Grado de Ingeniería en Ciberseguridad?

El Grado de Ingeniería en Ciberseguridad se trata de un título de 4 años, una ingeniería tecnológica similar al Grado de Ingeniería Informática o al Grado de Ingeniería del Software más tradicionales pero con la ciberseguridad como hilo conductor desde el primer cuatrimestre de primero, de manera que no se entienda la seguridad como un añadido, algo que se aborda al final, sino como algo que se debe incorporar en la tecnología desde el diseño y que por lo tanto se debe estudiar y comprender desde el primer momento. 

2.- ¿En qué se diferencia de un Grado en Ingeniería Informática?

Más o menos la mitad de las asignaturas son específicas de ciberseguridad, se introduce la Informática (software, hardware, redes, etc.) siempre en paralelo a la Ciberseguridad. Tenemos un grupo de asignaturas con un perfil más defensivo (protección y detección), otras con un perfil más ofensivo (técnicas de hacking, pen-testing) y otras con un perfil de gestión (estas son las menos, pero tenemos en el plan de estudios análisis de riesgos, auditoría).

3.- ¿Podrías describirnos algunos de los Trabajos de Fin de Grado que van a hacer los alumnos?

Todavía no, nuestros alumnos de la primera promoción no han llegado a cuarto curso, así que todavía no tenemos temas propuestos para ellos, nos falta un curso entero para llegar a ese momento. Pero sí te puedo contar cómo trabajaremos.

Los alumnos acordarán un tema de su interés con un profesor de la Escuela, que será su director. Este tema tiene que gustarles de verdad, ya que el TFG son 15 créditos y se van a dedicar a él muchas horas. Por eso dejaremos que los alumnos sean proactivos y que puedan proponer temas " a su medida" dentro de varias áreas temáticas. Si además el alumno tiene un mentor dentro de nuestro programa de mentoring o un tutor de prácticas en empresa que quiera hacer labores de co-dirección, podremos plantear temas asociados con la empresa y con la labor que el alumno realiza o realizará en ella.

4.- Con esos mimbres, ¿qué tipo de alumno se suele apuntar a ese grado?

Personas apasionadas por la tecnología, a las que les encanta cacharrear, saber cómo funcionan las cosas, investigar, romper y volver a construir, los problemas abiertos, las escenarios complejos. Y sobre todo, a las que no les da miedo seguir formándose toda su vida, ya que escogen una disciplina exigente y que evoluciona muy rápido. Suele ser gente a la que le gusta mucho aprender.

5.- ¿Cómo fue el proceso de hacer a un “hacker” Doctor Honoris Causa?

Los departamentos y escuelas de la universidad pueden proponer a personas con las que han tenido o tienen una relación estrecha que por su trayectoria creen que se merecen esta distinción. En tu caso, nuestro departamento tenía clara la propuesta y la universidad la apoyó sin fisuras, ya que la persona lo merecía 🙂

 
Y además, tenía todo el sentido para nosotros, dada la apuesta que hace años se está haciendo en la URJC por la Ciberseguridad a todos los niveles. De alguna forma, era cerrar un círculo que comenzó hace mucho tiempo...

6.- No has parado de investigar desde que te conozco, ¿en qué andas ahora?

Ya me conoces, en mil cosas a la vez... Sigo trabajando en sistemas distribuidos, así que en temas de seguridad en Cloud, Fog, Edge e IoT. Estoy en varios proyectos muy interesantes, tanto de I+D pura como de innovación con empresas. Sigo avanzando en temas como la gestión de identidades y accesos, que es una línea que llevo desarrollando varios años ya. Y estoy empezando a tener resultados interesantes en temas de seguridad adaptativa (risk-based), remote attestation y detección de anomalías. En los próximos meses se irán publicados los artículos y patentes de todo lo último y te cuento más, no quiero hacer mucho spoiler.

7.- ¿Qué le recomendarías leer a un alumno que va a entrar en primero de ese Grado de Ingeniería en Ciberseguridad para ir preparado?

Un poco de todo. La verdad es que el primer cuatrimestre de primero tenemos una asignatura que se llama Introducción a la Ciberseguridad que les da un panorama muy completo de lo que van a estudiar el resto del grado y que homogeneiza el nivel con el que entran. Intentamos no dar nada por hecho.

Pero si quieren avanzar un poco por su cuenta, nos viene genial que sepan algo de programación cuando entran y que hayan leído algo básico de ciber o hecho nuestro MOCC de MiriadaX.
 
Cultura general, vocabulario y conceptos básicos que les ayudan a ubicarse un poco más rápido. También está bien que hayan leído blogs como el tuyo o de personas reconocidas en el sector que les puedan dar diferentes visiones de la profesión y que les vayan familiarizando con tecnología, problemas típicos, contexto.

Y por último les recomendaría que sigan tus consejos en cuanto a libros de 0xWord para aprender hacking y se lean todos los que puedan, que les va a venir genial saber el máximo posible. 

8.- ¿Cómo llegaste tú al mundo de la ciberseguriad?

Por casualidad. Como decía antes, siempre he trabajado en sistemas distribuidos. En mi tesis trabajaba con clusters heterogéneos, luego me pasé arquitecturas Grid y luego a Cloud. Cuando conectas cientos o miles de nodos y los pones a trabajar todos juntos, siempre surgen problemas de seguridad. Y así fue como poco a poco me fue picando el gusanillo intentando apagar fuegos y resolver problemas que iban surgiendo. 

La gente que me he ido cruzando en el camino y los proyectos en los que he tenido la suerte de involucrarme también me han influido mucho y terminaron por convencerme de dedicarme a ello al 100%. Es un campo que me encanta, nunca te aburres.

9.- En ese grado hacen hasta una CON de hacking todos los años,¿no? Cuéntanos en qué consiste.

Sí, llevamos ya dos años organizando las HackOn. Los alumnos del grado dedican su tiempo y su esfuerzo a organizar una CON de un día en la URJC con mi ayuda. Son abiertas, puede venir quien quiera siempre y cuando quede plaza. Se invita a profesionales de reconocido prestigio en el sector y con diferentes perfiles a dar una charla o a organizar un taller. Hay que darles las gracias porque la CON se organiza sin presupuesto, por lo que vienen generosamente, nos regalan su tiempo. Y de toda la organización se encargan los alumnos del grado: programa, web, publicidad, registro, logísitca.
 
La verdad es que está siendo toda una experiencia para ellos, no sólo aprenden de ciber con la propia CON, sino también de todas muchas cosas como voluntarios de organización. Un evento que acoge a varios cientos de personas no es fácil de gestionar y ellos están funcionando muy bien. Esperamos que en el 2021 podamos celebrar la tercera edición, ya veremos cómo nos organizamos, pero estáis invitados.

10.- ¿No tiene la URJC mala fama, le compensa a alguien recién salido del instituto estudiar el Grado en Ingeniería de la Ciberseguridad allí?

Es una pregunta que me hacen mucho ¿me conviene estudiar allí, no me encontraré con que el título luego no está bien valorado por las empresas? En nuestra escuela, la ETSII, tenemos una empleabilidad muy alta, nuestros alumnos están muy demandados por las empresas y además su formación es muy valorada. Esto es un hecho objetivo que se comprueba año tras año en todos los informes independientes que se van publicando.

Otro aspecto importante es la apuesta por la Ciberseguridad que se ha hecho desde la universidad con este título en concreto, que en España es pionero y que está funcionando muy bien. Se puede comprobar quiénes somos los profesores que lo hemos impulsado y valorar nuestra trayectoria como docentes, investigadores, divulgadores, innovadores, etcétera.
 
Pero además no sólo tenemos el grado, también el Máster, el MOOC, las HackOn, aquí hay todo un ecosistema de personas colaborando y esto permite organizar muchas actividades en nuestros campus, no sólo tenemos las clases. Esto nos ha permitido también lanzar un programa de mentoring específico para nuestros alumnos del grado: todos tienen asignado un mentor en una empresa del sector en los dos últimos cursos de su carrera.

Y si todo esto no fuera suficiente, lo mejor es hablar con nuestros alumnos directamente para que les cuenten su experiencia de primera mano. ¡Creo que ellos son nuestros mejores "vendedores"!

lunes, mayo 25, 2020

Password Spraying: Cómo funcionan estos ataques a tu identidad digital

Hace un año saltó a la fama este tipo de técnica llamada Password Spraying. Desconocida para el gran público, pero utilizada por muchos para atacar organizaciones, para atacar servicios web, Active Directory, y otros muchos tipos de servicios que una organización puede tener. Además, con la heterogeneidad de los servicios y la distribución del perímetro de una organización en Internet, se puede hacer complejo para una empresa controlar ciertas cosas.

Figura 1: Password Spraying: Cómo funcionan estos ataques a tu identidad digital

Tenemos que entender que el perímetro ya no es un concepto ligado a nuestra “casa”. Nuestro perímetro, así como la Identidad Digital de nuestros empleados, se puede perder en diferentes “nubes” a lo largo de  todo Internet. Nosotros, últimamente estamos trabajando con ATT&CK del MITRE para algunas cosas que, espero, pronto podamos contaros. Sea como sea, encontramos la técnica T1110 que está asociada a la táctica “Credential Access” y vemos que está dentro de la categoría de fuerza bruta, aunque hay matices. Password Spraying es una técnica derivada de la fuerza bruta o un caso relativo a ésta.

¿Qué es el Password Spraying?

Seguramente lo que es el término lo has visto en alguna noticia en Internet, pero quizá no has parado a explorarlo. La idea es muy sencilla: se dispone de un gran número de usuarios y de una sola contraseña. Con estos usuarios se va probando todos con la contraseña que se tiene. Esto, que tiene un nombre tan molón de Password Spraying es lo que Chema Alonso contaba en el año 2012 en el artículo de "Tus passwords son Suprayectivas".

Figura 2: Artículo del 2012 de "Tus passwords son suprayectivas"

Para realizar el ataque, en lugar de una contraseña, en algunas ocasiones, también se puede tener un pequeño grupo de contraseñas. Como se puede entender por el contexto es cómo lanzar un “spray” con una contraseña y ver qué se puede obtener entre la lista de usuarios. Esta técnica complementa la teoría de las contraseñas más utilizadas cada año, es decir, basándose en la teoría de contraseñas que más se repiten, la técnica busca encontrar ese servicio con ese usuario que utiliza dicha contraseña.

Figura 3: Tactic T1110 "Credential Access"

La diferencia con la fuerza bruta es obvia: fuerza bruta intenta generar un gran número de credencial en el menor número de cuentas o, incluso, en una sola cuenta. En este cazo la “pulverización” de una contraseña consiste en lo contrario, hacer uso de un gran número de usuarios en diferentes servicios de la organización con una sola contraseña o un pequeño grupo.

Algún caso real de uso

Nosotros utilizamos este tipo de ataques en el Hacking de Web Technologies desde hace muchos años, como habéis visto en el artículo de "Tus passwords son suprayectivas", y en el servicio de Pentesting Persistente Faast de ElevenPaths lo probamos. Al final, basta con sacar una lista de usuarios - que muchas veces son los mismos que las direcciones de correo electrónico de la empresa - y probar las contraseñas más comunes posibles con la política de contraseñas de la organización.

Figura 4: Libro de Hacking Web Technologies 2ª Edición
escrito por Chema Alonso, Amador Aparicio, Pablo González,
Enrique Rando, Ricardo Martín y Ioseba Palop en 0xWord
.

Pero además hemos visto en varios incidentes de seguridad como  ha aparecido la técnica de Password Spraying. A modo de resumen, vamos a ver algunas. En el mes de febrero de 2018, investigadores del FBI comentan que hubo un gran aumento en el uso de la “pulverización” de contraseñas. El departamento de Justicia acusó a 9 personas por delitos relacionados con la intrusión informática. Supuestamente hicieron muchos ataques de este tipo. Viendo los detalles del ataque y la noticia da para pensar del verdadero riesgo del uso de esta técnica. Otro incidente de este tipo fue uno que abarcó a Citrix. El ataque fue contra la propia empresa.

Figura 5: APTs utilizando Password Spraying

Hoy en día, con todo lo que está ocurriendo con la pandemia del COVID-19 ha surgido una serie de ataques. Algunos hospitales están siendo atacadas con esta técnica. Además, con todo el incremento de recursos remotos que han surgido con la pandemia, el uso de esta técnica ha ido aumentando, por razones obvias. Mayor exposición, mayor riesgo. Así se informa en esta noticia de la Figura 5.

Figura 6: En los detalles se habla de Password Spraying

Si vemos el detalle técnico, podemos ver cómo se habla de la técnica Password Spraying y de cómo se está utilizando y, en algunos casos, logrando acceso a los datos y a los sistemas.

Ejemplos técnicos de uso de la técnica T1110 ATT&CK MITRE

Ahora vamos a ver algunas herramientas que pueden ser utilizadas en la parte de Password Spraying. Realmente, la mayoría son herramientas de fuerza bruta en la que se puede hacer uso de un número N de usuarios y un número Y de passwords, donde dejamos Y en 1 o en un valor muy pequeño. Por supuesto, si tienes un entornos Windows, debes aprender a fortalecer bien la política de contraseñas para hacer que sean difíciles localizar "passwords fáciles" y para que el número de logins esté limitado. Es decir, aplicar Máxima Seguridad en Windows a tu política de credenciales.

Figura 7: Máxima Seguridad en Windows Gold Edition

La primera de las herramientas que vamos a ver hoy es RDPassSpray. Es una herramienta escrita en Python 3, por lo que es perfecta si eres de los amantes del Hacking con Python, y que puede ser descargada desde su Github.

Figura 8: RDPassSpray

Otra herramienta que se puede utilizar, en este caso para el protocolo SMB, entre otros, es la de crackmapexec. Ya la hemos utilizado en este blog recientemente, y le dedicamos dos partes. Aquí, lo curioso es que se puede hacer uso del parámetro -u para meter una lista de usuarios y fijar un password.

Figura 9: CrackMapExec

En el mundo del Pentesting con Powershell también podemos hacer uso de un script para llevar a cabo Password Spraying. En este Github podemos encontrar la función Invoke-DomainPasswordSpraying.  A la función podemos pasarle diferentes parámetros como son los siguientes: 

- Fijar la contraseña. 
 
- Un listado de usuarios. 
 
Figura 10: Invoke-DomainPasswordSpraying

- Un listado de contraseñas. Hay que recordar que deben ser muy pocos, ya que si no, no hablamos de “pulverización” de contraseñas.
 
 
- Un dominio de Windows sobre el que actuar.

La máquina debe estar en dominio, ya que hace uso de funciones LDAP para conectar con el dominio y sacar información. La ejecución sería cómo la que se puede ver en la imagen anterior. 

Figura 11: Libro de Pentesting con PowerShell 2ª Edición

Una de las herramientas clásicas que permite esto es Hydra. Esta herramienta puede descargarse desde su Github, aunque viene por defecto en la distribución de Kali Linux.

Figura 12: Módulo de SMB Login en Metasploit

Por último, en este repaso de opciones para hacer Password Spraying en un ejercicio de Red Team o en un Ethical Hacking, llegamos a Metasploit. A través del módulo SMB Login se puede hacer uso de esta técnica.

Mitigaciones

La idea es no utilizar mismas credenciales en diferentes servicios. Esto siempre se comenta, pero la respuesta de los usuarios es: “tengo muchos servicios”. El uso de un gestor de credenciales o de un keychain es una opción más que interesante, ya que se encargan de generar credenciales de forma automática y no las tenemos que pensar. Además, siempre serán credenciales más seguras. Por supuesto, el uso el uso de un 2FA como Latch o Latch Cloud TOTP siempre que se pueda es fundamental.


Figura 13: Identidad Digital por Chema Alonso
 
En la conferencia Chema Alonso da una charla sobre Identidad Digital en la que se centra en esos detalles. El hacer uso de 2FA como Latch nos pueden alertar de un acceso a nuestra credencial y evitar el acceso a nuestra información.  Además, hay software que nos permite obtener información tan interesante desde el punto de vista de administrador como la siguiente, por ejemplo en un Active Directory en tu Windows Server 2016.

- Cuentas de administrador inactivas. 
 
- Cuentas con contraseñas expiradas. 
 
- Cuentas con la misma credencial. 
 
- Cuentas sin contraseña. 
 
- Cuentas que van a expirar.

Son detalles importantes y que debemos tener en cuenta para protegernos de algo tan “sencillo” como un Password Spraying.

Saludos,

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Figura 14: Contactar con Pablo González

domingo, mayo 24, 2020

Cómo un "skater" salvó el Security Innovation Day de ElevenPaths en 2013 jugándose el físico

Un viaje está lleno de etapas. Y llegar al destino no es tan importante como hacer el camino. Y vivir los buenos y malos momentos. Hoy os voy a contar una Microhistoria que no sé si es de la historia de la informática como esas que cuentan Fran Ramírez y Rafael Troncoso en la joya que es ese libro donde cada capítulo es una pieza magnífica, pero sí que es de la historia de ElevenPaths y mía personal. Y os la voy a narrar.

Figura 1: Cómo un "skater" salvó el Security Innovation Day
de ElevenPaths en 2013 jugándose el físico



Para los que no habéis seguido mucho este blog, u os habéis saltado alguno de los capítulos, dejadme que os haga un rápido resumen. En 2010 participé como ponente en el evento Top 100 de Telefónica, organizado para los cien primeros ejecutivos de la compañía. En 2011 hicimos Informática 64 y Telefónica juntos la Gira Up To Secure y el 1 de Febrero de 2012 comencé a trabar como externo con Telefónica para lanzar el programa Talentum. A finales de 2012 comenzamos a tener conversaciones sobre la adquisición de Informática 64 por parte de Telefónica y en Abril de 2013 comenzamos la andadura como Telefónia Digital Identity & Privacy hasta que en Junio de 2013 tuvimos por fin la marca de ElevenPaths.  De eso ya os hablé en ese artículo de "No soy Galáctico, soy de Móstoles"

Así que sitúate en esos momentos. En el momento en que llevamos tres meses dentro de Telefónica y estamos comenzando a hacer nuestras primeras patentes y productos. Habíamos formado el equipo de salida, fichando a gente de diferentes lugares, y necesitábamos que hubiera un rumbo por el que avanzar a buen ritmo, y con una dirección clara, así que,  con el objetivo de tener Deadline, Delivery y Comunicación,  pusimos un día en el calendario: El Primer Innovation Security Day.

Figura 2: Post de anuncio del primer Innovation Security Day

Este evento era el que había marcado yo en el calendario para presentar los nuevos productos en los que estábamos trabajando. Uno de ellos era MetaShield Protector, que venía de hace mucho tiempo, otro era Faast, nuestra servicio de Pentesting Persistente que era una evolución de nuestra querida FOCA pero con un enfoque Cloud y Persistente, y el último era un nuevo producto de innovación para el que habíamos estado rellenando y depositando las patentes. Nuestro querido Codename: Path 2 que acabaría llamándose Latch.

Por el camino se quedaron el Codename:Path 1, Codename: Path 3. No sería hasta el año siguiente cuando comenzaríamos a trabajar con el siguiente producto de innovación que sacaríamos a producto, nuestro querido Path5 que a día de hoy sigue creciendo. Pero eso es otra historia. Lo cierto es que estábamos trabajando a todo ritmo un grupo muy pequeño de personas para desarrollar Latch, Faast y MetaShield, al tiempo que gestionábamos la empresa, hacíamos el trabajo de comunicación, marca, patentes, innovación, y M&A, ya que estábamos intentando cerrar la operación de incorporar SmartAccess dentro de ElevenPaths. Y éramos un equipo muy reducido en aquel entonces.

No hace falta que os día que fueron momentos intensos. Muy intensos y divertidos. Hacer producto, innovar, desechar proyectos que se quedaban en el tintero, negociar para adquirir otra empresa, fichar gente para el equipo, gestionar comunicación, etcétera. No había un segundo que perder, y el ritmo de combate era muy alto. Como siempre ha sido en ElevenPaths.

Y todo, todo, todo, se ponía de largo el  mismo día. El 12 de Diciembre de 2013. El último día que podíamos de ese año. No podíamos hacerlo antes porque no llegábamos a tener listos los productos para enseñar, pero si lo hacíamos más tarde, sería ya en el 2014, y habría que esperar otra oportunidad ya después del Mobile World Congress. Había que forzar la máquina y tenerlo listo para ese día. Y corrimos mucho, mucho. 

Recuerdo carreras de un edificio a otro para llegar a tiempo a cosas distintas que eran importantes en aquellos momentos. Llamarnos a las  mil de la noche para discutir un documento de patente, para corregir un test que no funcionaba como debía, para cambiar el diseño del candado en una de las pantallas de las apps, para que el el consumo de Faast no se disparara o el log de la base de datos no se llenara, para aplicar los parches, para actualizar los certificados en el Certificate Pinning que pusimos en las apps para evitar los ataques de man in the middle. Para ver el diseño del escenario, las invitaciones, el catering de ese día, decidir las demos y los mensajes.

Hacer un Security Innovation Day de ElevenPaths lo sentíamos como hacer una superproducción musical en Broadway. No solo por la parte que ve el público, sino por la cantidad de cosas de tecnología que hay que hacer antes para que la demo - que yo la tenía que hacer en real - funcionase perfectamente y no hubiera problemas de ningún tipo.

Llega el día del evento

Pues bien, vayamos ahora justo a ese día. Al día del evento. Al día en el que el Innovation Security Day va a tener lugar. Al jueves, 12 de Diciembre de 2013. Yo había dejado publicado el primer post de la serie "Cómo proteger las identidades digitales" donde iba a presentar Lath en sociedad, y era en la segunda parte del artículo, la que salía el día siguiente al evento, donde yo ya hablaba de este servicio.

Y la imagen de la situación era tal que ésta.

Serían las 14:00 de la tarde, había comido un sandwich y estaba sentado escribiendo la segunda parte del post que os he dicho antes. Estaba acabándolo y hablando con Palako, que iba a estar también en el escenario conmigo. Estábamos exhaustos, pero con una excitación interior por el gran momento. Lo hacíamos por la tarde para que nos siguieran desde latinoamérica, y habíamos probado las demos en mi equipo. Hicimos una última prueba, terminamos las dispositivas y nos fuimos hacia el auditorio.

El auditorio de Telefónica en Distrito C ardía en bullicio con todo el mundo preparando las zonas de demos, las zonas de catering, los regalos a los asistentes, la decoración del escenario, repartiendo las camisetas al equipo, probando las conexiones a Internet para las demos, etc... y llegué con mi equipo. Con el que iba a utilizar para hacer las demos. Con el que tenía todo preparado para que funcionara todo. Ese ordenador portátil, esa computadora tenía todo up&running para hacer las demos.

Y todos lo sabían.

Todos los que han estado cerca de mí cuando doy una charla saben que llevo siempre mi equipo y que me gusta controlarlo todo a mí. Y mis compañeros de ElevenPaths y de los equipos de audiovisuales me conocen muy bien. Saben que llevo mi equipo después de ajustar todo para que no falle nada. Lo conecto y a cantar.

Así que, llegué con mi ordenador ese día, a menos de dos horas del evento, y se lo di a mi compañero "lejandro Remondo para que lo probara en el atril, lo conectara a audiovisuales y lo dejara todo níquel, níquel. Mi ordenador personal lo toca poca gente, y normalmente solo Franky y Jandro - vaaale, alguna vez se lo dejo a Rober - son los que, desde hace casi 20 años, se hacen cargo de tocar mi computadora cuando es necesario para algo. Son reglas internas que todos conocemos, así que, como una de muchas veces antes - en Informática 64 - le di mi ordenador personal a Jandro.

Vale, ahora imaginad la situación. Veníamos de nuestra Informática 64 en Móstoles y estábamos en el día en que le íbamos a contar a todo el mundo - incluidos nuestros compañeros de Telefónica - qué es lo que habíamos estado haciendo durante esos ocho meses que llevábamos trabajando en ElevenPaths. Todo el mundo estaba deseoso y ansioso por enseñar nuestros juguetes. Y Jandro no escapaba de ese nerviosismo y ansiedad. 

Supongo que si te pregunto qué es lo que crees que voy a contar a continuación estarás pensando que Jandro tuvo un accidente y se le rompió el ordenador y tuvimos que hacer algo corriendo para reemplazarlo. Pero no, no es eso. ¿Entonces?¿Qué paso en ese momento para que casi hubiera que cancelar el evento?

Pues que Jandro voló por los aires.

Subió corriendo y nervioso las escaleras del auditorio, se trastabillo al pisar en el alzador que tenemos en el atril del auditorio y salió volando de cabeza contra el suelo. Volando es volando. Como si se hubiera tirado de cabeza a una piscina. Imagínate a Jandro con mi ordenador en la mano saliendo por encima del escenario de Telefónica - que mide como 1,2 metros o así, saltando por el cielo. En ese momento, la gente que lo vio hacer el hombre pájaro pegó un grito, y todos pensaron: "se mata". Pero Jandro tuvo un segundo para moverse en el cielo. Años de skater le han dado reflejos en el aire, así que tuvo un momento para reaccionar y moverse en el aire.

¿Y qué hizo?

Pues cualquier persona en su situación se habría protegido la cabeza para no matarse, pero Jandro solo pensó en una cosa: "El ordenador de Chema Alonso con las demos". Sí, esa fue su motivación única. Así, mientras hacía el vuelo de Ícaro se apañó para meter mi ordenador en su regazo y girarse en el aire  lo suficiente como para caer de medio lado y espalda con mi ordenador protegido. Pero se dio un golpetazo de impresión. 

Desde el suelo, levantó la mano y dijo: "El ordenador, el ordenador, el ordenador" y se lo dio a Franky que lo probó rápidamente mientras todos los demás intentábamos ayudarle porque la caída había sido de impresión y no se podía levantar. Sí, se había hecho daño. Daño de verdad. Y no pudimos levantarlo. Llamamos a los servicios médicos de Telefónica y después estar como 15 o 20 minutos en el suelo sin poder levantarse porque se había golpeado en la ingle y le dolía la espalda mucho, llegaron para llevárselo. 

En ese momento pensamos en cancelar el evento. Estábamos todos muy preocupados por Jandro, pero él desde la cabina preguntó a Fran si el equipo estaba bien. Franky le levantó e pulgar y le dijo que todo ok. Y Jandro se rió y nos dijo:

"A ver si casi me mato para que no se rompa el ordenador y ahora no vais a dar la charla".

Así que, casi al tiempo que entraban los primeros invitados al evento, Jandro salía en camilla para el hospital. Y la historia siguió su curso. Dimos la presentación, el evento fue un éxito para todos, ElevenPaths pasó ese peldaño en su historia y siguió su camino de crecimiento, con una parada cada año en el Innovation Security Day. Sistemáticamente. Y todo fue por que un "skater" se jugó el físico y salvó la demo, además de salvar la cancelación del mismo cuando nos animó a seguir.

Si hoy vas al auditorio de Telefónica verás que hemos puesto unos cristales al lado del atril y el alzador está pegado al suelo y con unas cintas de colores para que al ojo le sea más fácil medir la distancia. Pero lo mejor de todo es que la historia de ElevenPaths, que pasa por aquel evento - sin duda - depende de que todo el equipo - todo - de lo mejor de sí para que las cosas salgan. Podíamos haber fallado con los productos, con los desarrollos, con las demos, con la convocatoria de comunicación, con las invitaciones, etc...y el fallo casi lo tenemos en un accidente fortuito en el que una persona dio más de lo exigible para salir adelante.


Por eso, cuando en un evento yo hago una presentación de algún producto, proyecto o servicio en el que hemos trabajado muchas personas, la responsabilidad es máxima. En ese momento, subido en el escenario el que la puede "liar" soy yo, así que intento con todas mis fuerzas que el producto, el proyecto o el servicio luzca y guste a la audiencia. 

Esta, sin duda, es una de las anécdotas de la historia de ElevenPaths que contamos muchas veces, pero si algún día me animo y escribo mis memorias, contar en detalle días como estos será pieza clave, porque explicar por qué algo triunfa y crece y otras cosas no, solo se puede explicar con acciones y decisiones en momentos clave como este.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

sábado, mayo 23, 2020

Todos los cómics de superhéroes de Jerry Finger en @0xWord

Si has seguido este blog durante un tiempo, ya sabrás que comenzamos a publicar las nuevas aventuras de los superhéroes de Jerry Finger, centrados en tres colecciones que siguen vivas y que poco a poco vamos publicando. Ahora, hemos traído todos los cómics en formato grapa y tomo publicados hasta el momento para que los puedas adquirir, leerlos, y meterlos en tu bolsita de plástico "Acid-Free" para conservar estas joyas.

Figura 1: Todos los cómics de superhéroes de Jerry Finger en 0xWord

Cómo sabéis, todos estos cómics los editan los herederos y fans de Jerry Finger, con los que podéis contactar para contar y proponer más historias, sugerir acciones, o colaborar con vuestros propios cómics de superhéroes a través de su buzón en MyPublicInbox.

Figura 2: Contactar con Jerry Finger en MyPublicInbox

Desde hoy tienes disponibles los cuatro cómics de "Armatura Uno" en la web de 0xWord Cómics, los tres números de La Elite y los dos números de Evil:ONE, para que puedas seguir todas las aventuras comiendo viñetas de superhéroes y acción.

Figura 3: Armatura Uno número 1

Figura 4: Armatura Uno número 2

Figura 5: Armatura Uno número 3

Figura 6: Armatura Uno número 4

De Armatura Uno que es el superhéroe que hace de nexo entre todas las aventuras, puedes conseguir la pegatina, que es la que probablemente encontrarás si te fijas en todas las que llevo en mi computadora hoy en día en las conferencias.

Figura 7: Pegatina de Armatura

Además de la serie de Armatura Uno, tienes las aventuras de La Elite, de la que van tres números que tienes disponible ya a la venta en la web de 0xWord Cómics.

Figura 8: La Elite número 1

Figura 9: La Elite número 2

Figura 10: La Elite número 3

De estas dos series, hicimos el primer tomo recopilatorio del Universo Armatura en el que tienes los primeros cuatro números de Armatura Uno y los dos primeros números de La Elite, en una edición rústica en tomo.

Figura 11: Universo Aramatura Tomo 1

Y la tercera y última serie del Universo Armatura, que mezcla superhéroes y hacking, es Evil:One, que es una miniserie de tres números y de la que estamos acabando el último número. De momento tienes los números uno y dos.

Figura 12: Evil:ONE número 1

Figura 13: Evil:ONE número 2

Y de este último, de Evil:ONE hicimos la camiseta. Seguro que si has visto conferencias mías durante el último año habrás visto esa camiseta molona que llevo muchas veces.... Me la hice para mí, y hay muy poquitas, pero alguna queda.

Figura 14: Camiseta de Evil:ONE

Y esto es todo lo que estamos avanzando por ahora en el mundo de los cómics de superhéroes, que aunque conseguir tener un cómic nuevo es un auténtico logro, es precioso ver que algo que ha sido tu sueño de niño lo puedes ver hecho realidad. A todos los que os habéis comprado alguno de estos cómics... ¡gracias!

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares