Investigación

¿Qué sabe ChatGPT de phishing?

¿Puede ChatGPT detectar enlaces de phishing?

Con todos los rumores sobre las increíbles aplicaciones de ChatGPT y otros modelos lingüísticos, nuestro equipo no pudo evitar hacerse esta pregunta. Nuestra compañía trabaja en la aplicación de tecnologías de aprendizaje automático a las tareas de ciberseguridad, en particular de modelos que analizan sitios web para detectar amenazas como el phishing. ¿Qué pasaría si todos nuestros complejos sistemas de detección de múltiples capas quedaran obsoletos y un único LLM (large language model) pudiese substituirlos para combatir a los ciberdelincuentes mejor que nosotros?

Para responder a esta pregunta, realizamos un experimento para comprobar la eficacia de ChatGPT a la hora de reconocer enlaces abiertamente maliciosos. En este artículo, ofrecemos un ejemplo práctico de cómo se puede aplicar un LLM a una tarea de ciberseguridad real, aunque simplificada, y describimos todas las cosas interesantes que aprendimos por el camino. Como no nos hacíamos ilusiones de que ChatGPT pudiera utilizarse realmente como método de detección, nuestro objetivo principal era averiguar cuántos conocimientos de ciberseguridad ha adquirido ChatGPT de sus datos de entrenamiento y cómo podría ayudar a un analista humano en su trabajo.

¿Por qué clasificar las URL?

El ojo entrenado de un analista puede detectar un enlace obviamente malicioso en una fracción de segundo (y probablemente usted también pueda hacerlo):
hxxp://caseld-10xxxx.info/1/Office365/0fflce3.6.5/live/login.php

  • Este no es el enlace de inicio de sesión de Office365, ¿verdad?

(los enlaces del artículo están parcialmente enmascarados con una x)

Una regla general para encontrar tareas a las que se puede aplicar el aprendizaje automático es que, si una persona puede hacerlo al instante, casi sin pensar, probablemente sea un buen candidato. Aun así, crear un sistema de aprendizaje automático requiere mucho esfuerzo, desde la recopilación de datos y la creación de funciones hasta la preparación de la infraestructura. La promesa de sustituir todo eso por una única interfaz configurada mediante lenguaje natural parece demasiado buena para ser verdad, pero ¿cuánto dista de ser una realidad?

Al realizar este experimento, estuvimos muy conscientes de las limitaciones de los grandes modelos lingüísticos, así como del hecho de que OpenAI pide que esta tecnología emergente no se aplique a ningún área de alto riesgo, y declara lo siguiente en relación con las aplicaciones de ciberseguridad de GPT-4 en la tarjeta del sistema:

Sin embargo, GPT-4 tiene significativas limitaciones para las operaciones de ciberseguridad debido a su tendencia a sufrir “alucinaciones” y a que su ventana de contexto es limitada.

Es natural suponer que GPT-3.5-turbo presentará estas limitaciones en mayor medida.

Elegimos la tarea de clasificación de URL porque:

  • A diferencia de una página HTML completa, una URL cabe fácilmente en un LLM, porque los LLM modernos, como ChatGPT, sólo pueden consumir un número limitado de símbolos (más exactamente, tokens) a la vez, es decir, tienen una ventana de contexto fija, en el lenguaje de LLM.
  • Obviamente, los enlaces maliciosos son fáciles de detectar, pero la tarea no tiene nada de trivial, ya que requiere un conocimiento del mundo, como conocer los nombres de los servicios web más populares.
  • Las URL siguen siendo texto, y los LLM son buenos procesando texto.

Así que esto es lo que hicimos.

Conversemos

En primer lugar, abrimos la interfaz web de ChatGPT y comprobamos si lo que pretendíamos era posible:

A juzgar por la URL, ¿es este enlace un intento de phishing? Explique por qué. Enlace: hxxp://caseld-10xxxx.info/1/Office365/0fflce3.6.5/live/login.php

Sí, es probable que se trate de un intento de phishing.

