Mostrando entradas con la etiqueta Cognitive Intelligence. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cognitive Intelligence. Mostrar todas las entradas

viernes, diciembre 20, 2024

Investigando fotografías y personas con Multi-Modal Large Language Models

Ayer os hablé de cómo "Cómo "Weaponizar" la generación de información que las apps y los servicios digitales ven en tus fotos", o lo que es lo mismo, cómo crear bases de datos con información extraída desde fotografías de forma automática. Esto puede ser muy útil para investigar fotografías concretas, o identidades a partir de grandes bases de datos de fotografías (o del carrete de fotos del smartphone de una persona).

Figura 1: Investigando fotografías y personas
con Multi-Modal Large Language Models

Hoy he querido probar la parte de investigar personas que aparecen en fotografías, para etiquetarlas y sacar metadatos, además de información descriptiva, a partir de fotografías. Es decir, para poder etiquetar información como si fuéramos personas procesando manualmente las fotografías.

Describiendo y etiquetando fotografías con MM-LLMs

Primero he probado con la fotografía que nos hicimos Luis Enriquez, Luis Herrero, José Luis Garci y yo en el último programa de la tertulia, pidiéndole que describa la fotografía e intente descubrir a las personas que salen en ellas.


La gracia no es que sean fotografías públicas, sino privadas, lo que haría la información más "jugosa", ya sea porque se han conseguido mediante accesos concedidos a un servicio, o porque son fotografías que tenemos que analizar masivamente en un análisis forense, por ejemplo.

Figura 3: Descripción de José Luis Garci

En este caso - al igual que sucedía con Grok -, José Luis Garci no es reconocible por ChatGPT. Supongo que su ausencia del mundo de la tecnología ha permitido que esté lejos de los dataset de entrenamiento de ChatGPT. Lo mismo sucede con Luis Enriquez y Luis Herrero que no son reconocidos por ChatGPT.

Figura 4: Descripción de Chema Alonso

Sin embargo, en o que corresponde conmigo, ChatGPT sí que me reconoce. Además, dice: "Su estilo (gorro, pelo largo, ropa informal) es inconfundible con su imagen pública". Vamos, que me tiene fichado y bien fichado.

Figura 5: Conclusión sobre la fotografía

Al final, sí que reconoce y cataloga la foto perfectamente, lo que permitiría crear meta-información sobre la misma para alimentar una base de datos que pueda ser utilizada en entornos OSINT, así que si tenemos muchas fotografías, se tienen muchos datos como estos. 

Como no me habían reconocido a mis compañeros de tertulia, decidí subir la foto que nos hicimos Kevin Mitnick, Steve Wozniak hace ya unos años, para ver cómo la procesaba ChatGPT, y si nos generaría información jugosa para alimentar la base de datos.

Figura 7:  La foto que nos hicimos Steve Wozniak y Kevin Mitnick

Como ya imaginaba, a mí me reconoce el primero de la izquierda - que procesa de izquierda a derecha - y llama la atención cómo reconoce la camiseta de Fear the FOCA y la historia de la herramienta FOCA

Figura 8: Descripción de Chema Alonso

Lo mismo sucede con Steve Wozniak, que es el siguiente en la fotografía. Como podéis ver, analiza su aspecto, su expresión, y que es él. Haciendo en todo momento, como le pedía en el prompt, una inferencia sobre quién podría ser.

Figura 9: Descripción de Steve Wozniak

Y por último, el análisis de nuestro querido, y siempre recordado, Kevin Mitnick, que también lo reconoce perfectamente.

Figura 10: Descripción de Kevin Mitnick

También describe la ilustración que yo hice, y que tengo firmada en mi despacho, y lo utiliza como parte de su análisis del tipo de evento en el que se pudo tomar esa fotografía.

Figura 11: Ilustración que aparece en la fotografía

En la parte de Conclusión, he llamado mucho la atención cómo ha analizado la fotografía, ya que como podéis ver analiza las personas, con motivo de qué podríamos estar juntas, y el carácter amigable de la reunión al existir la ilustración. 

Figura 12: Inferencias finales

Además dice que si estas suposiciones son ciertas, "esta foto reúne a tres leyendas vivas del mundo tecnológico y de la ciberseguridad en un mismo lugar." Por desgracia, los datos no están actualizados y seguimos echando de menos a Kevin.

Figura 13: Pidiéndole que catalogue esta fotografía con etiquetas

Por supuesto, una vez analizada la fotografía podemos etiquetar la información, así que le he pedido a ChatGPT que haga una selección de las 10 mejores etiquetas para catalogar esta fotografía, y como podéis ver ha elegido muy buenas etiquetas, lo que ayudaría a generar una base de datos valiosa si se hace con muchas fotografías.

Figura 14: Metadatos generados en forma de etiquetas

