Vistas las posibilidades del uso de la Inteligencia Artificial en ataques contra personas u organizaciones aprovechándose de la capacidad de crear vídeos falsos o de hacer interacciones en tiempo real a través de sistemas de vídeo conferencia usando GANs y sistemas de Neural Text-To-Speech, es hora de cambiar de lado y ver cómo detectar estos posibles ataques.
Hacer una detección de este tipo de situaciones no es y no será una tarea sencilla. Por supuesto, al igual que la Inteligencia Artificial puede ser utilizada, y lo será, para acciones maliciosas, ésta podrá, y está siendo utilizada, para acciones buenas y de defensa o detección.
No vamos a centrarnos en todas las posibilidades en las que las técnicas de Machine Learning y la IA puede ser usada desde el punto de vista defensivo. Para ello tenéis el libro en 0xWord de nuestros compañeros de "Machine Learning aplicado a Ciberseguridad". Nosotros vamos a centrarnos en detectar estos ataques de Face Swapping y suplantación de personas con IA en tiempo real.
La Inteligencia al servicio de lo bueno. La detección.
En esta parte hablamos primero de cómo detectar Fake News, a través del análisis de su texto, gracias al uso de algoritmos de sentimiento. Es decir, algoritmos capaces de detectar elementos como la intención, el tipo de lenguaje, si la noticia es sesgada, el clickbait, etcétera.
Los nuevos desarrollos en modelos generativos profundos, como hemos podido ver a lo largo de este artículo, han mejorado significativamente la calidad y la eficiencia en la generación de vídeos de caras falsas de apariencia realista que pueden ser utilizados como forma de reforzar la noticia falsa.
Hasta hace pocos años, resultaba muy sencillo distinguir un vídeo sobre el que se había aplicado la tecnología de Face Swapping, sin embargo, esto se está volviendo más complicado. La evolución de la calidad en generación de vídeos falsos es exponencial. Cada vez resulta más complicado distinguir un vídeo modificado de uno que es real. ¿Cómo protegernos de este tipo de ataques? Pues como hacemos siempre, pensando, investigando y desarrollando algo de tecnología.
Hace no mucho nos encontramos con la siguiente publicación: In Ictu Oculi: Exposing AI Generated Fake Face Videos by Detecting Eye Blinking, que podéis consultar en el siguiente documento. En este trabajo, se describe un nuevo método para exponer videos de caras falsas generados con redes neuronales.
El método se basa en la detección del parpadeo de los ojos en los videos, que es una señal fisiológica que no está bien presentada en los vídeos falsos sintetizados. Este método se prueba sobre los puntos de referencia de los conjuntos de datos de detección de parpadeo y también muestra un rendimiento prometedor en la detección de vídeos generados con DeepFake.
El repositorio con el código está disponible en GitHub y, aunque aún está en construcción, sirve como un ejemplo válido de aplicación de redes neuronales convolucionales recurrentes para el análisis de vídeos. En el equipo de Ideas Locas intentamos reproducir el funcionamiento de la herramienta, pero carecíamos del dataset original que nos permitiría calcular la probabilidad de que un determinado vídeo fuera falso o verdadero, por ello decidimos buscar una alternativa tal y como se indica a continuación.
Para una persona adulta sana, generalmente, entre cada parpadeo hay un intervalo de 210 segundos, pero las tasas reales varían según el individuo y la actividad que esté realizando. La velocidad media de parpadeo en reposo es de 17 parpadeos/min o 0.283 parpadeos por segundo (durante la conversación, esta tasa aumenta a 26 parpadeos/min, y disminuye a 4,5 parpadeos/segundo mientras que la lectura de esta diferencia puede ser interesante en nuestro análisis, ya que muchos de los políticos que hablan probablemente estén leyendo cuando están siendo filmado).
La duración de un parpadeo puede oscilar entre 0.1-0.4 segundos/parpadeo. Por lo tanto, tomaremos como referencia de parpadeo normal una duración en el intervalo 0.1-0.4 segundos y una tasa de parpadeo que oscile entre los 17 y los 26 parpadeos/min.
Para desenmascarar vídeos falsos, decidimos crearnos un clasificador gaussiano con Scikit-Learn muy sencillo en base a dos características fácilmente extraíbles de un vídeo haciendo uso de las librerías dlib y opencv en nuestro querido Python tal y como se muestra en el siguiente enlace:
Una vez que tuvimos nuestro modelo entrenado, sólo quedaba testearlo con los vídeos que queríamos desenmascarar. A pesar de la sencillez del modelo y de las pocas características extraídas, el modelo es capaz de discretizar si un vídeo es falso o no con bastante acierto. Esto pone de manifiesto que, si bien el modelo podría ser mejorable mediante la inclusión de nuevas características, con unas mínimas nociones de Machine Learning podríamos protegernos contra este tipo de ataques.
Conclusiones
Con todo lo que hemos visto en esta serie sobre cómo se puede utilizar la Inteligencia Artificial para realizar ataques y para hacer cosas buenas esto podemos hablar de ciertas conclusiones. Barack Obama dijo en su día:
Queda claro que utilizar la Inteligencia Artificial para engañar a la gente es asequible, pero también la IA y la ciberseguridad irán de la mano, tanto en el presente como en el futuro. Los límites de la IA no se han vislumbrado y la ciberseguridad se verá fortalecida, pero también atacada por ella. Como siempre, el conocimiento y la concienciación son los pilares sobre los que se asienta nuestra protección.
Autores: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance 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 y Enrique Blanco (@eblanco_h) es Investigador en el departamento de Ideas Locas CDO de Telefónica
**************************************************************************************************
- La IA al servicio de la Ciberseguridad [1 de 5]
- La IA al servicio de la Ciberseguridad [2 de 5]
- La IA al servicio de la Ciberseguridad [3 de 5]
- La IA al servicio de la Ciberseguridad [4 de 5]
- La IA al servicio de la Ciberseguridad [5 de 5]
**************************************************************************************************
Figura 33: Autoencoders, GANs y otros chicos (buenos y malos) del montón: La IA al servicio de la Ciberseguridad [5 de 5] |
Hacer una detección de este tipo de situaciones no es y no será una tarea sencilla. Por supuesto, al igual que la Inteligencia Artificial puede ser utilizada, y lo será, para acciones maliciosas, ésta podrá, y está siendo utilizada, para acciones buenas y de defensa o detección.
Figura 34: Libro de Machine Learning aplicado a Ciberseguridad |
No vamos a centrarnos en todas las posibilidades en las que las técnicas de Machine Learning y la IA puede ser usada desde el punto de vista defensivo. Para ello tenéis el libro en 0xWord de nuestros compañeros de "Machine Learning aplicado a Ciberseguridad". Nosotros vamos a centrarnos en detectar estos ataques de Face Swapping y suplantación de personas con IA en tiempo real.
La Inteligencia al servicio de lo bueno. La detección.
En esta parte hablamos primero de cómo detectar Fake News, a través del análisis de su texto, gracias al uso de algoritmos de sentimiento. Es decir, algoritmos capaces de detectar elementos como la intención, el tipo de lenguaje, si la noticia es sesgada, el clickbait, etcétera.
Los nuevos desarrollos en modelos generativos profundos, como hemos podido ver a lo largo de este artículo, han mejorado significativamente la calidad y la eficiencia en la generación de vídeos de caras falsas de apariencia realista que pueden ser utilizados como forma de reforzar la noticia falsa.
Figura 35: Modelo de detección de Fake News usando IA |
Hasta hace pocos años, resultaba muy sencillo distinguir un vídeo sobre el que se había aplicado la tecnología de Face Swapping, sin embargo, esto se está volviendo más complicado. La evolución de la calidad en generación de vídeos falsos es exponencial. Cada vez resulta más complicado distinguir un vídeo modificado de uno que es real. ¿Cómo protegernos de este tipo de ataques? Pues como hacemos siempre, pensando, investigando y desarrollando algo de tecnología.
Hace no mucho nos encontramos con la siguiente publicación: In Ictu Oculi: Exposing AI Generated Fake Face Videos by Detecting Eye Blinking, que podéis consultar en el siguiente documento. En este trabajo, se describe un nuevo método para exponer videos de caras falsas generados con redes neuronales.
Figura 36: In Ictu Oculi: Exposing AI Generated Fake Face Videos |
El método se basa en la detección del parpadeo de los ojos en los videos, que es una señal fisiológica que no está bien presentada en los vídeos falsos sintetizados. Este método se prueba sobre los puntos de referencia de los conjuntos de datos de detección de parpadeo y también muestra un rendimiento prometedor en la detección de vídeos generados con DeepFake.
Figura 37: LA técnica busca detectar el parpadeo no humano de los videos falsos |
El repositorio con el código está disponible en GitHub y, aunque aún está en construcción, sirve como un ejemplo válido de aplicación de redes neuronales convolucionales recurrentes para el análisis de vídeos. En el equipo de Ideas Locas intentamos reproducir el funcionamiento de la herramienta, pero carecíamos del dataset original que nos permitiría calcular la probabilidad de que un determinado vídeo fuera falso o verdadero, por ello decidimos buscar una alternativa tal y como se indica a continuación.
Figura 38: in Inctu Oculi |
Para una persona adulta sana, generalmente, entre cada parpadeo hay un intervalo de 210 segundos, pero las tasas reales varían según el individuo y la actividad que esté realizando. La velocidad media de parpadeo en reposo es de 17 parpadeos/min o 0.283 parpadeos por segundo (durante la conversación, esta tasa aumenta a 26 parpadeos/min, y disminuye a 4,5 parpadeos/segundo mientras que la lectura de esta diferencia puede ser interesante en nuestro análisis, ya que muchos de los políticos que hablan probablemente estén leyendo cuando están siendo filmado).
La duración de un parpadeo puede oscilar entre 0.1-0.4 segundos/parpadeo. Por lo tanto, tomaremos como referencia de parpadeo normal una duración en el intervalo 0.1-0.4 segundos y una tasa de parpadeo que oscile entre los 17 y los 26 parpadeos/min.
Figura 39: Blink Detection en Python |
Para desenmascarar vídeos falsos, decidimos crearnos un clasificador gaussiano con Scikit-Learn muy sencillo en base a dos características fácilmente extraíbles de un vídeo haciendo uso de las librerías dlib y opencv en nuestro querido Python tal y como se muestra en el siguiente enlace:
• Velocidad de parpadeo [blink/s] vGeneramos muestras aleatorias para entrenamiento y testeo del modelo, lo que nos permitiría obtener un mapa de probabilidades de que el vídeo fuera etiquetado como Real o Falso. Es este caso lo que buscábamos era llevar a cabo una regresión logística binaria sencilla (0 para vídeo falso y 1 para vídeo verdadero).
• Duración del parpadeo [s]
Figura 40: Pruebas con el clasificador Gausiano de los vídeos falsos |
Una vez que tuvimos nuestro modelo entrenado, sólo quedaba testearlo con los vídeos que queríamos desenmascarar. A pesar de la sencillez del modelo y de las pocas características extraídas, el modelo es capaz de discretizar si un vídeo es falso o no con bastante acierto. Esto pone de manifiesto que, si bien el modelo podría ser mejorable mediante la inclusión de nuevas características, con unas mínimas nociones de Machine Learning podríamos protegernos contra este tipo de ataques.
Conclusiones
Con todo lo que hemos visto en esta serie sobre cómo se puede utilizar la Inteligencia Artificial para realizar ataques y para hacer cosas buenas esto podemos hablar de ciertas conclusiones. Barack Obama dijo en su día:
“If everything seems to be the same and no distinctions are made, then we won’t know what to protect. We won’t know what to fight for. And we can lose so much of what we’ve gained in terms of the kind of democratic freedoms and market-based economies and prosperity that we’ve come to take for granted”.En otras palabras, si no podemos saber qué es real y qué no, no podremos protegernos, no sabremos por lo que luchar. Perderemos las libertades.
Queda claro que utilizar la Inteligencia Artificial para engañar a la gente es asequible, pero también la IA y la ciberseguridad irán de la mano, tanto en el presente como en el futuro. Los límites de la IA no se han vislumbrado y la ciberseguridad se verá fortalecida, pero también atacada por ella. Como siempre, el conocimiento y la concienciación son los pilares sobre los que se asienta nuestra protección.
Autores: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance 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 y Enrique Blanco (@eblanco_h) es Investigador en el departamento de Ideas Locas CDO de Telefónica
**************************************************************************************************
- La IA al servicio de la Ciberseguridad [1 de 5]
- La IA al servicio de la Ciberseguridad [2 de 5]
- La IA al servicio de la Ciberseguridad [3 de 5]
- La IA al servicio de la Ciberseguridad [4 de 5]
- La IA al servicio de la Ciberseguridad [5 de 5]
**************************************************************************************************
No hay comentarios:
Publicar un comentario