miércoles, junio 26, 2019

Python & Metasploit: Librería pymetasploit para integrar scripts

En este blog ya se habló de la automatización de Metasploit a través del uso de msfrpc y el daemon msfrpcd. En aquel caso trabajamos sobre Ruby y sobre la propia herramienta o cliente msfrpc. Hoy quiero contar como hacer esto con el lenguaje más utilizado, muy a mi pesar, ya que yo soy más de Ruby, de la ciberseguridad: Python. El uso de RPC es algo bastante potente, ya que permite integrar diferentes lenguajes para poder utilizar de forma remota un entorno de Metasploit.

Figura 1: Python & Metasploit: Librería pymetasploit para integrar scripts

Es cierto que en la versión 5 de Metasploit hay novedades respecto a la integración de otros lenguajes, pero no está de más conocer las posibilidades que ofrecen las librerías.

¿Cómo te ha dado por probar esto?

Pues la respuesta a esto es sencilla. Yo he utilizado Python siempre que lo he necesitado, es el lenguaje más utilizado en ciberseguridad y, aunque no es mi favorito, lo utilizo. Además, mi compañero Fran Ramírez y yo estamos preparando un workshop que se celebrará la noche del 6 al 7 de julio en París, en la ciudad de las ciencias, dentro del antiguo congreso “Nuit du hack” o como se llamada ahora “LeHack”.

Figura 2: Libros de "Metasploit para pentesters 4ª Edición"
y "Hacking con Metasploit: Advanced Pentesting" de 0xWord.

Lo curioso del workshop es de qué tratará. “Learning how to code doing some hacking and creating AI programs to beat video games”.

Figura 3: Workshops en LeHack

En otras palabras, un workshop dónde se habla de hacking y se utiliza éste para aprender a programar en Python y se hace uso de Open AI para aprender a programar pequeños juegos, apoyándose en Python y en el framework de IA. Curiosa mezcla con el objetivo de aprender a programar con diferentes ámbitos.

Jugando con PyMetasploit

Han salido diferentes versiones de esta librería, la cual aporta una fácil integración de scripting en Python con Metasploit. Gracias a esta librería será realmente sencillo poder interactuar con Metasploit con tus scripts de Python. La instalación se puede hacer de manera sencilla a través de pip. Como nota, si descargas la versión para Python 2.x puedes encontrar un problema con la versión oficial.

Figura 4: Libro de "Python para Pentesters" y "Hacking con Python" de 0xWord

En el Github de la librería se puede encontrar la solución. Si ves que al intentar usar los módulos de Metasploit desde la librería, sale un error similar a “can’t set attributte…” significa que hay una serie de elementos que faltan. Esto se solucionó en el commit siguiente.

Figura 5: Commit para solucionar el bug

Lo primero es montar el daemon de msfrpcd con el que se puede manejar remotamente los objetos de Metasploit. Esta aplicación tiene bastantes opciones para interactuar, desde disponer de SSL para cifrar el canal, utilizar formato JSON, dónde ‘atar’ el servicio, es decir, a qué dirección IP, usuario y contraseña para acceder a Metasploit remotamente, etcétera.

La ejecución y puesta en funcionamiento de msfrpcd puede ser, como se ha comentado, muy variada. Para este ejemplo se ha decidido por un usuario llamado ‘msf’ y una contraseña ‘123abc.’. Además, se indica con el parámetro –f que la aplicación ejecutará en foreground y no en background, como se haría por defecto. Con el parámetro –S, a pesar de parecer lo contrario, lo que se indica es que no se habilite el SSL en las conexiones con el daemon.

Figura 6: Ejecución de msfrpcd

Una vez hecho esto, vamos a probar a abrirnos un intérprete de Python y empezar a jugar. Lo primero es cargar la librería msfrpc e importarla, tal y como se puede ver en la imagen. Una vez hecho esto, vamos a crear un objeto llamado client que representará la conexión con nuestro Metasploit remoto.

En este ejemplo, nuestro Metasploit se encuentra en la dirección IP 10.0.0.31, mientras que la máquina que utilizamos se encuentra en la dirección IP 10.0.0.1. Como se puede ver, se incluyen una serie de parámetros para realizar la conexión con éxito como son:
  • Username: Usuario que se configuró en el lanzamiento de msfrpcd.
  • Password: La contraseña que se configuró en la ejecución de msfrpcd.
  • SSL: El parámetro ssl se configura a False, ya que así se configuró en la ejecución del daemon msfrpcd.
  • Server: Dirección IP dónde se encuentra el daemon de Metasploit al que se quiere conectar remotamente.