Esto no es nuevo, sino algo que todos los sistemas que permiten que subas tus fotografías ya utilizan para generar datos valiosos, inteligencia de datos accionable o saber más cosas de todas y cada una de las personas que tienen en sus plataformas.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, febrero 06, 2024

Inteligencia Artificial para ayudar en la Discapacidad Visual

Es innegable el protagonismo que ha alcanzado la inteligencia artificial, no sólo en los medios, sino también en nuestro día a día. Desde el lado del mal ya se ha hablado muchas veces del potencial que tiene la Inteligencia Artificial para la creación e incluso Detección de DeepFakes, así como de la investigación en el mundo de la Inteligencia Artificial que cambió el mundo.


Hace pocos años que surgieron las primeras versiones de DALL-E basados en modelos de difusión y GPT, que ya en aquel momento dejaron ojipláticos a los expertos en la materia. En ese momento, la sociedad todavía no era consciente del mundo de posibilidades que se abría ante sus ojos. Y hasta día de hoy, todos estos avances parecen imparables. Sin embargo, por muchas facilidades que nos ofrezca la Inteligencia Artificial en nuestro día a día, siempre existen minorías olvidadas en dicho avance. 

Por ello, desde el Grupo de Robótica y Visión Tridimensional (RoViT) de la Universidad de Alicante, bajo la dirección de Miguel Cazorla, nos estamos enfocando en la creación de una aplicación móvil que aúna todos estos avances en el campo de la visión por computador y del procesamiento de lenguaje natural. El objetivo es dar respuesta a una necesidad básica desde el punto de vista humano: "¿qué están viendo nuestros ojos?"


Tengo la suerte de llevar unos meses bastante metido en el proyecto y en todo el funcionamiento de la aplicación, para poder decir que la aplicación está destinada a las personas con discapacidad visual parcial o total. Esto cobra mucho más sentido cuando pensamos en aquellos usuarios que adquirieron la discapacidad visual crecidos y debieron aprender a interactuar nuevamente con el entorno. Así nace AIDEN, utilizando los últimos avances tecnológicos en visión por computadora para permitirles explorar el mundo que les rodea.

A menudo, las personas con discapacidad visual se enfrentan a obstáculos cotidianos por la forma en la que el mundo ha sido diseñado. ¿Cómo pueden saber si se les ha olvidado la vitrocerámica encendida, o qué modo del horno está asociado a cada posición? Por supuesto, las empresas mil-millonarias, con el soporte de las grandes tecnológicas, tienen el potencial para llegar a crear modelos más competentes. Salvo por tres particulares:
  • Necesidad de monetizar cualquier producto.
  • Falta de enfoque en este colectivo.
  • Incapacidad de ofrecer transparencia con los datos de los usuarios.
El motivo por el cual aún no existen soluciones competentes para este colectivo por parte de las grandes empresas tecnológicas es sencillo: dinero, dinero, dinero. Hasta que esas mega corporaciones vean la posibilidad de lucro en estas minorías, no habrá una solución real en el mercado, la cual, indiscutiblemente, tendrá que afrontar dos preguntas fundamentales:
  • ¿Queremos que empresas tecnologícas tenga fotografías privadas de nuestro día a día?
  • ¿Superarán los filtros legales de los países europeos?
De ahí, la importancia de que sea una Universidad Pública bajo el sistema europeo quien desarrolle el proyecto, junto con el apoyo de INDRA, una de las mayores empresas del mercado español.

¿Alguna vez os habéis preguntado cómo hacen las personas invidentes para usar un smartphone? ¿O manejarse por una página web? ¿Pensáis que generalmente están adaptas a estos usuarios? AIDEN incorpora los últimos modelos de Visión Artificial para cada tarea especifica, combinados ofrecen al usuario la mejor experiencia de usuario. Permitiendo cuatro opciones fundamentales:
  1. Describir los elementos del entorno.
  2. Preguntar al entorno.
  3. Lectura de texto.
  4. Lector de código de barras y QR instantáneos.
Para ello, la aplicación toma una fotografía y se procesa en nuestros servidores hasta obtener una respuesta. Es esta respuesta la que recibe el móvil y es dictada al usuario gracias al sistema operativo del smartphone.

Figura 3: Diagrama de funcionalidades de AIDEN

El enfoque más novedoso que trae la aplicación es preguntar a la escena y obtener su respuesta con un costo computacional relativamente bajo, especialmente si se compara con LLAMA, BARD o ChatGPT. Sobre esa imagen tomada, la persona invidente puede saber cuantas sillas hay, qué pone en un cartel o de qué color es la chaqueta, para seguir preguntando si la silla tiene respaldo o si la chaqueta tiene capucha.

