lunes, julio 26, 2021

Una historia de Blade Runners & Virtual Replicants (Parte 1 de 5)

Al comienzo de la mítica película Blade Runner, aparece una escena icónica que todos los fanáticos de la Ciencia Ficción con mayúsculas no olvidamos. Nos referimos a aquella en la que un agente “Blade Runner” está haciendo una prueba (test de Voight-Kampff) a una “persona” para detectar si realmente es humano o no lo es. Lo primero que llama la atención es lo complicado que es detectar si una persona es real o no, lo que implica que la tecnología es tan avanzada que es fácil engañar a otros con una replica (de hay el término “Replicantes” que se utiliza durante la citada película) de un ser humano. Y algo parecido está ocurriendo, salvando las distancias, en el mundo digital y la ciberseguridad. Estamos hablando de las DeepFakes utilizadas para crear Virtual Replicants que puedan ser utilizados en tiempo real a través de vídeo conferencias o en grabaciones de vídeo digital.

Figura 1: Un historia de Blade Runners & Virtual Replicants (Parte 1 de 5)

En vez de clones o replicantes biológicos, esta vez nos referimos a replicantes digitales que llamamos "Virtual Replicants". O mejor dicho, modelos de inteligencia artificial entrenados en clonar personas, ya que la idea de una DeepFake es suplantar la identidad de otra persona, ya sea en vídeos grabados o incluso a través de una reunión virtual, como veremos más adelante. Y como ocurre en la película, la detección de dichos replicantes digitales no es nada sencilla.

Veremos que existen métodos “técnicos” como el análisis de metadatos de los ficheros, o detección de las trazas de los algoritmos utilizadoss en las operaciones de convolución ,por ejemplo, hasta otras aproximaciones más “laterales” como por ejemplo detectar la frecuencia del parpadeo de los ojos del replicante o el reflejo de las pulsaciones del corazón en la piel, que serán nuestro test de detección de Virtual Replicants para saber si estamos hablando de una persona o no.

Figura 2: Boceto de la máquina Voight-Kampff. Fuente:

Esto ya no es problema del futuro, es un problema de ahora. Durante el mes de abril de 2021 ya vimos el primer “supuesto” caso de uso de un Virtual Replicant aplicado a un engaño en videollamada el cual se realizó con éxito, llegando a hacer creer a interlocutores de la UE que realmente la persona detrás de la pantalla era realmente la que ellos pensaban, del cual hablaremos de nuevo más adelante por que tiene sorpresas.

Y esto irá seguro a más. A medida que se “democratice” el uso de estas tecnologías, veremos engaños más y más difíciles de detectar. Recordemos que el éxito de estos engaños está relacionado con la calidad y definición de las imágenes que generan los modelos entrenados de inteligencia artificial para reproducir personas de forma realista en tiempo real, y eso se consigue utilizando computación. Y como ya sabemos, cada día tenemos más y más potencia de cálculo al alcance de la mano. Por lo tanto, vamos a necesitar “Blade Runners” digitales para poder enfrentarnos a esta nueva amenaza de los "Virtual Replicants".

DeepFakes, FaceSwapping y GANs en Ciberseguridad

Las DeepFakes han entrado en nuestra vida desde hace unos años. El rápido avance de esta tecnología y su democratización es algo que está rompiendo barreras y lo que hace unos años era complejo de montar y desplegar, hoy día se puede hacer con pequeñas aplicaciones que llevamos en el bolsillo. La intención de este artículo es mostrar ciertos aspectos como puede ser la generación de vídeos, tanto en su modo FaceSwapping que se focaliza en la suplantación de caras o algo más avanzados y complejos como es un modelo de IA entrenado con una GAN que genera a un replicante digital completo en tiempo real. 


El poder en el ámbito de la desinformación y la manipulación que puede tener este tipo de tecnología es muy alto, ya que estamos viendo y escuchando a personas públicas comunicarnos algo muy elaborado y puede que lo que estemos viendo sea un replicante virtual, por lo que tendremos que afinar los test de detección para saber qué es real y qué no es real. En el año 2018 el ex-presidente Barack Obama, impresionado por esta tecnología, y por las Fake News, dijo que para los políticos hoy en día porque antes discutían por si algo que estaba pasando estaba bien o mal, y hoy, tienen que discutir por si algo está pasando o no de verdad.