El objeto client representa la conexión y el acceso a Metasploit. Con él ya podemos acceder a todos los elementos del framework como exploits, payloads, encoders, módulos auxiliary, etcétera.

Figura 7: Objeto Client en la ejecución de Python en nuestra Kali Linux

Si queremos listar los módulos disponibles en Metasploit podemos ejecutar client.modules.list. Lo interesante en Python es que se puede hacer uso de dir() para ver los métodos disponibles. Si no lo tenemos muy claro, podemos ejecutar dir(client.modules).

Si queremos utilizar un módulo, lo que sería equivalente a ejecutar un use [module] en la consola de Metasploit, debemos ejecutar client.modules.use([tipo módulo],[ruta del módulo]). Es importante utilizar una variable donde se asignará la creación del objeto module, tal y como se puede ver en la imagen, e = client.modules.use(‘exploit’,’windows/ftp/kmftp_utility_cwd’).

Figura 8: Creación del objeto e para tener un objeto module

Con la variable e creada se puede acceder a todas las opciones que tiene un módulo. Es más, se pueden utilizar ‘atajos’ como e.required para ver qué atributos son obligatorios. Si queremos configurar un atributo se ejecutará e[‘nombreAtributo’], tal y como se puede ver en la imagen superior.

Una vez que se tiene el objeto creado y preparado para ser lanzado, es decir, configurado se puede utilizar el método execute para ejecutar el módulo. Es recomendable configurar el payload y las opciones de éste en caso de ser necesario.

Para este ejemplo se utiliza e.execute(payload=[ruta payload]). Se utiliza una Shell_bind_tcp de manera sencilla. Como se puede ver en la imagen se obtiene un resultado donde se dice que el job es identificado con el número 5.

Figura 9: Ejecución del comando sessions

Lo importante es fijarse en el identificador de la sesión, como ocurre en la consola de Metasploit cuando se ejecuta el comando sessions. Para ver el listado de sesiones desde el intérprete podemos ejecutar el método client.sessions.list. Quizá sea interesante lanzar previamente dir(client.sessions) para ver los métodos disponibles.

¿Cómo interactúo con la sesión? 

Aquí llega una parte sencilla. Una vez identificamos el número de la sesión, se puede hacer uso de client.sessions.session([ID de sesión]) para conseguir un canal por el que enviar comandos y recibir respuestas de ejecución. Para ello, creamos un nuevo objeto y lo almacenamos en una variable, por ejemplo, Shell. Este objeto tiene diferentes métodos, entre los que destacan: Shell.write() y Shell.read().

Figura 10: Comandos shell

Como se puede ver es una forma sencilla de integrar un lenguaje como Python en el uso de Metasploit y sus posibilidades. Se te pueden ocurrir una gran cantidad de scripts en Python. Hay que recordar que Armitage, la GUI de Metasploit, utiliza msfrpc para conectar con el framework. Si eres de Python y quieres jugar con Metasploit utiliza pymetasploit o échale un ojo a la versión 5 de Metasploit y a sus novedades referente a esto.
 
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" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

martes, junio 25, 2019

Del tiempo personal y su gestión: ¿Cuántos mensajes recibes tú?

Hoy no he llegado a sacar el artículo del blog a tiempo. Ayer no llegué a sacar los artículos por las redes sociales. Tenía otras cosas que hacer. Muchas, de hecho. Y más o menos las saqué todas. Hoy no dormí mucho, y estuve tentando de no escribir nada, pero aún así he sacado unos minutos para hacerlo, y hablar de esto que me falta muchas veces. El tiempo.

Figura 1: Del tiempo personal y su gestión: ¿Cuántos mensajes recibes tú?

Y no es que me falte porque lo malgaste - que os garantizo que no es así - sino porque lo exprimo para sacar más de él. Para sacar más tiempo personal, más tiempo profesional, más tiempo de calidad para cosas que lo merezcan. Y no siempre es fácil.