Para el desarrollo de la app, se ha jugado con muchas tecnologías hasta encontrar el mejor resultado, uno de los modelos más novedosos que se ha incorporado es el V* que aplica LLMs a la Visión Artificial y así brinda excelentes resultados. Grosso modo, con V estrella logramos localizar los píxeles de la imagen en los que la Inteligencia Artificial debe centrar su atención, con el objetivo de obtener la mejor respuesta en el menor tiempo posible.

Figura 4: Prototipo en pre-producción de AIDEN

Incluso los colores que se pueden apreciar en los botones de la aplicación, o el margen entre los mismos, han sido seleccionados con cuidado para mejorar la accesibilidad y facilitar el uso del asistente del móvil. La utilización de colores lejanos en la escala cromática facilita a ciertos usuarios con ceguera parcial diferenciar los botones.

El proyecto se encuentra en las últimas etapas de desarrollo, y aunque ya dispongamos de un producto mínimo viable, nos enfrentamos a cuestiones muy complejas que requieren tiempo y que estemos por detrás un equipo excelente de doctores e ingenieros del que tengo la suerte de formar parte.

Conclusión   

AIDEN es el primer paso en la dirección correcta, la de un mundo más accesible gracias a la tecnología. Imaginemos en pocos meses el potencial que puede tener una aplicación como AIDEN junto con las Ray-Ban Smart Glasses, en las que el usuario ya no requiera ni interactuar con el smartphone.


La aplicación tiene previsto abrir sus puertas el segundo trimestre del año, tanto para Android como para iOS, y aunque todavía estamos discutiendo si estaremos ante una versión beta abierta o privada, todo parece marchar sobre ruedas. Además, estamos súper ilusionados por que se haya interesado RTVE para contar esta historia y compartir el trasfondo social de la aplicación.

¡Saludos!

lunes, septiembre 11, 2023

Detectar Voces Clonadas en DeepFakes usando Machine Learning

En verano os hice un artículo con la recopilación de los Codetalks For Debelopers desde el principio hasta mitad del año 2023 que vamos publicando en  CodeTalks4Devs by  Ideas Locas. Ya llevamos varios años con estos pequeños vídeos de unos 20 a 25 minutos de duración donde contamos tanto nuevas tendencias en tecnología y ciberseguridad como nuestros proyectos que desarrollamos en el equipo de Ideas Locas, y esta vez os traigo el que hemos hecho este verano sobre el trabajo de Detectar Voces Clonadas en DeepFakes usando Machine Learning.
Este año ya hemos publicado cinco capítulos que teníamos programados, cada uno hablando de un tema de actualidad distinto y mostrando, como siempre, su punto de vista más técnico para animarte a hacer tus propios proyectos. En este caso, una explicación más detallada de lo que vimos en el artículo: "Are You Talkin' ta me?" DeepFake Voice en Español & Detección de Voces Clonadas


Tienes todos los CodeTalks en esta web, desde los últimos publicados hasta el acceso a las cinco temporadas anteriores, pero vamos a comentar uno a uno los que tenemos publicados para que sepas un poco mejor el contenido de estos:

Temas y Proyectos de Ideas Locas

Pues estos son los CodeTalks que tenemos publicados hechos en 2023. Cada mes seguiremos publicando un episodio de estos CodeTalks para mantenerte al día en estos temas tan importantes dentro de la tecnología, y encantados de que nos propongáis ideas locas, proyectos o temas que tocar.


Así que no te los pierdas, y nos veremos en el próximo episodio, y recuerda que tienes todas las Codetalks4devs en una sola lista de Youtube, para que las puedas ver seguidas una tras otra... 

Figura 4: Sección Apps, Educación y Cultura

Y si quieres verlas en la tele, recuerda que en la Sección APPS -> Educación y Cultura, tienes la Living App de las CodeTalks by Ideas Locas de tu Movistar+

Figura 5: Living App Codetalks by Ideas Locas

Solo debes entrar en ella y tendrás acceso a todos los Webinars que vamos realizando para disfrutarlos sentado en tu sofá preferido en el salón de casa.
 
Happy Hacking Hackers!!! 

Autor: Fran Ramírez, 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.

 Contactar con Fran Ramírez en MyPublicInbox

sábado, mayo 06, 2023

Ángel o Demonio: El debate sobre la I.A. en Horizonte T3x116 @navedelmisterio

El pasado jueves - ya casi en la madrugada del viernes - Iker Jiménez y Carmen Porter quisieron llevar el debate sobre la I.A. al programa de Horizonte, para hablar un poco de todo lo que está pasando alrededor de este mundo. Para ello, Ángel Niño, Cristina Aranda y yo fuimos invitados para tener una charla abierta a colación de la portada de The Economist sobre A.I. reflejando la dualidad. Sobre este tema yo he hablado mucho, y hablo mucho en este blog. Y tengo una opinión muy tibia al respecto.