Figura 3: DeepFake de de Barack Obama

Y es que uno de los primeros ejemplos que fascinó al mundo fue con el vídeo de Barack Obama dondese utiliza IA para crear una representación de los gestos de su cara y su boca, mapeada con un audio de voz sintetizada con la que se puede suplantar y hacerle decir cualquier cosa. Una herramienta peligrosa de cara a los posibles mensajes a la población que se pueden decir. 


Figura 4: Steve Buscemi & Jennifer Lawrence Deepfake con FaceSwapping

En el segundo vídeo se puede ver como la cara del actor Steve Buscemi aparece suplantando a la actriz Jennifer Lawrence solo como forma de explicar su pontencial para la generación de vídeos que pudieran ser realistas a la hora de incriminar o difamar a una personalidad pública, pero que hoy en día también se utiliza masivamente en el mundo del cine.

La generación de noticias falsas con contenido audiovisual es una de las posibilidades que se muestran, como explicamos en el año 2018 en nuestra charla de Security Innovation Day. Ya sabíamos que las FakeNews están aquí desde hace mucho tiempo, pero el uso de la tecnología masivamente cambió el mundo, como vimos con el escándalo de Cambridge Analytica, que dio la vuelta al mundo y nos metió de repente en un nuevo futuro. Viendo esto, es fácil entender el importante papel que tendrá la IA en la detección de Virtual Replicants

La realidad es que la IA con modelos de Machine Learning ya está presente en muchos procesos en ciberseguridad, dónde aporta un valor añadido para detectar ciertas amenazas. En nuestro libro se puede ver el estudio de detección de anomalías de red llevado a cabo por Carmen Torrano y Rafa Sánchez. Mediante la aplicación de un algoritmo de aprendizaje supervisado basado en clasificación se puede entrenar a una máquina para diferenciar entre tráfico legítimo y tráfico anómalo. Mediante la etapa de puesta en producción la máquina debe ser capaz de diferenciar entre tráfico legítimo o normal de lo que es tráfico anómalo. 

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

Y son muchos los proyectos que usan Inteligencia Artificial con modelos de Machine Learning que se van metiendo en nuestro mundo de cibersegurdiad día a día, com PhishAI, o los proyectos de passowrd guessing, esteganografía y cracking basados en GANS de los que ya os hablamos en el artículo de GANs: Inteligencia Artificial y Ciberseguridad.

Faceswapping y autoencoders

Centrandonos en FaceSwapping, DeepFakes y Virtual Replicants, la primera tecnología que hay que entender son los autoencoders, que es fundamental para el proceso de suplantación de caras de forma realista. Un autoencoder trabaja con un espacio dimensional reducido para simplificar el problema. En otras palabras, de una imagen se hace una reducción de dimensionalidad captando ciertas características que nos permiten generar lo que para nosotros será un vector base o estado latente de construcción de una cara. Podemos decir que capturan elementos base de una cara para, posteriormente, desde ese vector base poder reconstruirla con la menor pérdida posible de calidad y pasando las validaciones de autenticidad que pongamos.

Figura 6: Extracción de estado latente o vector base de una cara

Gracias a esta tecnología potente de autoencoders, y que bien entrenada permite llevar a cabo un faceswapping. Durante los últimos años, las tecnicas de suplantación de caras ha mejorado bastante, y se puede ir viendo en la evolución que vamos a mostrar después. Requiere menos entrenamiento que hace un par de años y los resultados son mejores.

Podríamos resumir el proceso de manera sencilla con el ejemplo de suplantación de un fotograma de un vídeo. Supongamos que queremos poner la cara de Chema Alonso en un vídeo de Axl Rose. Para ello lo primero será buscar caras de Chema Alonso en diferentes vectores base. Después buscar qué vector base de las caras de Chema Alonso se asemeja más al vector base de la cara de Axl Rose que se quiere suplantar. Una vez hecho, un modelo de Inteligencia Artificial deberá ir refinando los colores, fondos, sombras, gestos, etcétera, hasta que consiga un imagen suplantada con una calidad suficiente como para engañar a un sistema de reconocimiento facial de Chema Alonso - implementado por otro modelo de inteligencia artificial -.