La URL parece deliberadamente engañosa, ya que contiene varias señales de alarma:

  • El nombre de dominio “caseld-10xxxx.info” no está asociado a ninguna entidad reputada o reconocible, y parece una secuencia aleatoria de letras y números.
  • La URL utiliza el término “Office365”, que es una popular suite de productividad, y es un blanco común para los ataques de phishing. Los ciberdelincuentes suelen utilizar esta táctica para inducir a víctimas desprevenidas a hacer clic en un enlace y revelar información confidencial.
  • La palabra “live” en la URL podría utilizarse para dar a entender que la página es una página de inicio de sesión oficial de Microsoft Office365, ya que Microsoft ha utilizado “live” en el pasado en algunos de sus servicios.
  • La errata de escribir “0fflce” en vez de “Office” es otra señal de alarma, ya que es una táctica común utilizada por los phishers para engañar a los usuarios haciéndoles creer que el sitio web es legítimo.
  • La extensión “.php” al final de la URL sugiere que se trata de un script PHP que se ejecuta en un servidor, técnica que se suele usar en ataques de phishing para obtener credenciales de inicio de sesión.

Por lo tanto, no se aconseja hacer clic en este tipo de enlaces y siempre hay que comprobar la legitimidad de la URL antes de introducir datos o credenciales personales.

Es una explicación bastante razonable. El modelo muestra cierta desconfianza hacia PHP (pero bueno, ¿quién no?), pero es bueno para reconocer la organización objetivo, un ataque homográfico (0ffice), e incluso señala por qué se podría haber utilizado “live”. Es una explicación digna de un analista junior.

Para recopilar un conjunto de explicaciones, utilizamos la API de OpenAI para consultar el modelo llamado GPT-3.5-turbo, que es el backend de ChatGPT. Es rápido y barato (comprobamos muchos enlaces), pero tiene la potencia necesaria. Para este conjunto de prueba, reunimos unos cuantos miles de enlaces que nuestras tecnologías de detección consideraban phishing, y añadimos unos cuantos miles de URL seguras.

Intento 1. ¿Es phishing?

ChatGPT es genial en proporcionar la respuesta en la forma que uno quiera, desde poemas:

Oh, usuario, ten cuidado en tu oficio,

El phisher acecha con astucia y artificio,

Palabras como “0fflce” con erratas son su anzuelo,

Para robar datos y dinero y dejarte en desconsuelo.

hasta formatos legibles por computadora. También puede hacer más de una cosa a la vez. Esto significa que, además de responder sí o no a la pregunta sobre la seguridad de los enlaces, podríamos pedir a ChatGPT que formatee la respuesta como JSON y que incluya también una justificación, así como el posible objetivo. Así que, tras varias iteraciones, nos decidimos por el siguiente mensaje:

Aquí utilizamos un prompt de sistema (según los profesionales y los documentos, esto es menos importante que la entrada del usuario) que presenta a ChatGPT como un chatbot de ciberseguridad y pedimos su veredicto en el prompt del usuario. Francamente, el hecho de que sea tan fácil obtener el resultado deseado de ChatGPT es asombroso.

Tardamos dos noches en obtener unos 6000 veredictos (quizá porque realizamos el experimento en el momento de mayor expectación) y, una vez que tuvimos los datos, procedimos a analizar los resultados.

Por desgracia, aunque la mayoría de las salidas podían analizarse, algunas estaban dañadas: contenían texto adicional, como “Nota: tenga cuidado al abrir enlaces…” o simplemente un punto al final, otras tenían caracteres de escape innecesarios. En total, menos del 0,5% de los JSON estaban rotos más allá de las correcciones automáticas o contenían texto como:

Lo siento, pero como modelo lingüístico de IA, no puedo acceder a Internet ni navegar por el sitio web proporcionado. Sin embargo, de acuerdo con las prácticas habituales del sector, se puede comprobar la legitimidad del sitio web pasándolo por un servicio/proveedor de detección de phishing en línea confiable. Además, si existen informes oficiales de ataques de phishing o estafas asociadas a la empresa objetivo, aumenta aún más la probabilidad de que el enlace conduzca a un sitio web de phishing.

Lo que sigue siendo una respuesta razonable.

En total, después de todos los errores y rechazos, nos quedamos con un conjunto de datos de 2322 URL de phishing y 2943 URL seguras. Las métricas resultantes son:

  • Tasa de detección (detection rate, DR): 87,2%
  • Tasa de falsos positivos (false positive rate, FPR): 23,2%.