No soy de los que voy a demonizar la I.A. por los futuros distópicos con los que nos hemos creado y los capítulos de BlackMirror que uno a uno se puedan ir haciendo realidad, pero sí que creo que igual que hemos visto que nos han hecho - y por eso hemos puesto algunas regulaciones al respecto - con Internet, con los datos, con la privacidad, o con lo que se considera delito o no, con el tema de la I.A. nos hace falta alguna reflexión más para saber qué es lo que queremos tener o no en nuestra vida.

Figura 2: Portada de The Economist sobre A.I.

El programa ya lo tienes disponible a la carta, por si quieres verlo, y esta sección en concreto comenzó en el minuto 34 del programa, ya que antes se trataron otros temas. Lo puedes ver en el siguiente enlace.    


Ya vimos que en la industria militar hay preocupación como vimos con REAIM, al igual que lo hay con los modelos de Generative-AI usando Stable Diffusion que son entrenados con datos con derechos de autor y generan tantos problemas a la hora de valorar si las obras derivadas generadas con modelos de difusión son ( o no ) como cuando una canción copia unos acordes de otros o no - recordad el famoso caso del rapero y el uso de parte de la melodía de "Every breath you take" que tiene que pagar 5.000 USD al día por copiar esos acordes.
Y por supuesto, temas como que las empresas pongan en producción modelos de I.A. que puedan tener sesgos de género, de raza, de edad o de lo que sea a la hora de usarlos en tomas de decisiones que pueden afectar a la vida de las personas. Como en el caso de los sesgos de género en los traductores de Google y Bing para los que yo abrí la petición de cambio.


Tomaos este pequeño debate como un anticipo para OpenExpo Europe 2023, que tendrá lugar el 18 de Mayo de este año, y donde estaremos hablando Iker Jiménez, Ángel NiñoCristina Aranda y yo mismo de estos temas. Por si te interesa tanto, para la edición de este programa sacamos un código descuento que es "HORIZONTE1" y que deja el coste de la entrada a OpenExpo Europe 2023 a solo 1 €.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, marzo 20, 2023

"Are You Talkin' ta me?" DeepFake Voice en Español & Detección de Voces Clonadas

En esta parte llegamos al final de este artículo que hemos dividido en cinco entradas. La primera en saber quién utiliza tus Alexa o tu Google Home sin tu permiso. La segunda parte en analizar un audio con modelos de Machine Learning. En la tercera parte vimos cómo buscar a una persona en Data Lakes de Audios y cómo comparar voces con Inteligencia Artificial. En la parte anterior nos centramos en ver cómo se pueden clonar voces a partir de audios capturados de personas y usarlos para hackear un sistema de biometría de voz. En esta última vamos a verlo en Español y cómo detectar el uso de técnicas de DeepFake de Voz.
Antes de comenzar con el clona de voz en Español, quería hacer referencia a que el trabajo de hackear un sistema de banca con 2FA que utilice biometría de voz se nos ocurrió meses atrás, debido a que en Inglaterra hay varios bancos que utilizan este sistema de seguridad, y lo conocíamos bien. 

De hecho, días antes de nuestra presentación en RootedCON 2023, un periodista hizo exactamente la misma prueba con su banco, tal y cómo contó en el artículo "How I broke into a Bank Account with AI-Generated Voice".

Clonando Voces en Español: Microsoft Azure Speech Studio

Ahora vamos con el clonado de voces en Español, y usamos para esta tarea el servicio de Microsoft Azure Speech Studio, que permite hacer un clonado de altísima calidad utilizando tanto ficheros de audio como grabación desde el micrófono. 

Figura 46: Clonando mi voz con Microsoft Azure Speech Studio

Eso sí, es necesario aceptar los términos y condiciones del clonado de la voz desde el micrófono. En este caso hemos hecho la prueba con 50 frases, para intentar hacerlo bien, lo que lleva aproximadamente una hora de trabajo y clonación de la voz.

Figura 47: Clonando mi voz con Microsoft Azure Speech Studio

Así de sencillo es hoy en día. Después, ya se puede utilizar de forma indiscriminada en cualquier entorno, ya sea en directo, o en vídeos grabados, como vamos a ver a continuación.

Stable Diffusión + Talking head + Voice Clonned + Lips Sync 

En este primer ejemplo hemos utilizado una imagen creada con el servicio de Stable Diffusion en MyPublicInbox que te permite entrenar un modelo con solo 20 imágenes tuyas. Una vez entrenado puedes generar cualquier imagen de ti que quieras con solo darle el prompt adecuado. 
Después, hemos animado la imagen generada por el modelo de Stable Diffusion en MyPublicInbox con un algoritmo de Talking Heads, que permite con una sola fotografía generar un movimiento. Después, con la voz clonada hicimos el audio. Y para terminar, un algoritmo de Lips Sync, para conseguir que el audio y los labios de la Talking Head encajaran.

