ChatGPT para Pentesters
IBM PTC es un competente equipo de pruebas de seguridad interno responsable de la evaluación de vulnerabilidades y el hacking ético de la web, las aplicaciones móviles y la infraestructura.
Introducción:
A medida que el mundo se digitaliza cada vez más, la seguridad se ha convertido en un tema cada vez más importante. Las empresas y organizaciones deben buscar formas nuevas e innovadoras de mejorar la seguridad de sus productos. Un nuevo enfoque prometedor es el uso de modelos de lenguaje, como ChatGPT, en las áreas de seguridad.
Desde resolver problemas matemáticos sencillos hasta descifrar exámenes de medicina y derecho, desde enmarcar argumentos de venta hasta analizar y encontrar vulnerabilidades en el código, ChatGPT se ha convertido en un nuevo genio en la ciudad.
ChatGPT es un modelo basado en la conversación desarrollado por OpenAI. ChatGPT es capaz de generar respuestas similares a las humanas y también es capaz de responder preguntas de seguimiento. Se entrena en un gran conjunto de bases de datos utilizando un modelo de retroalimentación humana. También puede realizar traducciones, resúmenes y generación de textos.
Mediante el uso de la tecnología de procesamiento del lenguaje natural de ChatGPT, es posible automatizar diversas tareas en el campo de la ciberseguridad. Algunas áreas clave en las que ChatGPT puede ser útil en seguridad son la inteligencia de amenazas, la evaluación de riesgos, la respuesta a incidentes, etc. Además, ChatGPT puede ayudar en algunos aspectos de las pruebas de penetración como el reconocimiento, el escaneo de vulnerabilidades, la explotación, la generación de plantillas de informes y otras automatizaciones.
En este artículo, exploraremos cómo ChatGPT es útil con respecto a las áreas de seguridad, como el análisis de código fuente, el reconocimiento, las pruebas de penetración manuales, DevSecOps y la automatización de tareas de seguridad como: creación de extensiones de Burp Suite, generación de informes de pentest, creación de herramientas independientes para identificar vulnerabilidades, etc.
Nota: Serequiere inteligencia humana para analizar los resultados de ChatGPT. ChatGPT puede generar respuestas a preguntas y realizar tareas basadas en patrones aprendidos, no siempre es preciso y, a veces, puede cometer errores o producir resultados que no son relevantes o apropiados.
ChatGPT para pruebas de penetración:
Las pruebas de penetración son un ataque simulado autorizado para evaluar la seguridad de un sistema o red. El objetivo de una prueba de penetración es identificar vulnerabilidades en el sistema o la red que podrían ser explotadas por un atacante y proporcionar recomendaciones de corrección para la corrección de las vulnerabilidades identificadas.
Con ChatGPT, uno puede realizar pruebas de penetración efectivas y ayudar a proteger sus productos de extremo a extremo. ChatGPT puede ayudar a agilizar y mejorar la eficiencia de estos procesos, ahorrando tiempo y esfuerzo a los probadores de penetración.
Fases de las pruebas de penetración:
Las pruebas de penetración implican varias etapas, como el reconocimiento, el análisis de vulnerabilidades, las pruebas de penetración manuales y la elaboración de informes. ChatGPT puede ayudar a los pentesters a probar sistemas y redes de forma rápida y eficiente en busca de debilidades y a desarrollar ataques dirigidos que puedan explotar esas debilidades.
Con fines de demostración, hemos considerado aplicaciones de código abierto como demo.testfire.net y OWASP Juice Shop.
1. Reconocimiento:
ChatGPT puede utilizarse para el reconocimiento durante las pruebas de penetración mediante el análisis de datos e información recopilados de diversas fuentes y la identificación de posibles vulnerabilidades y vectores de ataque. Esto incluye el análisis de información como la arquitectura de red, las versiones de software y el comportamiento del usuario, así como la identificación de posibles debilidades en los protocolos y procedimientos de seguridad.
Como se muestra en la captura de pantalla, ChatGPT puede sugerir herramientas que se utilizarán para el reconocimiento.
Además, se le preguntó a ChatGPT cómo usar la herramienta Nmap para escanear cualquier objetivo. Proporcionó algunos comandos que se probaron manualmente, como se muestra en las capturas de pantalla a continuación.
2. Pruebas de penetración manuales:
ChatGPT puede ser útil para proporcionar casos de prueba para pruebas de penetración manuales al generar una amplia gama de posibles escenarios de ataque y casos de prueba basados en los datos y la información proporcionada por los analistas de seguridad. Esto puede ayudar a garantizar que todas las posibles vulnerabilidades y vectores de ataque se prueben y aborden adecuadamente durante el proceso de pentesting manual.
ChatGPT puede ayudar a garantizar que el proceso de pentesting manual sea exhaustivo y eficaz, y que todas las posibles vulnerabilidades se prueben y aborden adecuadamente.
ChatGPT puede proporcionar casos de prueba para pruebas de penetración a nivel de redes y aplicaciones web, API, contenedores y redes.
Por ejemplo, le pedimos a ChatGPT que proporcionara casos de prueba manuales junto con cargas útiles para la inyección SQL, como se muestra en la captura de pantalla.
3. Generación de informes de pentest:
ChatGPT puede agregar los resultados de múltiples escaneos de vulnerabilidades y ayudar a priorizar los hallazgos en función del riesgo y el impacto. También automatiza el proceso de generación de informes, ahorrando tiempo y aumentando la precisión. Puede ayudar a estandarizar el formato de los informes y garantizar la coherencia entre los diferentes informes.
Se proporcionó información detallada sobre las vulnerabilidades que se encontraron durante la fase de prueba de penetración manual como entrada y ChatGPT generó una plantilla de informe.
Al automatizar el proceso de generación de informes, ChatGPT puede ayudar a ahorrar tiempo y reducir errores, mejorando así la eficiencia del proceso de pentesting. Además, ChatGPT puede ayudar a compartir conocimientos y mejores prácticas para las pruebas de penetración, mejorando así la eficacia general de los esfuerzos de pruebas de penetración.
Automatización para pruebas de seguridad y herramientas independientes:
ChatGPT es una gran herramienta para la automatización de muchas tareas realizadas por un pentester, desde la generación de casos de prueba simples hasta la realización de tareas tediosas, como la creación de extensiones de Burp Suite, plantillas de núcleos y herramientas independientes para la identificación de vulnerabilidades también se pueden automatizar.
1. Creación de plantillas de núcleos:
ChatGPT se puede utilizar para ayudar a automatizar la escritura de plantillas de núcleos generando la estructura básica y el contenido de la plantilla y proporcionando sugerencias de reglas y variables adicionales basadas en la entrada del usuario.
Por ejemplo, un usuario podría proporcionar a ChatGPT una lista de URL o dominios y pedirle que genere una plantilla de núcleos para una vulnerabilidad o problema de seguridad específico. A continuación, ChatGPT podría generar la estructura básica de la plantilla, incluido el encabezado, la descripción y las reglas básicas, en función de su comprensión de la vulnerabilidad o el problema de seguridad.
Por ejemplo, se obtuvo una plantilla de núcleos básica para XXE, como se muestra en la captura de pantalla siguiente. Al instalar la plantilla de núcleos, podemos ejecutar este archivo yaml para un objetivo vulnerable. Esto también se puede integrar con herramientas como Burp Suite, que mejora la calidad de las pruebas de penetración.
2. Creación de extensiones de Burp Suite:
ChatGPT, un procesador de lenguaje natural, tiene la capacidad de escribir código para extensiones personalizadas de Burp Suite. Las extensiones de Burp Suite generalmente se escriben en Java, Python o Ruby. Se pueden generar fragmentos de código para diferentes partes de la extensión de Burp Suite, como el manejo de sesiones, la modificación de solicitudes y respuestas, el análisis de datos, etc.
Como probador de penetración, esta capacidad de ChatGPT sería un gran beneficio, ya que ayudaría a reducir los esfuerzos manuales.
Por ejemplo, comenzamos con la automatización de un ataque XSS inyectando cargas útiles XSS en todos los puntos de inserción de una solicitud. Este código se integró con éxito con Burp Suite como una extensión. Cuando la extensión está habilitada, las cargas útiles se activarán durante el escaneo activo, como se muestra en la captura de pantalla.
3. Herramientas independientes:
ChatGPT puede ser útil para generar fragmentos de código para una herramienta independiente, lo que puede ayudar a comenzar a escribir código para su herramienta en el lenguaje de programación de su elección.
ChatGPT también puede proporcionar orientación sobre cómo utilizar las bibliotecas o las API si la herramienta independiente se basa en bibliotecas o API específicas.
Sin embargo, es importante tener en cuenta que el código generado por ChatGPT puede no ser siempre perfecto u optimizado, y puede requerir pruebas y refinamientos adicionales antes de ser utilizado en entornos de producción.
Como se muestra, ChatGPT proporcionó un código de trabajo para una herramienta independiente que identifica vulnerabilidades como encabezados de seguridad faltantes, divulgación de información confidencial, etcétera, y el resultado es el que se muestra a continuación.
OSS y CVES:
ChatGPT puede ser útil para comprender el contexto y las implicaciones de las vulnerabilidades en OSS. Puede ayudar a identificar la gravedad de la vulnerabilidad y proporcionar orientación sobre cómo mitigar el riesgo. Puede ayudar a evaluar la gravedad y el impacto de las vulnerabilidades en el OSS. Puede proporcionar recomendaciones sobre la prioridad de la aplicación de parches o la actualización del software afectado e identificar cualquier dependencia o conflicto potencial que deba abordarse.
A continuación, se muestra un ejemplo de uno de los OSS con vulnerabilidades conocidas:
ChatGPT también puede ayudar a evaluar el riesgo que plantea un CVE en particular. Puede proporcionar recomendaciones sobre la prioridad de la aplicación de parches o la actualización del software afectado e identificar cualquier dependencia o conflicto potencial que deba abordarse. También puede proporcionar datos de CVE que están presentes en un OSS con vulnerabilidades conocidas. Dado un CVE, ChatGPT tiene la información sobre el CVE como se muestra a continuación:
Otras áreas útiles de seguridad en las que ChatGPT puede ser útil:
1. Análisis del código fuente:
ChatGPT se puede utilizar para la revisión del código fuente mediante el análisis del código fuente de una aplicación y la identificación de posibles vulnerabilidades de seguridad.
ChatGPT también se puede utilizar para sugerir correcciones para las vulnerabilidades identificadas proporcionando sugerencias de cambios en el código que mitigarían la vulnerabilidad. Además, el modelo se puede utilizar para priorizar las vulnerabilidades identificadas en función de su gravedad y su posible impacto en la aplicación. ChatGPT puede identificar vulnerabilidades independientemente de los lenguajes de programación.
Como ejemplo, considere cualquier fragmento de código y pídale a ChatGPT que identifique las vulnerabilidades. En la siguiente captura de pantalla, ChatGPT analiza el código e identifica las vulnerabilidades.
En la captura de pantalla a continuación, dado un código vulnerable, ChatGPT identifica las vulnerabilidades y también proporciona el código actualizado con posibles correcciones.
ChatGPT también puede evaluar la calidad del código en función de parámetros como la seguridad, el rendimiento y la mantenibilidad. En la siguiente captura de pantalla, se muestra un ejemplo de lo mismo.
2. DevSecOps:
DevSecOps se refiere a la integración de la seguridad en el proceso de DevOps. Es importante tener en cuenta la seguridad en todo el proceso de CI/CD, desde las primeras etapas de desarrollo hasta la implementación y más allá.
Durante el proceso de desarrollo, ChatGPT puede utilizarse para ayudar en las revisiones de código, analizar el código en busca de posibles vulnerabilidades de seguridad y proporcionar sugerencias para correcciones. Esto permite a los desarrolladores detectar posibles problemas en una fase temprana del proceso de desarrollo, lo que reduce el riesgo de que se introduzcan vulnerabilidades en la aplicación.
Por ejemplo, cuando se le pidió que creara una canalización de CI/CD con varias herramientas integradas, ChatGPT proporcionó un script maravilloso para generar una canalización y también proporcionó pasos sobre cómo instalar e integrar cada herramienta en Jenkins.
3. Creación de extensiones de navegador:
Otra característica interesante de ChatGPT es la escritura de fragmentos de código para extensiones de navegador personalizadas. Las extensiones de navegador personalizadas pueden ser una herramienta valiosa en el kit de herramientas de pentesting, ya que le permiten automatizar tareas repetitivas, probar vulnerabilidades y documentar sus hallazgos de manera clara y concisa.
A continuación se muestra uno de los códigos de extensión del navegador que se obtuvo de ChatGPT:
4. Creación de chatbots:
Al aprovechar las capacidades avanzadas de procesamiento del lenguaje de ChatGPT, los desarrolladores pueden crear un chatbot que pueda proporcionar respuestas oportunas y precisas a una amplia gama de consultas relacionadas con la seguridad y los recursos.
Para crear un chatbot de seguridad/recursos con ChatGPT, los desarrolladores pueden proporcionar primero al modelo una serie de datos e información relacionados con la seguridad y los recursos, como políticas y procedimientos de seguridad, manuales de usuario y otra documentación relevante. A continuación, el modelo puede analizar estos datos y generar un conjunto de respuestas a las consultas y solicitudes comunes de los usuarios.
Por ejemplo, ChatGPT fue capaz de crear un chatbot utilizando Python que proporciona los casos de prueba manuales que se pueden realizar para las 10 principales vulnerabilidades de OWASP.
5. Creación de algoritmos para la detección de actividades maliciosas:
ChatGPT se puede utilizar en combinación con técnicas de aprendizaje automático para construir modelos que puedan detectar actividades maliciosas. Puede ayudar a entrenar estos modelos al proporcionar grandes cantidades de datos y integrarse con herramientas de automatización de respuestas para tomar medidas contra actividades maliciosas automáticamente. Puede ayudar a bloquear el acceso, poner en cuarentena los archivos y generar alertas a los equipos de seguridad.
A modo de ejemplo, se ha generado un algoritmo para la detección de actividades maliciosas mediante la lectura de archivos de registro.
Limitaciones de ChatGPT:
1. ChatGPT ha sido entrenado solo en conjuntos de datos limitados hasta el año 2021.
2. Solo puede proporcionar soluciones o asistencia, pero no puede realizar ni reemplazar la inteligencia humana.
3. No da respuestas precisas en todo momento.
4. Es mejor evitar revelar información confidencial o ideas de patentes a ChatGPT, ya que podría causar problemas de derechos de autor.
5. Se recomienda no utilizar exactamente los mismos contenidos recuperados de ChatGPT, ya que podría dar lugar a problemas de licencia.
Conclusión:
En conclusión, ChatGPT es una herramienta valiosa para los pentesters que buscan mejorar su eficiencia y eficacia en diversas áreas de su trabajo. Con sus capacidades de procesamiento de lenguaje natural, puede proporcionar rápidamente respuestas a consultas comunes, ofrecer información sobre posibles vulnerabilidades e incluso generar scripts personalizados para automatizar ciertas tareas. Además, su capacidad para aprender continuamente de nuevos datos y adaptarse a nuevos escenarios lo convierte en un recurso indispensable para los pentesters que desean adelantarse a las amenazas emergentes.
Tanto si eres un pentester experimentado como si acabas de empezar en el campo, ChatGPT es una excelente herramienta que puede ayudarte a agilizar tu flujo de trabajo, mejorar tu precisión y, en última instancia, proporcionar mejores resultados a tus clientes. Al aprovechar el poder de esta tecnología avanzada de IA, puede llevar sus habilidades de pentesting al siguiente nivel y mantenerse a la vanguardia del panorama de seguridad en constante evolución.
Fuente: PenTest
Comentarios
Publicar un comentario