Aunque la tasa de detección es muy alta, la tasa de falsos positivos es inaceptable. ¿Se imagina que se bloqueara uno de cada cinco sitios web que visitamos? Sin duda, ninguna tecnología de aprendizaje automático por sí sola puede tener una tasa de falsos positivos cero, pero esta cifra es demasiado alta. Para poner esto en perspectiva, en un conocido artículo llamado URLnet, Le y otros autores resolvieron una tarea muy similar: consiguieron alcanzar casi el mismo nivel de tasa de detección (~85%) con una tasa de falsos positivos de alrededor del 0,4% con una red neuronal convolucional diseñada para este propósito en especial. Un artículo más reciente sobre URLTran, escrito por Maneriker y otros autores, utiliza Transformers (la misma arquitectura que utiliza ChatGPT) para lograr una tasa de falsos positivos aún más baja.

Curva ROC de Le y otros autores, 2018, que ilustra los valores TPR (DR)/FPR alcanzables.

Curva ROC de Le y otros autores, 2018, que ilustra los valores TPR (DR)/FPR alcanzables.

Lamentablemente, aquí no hay ningún milagro. Aquí es también donde nos encontramos con la primera limitación: no podemos ajustar el umbral para cambiar tasa de falsos positivos por tasa de detección. ¿O sí?

El segundo experimento: “¿Es seguro?

Es probable que nuestro mensaje fuera demasiado específico e indujera al modelo lingüístico a sospechar del enlace. En lugar de preguntar si el enlace es phishing, podríamos preguntar si es seguro visitarlo, y tal vez el LLM se comportaría de forma menos suspicaz. Esto nos llevó a la segunda pregunta:

Diferencias con el anterior prompt:

  • Atrás queda el “gurú de la ciberseguridad”, que por naturaleza debe desconfiar de los enlaces aleatorios
  • No preguntamos por el objetivo, para no alertar al modelo de que se trata de una tarea de detección de phishing
  • No obstante, pedimos estar seguros. Aunque es muy poco probable, estar seguro puede resultar útil.

Los resultados fueron desalentadores:

  • Tasa de detección: 93,8%
  • Tasa de falsos positivos: 64,3%

Resulta que una solicitud más general tiene más probabilidades de suscitar un veredicto de que el enlace es peligroso. De esta manera los enlaces del subconjunto seguro de datos cambiaron los veredictos asignados, en comparación con el anterior promt del gurú de la ciberseguridad:

Veredictos del chatbot asistente de seguridad en Internet (datos seguros) seguro inseguro
CyberGPT veredictos del gurú de la ciberseguridad (datos seguros)
seguro 1049 1210
phish 2 682

Curiosamente, las opciones de confianza se parecen más a la confianza asignada por los humanos, en el sentido de que números redondos como el 90% aparecen con más frecuencia:

TOP 5 probabilidades que eligió el modelo. Nota:  se redondean a 0,1 (descargar)

Al menos la curva ROC parece correcta, pero no hay ningún punto en el que este indicador supere al gurú de la ciberseguridad del intento anterior:

Curva ROC basada en las probabilidades proporcionadas por ChatGPT

Curva ROC basada en las probabilidades proporcionadas por ChatGPT

En conclusión, es difícil predecir el comportamiento del LLM basándose en el razonamiento humano sobre el prompt. Probablemente la “seguridad” de un enlace sea un concepto más vago que el de “phishing”. Entender por qué el primer prompt ganó por un amplio margen es difícil, y elegir el mejor prompt en este momento, a pesar de la aparición de nuevas técnicas de ingeniería de prompts, es más arte que ciencia.

Estabilidad de los veredictos

Un hecho importante sobre los LLM es que el proceso de generación es aleatorio. Aunque se puede coaccionar a un LLM para que sea casi determinista ajustando a 0 su parámetro de temperatura, que en realidad controla la aleatoriedad de la salida (sigue habiendo fuentes numéricas no deterministas), hacerlo suele dar lugar a un rendimiento deficiente (como la tendencia a repetir la misma frase una y otra vez). Como resultado, para cada token (una palabra o parte de ella) que genera la red, el LLM dispone de unas cuantas alternativas de elección (también controlables mediante parámetros).