Figura 49: Stable Diffusion + Talking Heads +
+ Voz Clonada + Lips Sync

El resultado es curioso, pero lo hicimos más que nada para la presentación, ya que el objetivo era ver cómo la voz tiene mi tono y mi forma de hablar habitual. Eso sí, no la hemos tuneado con una herramienta de generación de velocidad, tono, volumen, etcétera en tiempo real, por eso queda un poco "loquendo".

Figura 50: DeepFake + Voz Clonada + Lips Sync

En este ejemplo, es lo mismo, pero con un vídeo de Youtube, y se puede hacer perfectamente con los vídeos de TikTok o de cualquier otra red social donde alguien haya publicado su imagen, su voz o un vídeo. Adios a que tu biometría sea tuya.

DeepFake Voz Detector con Machine Learning

De nuevo, volvemos al mismo problema de saber cuándo alguien está utilizando una voz clonada o no, para proteger nuestros servicios. Para este ejercicio usamos dos algoritmos de Machine Learning que nos permitieran añadir capas de protección a un sistema, tanto de seguridad basada en biometría de voz, como a nuestras herramientas anti-DeepFakes.

Figura 51: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández.

Las protecciones en las que hemos trabajado son, detectar cuando no es una persona sino un speaker reproduciendo un audio al aire, y entrenar un algoritmo para detectar voces clonadas con un gran dataset.

Machine Learning para detectar voces clonadas

Volviendo a la aproximación de la segunda parte de este artículo donde usamos algoritmos de Machine Learning para clasificar imágenes basadas en sus espectogramas, vamos a hacer lo mismo. Tenemos un fichero de audio con una voz (.wav), lo transformamos en espectograma (imagen) y utilizamos el framework fastai para entrenamiento de modelo, con la librería librosa para tratamiento de archivos de audio y conversión en espectrogramas.

Figura 52: Algoritmo de ML para detección de voces clonadas

Para entrenar el modelo usamos el dataset ASVSpoof 2019, que es un challenge para lograr detección de voces clonadas con los mejores algoritmos. El entrenamiento se hace con la recogida de voces clonadas y voces reales de este dataset y transformación en espectogramas para entrenar la red sobre imágenes. Una vez se tiene el modelo entrenado, se puede hacer predicción sobre un archivo de voz transformándolo previamente en espectrograma (mismo pre-proceso que para el entrenamiento). 

Figura 53: Detección de voz clonada y voz real con ML

Es verdad que los resultados son muy sensibles al pre-procesado de los ficheros, al ruido en los audios que es necesario eliminarlos, hay que tener una normalización de audios para el entrenamiento, debe ser de  similar duración entre audios, etcétera. Pero en todo caso, te da un indicio más sobre el audio de entrada en tus sistema.

Machine Learning para detectar voces sintéticas

En este caso la idea es distinguir entre si un audio está sonando desde la voz de una persona o si ha sido grabado. Es decir, si por ejemplo un atacante ha generado una voz sintética de alguien en un ordenador y lo está reproduciendo o se está escuchando mientras está realizando una llamada telefónica para engañar a alguien.  Para este algoritmo de Machine Learning se necesita un conjunto de datos de entrenamiento  que incluya audios originales y audios que simulen el escenario comentado, como es el dataset FoR (fake-or-real dataset) que incluye en sus datos un dataset diseñado específicamente para esta tarea. 
Para simular el escenario comentado, reprodujeron audios provenientes del altavoz de un ordenador y los re-grabaron utilizando otro dispositivo con micrófono no profesional, simulando escenario de un atacante.También tienen otro dataset con audios sin ser re-grabados, es decir, audios originales. A partir de estos datos, se utiliza Deep Learning para un problema de clasificación, con el objetivo de distinguir entre audios originales y los re-grabados que simulan escenario de atacante. 

Los audios primero se pre-procesan utilizando comandos de la librería de manipulación de audios SoX (eliminar silencios en principio y fin, convertimos en un único canal mono, convertimos a tasa de muestreo 16KHz, normalizamos volumen) y se convierten en espectrogramas, por lo que la tarea se convierte en un problema de clasificación de imágenes. Se entrena una red convolucional utilizando el framework Fastai

Figura 55: Detección de voces re-gragadas vs originales

No es perfecto y tiene sus limitaciones, y los propios autores comentan en las conclusiones del paper que el dataset que han creado para simular escenarios de atacante no es muy general, ya que solo utilizan un único hablante y un único tipo de dispositivo para la re-grabación, por lo que el modelo entrenado puede que no sea del todo robusto frente a audios provenientes de otras fuentes. Pero evidentemente, es una buena linea de investigación y aproximación a este problema.

Conclusiones