Mirad, esta es la pinta que tiene una agenda de una semana mía, como puede ser muchas otras. Con reuniones de trabajo, viajes, previsión de cierre, conferencias que dar, actos en los que participar, y reuniones en el colegio de Mi Hacker y Mi Survivor que tener. Una semana cualquiera con viajes en coche de un sitio a otro de la Comunidad de Madrid, con vuelos en avión entre Londres y Madrid y con carreras entre los edificios de Telefónica en Distrito C y en la Gran Vía de Madrid.

Figura 2: Una agenda de una semana en mi vida

Es mi vida. Es ajetreada. Mucho. La he elegido yo. Y por eso soy cada vez más estricto con la inversión de mi tiempo. Por eso, cada vez respondo menos mensajes por las redes sociales, e-mail, etcétera. Un correo me puede quitar entre 3 y 5 minutos en leer y contestar. 20 mensajes me quitan una hora de mi tiempo - y como veis no la tengo muchas veces -. 

Por supuesto, los mensajes de mis compañeros de trabajo, de mis proyectos y de mis amigos son importantes, y tienen prioridad, pero existen muchos "unsolicited e-mails" por múltiples canales que me quitan tiempo, y debo ser firme en decidir qué contesto y qué no contesto.

¿Y cuántos mensajes recibes tú?

Yo he hecho un cálculo del número de mensajes que recibo por todas las redes sociales donde tengo presencia (Linkedin, Twitter, Facebook, Instagram), por los buzones de correos electrónicos, mensajes de WhatsApp, SMSs o iMessages, que utilizo, y por los comentarios en las plataformas que utilizo (YouTube, Blogger, etc..) y el número es aproximadamente de 500 mensajes al día.  Por eso mi petición de que las comunicaciones deben ser responsables del año 2014.

Si contestara todos los mensajes - y generase el efecto e-pingpong - podría pasarme el día entero contestando mensajes.. pero no puedo. El tiempo es muy valioso, y el que envía un mensaje debe ser consciente de eso, de que lo más valioso en la comunicación entre dos personas es el tiempo de la persona que no solicitó el mensaje de consulta. Yo lo hago. Y por eso inicio pocas, muy pocas, comunicaciones. 

Gracias a esa política de mensajería consigo sacar tiempo para hacer todos los proyectos en los que me meto. Todas las coas que hago con mis amigos. Exprimo mi tiempo con las cosas que realmente son una prioridad para mí. ¿Y tú? ¿Haces algo así?

Saludos Malignos!

lunes, junio 24, 2019

RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 2 de 5)

Con el surgimiento de la idea original de RUBIKA, dimos muchas vueltas. Desde hacer un Cryptex con forma de Cubo de Rubik que almacenara un Token OAuth que solo se liberase para autenticar una cuenta cuando se hubiera resuelto por la persona correcta, hasta usarlo como un Segundo (o Tercer) Factor de Autenticación (2FA). En cualquier caso, lo que estaba claro es que necesitábamos un Cubo de Rubik de un tamaño especial para poder meterle la electrónica que queríamos.

Figura 14: RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 2 de 5)

El proceso de construcción del Cubo de Rubik tuvo varias fases, y fuimos evolucionando el diseño. Mola mucho ver las fotografías de todo el proceso, que nos llevó de un proceso artesanal a tener que acabar trabajando - después de los prototipos iniciales - con una empresa profesional.

El Pre-Prototipo de Cubo de Rubik en 3D

Antes de comenzar a trabajar en la construcción del Cubo de Rubik impreso en 3D necesitábamos probar si la electrónica era viable o no, así que lo primero que se hizo, para conseguir ver cómo podíamos medir los giros, qué componentes necesitábamos para el hardware y cuántos grados de libertad eran necesarios a la hora de hacer las matemáticas adecuadas para saber cómo y de qué manera se estaba moviendo el cubo.

Figura 15: Un Cubo de Rubik desmontado en la mesa de entrenamiento

Así que lo primero que se hizo fue desmontar un Cubo de Rubik y ponerlo en una mesa de entrenamiento para moverlo manualmente y captura información de los movimientos en un microcontrolador que pudiera servirnos de base para controlar el sistema completo. Al final, como veremos más adelante, el micro elegido fue un Atmel Tiny1634R, pero de momento

Impresión en 3D del primer prototipo de Cubo de Rubik