Los veredictos no deterministas no son la principal característica que se espera de un sistema de detección. Para medir su impacto en los resultados, realizamos otro pequeño experimento en el que elegimos 200 URL aleatorias (100 seguras y 100 phishing) y recogimos veredictos con el mismo prompt simplificado:

Así es como se comparan los resultados de estas dos ejecuciones idénticas (las respuestas no están post-procesadas y responden a la pregunta de si el enlace es seguro):

_Run  2 no no se sabe
Run  1
no 145 2 3
4 0 46

Así, el veredicto para el 4,5% de las URL cambió debido a la aleatoriedad del LLM, siendo la variación en los veredictos entre ejecuciones sobre URL seguras del 7%. Una vez más, aunque esto puede remediarse ajustando la temperatura, es un factor importante que hay que tener en cuenta cuando se utilizan LLM.

Organización de la extracción

El aspecto más llamativo del rendimiento de ChatGPT fue la extracción del objetivo potencial del phishing. Cuando los atacantes elaboran sus muestras, intentan engañar a los usuarios para que crean que la URL es auténtica y pertenece a una empresa, al tiempo que la ofuscan lo suficiente como para engañar a los análisis automatizados. Extraer el objetivo del ataque puede ser útil en muchos escenarios.

ChatGPT tiene suficiente conocimiento del mundo real como para conocer muchos servicios financieros y de Internet, y con sólo un pequeño paso de posprocesamiento (por ejemplo, fusionar “Apple” e “iCloud” o eliminar “LLC” e “Inc”) hace un muy buen trabajo a la hora de extraerlos. Fue capaz de identificar un objetivo más de la mitad de las veces. Tengamos en cuenta que no todas las URL contienen una referencia a una organización objetivo. Entre las empresas identificadas, se encontraban grandes portales tecnológicos como Facebook, TikTok y Google, mercados como Amazon y Steam, muchos bancos de todo el mundo, desde Australia hasta Rusia, criptomonedas y servicios de entrega.

Algunos ejemplos interesantes son:
URL: hxxps://steancxxxmuunity.com/profiles/765xxxxxxxxxx175
Organización: Steam

Razonamiento: El nombre de dominio steancxxxmuunity.com” parece ser un intento de “typo-squatting”. El nombre correcto del dominio debe ser “steamcommunity.com”. El sitio web intenta hacerse pasar por Steam Community, una popular plataforma de juegos…

URL: https://cxxxxxxxxr.com/wp-includes/js/jcrop/cgi/BOfA/Validation/login.php?cmd=login_submit

Organización: Bank of America

Razonamiento: El enlace es sospechoso e indica un intento de phishing porque el nombre del dominio no está relacionado con la posible empresa objetivo (Bank of America), la URL también es sospechosa al contener caracteres adicionales como ‘/wp-includes/js/jcrop/cgi’…

URL: http://caseld-10xxxx.info/1/Office365/0fflce3.6.5/live/login.php

Organización: Microsoft

Razonamiento: El nombre de dominio del enlace (caseld-10xx93.info) no parece estar relacionado con el servicio Office 365 de Microsoft. La ruta URL también contiene una versión mal escrita de la palabra “office” (0fflce) y un número de versión sospechosamente antiguo (3.6.5).

URL: http://adobexxxsignxxxx.duckdns.org/ees/

Organización: Adobe

Razonamiento: El nombre de dominio “duckdns.org” es un proveedor de DNS dinámico gratuito que los ciberdelincuentes suelen utilizar para alojar sitios de phishing u otros contenidos maliciosos. Además, al parecer el subdominio adobexxxsignxxxx de la URL finge ser el servicio legítimo de Adobe “Adobe Sign”, lo que sugiere que los atacantes podrían estar dirigiéndose a los clientes de Adobe para robar información o cometer fraude.

Aquí vemos que ChatGPT detecta los ataques homográficos (aunque puede confundirlos con typo-squatting), y afirma correctamente que los dominios no están relacionados con las empresas. Aunque no consigue desentrañar que “3.6.5” es una imitación de 365, las explicaciones son bastante razonables.

Conocimiento implícito: análisis del razonamiento