Visto lo recorrido en este artículo, podemos decir que la clonación de voces en cualquier idioma se puede dar por algo muy común, por lo pensar en la biometría de voz como una protección de seguridad es una mala idea. Si la estas utilizando, hay que mejorar los mecanismos de seguridad para la detección de posibles voces clonadas. Además, hay que tener en cuenta que escuchar a personas cercanas ha sido siempre motivo de confianza, y esto los estafadores lo saben, así que ya hemos tenido este mismo mes los primeros estafadores utilizando voces clonadas de familiares para estafar a personas.
Además, las técnicas de DeepFake, tanto de imagen, vídeo como voces, están cerca de ser perfectas, con lo que discriminar cuándo estamos hablando con una persona sintética o de verdad, va a ser cada vez más complicado. Con imágenes ya vimos que es casi imposible, pero con los avances en IA, con vídeo conferencias o conversaciones de voz en tiempo real, va a ser totalmente imposible en breve. Es, por tanto, necesario seguir desarrollando las técnicas para mejorar el Test de Voight-Kampff y detectar DeepFakes de vídeo y audio. Todo lo visto aquí, y más, lo veremos incorporado a nuestra herramienta.

¡Saludos Malignos!


Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, marzo 15, 2023

"Are You Talkin' ta me?" Hacking Voice Biometry with DeepFake of Voice

El camino recorrido hasta el momento en este artículo de "Are you Takin' ta me?" nos lleva inexorablemente a la penúltima estación, que tiene que ver con la clonación de la voz de la persona que ha estado utilizando nuestro SmartSpeaker sin permiso. Para ello, vamos a utilizar los audios que tan amablemente nos ha dejado grabados en nuestra cuenta de Alexa, y probar si somos capaces de hacer una DeepFake de su voz de calidad suficiente como para engañar al modelo de Inteligencia Artificial de Speaker Recognition que analizamos en la entrada anterior.

Figura 33: "Are You Talkin' ta me?" Hacking Voice Biometry with DeepFake of Voice

Para hacer esta prueba, vamos a tomar por ejemplo un servicio que existe en UK desde hace años, que consiste en utilizar la Biometría de la Voz como 2FA (Second Factor Authentication) en entidades bancarias. 

Bank with 2FA based on Voice Biometry

Para ello, hemos creado esta web de un banco online, donde como segundo factor de autenticación utilizamos la biometría de la voz del usuario. Para ello, tenemos grabaciones de voz hechas a la persona en un entorno considerado seguro, y después utilizamos el algoritmo de Inteligencia Artificial de SpeakerRecognition de SpeechBrain para comparar el speaker que habla en el proceso de login con las grabaciones originales de éste.

Figura 34: Banco con 2FA de Biometría de Voz. Pass.

Para ello, cuando el usuario tiene la contraseña correcta, pedimos la lectura de un texto, que no tiene por qué ser el mismo, lo capturamos desde el micrófono, y después de lo comparamos con el algoritmo. Si nuestro modelo de IA da una Similitud de más de 0.60 lo damos por bueno. Si la Similitud es menor de 0.60 lo damos por malo. Este límite se puede cambiar dependiendo de lo afinado y entrenado que sea nuestro modelo de IA de SpeakerRecognition. Por supuesto, en un entorno de producción como un banco, dependerá de muchos factores. 

Figura 35: Banco con 2FA de Biometría de Voz. Pass.

"Seguridad" versus "Usabilidad" será una de las configuraciones, pero también afectará la situación de emergencia en cada instante de tiempo. Si ha habido una fuga de contraseñas, o hay muchos ataques de phishing en ejecución contra la entidad, probablemente es mejor subir el límite de Similitud. Si por el contrario no hay una emergencia en el momento, entonces se podría premiar la usabilidad.

Clonando la voz para hackear el 2FA

Para realizar el proceso de clonar la voz, vamos a utilizar tres proyectos distintos, para ver cómo funcionan cada uno de ellos. Para ver qué restricciones tienen, y si funcionan o no para saltar la restricción que hemos puesto en este banco sintético.

SV2TTS: Transfer Learning

El primer trabajo que vamos a utilizar para hacer el clonado se basa en el trabajo del artículo académico "Transfer Learning from Speaker Verification to Multispeaker Text-to-Speech" donde se explica cómo crear un framework basado en Deep Learning que utiliza WaveNet con una estrategia de Transfer Learning de Speaker Verification para generar un voz clonada que pueda generar el audio asociado a un determinado texto.
Es decir, se entrena un modelo de Inteligencia Artificial para hacer un Speaker Recognition, y después se utiliza el aprendizaje para, dado un texto, generar un audio que pase el aprendizaje de reconocimiento del propio algoritmo. Con este proceso, estamos haciendo una "transferencia del aprendizaje" a la generación de una voz clonada.


La solución viene con una herramienta que está disponible en Github y que necesita como mínimo un fichero de 5 segundos. No hay que pasar ningún proceso de verificación de autoría de la persona dueña de la voz. Y dependiendo de la calidad del fichero de audio original, del entrenamiento del modelo, el resultado será mejor o peor.

