Los analistas de Kaspersky decidieron poner a prueba a ChatGPT para verificar lo que sabe sobre investigación de amenazas sencillas y conocidas, como Mimikatz o Fast Reverse Proxy, entre otras. ¿Cómo se comportó ChatGPT en cuanto a la detección de indicadores de compromiso? La realidad es que no fue capaz de identificar el hash de WannaCry, un ransomware de los más conocidos -si no el que más- de la historia.
En el caso de las APT (Amenazas Persistentes Avanzadas), ChatGPT generó una lista con algunos dominios incluidos en esta categoría, además de mostrar una descripción. El chatbot calificó como maliciosos los dominios FIN7 1, y detalló que “el nombre del dominio es probablemente un intento de engañar a los usuarios para que crean que es legítimo”.
Durante las pruebas, los expertos de Kaspersky determinaron que ChatGPT consigue mejores resultados para desarrollos basados en host que para indicadores simples como nombres de dominio y hash. Es muy posible que esto se deba a determinados filtros en los datos con los que se ha entrenado o a que las preguntas no fueran construidas de forma correcta.
Otra de las pruebas a las que se sometió a ChatGPT fue pedirle que escribiera código para extraer metadatos de un sistema Windows y, tras ello, consultarle si esos metadatos eran un indicador de compromiso.
Algunos fragmentos de código creado por el chatbot no estaban del todo afinados, así que los expertos de Kaspersky intervinieron manualmente. Filtraron la salida en los casos en que la respuesta de ChatGPT era ‘sí’ respecto a la presencia de un indicador de compromiso, y se agregaron controladores de excepción e informes en CSV, se corrigieron pequeños bugs y convirtieron algunos fragmentos en cmdlets individuales, lo que generó un sencillo scanner IoC (HuntWithChatGPT.psm1) capaz de analizar un sistema remoto a través de WinRM.
Tras ello, los analistas de Kaspersky infectaron un equipo con los agentes maliciosos Meterpreter y PowerShell Empire. Posteriormente, se utilizó el escáner, que generó un informe enriquecido con las conclusiones de ChatGPT. La herramienta fue capaz de identificar dos procesos maliciosos de un total de 137 procesos analizados. No se detectó ningún falso positivo.
Chat GPT facilitó detalles acerca de la detección de estos archivos: “La línea de comando intenta descargar un archivo de un servidor externo”, “se está usando un bypass que indica a PowerSHell que omita los controles de seguridad” o “el código se está utilizando para deshabilitar el registro u otras medidas de seguridad de Windows”.
En el caso de la segunda amenaza, ChatGPT detalló por qué el servicio debía clasificarse como un indicador de compromiso: “El servicio de Windows y la cadena de inicio pueden estar asociados con algún tipo de malware u otra actividad maliciosa y debe, por lo tanto, ser considerado un indicador de compromiso”.
Conclusiones
La investigación muestra resultados provisionales que hay que tomar con cautela, aunque ChatGPT tiene mucho potencial a futuro. Las conclusiones de los expertos de Kaspersky son las siguientes:
- Se pueden verificar indicadores de compromiso. Es interesante si no existe un EDR activo y se necesita hacer un análisis forense o responder a un incidente.
- Es posible detectar e identificar brechas de seguridad, así como la ofuscación de código o binarios de malware.
- Es importante formular bien las preguntas para obtener resultados interesantes para hashes y nombres de dominio.
- Hay que tener en cuenta que puede registrar falsos positivos y falsos negativos; se trata de una red neuronal que trabaja con estadísticas. En cualquier momento puede arrojar resultados inesperados.