He de decir, que pensamos que éste iba a ser un proceso sencillo. Es decir, buscar alguna plantilla de Cubo de Rubik en 3D, que seguro que había, escalarla al tamaño adecuado, y darle caña a la Impresora 3D que tenemos en la planta tercera del edificio. Pero no fue tan sencillo. Este es un tutorial de los varios que puedes encontrar que cuenta cómo se debe construir un Cubo de Rubik impreso en 3D.


Figura 16: Cómo imprimir un Cubo de Rubik con una impresora 3D

Así que comenzamos a construir las partes necesarias para hacer, primero el núcleo del cubo, y luego las esquinas del mismo. Y el resultado fue muy peculiar. Parecía mucho más fácil al principio, pero poco a poco fuimos consiguiendo una primera versión de nuestro cubo de Rubik, tal y como podéis ver en las imágenes siguientes.

Figura 17: Estructura de las piezas centrales de las caras.

Como se ve, las seis piezas centrales del núcleo son iguales, así que comenzamos por ellas, que además son las que deberían llevar toda la electrónica. El resto de las piezas no son tan importantes, ya que solo giran esas seis piezas, por lo que había que dedicarle más cariño.

Figura 18: Nucleo central del cubo de Rubik impreso en 3D
Ahora ya se podía ir construyendo el cubo cara a cara. Como podéis ver en los cambios de colores, hubo que repetir muchas veces algunas de las piezas, porque no encajaban bien, se movían demasiado o simplemente no tenían la calidad adecuada.

Figura 19: Construcción de la primera cara del cubo con el núcleo

Y a medida que crecía, había que ir haciendo y rehaciendo las piezas para que encajaran de las mejores de las maneras. No fue fácil, como os he dicho ya anteriormente.

Figura 20: Montando el cubo pieza a pieza

Aquí tenemos una foto de todas las piezas puestas una sobre otra, pero el núcleo fuera. Como se ve, tiene la forma del Cubo de Rubik, pero tiene mucho trabajo aún por hacer.

Figura 21: Todas las piezas montadas y el núcleo fuera

Y aquí el primer prototipo de esta versión montado para poder trabajar. Os garantizo que mover ese Cubo de Rubik era un auténtico reto para que no se te deshiciera en las manos. Grandote, con movimientos imperfectos, y frágil. Pero aún así, he de decir que era funcional.

Figura 22: Primer prototipo funcional del Cubo de Rubik impreso en 3D

Como podéis ver, no habíamos tenido en cuenta la carga de la electrónica, así que teníamos que desmontar el cubo cada vez que necesitábamos recargar las pilas, y además no iba lo fino suficiente como para poder sacar datos de aquellos que estaban acostumbrados a manejar el Cubo de Rubik tradicional.

Figura 23: Pruebas con otras piezas para buscar mejores encajes en las piezas y movimientos más fluidos

Como se puede ver, hicimos muchas pruebas, con muchos colores para reconocer las piezas, buscando mejores acoples, y también añadiendo soluciones para que el movimiento fuera más fluido, como añadir algunos imanes entre las piezas para hacer que se atrajeran a determinados estados.

Primera captura de datos

Incluso con esta versión primigenia de nuestro RUBIKA, ya podíamos empezar a capturar datos que procesabamos en back-end para poder generar los algoritmos de Machine Learning, donde conseguimos sacar las primeras conclusiones.


Figura 24: Capturando datos del primer prototipo

Pero aún debíamos mejorar esto mucho más, así que decidimos ir a por un diseño mucho más profesional y a capturar datos que de verdad nos sirvieran para poder generar los algoritmos adecuados al proceso.

Saludos Malignos!

**************************************************************************************************
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 1 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 2 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 3 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 4 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 5 de 5)
**************************************************************************************************

domingo, junio 23, 2019

Domingo de vídeos: Charlas, Podcasts, Entrevistas, Conferencias y más

Para hoy domingo os traigo algo del material en vídeo que se ha ido generando durante la semana. Algunos vídeos tienen algo más de tiempo, pero los he ido recopilando durante estos días, así que os los traigo juntos todos hoy, para ponerme al día.

Figura 1: Domingo de vídeos: Charlas, Podcasts, Entrevistas, Conferencias y más