Figura 38: Voz clonada usada en hack 2FA. Failed

Como podéis ver en el vídeo anterior, con esta clonación, no hemos sido capaces de engañar al modelo de SpeakerRecognition de SpeechBrain utilizado como 2FA en nuestro banco. Pero, esto no necesariamente significa que no es válido. Quizá necesitamos más ficheros de audio, mejor entrenamiento, y un afinamiento más detallado. Para la demo, hemos usado un smartphone que emitía la voz clonada al micrófono, como se haría en un entorno de ataque.

ElevenLabs.io

Para obtener resultados mejores y poder hacer un bypass del control de voz por ejemplo del banco, necesitamos más calidad en la clonación. Hemos probado el servicio online de ElevenLabs.io que permite clonar voces a partir de fragmentos de audio. No exige aceptación por parte del actor (voz grabada), y tampoco se utiliza el micrófono para clonar la voz. Con los ficheros de los audios y aceptando un pequeño “disclaimer” es suficiente.
Para esta prueba hemos utilizado sólo 10 ficheros de audio de la persona a clonar sacados de las grabaciones de Alexa, y los resultados han sido muy buenos. De hecho, como veis en el siguiente vídeo, hemos sido capaces de saltar SpeakerRecogntion de SpeechBrain.

Figura 40: Voz clonada con ElevenLabs.io usada en hack 2FA. Passed

Esto es un problema de privacidad y seguridad ya que con solo unas pocas grabaciones de audio - vete a Youtube, Tiktok o cualquier otra red social - puedes clonar la voz de cualquier persona. Los resultados son muy buenos, llegando a pasar el control de nuestro banco.

Resemble.ai

Cómo último método de clonación de voz probamos el servicio de Resemble.ai, que es muy preciso y de alta calidad. Con este SaaS es cuando hemos obtenido los mejores resultados. Hay que destacar que la versión gratuita sólo permite grabar desde el micrófono, pero la versión de pago permite subir ficheros para clonar la voz partiendo de ellos. 

Para esta demo, y para probar el bypass, hemos grabado con el actor directamente al micrófono para comprobar su calidad. Se podría clonar también con mucha calidad partiendo de los ficheros pero sólo en la version de pago. 

Figura 42: Voz clonada con Resemble.io usada en hack 2FA. Passed

Como podéis ver en el vídeo anterior, es capaz de hacer el bypass de nuestro banco dando la voz como válida saltándose el modelo de SpeakerRecognition de SpeechBrain que usamos como 2FA de Biometría de Voz. Sencillo.

Figura 43: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández.

Para la última parte de este artículo, probaremos la clonación en español, veremos cómo se pueden utilizar convinadas las técnicas de DeepFakes de Vídeo y Audio, cómo entrenar un algoritmo de Machine Learning para detectar DeepFakes de Audio y los aprendizajes de esta parte del camino.

¡Saludos Malignos!


Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, marzo 14, 2023

"Are You Talkin' ta me?" Speaker Recognition & Doxing

Tras las primeras partes de este artículo, donde hablamos de "Cómo saber quiénes, cuándo y para qué están hablando a tu SmartSpeaker" y de cómo utilizar "Algoritmos de Machine Learning para analizar la voz", vamos con la tercera parte, donde vamos a contar cómo podemos realizar un proceso de localizar quién es esa persona, describiendo un proceso de Doxing y el uso de algoritmos de Inteligencia Artificial para comparar voces.

Figura 23: "Are You Talkin' ta me?" Speaker Recognition & Doxing

Para el ejemplo utilizado como hilo conductor de esta charla, se trataba de hacer un análisis dentro de nuestro ámbito de vida, pero este proceso se puede realizar mucho más exhaustivo si se trata de una investigación forense policial. 

Big Data de Voces

En cualquier caso, hay que comenzar por tener un Big Data de Voces con los posibles "sospechosos", incluso si estas son todas las personas de nuestro entorno de las que tengamos algún audio grabado, o si se trata de toda la base de datos de audios de los empleados de una empresa, o personas que salen en YouTube. El tamaño de ese Data Lake de audios depende del tamaño de la investigación. El proceso es el siguiente:
  1. Construir el Data Lake de Audios Taggeados.
  2. Si en un audio salen varias personas hacer la Diarization
  3. Tener un modelo de IA para compara voces.
  4. Hacer una búsqueda en el Big Data de Audios comparando muestras automáticamente.
Este proceso implica conseguir primero todos los audios que sean posibles del ámbito de sospechosos. Por ejemplo, en un entorno judicial se podrían utilizar las voces grabadas de personas investigadas, o personas condenadas por delitos similares. Podría haber una colaboración a nivel internacional de los cuerpos de seguridad para compartir estas capacidades de búsqueda.

