Aunque los principios del aprendizaje automático se establecieron hace aproximadamente medio siglo, no ha sido hasta hace poco cuando realmente se ha expandido su aplicación en la práctica.
Con el crecimiento de la potencia informática, los ordenadores aprendieron en primer lugar a distinguir objetos en las imágenes y a jugar a Go mejor que los humanos, después a diseñar siguiendo una descripción en texto y mantener una conversación coherente. Durante el 2021 y 2022, estos avances científicos nos han llegado a todos. Por ejemplo, ahora puedes suscribirte a MidJourney e ilustrar en un instante tus propios libros.
Además, OpenAI por fin compartió su modelo de lenguaje GPT-3 (Generative Pre-trained Transformer 3) con el público general a través de ChatGPT. Este bot está disponible en chat.openai.com, donde puede mantener una conversación coherente, explicar conceptos científicos complejos mejor que muchos profesores, traducir óptimamente textos a otros idiomas y mucho más.
Si destripamos ChatGPT, contemplamos que el modelo de lenguaje está entrenado mediante un corpus gigante de textos online, del cual “recuerda” qué palabras, frases y párrafos se recopilan con más frecuencia y cómo se relacionan. Asistido por numerosos trucos técnicos y rondas adicionales de entrenamiento con humanos, el modelo está optimizado especialmente para el diálogo. Y, como “en internet puedes encontrar absolutamente de todo”, el modelo es capaz de desarrollar una conversación sobre prácticamente cualquier tema: desde moda e historia del arte hasta programación y física cuántica.
Los científicos, periodistas y aficionados han encontrado aún más aplicaciones para ChatGPT. El sitio web Awesome ChatGPT Prompts cuenta con una lista de prompts (frases para comenzar una conversación con un bot), que te permite “activar” ChatGPT para que responda como Gandalf o cualquier otro personaje literario, escribir código Python, generar correos comerciales y currículos e incluso imitar un terminal Linux.
No obstante, ChatGPT es solo un modelo de lenguaje, por lo que todo esto no son más que combinaciones y colocaciones de palabras, no encontrarás ningún tipo de razón o lógica. De hecho, a veces ChatGPT solo dice una serie de sinsentidos muy convincentes (como muchos humanos), por ejemplo, cuando se refiere a estudios científicos que no existen. Por ello, te recomendamos que trates el contenido de ChatGPT con la debida precaución. Dicho esto, incluso en su forma actual, el bot resulta útil para muchos procesos prácticos e industrias. A continuación, te dejamos con algunos ejemplos de aplicación en el campo de la ciberseguridad.
La creación de malware
En los foros clandestinos, muchos ciberdelincuentes informan sobre cómo utilizan ChatGPT para crear nuevos troyanos. El bot puede escribir código, por lo que si describes brevemente la función deseada (por ejemplo, “guarda todas las contraseñas del archivo X y envíalas por HTTP POST al servidor Y”), puedes conseguir un stealer (ladrón de información) sencillo y sin habilidades de programación.
No obstante, los usuarios no tienen nada que temer, ya que las soluciones de seguridad son capaces de detectar y neutralizar el código escrito por los bots de forma rápida y eficiente, al igual que con el malware creado por humanos. Además, si ese código no lo comprueba un programador con experiencia, es muy probable que el malware contenga errores sutiles y fallos lógicos que lo harán menos eficaz.
Al menos por ahora, los bots solo pueden competir con los desarrolladores de virus menos experimentados.
El análisis del malware
Cuando los analistas de la seguridad de la información estudian nuevas y sospechosas aplicaciones, realizan ingeniería inversa del pseudocódigo o código de la máquina, tratando de descubrir cómo funciona. Aunque esta tarea no se puede asignar por completo a ChatGPT, el chatbot ya es capaz de explicar rápidamente qué hace un código en particular.
Nuestro colega Ivan Kwiatkovski ha desarrollado un complemento para IDA Pro que se encarga precisamente de esta tarea. El modelo de lenguaje no es realmente ChatGPT, sino su primo davinci-003, pero esto es una diferencia puramente técnica. A veces el complemento no funciona o genera basura, pero merece la pena solo por esos casos en los que asigna nombres legítimos a funciones de forma automática e identifica algoritmos de cifrado en el código y sus parámetros. Sí destaca en los centros de operaciones de seguridad (SOC por sus siglas en inglés), donde los analistas constantemente sobrecargados no pueden dedicar más que una mínima cantidad de tiempo a cada incidente, por lo que cualquier herramienta para acelerar el proceso es bienvenida.
La búsqueda de vulnerabilidades
Una variación de la estrategia anterior es una búsqueda automática de código vulnerable. El chatbot “lee” el pseudocódigo de una aplicación descompilada e identifica dónde puede haber vulnerabilidades. Además, el bot proporciona código Python diseñado para la explotación de vulnerabilidades (PoC). Evidentemente, el bot puede cometer todo tipo de errores, tanto en la búsqueda de vulnerabilidades como en la escritura de código PoC, pero incluso en su forma actual, la herramienta resulta útil tanto para los atacantes como para los defensores.
La consultoría de seguridad
Dado que ChatGPT sabe todo lo que la gente dice sobre la ciberseguridad online, sus consejos sobre este tema parecen convincentes. Pero, como sucede con cualquier consejo por parte de un chatbot, nunca sabes de dónde procede exactamente, por lo que por cada 10 buenos puede haber uno malo. De todos modos, los consejos que aparecen en la siguiente captura de pantalla son todos correctos:
Phishing y BEC
Los textos convincentes son un punto fuerte de GPT-3 y ChatGPT, por lo que es probable que ya se estén produciendo ataques automatizados de spear-phishing mediante estos chatbots. El principal problema con los correos electrónicos masivos de phishing es que no tienen buena pinta, con demasiado texto genérico que no se dirige directamente al destinatario.
En cuanto al spear-phishing, cuando un ciberdelincuente escribe un correo electrónico a una sola víctima, es bastante costoso; por lo tanto, se usa solo en ataques dirigidos. ChatGPT está configurado para alterar drásticamente el equilibrio de poder, ya que permite a los atacantes generar correos electrónicos persuasivos y personalizados a escala industrial. Sin embargo, para que un correo electrónico contenga todos los componentes necesarios, el chatbot debe recibir instrucciones muy detalladas.
Pero los principales ataques de phishing generalmente consisten en una serie de correos electrónicos, ganando gradualmente la confianza de la víctima. Y ChatGPT ahorrará mucho tiempo a los ciberdelincuentes con este segundo, tercer o enésimo correo electrónico, dado que el chatbot recuerda el contexto de la conversación, por lo que los correos electrónicos posteriores se pueden diseñar perfectamente a partir de un prompt muy breve y simple.
Además, la respuesta de la víctima se puede introducir fácilmente en el modelo, produciendo un seguimiento convincente en segundos.
Entre las herramientas que pueden usar los atacantes está la correspondencia estilizada. Con una pequeña muestra de un estilo particular, el chatbox puede aplicarla fácilmente en otros mensajes. Esto permite la creación de correos electrónicos falsos y convincentes que aparentan ser de un empleado a otro.
Por desgracia, esto permite el aumento de la cantidad de ataques de phishing exitosos. Además, el chatbot es igual de convincente en el correo electrónico, las redes sociales y los mensajeros.
¿Cómo podemos contraatacar? Los expertos en análisis de contenido están desarrollando en activo una serie de herramientas para detectar textos de chatbot. Solo el tiempo dirá si estos filtros resultan realmente efectivos, por ahora, nos queda recomendar nuestros dos consejos estándar, mucha vigilancia y formaciones para la sensibilización en materia de ciberseguridad, a los que sumamos uno nuevo: aprender a detectar textos generados por bots. Las propiedades matemáticas no se pueden reconocer a simple vista, pero sigue habiendo ciertas pequeñas peculiaridades estilísticas e incongruencias que delatan a los robots. Por ejemplo, echa un vistazo a este juego, ¿eres capaz de detectar la diferencia entre el texto escrito por humanos y por máquinas?