El primero que os dejo es la entrevista que me hicieron sobre Escuela42 en Telefónica Madrid. La presentamos hace ya dos semanas, pero el registro para ir a la piscina está ya funcionando. Se trata de un nuevo modelo de aprendizaje pensado en desarrollar la autoformación en disciplinas tecnológicas, así que no hay profesores, no hay libros obligatorios, no hay horarios - estará abierta 24 horas al día en Distrito Telefónica -.


Figura 2: Entrevista sobre Escuela 42

Puedes apuntarte y conocer mucho más de este proyecto tan bonito en la web de Escuela42 Telefónica Madrid para que te apuntes desde ya si quieres transformar tu formación. A partir del momento de salir de ahí, tu forma de aprender será diferente.


Figura 3: ¿Qué es Escuela 42 Madrid Telefónica?

El siguiente de los vídeos realmente es un podcast, el segundo de ElevenPaths Radio, en el que Gonzalo Álvarez Marañón entrevista en esta ocasión a Pedro Pablo Pérez, CEO de ElevenPaths. Una interesante charla para saber mucho más de la persona y el proyecto.


Figura 4: ElevenPaths Radio Temporada 1 capítulo 2 "Pedro Pablo Pérez, CEO de ElevenPaths

Este siguiente vídeo es una pequeña mesa redonda en un evento llamado CISO 2019, en la que Carmen Torrano, Raúl Siles, Eduardo Sánchez y yo hablamos de distintos aspectos que tienen que ver con el mundo de los investigadores de seguridad independientes y la seguridad en general.


Figura 5: CISO Day 2019 "Hacking RoundTable"

El cuarto vídeo es un interesante debate propuesto por el Real Instituto Elcano en el que se trata el tema del ecosistema español de inteligencia artificial. En esta sesión participó nuestra compañera Irene Gómez, directora de AURA en Telefónica


Figura 6: Hacia un ecosistema español de IA

También hemos grabado esta semana una nueva CodeTalk For Developers basada en nuestro quiero Dirty Business Card Reader - que ahora le hemos pasado a nuestro amigo Kevin Mitnick para que lo use en sus charlas -, y que explica cómo funciona el proyecto completo.


Figura 7: CodeTalk For Developers "Dirty" Business Card Reader

Y los dos últimos vídeos son dos vídeos resúmenes de ElevenPaths y LUCA. El primero es una explicación del caso de éxito del proyecto de LUCA con los almacenes TIA en Ecuador. Si quieres conocer todos los casos de éxito y todos los proyectos de LUCA los tienes en la web.


Figura 8: Caso de Éxito de LUCA y Almacenes TIA

Y el último es el acuerdo entre ElevenPaths y BOTECH FPI para luchar contra el fraude en el sector bancario que hemos anunciado esta misma semana para aumentar el alcance de nuestros servicios de seguridad en Telefónica.


Figura 9: Alianza entre ElevenPaths y BOTECH FPI

Y esto es todo lo que tenía guardado para vosotros en forma de vídeos. Espero que disfrutéis alguno y que tengáis tiempo para vosotros el resto del fin de semana.

Saludos Malignos!

sábado, junio 22, 2019

Esta semana: eXtended Realities, Spark, Hadoop y Hacking Ético

Un sábado más os dejo la lista de actividades para la semana que viene. Esta vez no me toca ninguna charla, ni evento, ni conferencia durante esta semana, así que será tiempo para avanzar muchos de los proyectos que tenemos en marcha. Pero hay algunas cosas interesantes en las que participar que te dejo por aquí.

Figura 1: Esta semana: eXtended Realities, Spark, Hadoop y Hacking Ético

Hoy, como ya os dije la semana pasada, tenéis en Arroyomolinos de Madrid el concierto gratuito de mis amiguetes de Despistaos, así que si no tienes plan es perfecto para ir, tomarse un "algo" con los amigos y disfrutar de la música de estos chicos.


Figura 2: Vuelve a verme (Despistaos con Giorgina)

Ya el martes 25 de Junio vuelve la agenda, con tres actividades fuertes, comenzando con e Curso de Hacking Ético Online de nuestros amigos de The Security Sentinel.
Este curso te proporciona los conocimientos necesarios a nivel conceptual y práctico para que puedas implementar en empresas y negocios, un sistema Integral de Seguridad Informática integral y perimetral, apoyado por el uso de Software Libre. Desarrollarás y adquirirás habilidades prácticas para la realización de auditorías de sistemas, usando las técnicas de la Auditoria de T.I del tipo “Hacking Ético y/o Test de Penetración”. 
Figura 3: Curso Online de Hacking Ético
Conocerás los diferentes tipos de atacantes, así como a usar las diferentes técnicas y herramientas de intrusión utilizadas por los delincuentes informáticos para lograr violentar la seguridad de un sistema de información. Con este curso, podrás realizar sin problemas auditorías de Pentesting con su correspondiente informe profesional, además de conocer los métodos utilizados por los delincuentes cibernéticos para poder contrarrestar sus ataques. Tienes todos los detalles en la web de este Curso Online de Hacking Ético.
Este curso se ha definido con un 75% de práctica y un 25 % de teoría, lo que te facilitará mucho el aprendizaje y el aprovechamiento máximo de conocimientos. Ayuda a orientar las auditorias intrusivas haciendo uso de las normas y buenas prácticas en seguridad de la información a nivel internacional y permite aprender las técnicas de ataque y protección de las redes inalámbricas y las aplicaciones web dinámicas. El objetivo final es formar auditores técnicos e integrales en  seguridad informática.
Figura 4: Libros de Metasploit para Pentesters y Ethical Hacking
Este curso entrega a todos los asistentes de forma gratuita los libros de Ethical Hacking y de Metasploit para Pentesters [4ª Edición] de 0xWord, además de que puedes apuntarte a este curso la versión VBook de Ethical Hacking.
Por otro lado, el mismo día 25 de Junio tiene lugar una nueva LUCA Talk de 16:00 a 17:00 que podéis seguir por Internet donde se hablará de Spark y Hadoop, comparando algunas características de ambos. 

Figura 5: LUCA Talk Spark vs Hadoop

La última actividad, comienza a las 19:00 horas en Madrid y es el comiendo del Festival de Realidades Inmersivas XR Fest que organiza la Fundación Telefónica junto con el British Council

Figura 6: XRFest, encuentro inaugural

Son actividades que duran hasta el viernes, así que puedes seguir la agenda completa en estos enlaces para que te apuntes a lo que quieras, y son en horario de mañana y de tarde. Cada uno el suyo.
Y ya está todo. No hay mucho más, así que ya os dejo para disfrutar el fin de semana con deporte, sol - los que estéis por España - y tiempo para actividades lúdicas }:P

Saludos Malignos!

viernes, junio 21, 2019

RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 1 de 5)

La historia de Rubika es una historia que viene de hace tiempo. Es uno de esos proyectos que llevamos un par de años trabajando en el equipo, pero que tiene un pasado mucho mayor simplemente hasta llegar al punto de su concepción como "Idea Loca". Ayer fue el día en el que lo presentamos al público por primera vez dentro de la charla de OpenExpo Europe 2019, así que dejadme que os cuente en este artículo en qué consiste, cómo se concibió y cómo se ha implementado, que ha sido un trabajo de tiempo.

Figura 1: RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 1 de 5)

En esta primera parte del artículo, dejadme que os cuento los antecedentes de cómo llegamos a pensar en hacer este proyecto. Normalmente se suele usar la expresión de "Idea Feliz" para algo nuevo, pero la realidad es que suele haber una conexión de puntos hacia atrás que explica que la conclusión natural sea la creación de este proyecto. Así que vamos a comenzar por los antecedentes históricos de este proyecto con tres puntos a unis:
  1. El Cubo de Rubik
  2. Ciberseguidad y los ataques Rubber Hose
  3. Machine Learning e Inteligencia Artificial
El Cubo de Rubik en ElevenPaths

Para comenzar la historia, hay que tener en cuenta que en ElevenPaths nos vimos infectados por el virus del cubo de Rubik por culpa de uno de nuestros compañeros. En concreto de Javier Espinosa, hoy en día Technical Lead del proyecto Movistar Home, pero hace siete años solo una joven promesa del programa Talentum que seleccioné para entrar luego en ElevenPaths dentro de Telefónica


Figura 2: Monólogo de Javier Espinosa "Cómo ligar con el cubo de Rubik"