Los ejemplos anteriores son una selección. Si nos ponemos selectivos con la intención opuesta, ocurren cosas curiosas. Las explicaciones que proporciona ChatGPT pueden incluir:

  • Referencias a WHOIS, a las que el modelo no tiene acceso:
    • Por último, si realizamos una búsqueda WHOIS del nombre de dominio, vemos que se lo registró hace muy poco (2020-10-14) y los datos del registrante están ocultos.
  • Referencias a contenidos de un sitio web al que el modelo tampoco tiene acceso:
    • El sitio web está solicitando credenciales de usuario en un sitio web que no es de Microsoft. Se trata de una táctica habitual en los ataques de phishing.
    • Además, la presentación y el diseño de la página web no coinciden con los del sitio web oficial de eBay, lo que indica que puede tratarse de un sitio web falso diseñado para hacerse pasar por eBay.
    • Tampoco hay información disponible sobre la política de seguridad y privacidad del sitio web. Un sitio web seguro debe proporcionar esa información de forma transparente a los usuarios.
  • Referencias a la caducidad de certificados SSL:
    • El dominio ‘duckdns.org’ no es propiedad de Netflix, y el certificado SSL no es válido.
  • Declaraciones erróneas:
    • El dominio “sxxxxxxp.com” no está asociado a Netflix y el sitio web utiliza el protocolo “http” en lugar de “https” (el sitio web verdadero utiliza https)
  • Detalles reveladores de información sobre ciberseguridad:
    • El nombre de dominio de la URL “yxxxx3.com” parece estar registrado en Corea, lo que es una señal de alarma.

Son jocosas y ponen de manifiesto las limitaciones de un LLM: aunque puede generar explicaciones razonables, también es propenso a las alucinaciones, como imaginar contextos a los que no tiene acceso o inventar hechos erróneos.

En general, sin embargo, vemos que el modelo demuestra una comprensión nada trivial de la tarea. Analizar todas las explicaciones a mano sería laborioso, así que aquí hacemos un poco de lectura a distancia para tener una visión somera de los razonamientos que genera aplicando un poco de PNL de la vieja escuela.

En primer lugar, observamos que el modelo utilizaba sobre todo frases cortas y concisas con un punto por frase en sus explicaciones. Dividimos los enunciados en frases utilizando el tokenizador NLTK Punkt. Las frases resultantes se vectorizaron con MPNet del paquete Sentence-Bert y se visualizaron con UMAP. Para colorear el gráfico resultante, utilizamos la agrupación DBSCAN. Unas cuantas iteraciones de ajuste de hiperparámetros arrojan el siguiente resultado:

Análisis de grupos de las explicaciones proporcionadas por ChatGPT. Las razones semánticamente cercanas forman grupos densos.

Análisis de grupos de las explicaciones proporcionadas por ChatGPT. Las razones semánticamente cercanas forman grupos densos.

Estos grupos densos revelan las frases más populares que el modelo proporciona como explicaciones. Algunos de estos grupos son:

  1. Menciones de determinadas empresas objetivo.
  2. Recomendaciones de no hacer clic en el enlace.
  3. Afirmaciones correctas sobre si el sitio web es phishing o no.
  4. Declaraciones de incertidumbre.
  5. Referencias a HTTPS (o ausencia de HTTPS) o SSL (por lo general son alucinaciones)
  6. Frases como “Esta es una táctica común…”

Sin embargo, algunas de ellas revelan “tácticas comunes”:

  1. Uso de IPFS: “La URL parece sospechosa y parece estar alojada en IPFS, que puede utilizarse para alojar contenido malicioso”.
  2. Elementos sospechosos en la ruta, incluidos los ataques homográficos: “Este enlace es un ejemplo de ataque homográfico también conocido como ‘ataque homográfico IDN'”.
  3. Elementos de la ruta o dominio relacionados con la seguridad y la urgencia: “Por último, la URL tiene un sentido de urgencia, lo que indica que el usuario debe hacer clic de inmediato”.
  4. Uso de DNS dinámicos: “El nombre de dominio ‘duckdns.org’ es un proveedor de DNS dinámico gratuito que puede ser utilizado por cualquiera para crear subdominios personalizados, lo que facilita a los atacantes su uso para correos electrónicos de phishing o sitios web que suplantan la identidad de empresas legítimas”.
  5. Un correo electrónico en los parámetros: “Además, la dirección de correo electrónico utilizada como parámetro de consulta puede indicar un posible intento de phishing”.
  6. Mención de una organización en la ruta o subdominio mientras que el dominio no está relacionado con la organización: “El enlace parece sospechoso ya que contiene un subdominio que no está relacionado con Amazon”.
  7. Elementos del dominio que parecen autogenerados: “Además, la ruta ‘bafyxxxxxxxxxxxxxxxx43ky’ sugiere que se trata de un enlace autogenerado”.

Estas observaciones tienen mucho sentido. Esto significa que los datos de formación usados por ChatGPT contenían suficiente material de ciberseguridad para que el LLM aprendiera los signos reveladores de los intentos de phishing y utilizara este conocimiento para analizar casos específicos, lo cual es impresionante.

Conclusiones

Como hemos visto, para un sistema de aprendizaje cero los resultados son asombrosos: incluso un escéptico acérrimo tendría dificultades para negarlo. Los ejemplos anecdóticos, especialmente los escogidos al azar, también son impresionantes. Por eso, cuando hablamos de rendimiento en el mundo real, una captura de pantalla de Twitter no es una base sólida para tomar decisiones. En particular si se trata de ciberseguridad, un campo donde aplicar escenarios automatizados a nuestras tareas significa ir mucho más allá de un rendimiento “bueno” o incluso “impresionante”.

Como en muchos otros casos de uso, la tarea principal de detección es sólo una parte del problema. Crear firmas o registros de listas de bloqueo, validarlos y probarlos, entregarlos, garantizar la calidad del servicio son tareas menos glamorosas, pero igual de importantes, y aquí necesitamos mucho trabajo humano para que las cosas funcionen.

Además, el uso del LLM implica la aplicación de todo un nuevo conjunto de habilidades. Podríamos haber mejorado los resultados, tanto en detección como en extracción de organizaciones objetivo y razonamiento, probando varias cosas:

  • Usando un modelo más fuerte, como GPT-4
  • Utilizando patrones especiales de diseño de prompts, como Chain-of-Thought-prompting o Reflect-Critique-Improve
  • Incluyendo partes del HTML junto con la URL
  • Ajustando los parámetros de indicación y muestreo del sistema, como la temperatura, etc.

Sin embargo, esto significa abandonar la esperanza de una IA de aprendizaje cero que “simplemente funcione”. Además, el uso de LLM implica tener que lidiar con sus idiosincrasias actuales, como la tendencia demostrada a alucinar (manifestada mediante la aparición de explicaciones imaginarias y la referencia a textos de páginas que nunca ha visto), la aleatoriedad de la salida, así como los posibles ataques de inyección de prompt.

Por otro lado, si nos fijamos en la extracción y el razonamiento de la organización, tenemos que admitir que rinde a la par de lo que esperaríamos de un analista de phishing principiante: es bueno, ¡pero nunca dejes de supervisarlo! Por tanto, es posible utilizar este tipo de tecnología para ayudar a los analistas de carne y hueso destacando las partes sospechosas de la URL y sugiriendo posibles objetivos de ataque. También podría utilizarse en canalizaciones de supervisión débil para mejorar las canalizaciones clásicas de ML.

En definitiva, aunque impresionantes, ChatGPT y LLM todavía no están preparados para introducir cambios radicales en el juego de la ciberseguridad, al menos en lo que respecta a la detección del phishing. En Kaspersky, seguimos investigando las tecnologías de vanguardia y estudiando su impacto potencial tanto sobre los ciberatacantes como sobre los defensores. Veremos qué ocurre más adelante.

¿Qué sabe ChatGPT de phishing?

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Informes

BlindEagle vuela alto en LATAM

Kaspersky proporciona información sobre la actividad y los TTPs del APT BlindEagle. Grupo que apunta a organizaciones e individuos en Colombia, Ecuador, Chile, Panamá y otros países de América Latina.

MosaicRegressor: acechando en las sombras de UEFI

Encontramos una imagen de firmware de la UEFI infectada con un implante malicioso, es el objeto de esta investigación. Hasta donde sabemos, este es el segundo caso conocido en que se ha detectado un firmware malicioso de la UEFI usado por un actor de amenazas.

Suscríbete a nuestros correos electrónicos semanales

Las investigaciones más recientes en tu bandeja de entrada