Speaker Diarization

En el entorno de nuestra presentación, donde hablamos de una investigación personal de alguien que busca quién está en su casa cuándo él no está hablando con su Alexa, podríamos buscar entre amigos, conocidos, compañeros, buscando sus audios en WhatsApp, Telegram, Google Assistant, Alexa, Youtube, o cualquier otra red social como Tiktok o Twitch

Figura 24: Construir el Data Lake con pre-procesado de Speaker Diarization

Para realizar un proceso de Speaker Diarization, hemos utilizado un modelo de Inteligencia Artificial que se encuentra en el Toolkit pyannote.audio y que se puede utilizar pre-entrenado mediante Token a través de HuggingFace. Se escoge, por cada voz, el momento de vídeo/audio donde más habla de seguido cada persona, y se guardan como ficheros .wav, teniendo tantos como diferentes hablantes haya en el vídeo.

Así que, después de descargar todos los audios, diarizarlos, y taggearlos poniendo cuál es la fuente en la que se obtuvo, ya tendremos un Big Data sobre el que trabajar para localizar a nuestro objetivo. 

Speaker Recognition

Ahora debemos pasar a la siguiente fase, que consiste en tener un modelo de Inteligencia Artificial entrenado para comparar voces y saber si es de la misma persona o no. Para ello, al igual que los modelos de comparación de caras, debemos entrenar el algoritmo con un dataset de personas que le permita de reconocer cómo comparar las voces de los "speakers". 
El modelo de verificación de voz que hemos utilizado el modelo de Inteligencia Artificial Speaker Recognition pre-entrenado con el dataset VoxCeleb - VoxCeleb1 y VoxCeleb2-, que tiene miles de voces reales de famosos etiquetados, que ya se encuentra disponible para usar en el toolkit Speechbrain.
Este modelo codifica ambas voces en correspondientes vectores numéricos basándose en las características de la voz, al estilo de los espectógramas. Estos vectores vectores se comparan entre sí y se calcula un grado de  similitud, siendo Similitud=1 la que  representa exactamente la misma voz, mientras que 0 significa que son totalmente distintas.

Normalmente se obtienen puntuaciones en voces similares con rangos de Similitud mayores al 0.60, y para voces no similares menores del 0.20 (lo normal es que sean valores muy bajos en torno a 0). Se establece un umbral de similitud por nosotros para considerar si se trata de la misma persona o no, por ejemplo 0.50

Doxing con audios de voz

Una vez construido el modelo de Speaker Recognition, ya podemos comenzar a probarlo. Para ello, tenemos aquí unos pruebas con un Google Colab corriendo este modelo, donde podemos ver que si el Speaker no es reconocido, nos da la información de error.

Figura 29: Speaker Recognition Failed

Esto quiere decir que el grado de Similitud ha sido inferior a 0.50, tal y como se puede ver en el vídeo anterior. Y en el siguiente, cuando el "Speaker" sí que es reconocido, obtenemos un mayor grado de Similitud como se puede ver aquí.

Figura 30: Speaker Recognition Succeded

Os hemos puesto solo dos pruebas, la de correcto y la de incorrecto, pero lo hemos probado con muchos ficheros de audio, y el reconocimiento del speaker es bastante efectivo, lo que nos va a servir para probar después si la DeepFake de Voz que vamos a hacer en la siguiente parte es de suficiente calidad o no.

LoritoHunt

Por supuesto, una vez que se tienen todas piezas, ya podemos hacernos nuestra herramienta automática para localizar, dentro de un Big Data de Audios, a una persona. Con los algoritmos de Machine Learning para analizar la voz podemos seleccionar qué muestras etiquetadas son las que hay que comparar, y con el algoritmo de Diarization y Speaker Recognition, podemos acotar la búsqueda y tener un script en Python que busque al speaker en nuestro Data Lake.

Figura 31: Libros de Python para Pentesters y Hacking con Python
de Daniel Echeverri publicados en 0xWord.

Esto es algo que hace este ejemplo de LoritoHunt, para localizar de la forma más rápida en qué fichero de audio del Data Lake de Audios se ha localizado a este "speaker", lo que puede resolver investigaciones que largo tiempo no ha sido posible esclarecer.

Figura 32: LoritoHunt, para buscar a un speaker en el BigData de Audios

Con esto terminaríamos esta tercera prueba, de localizar a una persona mediante un proceso de Doxing que utiliza un modelo de Inteligencia Artificial lanzando sobre un Data Lake de Audios, y para que el proceso esté optimizado, utilizamos el análisis de voz hecho con los algoritmos de Machine Learning. Ahora nos toca pasar a la siguiente fase, que consiste en ver si a esta persona podremos clonarle la voz para hacer una DeepFake de Voz con solo estos audios recopilados de un Alexa.

¡Saludos Malignos!


Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares