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)  


No hay comentarios:

Publicar un comentario