Los DeepFakes siguen estando en boca de todos gracias a las redes sociales, como el vídeo viral de Tom Cruise o el challenge de Putin en un gimnasio, ambos compartidos por TikTok. Estos videos nos hacen reír y nos muestran qué cosas puede hacer la tecnología en un futuro. Pero el tema se complicó cuando The Guardian publicó una noticia donde distintos miembros del Parlamento Europeo fueron víctimas de un ciberataque realizado con DeepFakes tal como hicieron el ataque del CDO que explicaron Pablo González y Enrique Blanco sobre Chema Alonso. Ya no es una posibilidad, sino una realidad.
En esta noticia se menciona que distintas figuras de las altas esferas del parlamento europeo, incluido Rihard Kols (encargado de asuntos externos de Letonia) o Tom Tugendhat (encargado de asuntos externos de Reino Unido) fueron conducidos hacia videollamadas falsas con miembros del gabinete de Alexei Navalny. El propio Tugendhat culpó en su Twitter al mismo gabinete de Putin de los ataques recibidos.
Dejando de lado cuestiones políticas en las que, como podéis imaginar, no quiero entrar, este tema me sigue produciendo malestar dado que diversos medios ya consideran los DeepFakes como una de las tendencias de ciberataque. Me recuerda al cuento de Pedro y el Lobo: en Ideas Locas hemos ido avisando de que esto llegará desde que en el año 2018 vimos que el FaceSwapping ya tenía una potencia brutal y se podría alcanzar el real time en breve, como vimos en 2019 en una PoC del ataque… y ha llegado.
Figura 1: (DFaaS) DeepFakes as a Service en la DeepWeb:
DeepFakes como Ciberataque y cómo detectar estos APT
En esta noticia se menciona que distintas figuras de las altas esferas del parlamento europeo, incluido Rihard Kols (encargado de asuntos externos de Letonia) o Tom Tugendhat (encargado de asuntos externos de Reino Unido) fueron conducidos hacia videollamadas falsas con miembros del gabinete de Alexei Navalny. El propio Tugendhat culpó en su Twitter al mismo gabinete de Putin de los ataques recibidos.
Figura 2: Tweet de Tom Tugendhat sobre los ataques con DeepFakes
Dejando de lado cuestiones políticas en las que, como podéis imaginar, no quiero entrar, este tema me sigue produciendo malestar dado que diversos medios ya consideran los DeepFakes como una de las tendencias de ciberataque. Me recuerda al cuento de Pedro y el Lobo: en Ideas Locas hemos ido avisando de que esto llegará desde que en el año 2018 vimos que el FaceSwapping ya tenía una potencia brutal y se podría alcanzar el real time en breve, como vimos en 2019 en una PoC del ataque… y ha llegado.
Algunos recordaréis la estafa del CDO con DeepFakes que publicamos hace más de dos años. Mis compañeros del equipo de Ideas Locas, Enrique Blanco y Pablo González presentaron en la RootedCON 2019 como con una GAN y un Neural Text-2-Speech Microsoft, éramos capaces de suplantar a Chema Alonso en un vídeo, diciendo que nos hiciera una transferencia. Y aunque esa transferencia nunca llegó, sirvió para mostrar al mundo de la ciberseguridad que lo que sí que iba a llegar, era el Lobo.
Figura 3: Pruebas para el ataque del CDO a Chema Alonso
Voy a refrescar un par de cosas de los DeepFakes, y a mostrar algunos avances, para que veáis que esto sigue y seguirá siendo un problema. Pero primero, hablemos de datos. Distintas organizaciones de investigación han querido abordar el problema, primero creando datasets que se puedan tratar y comparar resultados, como los Databases Imagenet o YOLO para tareas como Image Classification o Object Detection. Los datasets de imágenes falsas más conocidos son FaceForensics++, DFD, DFDC y Celeb-DF. Estos intentan proporcionar una gran cantidad de DeepFakes generados con distintos métodos para una representación completa de los DeepFakes in the wild. Os dejo por aquí una comparativa de los distintos datasets más utilizados:
Figura 4: Comparación Datasets de DeepFakes
Por ejemplo, DFDC (Facebook) cogió 4326 sujetos para generar 25TB de raw data, y utilizaron software off-the-shelf como DeepFaceLab con distintos modelos de GANs y Autoencoders. Para que veáis lo sencillo que es generar un DeepFake realista, aquí tenéis un vídeo tutorial para utilizar el software anterior, sin ánimo de que lo utilicéis para fines criminales.
Figura 5: Tutorial de DeepFaceLab
Para la detección de estos vídeos se suelen considerar dos formas analizando los distintos frames y audio de un video: análisis forense de las imágenes y extracción de datos biológicos a partir de imágenes.
Figura 6: Paper de DFDC
En Ideas Locas desarrollamos un plug-in de Chrome para que un usuario pudiera seleccionar un vídeo por Internet y ejecutar distintos algoritmos de detección de DeepFakes, basados en el análisis forense de imágenes. Este plug-in implementaba cutaro investigaciones científicas:
- FaceForensics++: Que nos permitirá comprobar DeepFakes en base a un modelo entrenado sobre su propia base de datos, y aumentarla a medida que vayamos procesando nuevos vídeos.
- Exposing DeepFake Videos by Detecting Face Warping Artifacts: Dado que los algoritmos de DeepFakes actuales solo pueden generar imágenes de resoluciones limitadas, dejan artefactos distintivos en los vídeos DeepFake. Esta herramienta es capaz de detectarlos con un modelo de CNN.
- Exposing Deep Fakes Using Inconsistent Head Poses: Los DeepFakes se realizan con un swap entre una cara original y una cara sintetizada, por lo que esto introduce errores en la detección de la pose de la cabeza en 3D. Con estas incoherencias, y gracias al modelo HopeNet, se hace un estudio estadístico entre los distintos vectores calculados. Aquí podéis ver un ejemplo en el que se ve que esta animación de Chema Alonso hace "cosas raras".
Figura 7: DeepFake de movimiento de una foto.
- CNN-generated images are surprisingly easy to spot...for now: Dadas las características especiales de las imágenes creadas por 11 modelos distintos de generadores basados en CNNs, un clasificador de imágenes estándar puede generalizar bien a otras arquitecturas. De esta manera se confirmó que las imágenes actuales generadas por CNN comparten defectos sistemáticos, evitando que logren una síntesis realista.
Figura 8: Arquitectura API DeepFakes Detection de Ideas Locas
En el caso de Tugendhat, por ejemplo, y utilizando la librería cv2, se procesaría el stream del vídeo y se comprobaría si ese vídeo puede ser fake en el momento en que empieza la transmisión, como si de un factor de autenticación se tratara. También se podrían utilizar herramientas como el face-recognition de pypi, para comprobar inconsistencias en el reconocimiento facial de las personas que aparecen en el vídeo, común en DeepFakes a tiempo real. De las técnicas para detectar vídeos fake basadas en datos biológicos, mis compañeros os hablaron ya, por ejemplo, de la detección de DeepFakes basados en el parpadeo de los vídeos.
Pero en este artículo me voy a centrar en el análisis de las pulsaciones de los individuos que aparecen en el vídeo. Exactamente, monitorizando las constantes vitales del investigado como si se tratara de una película de James Bond. Las dos técnicas más utilizadas para la detección del palpito del corazón son la fotopletismografía en remoto (rPPG) y el balistocardiograma (BCGs). Como no quiero bombardearos con información, me centraré únicamente en la primera. La Plestimografía es una técnica del cálculo del latido del corazón de un individuo a través de los distintos cambios de presión que sufre su piel, y es muchas veces utilizada para monitorizar a un individuo en cuestión.
La Fotoplestimografía en remoto es una técnica de Computer Vision que intenta emular esa técnica utilizando un vídeo del sujeto y, por tanto, calcular los cambios de presión a partir de diferencias de intensidad de píxel en los canales RGB de éste el movimiento de la cabeza y la respiración. Esta técnica tiene muchas desventajas debido a que su precisión está altamente influenciada por parámetros externos, como la luz ambiental, la calidad de la cámara, el color de piel del individuo o la distancia entre la cámara y el sujeto.
En el siguiente vídeo me podréis ver utilizando el siguiente código en C++ que, con una sencilla compilación, permite que calcules tu Beat Rate Per Minute en tiempo real utilizando tu webcam. También podéis encontrar otras implementaciones interesantes, como Pulse, que permite la monitorización con un servicio levantado en uno de los puertos de tu ordenador y con una visualización sencilla de los datos. ¿Os imagináis un detector de mentiras con una ampliación de estos códigos?
Aún y las posibles complicaciones en cuanto a precisión de éste tipo de algoritmos, la Universidad Politécnica de Madrid desarrolló una investigación científica con sorprendentes resultados: por encima del 98% de AUC (Area Under the Curve) en dos datasets, DFDC y Celebrity-DF. Se utilizan la consistencia temporal y la coherencia espacial como mecanismos para detectar las frecuencias cardiacas en vídeos faciales, aplicándolo así, en la detección de DeepFakes.
En el siguiente vídeo me podréis ver utilizando el siguiente código en C++ que, con una sencilla compilación, permite que calcules tu Beat Rate Per Minute en tiempo real utilizando tu webcam. También podéis encontrar otras implementaciones interesantes, como Pulse, que permite la monitorización con un servicio levantado en uno de los puertos de tu ordenador y con una visualización sencilla de los datos. ¿Os imagináis un detector de mentiras con una ampliación de estos códigos?
Figura 11: Probando el código de rPPG
Aún y las posibles complicaciones en cuanto a precisión de éste tipo de algoritmos, la Universidad Politécnica de Madrid desarrolló una investigación científica con sorprendentes resultados: por encima del 98% de AUC (Area Under the Curve) en dos datasets, DFDC y Celebrity-DF. Se utilizan la consistencia temporal y la coherencia espacial como mecanismos para detectar las frecuencias cardiacas en vídeos faciales, aplicándolo así, en la detección de DeepFakes.
Figura 12: Arquitectura DeepFakesON-Phys
En la imagen anterior aparece la arquitectura del modelo utilizado en DeepFakesON-Phys, que se basa en dos modelos de redes neuronales: Motion Model para la detección de movimiento de la cabeza, y Appearance Model, para la detección de cambios en la densidad de píxel.
Reflexión final
Los DeepFakes, queramos o no, ya son un problema para la sociedad. Ya hemos visto que las técnicas de Inteligencia Artificial y Machine Learning se pueden aplicar a la ciberseguridad, y diversos grupos criminales los están utilizando para intentar desestabilizar relaciones internacionales con ciberataques. Aún y habiendo muchísimas investigaciones publicadas, y otras en curso, no hay un consenso global de que los DeepFakes puedan llegarse a detectar con un grado alto de precisión, y estos métodos de generación no paran de mejorarse con los años.
Reflexión final
Los DeepFakes, queramos o no, ya son un problema para la sociedad. Ya hemos visto que las técnicas de Inteligencia Artificial y Machine Learning se pueden aplicar a la ciberseguridad, y diversos grupos criminales los están utilizando para intentar desestabilizar relaciones internacionales con ciberataques. Aún y habiendo muchísimas investigaciones publicadas, y otras en curso, no hay un consenso global de que los DeepFakes puedan llegarse a detectar con un grado alto de precisión, y estos métodos de generación no paran de mejorarse con los años.
Figura 13: Libro en 0xWord de Machine Learning aplicado a Ciberseguridad de Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández |
En la DeepWeb ya se empiezan a ver servicios DeepFake as a Service, por lo que dudo que las consecuencias sociológicas de esta tecnología tarden mucho en verse reflejadas. Pedir un DeepFake a un cibercriminal para chantajear a una persona cercana está al alcance de un par de clics.
Pero con los DeepFakes a tiempo real, como el caso mencionado que abría el artículo, esto ya no es una conversación filosófica, esto empieza a ser real, "Black Mirror Style". Si no nos podemos fiar de lo que vemos, ¿qué nos queda?.
Saludos,
No hay comentarios:
Publicar un comentario