Nuestro querido Javier - que ha sido uno de los jóvenes líderes del futuro elegido por la campaña de El Mundo - tiene una afición mortal al cubo de Rubik, y como buen hacker que es, hace cosas muy divertidas y curiosas con él. Por ejemplo, tiene un monólogo que presentó en el año 2013 sobre "Cómo ligar con el Cubo de Rubik" que usó para un concurso en la universidad. 


Pero también se dedica a hacer mosaicos en Kukinet con cubos de Rubik que hace para fiestas y eventos. Se trata de hacer un diseño que use los colores de las caras del cubo y pixelarlo en grupos de 9 bits que luego se montan juntos. El resultado es lo que veis en la foto, decoraciones espectaculares fabricadas a base de cubos de Rubik.


Por supuesto ha transmitido ese veneno dentro de no solo ElevenPaths, sino de toda la unidad CDO, así que son muchos los que hemos aprendido a resolverlo solo por la pasión con la que Javier lo hace en todo momento.

El Virtual Rubik del 2017

Como consecuencia de ver cubos de Rubik todos los días por la oficina, era natural que en uno de nuestros Equinox - el hackathon de 24 horas en el que se hacen proyectos tecnológicos - acabara apareciendo algún proyecto que lo utilizara. Y eso sucedió en la primavera del año 2017, donde dos compañeros - que podéis ver en este vídeo - construyeron un cubo de Rubik muy especial. Primero por que funcionaba con luces de colores, y segundo porque se giraba con gestos de la mano que reconocía un sistema de Visión Artificial desde una webcam.


Figura 5: Virtual Rubik Timelaps

El proyecto gustó mucho, así que los miembros del jurado - entre los que estaba yo aquel año - le concedimos el premio. Pero antes, para probar su valía, el proyecto debería tener la aprobación de nuestro compañero Javier Espinosa, así que en la presentación le hicimos que lo probara.


Figura 6: Presentación de Virtual Rubik

Como podéis ver, el Virtual Rubik funcionó y se llevó el merecido premio de nuestro Equinox porque a todos nos encantó el proyecto por muchas cosas. Por lo original, por el uso de Visión Artificial, por el trabajo con el Hardware, etcétera.

Ataques Rubber Hose

Vamos ahora a la parte de los antecedentes por el área de seguridad. Hace ya tiempo, publiqué en este blog un curioso artículo que me había enviado un alumno sobre cómo se había creado un sistema de autenticación basado en tocar la guitarra en el Guitar Hero para luchar contra los ataques Rubber Hose.
Este tipo de ataques, los Rubber Hose, se basan en que si un sistema de identificación pueden sacártelo a golpes, entonces tiene una debilidad. Mientras que si el sistema de identificación se basa en un "comportamiento o patrón aprendido" que no puede ser entregado ni aunque se quiera, entonces no es vulnerable a que te lo saquen a golpes. 


Figura 8: Cómo medir movimientos musculares para sacar patrones

Así, la forma en la que una persona camina, la forma en la que una persona corre, cómo toca la guitarra, o cómo canta, o cómo hace alguna otra cosa. Aquel artículo me encantó, sobre todo porque nosotros teníamos un sistema de identificación en ElevenPaths Anti-Rubber Hose.

SealSign Biometric ID

Como os he dicho, en ElevenPaths habíamos adquirido la empresa SmartAccess en el año 2014 - si la memoria no me falla - y con ella llegó la tecnología SealSign. Esta tecnología reconoce una firma manuscrita usando la biometría de cómo se ha hecho. La velocidad, la presión, el grafo, etcétera. 


Figura 9: Demo de Sealsign Biometric ID

Se basa en unos algoritmos que desarrollamos con la Universidad Carlos III y que pusimos en nuestros productos para poder hacer cosas tan curiosas como autenticar a una persona firmando en un tablet. 


Figura 10: El Rey Felipe VI probando SealSign Biometric ID

Esta fue la demo que yo le hice al Rey en el año 2015, y que podéis ver resumida en este pequeño vídeo que usé ayer en la presentación para enseñar su funcionamiento. A día de hoy, SealSign Biometric ID es una tecnología que seguimos comercializando en ElevenPaths con mucho éxito.

Machine Learning & Artificial Intelligence