Figura 7: Autoencoder y decodificación cruzada para el FaceSwaaping

En el caso del faceswapping el objetivo es utilizar las facciones de la imagen A y obtener una salida con el rostro de la imagen B. Si nos fijamos en el siguiente ejemplo, la imagen A pasa por un encoder que obtiene el "espacio latente" o "vector base", con las características necesarias capturadas para poder reconstruir la imagen A, pero el vector base o espacio latente lo pasamos por el decoder de B, por lo que obtenemos las facciones de la imagen A con la cara de la imagen B. De esta forma funciona el faceswapping con autoencoders.

Si analizamos el proceso, para hacer un buen Faceswapping necesitaremos:

- Datos de entrada de la cara de la persona a poner en el vídeo: Formado un conjunto suficiente de caras de las que poder sacar un mayor número de estados latentes en posiciones de la cara lo más similares posibles a las que se van a utilizar en el vídeo final, para poder hacer una decodificación en la cara destino que de la base del entrenamiento.

- Un modelo de inteligencia artificial que refine el modelo para conseguir una imagen cada vez más realista de la persona a suplantar. Esta IA será el Generador (G) de imagenes con las cara suplantando intentando ser más realista cada vez.

- Otro modelo de inteligencia artificial que reconozca bien a la persona suplantada. Es decir, alguien que diga si en la imagen final está la cara de la persona a suplantar o no. Este será un modelo de inteligencia artificial focalizado en reconocimiento facial, llamado Discriminador (D), que le dirá al Generador si la cara que le ha dado la da como buena o no. Si el Discriminador no la da como buena, el Generador deberá seguir refinando la suplantación.

Con este proceso, necesitaremos utilizar un algoritmo de autoecoder para suplantar las caras en estado latente más aproximadas, datos de entrada para la IA del Generador formados por las caras de la persona a introducir en el vídeo final, y una IA entrenada - el Discriminador - para reconocer facialmente a la persona a la que se quiere suplantar. Al final, de lo que se trata es de que el Generador suplante las caras en un fotograma y las refine hasta que engañe al Discriminador. Cuando lo haya hecho tendremos una suplantación realista de la cara que engañará a las personas igual que ha engañado al Discriminador. Esa es al base de la teoría, y para ello utilizaremos una GAN (Generative Adversarial Networks).

GAN (Generative Adversarial Networks)

En el caso de las GANs tenemos el siguiente esquema que se puede ver en la imagen. Son dos redes neuronales enfrentadas. Uno es el Generador y otro el Discriminador. Lo que hacen es un juego de suma cero. Competirán el uno con el otro para ver si el generador engaña al discriminador o no. En otras palabras, el Generador (G) generará imágenes falsas y el Discriminador (D) comparará imágenes de entrenamiento reales con la imagen generada por el generador. 

Figura 8: GAN para FaceSwapping usando Autoeconders

Cuando el Generador engañe al Discriminador y éste no sepa diferenciar cuál es la real, el Generador ha ganado y cuando el Discriminador sepa diferenciar cual es la falsa, el Discriminador gana. El entrenamiento de las GANs funciona así:
  • G (generador) genera muestra y se las pasa a D (discriminador). Es decir, G intenta engañar a D.
  • D estima la probabilidad de que la muestra provenga de G (D intenta descubrir a G).
  • Entregar D para desenmascarar a G maximizando la probabilidad de que D esté equivocado.
  • Indicar a G cómo de cerca ha estado de engañar a D.
Hay una serie de riesgos en el entrenamiento de GANs, que también se comentaron y que son:
  • El tiempo de entrenamiento es largo, siempre dependiendo de los recursos que se utilicen y se dispongan.
  • El modelo puede no converger.
  • G se queda estancado y no genera muestras válidas o variadas.
  • D se hace demasiado bueno y condena a G.

1 comentario:

  1. Algún consejo a la hora de posar para las fotos que subimos a las RRSS, aparte de no hacerlo?
    Muchas gracias por tu artículo, alucinante

    ResponderEliminar