Desde que el pasado mes de noviembre la empresa OpenAI liberase al público una versión sin restricciones de ChatGPT, se han escrito ríos de tinta sobre las posibilidades de esta tecnología en muchos ámbitos. A muchos usuarios les ha sorprendido su capacidad para generar textos coherentes y que suenen naturales, pero hoy vamos a analizar que repercusiones ya está teniendo la aplicación de ChatGPT en el mundo de la ciberseguridad.
Uso de ChatGPT para generar mensajes de phishing
Hasta el momento, hemos sido varios los que hemos alertado acerca de la posibilidad que tendrían los delincuentes para utilizar esta tecnología, por ejemplo, para redactar correos de phishing, mensajes de texto como los habituales SMS maliciosos y preparar sitios web fraudulentos de una forma convincente. Esta tendencia es algo que venimos observando desde hace algunos años y ChatGPT consigue bajar aun más el listón de entrada para que cualquier aprendiz de ciberdelincunte intente conseguir sus primeras víctimas.
Si nos centramos en un clásico de la suplantación de identidad como es el phishing bancario, vemos que las plantillas usadas actualmente resultan bastantes convincentes, especialmente si se acompañan de logotipos de la entidad suplantada y una web que imite a la original. En cuanto a la redacción del cuerpo del mensaje, ChatGPT puede usarse para redactar mensajes de una forma natural para conseguir engañar a las víctimas como el ejemplo que nos muestra a continuación.
Como podemos ver, el lenguaje usado es correcto, no se comenten faltas de ortografía y puede resultar bastante convincente para la mayoría de usuarios. Además, coincide bastante con los ejemplos reales de phishing bancario que venimos observando desde hace algunos años, por lo que no descartamos que ChatGPT haya aprendido a redactarlos a partir de ese tipo de correos maliciosos.
Es importante destacar que, tanto en este como en otros ejemplos usados a lo largo de este artículo, ChatGPT nos avisa de que la generación de este tipo de contenido podría violar su política de contenidos, e incluso es capaz de negarse a redactar según que mensajes tal y como vemos en el ejemplo a continuación.
Para tratar de sortear este tipo de restricciones impuestas por los desarrolladores podemos tratar de hacer pasar esta solicitud de generación de un correo de phishing por una solicitid de información acerca de un tipo de phishing en concreto, como el que está relacionado con las criptomonedas. De esta forma, ChatGPT responderá de forma natural explicándonos su funcionamiento, métodos usados por los delincuentes y como protegernos de este tipo de correos.
Al tratarse de una herramienta conversacional podemos seguir el hilo y preguntarle si nos puede mostrar un ejemplo de este tipo de phishing que nos acaba de detallar con tanta precisión para ayudarnos a estar protegidos y ChatGPT, obediente como el solo, no tendrá ningún problema en mostrarnos un ejemplo de correo de phishing relacionado con las criptomonedas a pesar de haberse negado a hacerlo unos segundos antes.
Eso sí, tras finalizar la redacción de este mensaje de phishing nos volverá a advertir que ese tipo de contenido puede violar sus normas de uso, además de darnos unos consejos para evitar caer en este tipo de trampa. Esto demuestra que sus desarrolladores eran conscientes de que alguien podría usar esta herramienta de forma maliciosas y, si bien no han bloqueado esta posibilidad, sí que se encargan de dejar bien claro que no es una finalidad con la que estén de acuerdo.
Generación de código que pueda ser usado en un ciberataque
Entrando un poco más en materia, otra de las habilidades en las que ha destacado ChatGPT desde su lanzamiento ha sido en la facilidad que tiene para generar código que puede resultar muy útil para todo tipo de desarrolladores pero, por desgracia, también para delincuentes. Sin embargo, se han establecido normas para que no sea tan fácil como llegar y pedir directamente el código que permita la creación de una shell inversa.
La respuesta, en este caso es muy educado y además, nos explica de una forma clara y concisa en que consiste una Shell inversa para que lo entienda cualquier tipo de usuario aunque no tenga conocimientos técnicos. Esto, que a muchos les puede parecer casi brujería es más que lógico, ya que las ingentes cantidades de información con las que se ha estado alimentando esta tecnología ha sido redactada por humanos y ChatGPT lo que hace es buscar las respuestas a nuestras preguntas entre todos estos sets de datos y mostrarlos de forma entendible.
Curiosamente, durante nuestras pruebas nos hemos encontrado con ciertas diferencias en las respuestas obtenidas dependiendo del idioma con el que planteamos nuestras preguntas. Obviamente y, debido a que muchos de los sets de datos con los que se a alimentado a ChatGPT están en inglés, las respuestas en este idioma suelen ser más completas e incluso puede servirnos para saltarnos restricciones.
Por ejemplo, veamos qué pasa si volvemos a solicitar que nos muestre un ejemplo de código de Shell inversa pero formulando nuestra pregunta en inglés.
Aquí hemos de hacer un inciso y aclarar que, entre la formulación de ambas preguntas en español e inglés hay un periodo de tiempo de diferencia, habiéndose realizado la pregunta en inglés unos días antes que en español. Esto podría indicar la implementación de filtros por parte de los desarrolladores para que no se muestren ciertas respuestas que puedan resultar peligrosas, pero, aun así, seguimos comprobando como al redactar las preguntas en inglés se obtienen mejores resultados.
Sigamos comprobando las capacidades de ChatGPT pidiéndole que nos explique el funcionamiento de un ataque clásico como pueda ser un SQL injection.
De nuevo vemos como ChatGPT no escatima en los detalles a la hora de proporcionarnos información acerca de este tipo de ciberataque, e incluso se atreve a mostrarnos y explicarnos un ejemplo clásico para que lo entendamos mejor. Esto nos da pie a preguntarle si nos puede mostrar un ejemplo de ataque SQL injection para ver si nos muestra algo de código que se pueda copiar y pegar en un ataque real.
Aquí sucede una cosa curiosa y es que, si bien nos muestra el código de una consulta SQL clásica que puede usarse para comprobar si una web es vulnerable contra este tipo de ataques, la respuesta la muestra en inglés a pesar de haber formulado la pregunta en español. Esto vuelve a confirmar que ChatGPT se defiende mucho mejor en inglés, aunque, tras las muchas pruebas realizadas desde su aparición, hemos de reconocer que tampoco se desenvuelve nada mal en español.
Siguiendo con ataques más o menos clásicos, pasamos a preguntarle en que consisten las clásicas macros incrustadas en documentos ofimáticos, que aun a día de hoy son usadas en varios de los ciberataques que analizamos constantemente en nuestro laboratorio.
Nada que objetar en cuanto a la definición que hace de macro y de como pueden ser usadas de forma maliciosas por un atacante. De hecho, ya que lo menciona como ejemplo, vamos a preguntarle si nos puede mostrar código que pueda ser usado de forma maliciosa mediante una macro incrustada en un documento ofimático.
Sin problemas, nos muestra un ejemplo de código estándar que puede usarse para introducir una macro que haga una llamada a un servidor remoto y, desde ahí, se descargue un código malicioso preparado por un atacante. De nuevo volvemos a comprobar como tiene ciertas dificultades a la hora de redactar su respuesta en un idioma en concreto ya que empieza redactándola en inglés para terminar en perfecto español.
Ahora bien, de la misma forma que los delincuentes pueden usar ChatGPT para generar campañas de phishing u obtener de forma sencilla ejemplos de código para su malware, esta tecnología también puede usarse para detectare comportamientos sospechosos o directamente maliciosos. De hecho, si se lo preguntamos, su respuesta es muy directa e incluye ejemplos valiosos.
Con esta ayuda, se puede facilitar y automatizar la creación de reglas Yara o Sigma, especialmente cuando se trata de malware o comportamientos sospechosos que siguen unos patrones bien definidos, liberando tiempo, por ejemplo, a investigadores, operadores de SOC o administradores de sistemas que pueden dedicar a tareas más importantes.
ChatGPT y ransomware
Si hay una amenaza actual que preocupa especialmente a empresas de todos los tamaños esta es el ransomware. Aunque esta amenaza ha ido evolucionando con los años y se ha adaptado para incorporar el robo de archivos privados y la extorsión a las empresas amenazando con su filtración, el cifrado de los datos en los sistemas afectados sigue provocando importantes quebraderos de cabeza. A la hora de ver como podría intentar alguien aprovecharse de ChatGPT para que le ayude a preparar una campaña de ransomware, veamos que responde a la pregunta de la creación de una función que cifre todos los archivos del sistema.
Bien por ChatGPT ya que detecta que esto podría ser utilizado de forma maliciosa y no se deja engañar tan fácilmente. Ahora pongamos a esta inteligencia artificial en una situación comprometida donde le pidamos ayuda para cumplir con un plazo de entrega cercano. Sabiendo que está programada para ayudar al usuario podríamos esperar una respuesta diferente, y así sucede, aunque no exactamente como nosotros esperamos.
Los consejos que da son muy útiles para cualquier administrador de sistemas que quiera hacer bien su trabajo y, específicamente, si quiere cifrar los archivos confidenciales para que no puedan ser accedidos si caen en malas manos. Sin embargo, un delincuente podría usar esa excusa para tratar de conseguir un ejemplo de código que le ayude a cifrar los ficheros en un ciberataque por lo que, llegados a este punto, no perdemos nada si le pedimos a ChatGPT un ejemplo.
Y obediente como es, Chat GPT nos muestra un ejemplo de un script en PowerShell que puede ser usado para cifrar archivos. Obviamente, la mayoría de grupos detrás de las familias más activas de ransomware, utilizan técnicas mucho más avanzadas, pero esto no quita que la capacidad para generar código de esta herramienta sea muy útil para todo tipo de usuarios.
Desde el punto de vista de los defensores podemos plantearle a ChatGPT si se podrían generar algún tipo de reglas para detectar una actividad de cifrado no autorizada en el sistema, respondiendo afirmativamente, explicando además en que puntos nos deberíamos fijar para que esta regla fuera eficaz.
Y ya que nos lo ha explicado tan bien, pues que menos que pedirle un ejemplo de este tipo de reglas para usarla como base a la hora de detectar un uso inadecuado de una función de cifrado que se encuentra integrada en el propio sistema operativo.
De nuevo la respuesta nos la vuelve a mostrar en inglés, lo que demuestra que, al menos en cuestiones técnicas relacionadas con código, mejor formular las preguntas en este idioma. Obviamente, estos ejemplos son muy básicos y se han hecho así para que sean comprensibles aun teniendo pocos conocimientos técnicos, pero sirven para hacerse una idea de las posibilidades de ChatGPT.
Conclusión
A pesar de los riesgos mostrados en los numerosos ejemplos de este artículo y siendo conocedores de que algunos delincuentes ya están aprovechando las posibilidades de ChatGPT, los expertos en seguridad también ven posibilidades muy interesantes en el uso de esta herramienta para ayudar a luchar contra el cibercrimen.
De hecho, el uso de la inteligencia artificial no es nuevo para las empresas de ciberseguridad, que llevan años analizando grandes volúmenes de datos para detectar patrones de comportamiento sospechosos, correos de phishing y otras amenazas, pudiendo generar reglas y alertas de forma rápida y automatizada.
Donde si que puede ser una revolución es en el uso por parte de los investigadores, ya que facilita el acceso a cierto tipo de información, ahorrándonos trabajo que podemos dedicar a aspectos más complicados y, por ende, mejorando nuestro rendimiento y la calidad de la inteligencia sobre ciberamenazas que, en última instancia, es lo que ayuda a proteger mejor a los usuarios.