El último punto que hay que conectar hacia atrás en los antecedentes del proyecto es el uso de Machine Learning e Inteligencia Artificial en general a temas de Ciberseguridad. Como sabéis, en el año 2016 presentamos LUCA, nuestra unidad especializada en soluciones de Big Data - y por lo tanto mucho Machine Learning -, dentro de la unidad CDO - donde está también ElevenPaths -.
Para hacer proyectos con ella, el equipo de Ideas Locas, y los laboratorios de Innovación, comenzaron a exprimir al máximo todo lo que tuviera que ver con Machine Learning y Ciberseguridad, y algunos compañeros acabaron por escribir un libro en 0xWord del que ya os he hablado de Machine Learning aplicado a ciberseguridad que merece la pena que leáis.


Figura 12: Una IA generando a Chema Alonso en tiempo real

Pero también os hemos contado cosas que tienen que ver con ataques más modernos, como los de FaceSwapping o el último ejemplo en el que una IA crea a Chema Alonso en tiempo real del que os hablamos en el post de Autoencoders y GANs.

Y así llegó Rubika

Y llegamos a Rubika, una idea que se me vino a la mente en el mes de Abril o Mayo del 2017, y que unía estos puntos. La pregunta fue:
 ¿Y si hacemos un cubo de Rubik en 3D especial que recoja todos los datos de cómo se maneja el cubo con las manos y usando Machine Learning reconocemos si es la misma persona la que lo ha resuelto?
Recordad que, a aquellas alturas, aún no había salido ningún cubo de Rubik con electrónica o BlueTooth para hacer este tipo de cosas, así que deberíamos crearlo desde cero.
En Junio de 2017 os dejé entrever en un post que llevaba tiempo pensando en esta idea en la que ha ido participando muchos compañeros. Pero así son estos procesos, a veces das con la tecla rápido, otras veces no. Además, como os podéis imaginar, este proyecto de investigación no estaba entre las prioridades más altas de la empresa, así que hemos ido trabajándolo a ratitos hasta que ayer lo presentamos. Pero será en la siguiente parte en la que os cuente cómo lo hemos ido trabajando.

Saludos Malignos!

**************************************************************************************************
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 1 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 2 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 3 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 4 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 5 de 5)
**************************************************************************************************

jueves, junio 20, 2019

Rescue The FOCA: Nuevo juego en Scratch de Joan Ruiz Berenguer

Hoy ha sido un día muy especial, ya que en OpenExpo Europe 2019 hemos podido disfrutar de una charla de Joan Ruíz Berenguer en la que nos ha explicado su último proyecto, un juego llamado Rescue The FOCA. Para los que tengáis mala memoria, Joan hizo el juego de Chema Versus Malware que tenéis publicado en Scratch y del que ya os hablé.

Figura 1: Rescue The FOCA. Nuevo juego en Scratch de Joan Ruiz Berenguer

Hoy se ha venido a OpenExpo Europe 2019 a contar en una charla cómo ha ido aprendiendo y haciendo cosas. Cómo comenzó haciendo animaciones con vídeo, cómo hacía dibujos, juegos de mesa, cómics y, por último, juegos en Scratch


Figura 2: Juego de Chema Versus Malware hecho en Scratch

< De este ya os dejamos publicado el de Chema Versus Malware, pero en su Canal Inventarium de Scratch tiene algunos de esos proyectos, donde espero que pronto se anime a publicar este último de "Rescue The FOCA" que nos ha enseñado hoy.


En el juego, lo que tienes que conseguir es recuperar la FOCA que ha sido robada por un cibercriminal para hacer el mal, así que debes perseguirlo utilizando todo tipo de armas, sorteando obstáculos, e incluso yendo en monopatín para ir más rápido.

Figura 3: Si montas el skate vas más rápido pero es más peligroso

Al final, tendrás que luchar con el monstruo del final, pelearte con el malo usando toda tu habilidad y todas tus armas para conseguir vencerlo y recuperar a nuestra querida FOCA


Figura 4: Vídeo explicativo del juego Rescue The FOCA

En este vídeo que os subo a YouTube se puede ver más o menos el flujo del juego. Es el que ha utilizado hoy Joan para explicar cómo está construido en Scratch por dentro.

Figura 5: Canal Inventarium de Joan en Scratch

Una maravilla. Estoy seguro que os iré contando muchas más aventuras de Joan y su trabajo por aquí, así que seguid atentos el su canal que pronto irá publicando más cosas.

Saludos Malignos!

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