SANS Critical Advisory: BugBusters - AI Vulnerability Discovery Hype versus Reality
Introducción a la Sesión Especial
Presentación de los Ponentes
- Ed Scotis, presidente del SANS Technology Institute College, introduce a sus co-presentadores: Chris Elgie, instructor de SANS y Joshua Wright, fellow de SANS y Decano de Estudiantes.
- Se menciona que el objetivo es separar el mito de la realidad en torno a las capacidades recientes anunciadas por Anthropoc.
Anuncio de Modelos AI
- Anthropoc ha lanzado un nuevo modelo llamado Mythos, accesible para ciertas empresas asociadas bajo la iniciativa Project Glasswing.
- Este anuncio ha generado gran atención debido a su potencial para encontrar y explotar vulnerabilidades automáticamente.
Reacciones en la Industria
Reuniones Emergentes
- La semana pasada, se convocó una reunión de emergencia con los principales bancos estadounidenses para discutir cómo manejar esta nueva capacidad.
- Más de 450 CISOs participaron en una llamada reciente sobre este tema; el gobierno del Reino Unido también emitió una carta abierta al respecto.
Opiniones Contrapuestas
- Existen opiniones divididas: algunos consideran esto como un evento crítico (VulnaPocalypse), mientras que otros lo ven como una exageración publicitaria por parte de proveedores como Anthropic.
- OpenAI lanzó recientemente una nueva versión centrada en ciberseguridad, sugiriendo que están ajustando sus modelos para permitir análisis más profundos.
Desarrollo y Pruebas Penetrantes
Evolución del Testeo Penetrante
- Ed Scotis explica que su equipo ha estado realizando pruebas penetrantes asistidas por código fuente durante 15 años.
- En este enfoque tradicional, se busca vulnerabilidades sin revisar el código fuente inicialmente; luego se analiza el código para determinar si son explotables.
Integración con AI
- En los últimos 15 meses, han comenzado a implementar pruebas penetrantes asistidas por AI, cambiando significativamente el flujo de trabajo tradicional.
- Con este nuevo enfoque, se utiliza una herramienta AI para analizar el código fuente y detectar posibles fallas antes de realizar pruebas adicionales.
Metodología de Pentesting Asistido por IA
Proceso de Identificación y Explotación de Vulnerabilidades
- Se necesita ayudar a eliminar alucinaciones y falsos positivos para identificar los verdaderos defectos en un sistema. La IA se utiliza para encontrar estos defectos, crear posibles explotaciones y lanzarlas contra el sistema objetivo.
- Este flujo de trabajo es muy diferente y extremadamente eficiente. En 15 meses, se han descubierto hallazgos significativos que no habían sido identificados en pruebas anteriores realizadas por humanos.
- La metodología puede detectar fallas sutiles en flujos de trabajo poco comunes, donde ciertas acciones pueden llevar al sistema a un estado inusual que revela vulnerabilidades explotables.
- Se han identificado problemas como omisiones en la autenticación, fallas de autorización, condiciones de carrera y referencias inseguras a objetos directos (IDOR), lo que demuestra una aceleración en las capacidades del modelo.
- Se anticipa que esta metodología cambiará la industria significativamente. Chris LG demostrará el proceso de descubrimiento y explotación utilizando modelos actuales.
Consideraciones Legales y Técnicas
- Es crucial tener permiso para compartir código con modelos durante el pentesting. Sin este permiso, se deben realizar pruebas localmente aunque esto limite la efectividad.
- El modelo subyacente puede ser cualquiera (como Gemini o Codex), pero lo importante es centrarse en el flujo de trabajo más que en el modelo específico utilizado.
- Una limitación común entre todos los modelos es la ventana de contexto; solo pueden procesar una cantidad limitada de información a la vez, incluyendo entradas y salidas.
- La mayoría de las vulnerabilidades suelen encontrarse en una pequeña proporción del código; se debe enfocar el análisis en flujos críticos como autorizaciones o procesos específicos.
- Los modelos pueden cometer errores e "ilusionarse", generando vulnerabilidades críticas inexistentes. Es esencial validar los resultados mediante prompts adicionales para asegurar su veracidad.
Validación y Creación con Modelos LLM
- El pentesting implica validar las vulnerabilidades encontradas mediante explotación real, no solo confiando en escaneos volumétricos automáticos.
- Los modelos son útiles para crear herramientas rápidamente; por ejemplo, construir un concepto funcional o un entorno local para pruebas específicas sobre fragmentos del código analizado.
- Los LLM son efectivos buscando patrones dentro del código; pueden identificar lugares donde hay filtrado incorrecto de entradas o flujos autorizados defectuosos.
- Durante la presentación se analizará un código extenso (aproximadamente medio gigabyte), lo cual representa un desafío significativo debido a su complejidad.
¿Cómo los LLMs pueden ayudar en la programación?
Ventajas de los LLMs en el desarrollo de código
- Los humanos pueden seguir las trazas de código, pero es un proceso lento. Los LLMs son eficientes para encontrar dependencias y funciones secundarias.
- Los LLMs pueden iterar tantas veces como se desee, lo que resulta útil para evitar el aburrimiento humano al revisar el mismo bloque de código repetidamente.
- Se ha creado un nuevo curso de dos días en SANS que cubre la metodología que se presentará a continuación, aunque el ejemplo mostrado es diferente del material del curso.
Proceso de trabajo con LLMs
- La metodología presentada es aplicable a cualquier modelo utilizado; incluso un LLM local puede procesar 500 líneas sin problemas.
- El primer paso es mapear el repositorio de código para generar un resumen o tabla de contenido que sirva como referencia durante todo el proceso.
- Es crucial identificar el 20% del código que contiene la mayor parte del valor, enfocándose en este segmento a medida que se avanza.
Identificación y prueba de vulnerabilidades
- A medida que se reduce el contexto, se busca encontrar vulnerabilidades reales y no solo resultados aleatorios generados por los modelos.
- Una vez identificada una posible vulnerabilidad, se crea un entorno de prueba para ejecutar rápidamente fragmentos del código y realizar múltiples pruebas.
Generación de informes
- Aunque los LLM pueden ayudar a redactar informes, aún es necesario revisarlos manualmente para asegurar su calidad final.
- La inteligencia artificial requiere la intervención humana; no sustituye completamente la inteligencia real necesaria en estos procesos.
Descripción del caso práctico: DataEase
- El caso práctico examinado es DataEase, un sistema de gestión de contenido (CMS), con aproximadamente 1.7 millones de líneas y medio gigabyte.
- Se reconoce la contribución significativa del equipo detrás del desarrollo metodológico aplicado al análisis realizado sobre DataEase.
Proceso inicial con DataEase
- Se aclara que los errores discutidos fueron encontrados hace aproximadamente un año y ya han sido corregidos; no se están exponiendo nuevas vulnerabilidades.
- El primer paso consiste en confirmar qué versión del sistema está siendo analizada antes de comenzar con el mapeo detallado.
Mapeo detallado
- Se solicita al sistema que explore todo el repositorio y genere un mapa completo para facilitar futuras referencias durante la identificación de áreas potencialmente vulnerables.
Mapeo de Repositorios y Notas de Superficie de Ataque
Introducción a los Mapas de Repositorio
- Se presenta un mapa de repositorio, que es un archivo de texto plano que se puede referenciar. También se mencionan notas sobre la superficie de ataque.
- El sistema intenta anticiparse al usuario, lo que puede dificultar el proceso. Se busca gestionar esta anticipación en la clase específica.
Análisis del Contexto y Funciones
- Con el mapeo realizado, se identifican diferentes funciones y flujos de trabajo para enfocarse en vulnerabilidades específicas.
- Se menciona la importancia de filtrar información relevante debido a la gran cantidad de líneas (1.7 millones), lo que requiere un enfoque más preciso.
Vulnerabilidades Descubiertas
- Durante la demostración, se asegura que el sistema no tenga información previa sobre una vulnerabilidad ya parcheada, evitando así ser irresponsables.
- A pesar del enfoque en una vulnerabilidad conocida, el sistema también identifica otras vulnerabilidades adicionales.
Matriz Candidata y Enfoque
- Se genera un archivo markdown con una matriz candidata que destaca áreas potenciales para investigar más a fondo.
- La selección cuidadosa de funciones permite ahorrar tiempo en pruebas, facilitando el proceso para los testers.
Proceso Detallado y Resultados
- Al ejecutar funciones específicas, el modelo ayuda a comprender mejor procesos como "save validate", proporcionando contexto enfocado.
- Cada iteración del análisis refina el contexto presentado al modelo, permitiendo identificar dependencias y rutas críticas en el código.
Notas Finales sobre Verificación
- El LLM realiza un análisis exhaustivo del código proporcionado y devuelve notas útiles sobre posibles hallazgos o problemas detectados.
- La interfaz muestra dinámicamente los artefactos generados durante el proceso, facilitando su inspección por parte del usuario.
Análisis de Vulnerabilidades y Pruebas de Penetración
Proceso de Identificación y Prueba de Vulnerabilidades
- Se describe la función del código y se identifican las partes problemáticas, profundizando en el análisis técnico de la vulnerabilidad.
- Se crea un "test harness" para simular el proceso vulnerable utilizando solo las líneas necesarias del código, facilitando la construcción del exploit.
- El sistema genera un entorno de prueba en Python que permite realizar pruebas locales sobre la vulnerabilidad identificada.
- Se enfatiza la importancia de demostrar que una vulnerabilidad es real, evitando afirmaciones exageradas sin evidencia concreta.
- El sistema proporciona una salida JSON como prueba de que ha explotado con éxito la vulnerabilidad.
Ejecución del Exploit
- Se muestra cómo se ejecuta el exploit en un entorno controlado, comenzando por intentar acceder a una página inexistente (error 404).
- A pesar de ser un usuario no autenticado, se logra escribir en la base de datos o en el directorio web, lo cual no debería ser posible.
- La ejecución exitosa del exploit se ilustra mediante la aparición calculadora (Calc), simbolizando una prueba clásica en sistemas Windows.
Generación del Informe
- Se solicita al sistema que genere un informe estructurado sobre los hallazgos, siguiendo un formato específico utilizado en pruebas de penetración.
- El informe incluye un resumen ejecutivo y una puntuación CVSS alta (9.6), sugiriendo que escribir sin autenticación es grave.
Preguntas Comunes y Respuestas
- Se confirma que se están encontrando "zero days", es decir, vulnerabilidades nuevas no vistas anteriormente; aunque pertenecen a clases conocidas como Idoor o Bola.
- Las nuevas vulnerabilidades son reconocidas por su novedad pero encajan dentro de categorías bien entendidas por los modelos LLM utilizados para su identificación.
Modelos Utilizados para Análisis
- Se discuten varios modelos utilizados durante el análisis, incluyendo Gemini y Codex; además se menciona el uso reciente del modelo Opus 5.7.
- La flexibilidad para cambiar entre diferentes modelos es crucial debido a problemas potenciales como falta de tokens o comportamientos erráticos.
Este documento resume los puntos clave discutidos sobre el proceso técnico detrás del análisis y explotación de vulnerabilidades informáticas.
¿Cómo están cambiando los modelos de lenguaje la ciberseguridad?
Introducción a la discusión sobre ciberseguridad
- Se destaca un flujo de trabajo interesante y diferente al de las pruebas de penetración tradicionales, planteando preguntas sobre el futuro de la industria y lo que los profesionales de seguridad deben saber.
Reflexiones sobre el informe de Anthropic
- Joshua Wright comparte su experiencia leyendo el informe de Anthropic, que menciona una estabilidad relativa en ciberseguridad durante 20 años, pero advierte que los modelos de lenguaje grandes podrían alterar este equilibrio.
Vulnerabilidades en la cadena de suministro
- Se cuestiona qué significa "relativamente estable" en términos de vulnerabilidades existentes, como las del suministro y los días cero, sugiriendo que hay una percepción errónea sobre la estabilidad actual.
Perspectiva histórica en ciberseguridad
- A pesar del caos aparente por las vulnerabilidades constantes, se argumenta que ha habido un periodo prolongado de estabilidad en ciberseguridad. Se recuerda cómo era antes del "Patch Tuesday" de Microsoft.
Impacto asimétrico de la IA
- La inteligencia artificial (IA) ofrece ventajas desproporcionadas a los atacantes. Aunque también puede ser utilizada por defensores, actualmente el beneficio parece estar más del lado ofensivo.
Cambios inminentes en el panorama cibernético
- Se anticipa un cambio significativo donde no solo se enfrentarán tres nuevos días cero a la semana, sino cientos o más. Esto representa un desafío considerable para la industria.
Uso creciente de IA por parte de atacantes
- Los atacantes están comenzando a utilizar modelos AI para identificar y explotar vulnerabilidades. Esto incluye no solo encontrar fallas sino también coordinar ataques y crear entornos engañosos.
Recomendaciones para mejorar procesos
- Es crucial revisar cada paso del proceso de parcheo: desde su creación hasta su validación. La mejora debe abarcar todo el ecosistema para hacer frente a las vulnerabilidades emergentes.
Desafíos con parches en diferentes plataformas
- Existen dificultades específicas con sistemas como Mac que complican el proceso automatizado para aplicar parches críticos. Este problema no es exclusivo del sector empresarial; todos los proveedores deben mejorar sus prácticas.
Reevaluación del riesgo empresarial
- Muchos clientes subestiman ciertas vulnerabilidades hasta que se convierten en problemas graves. Es necesario reconsiderar cómo se evalúan estos riesgos dentro del contexto actual cambiante.
Entendiendo los Riesgos Empresariales en un Mundo de Vulnerabilidades
Reconsideración de la Gestión de Riesgos
- Es crucial mejorar nuestra comprensión sobre los riesgos que enfrentan las empresas y lo que se considera aceptable en términos de tiempo de inactividad. La necesidad de programar ventanas para reiniciar sistemas y aplicar parches es cada vez más urgente.
- Se debe considerar esta situación como una oportunidad, tal como dijo Winston Churchill: "nunca desperdicies una buena crisis". Los problemas actuales pueden ser aterradores, pero también ofrecen oportunidades para el crecimiento.
Oportunidades para el Liderazgo
- Todos los participantes del webcast deben reflexionar sobre cómo asesorar a sus superiores y traducir riesgos prácticos en acciones adecuadas para su organización. El conocimiento del negocio es fundamental.
- Utilizar el conocimiento interno para posicionarse como experto en la industria es esencial. No dejar pasar esta oportunidad implica hacer investigaciones sólidas y hablar con confianza ante ejecutivos.
Control Tradicional y Nuevas Amenazas
- A pesar del aumento en ataques, los controles tradicionales siguen siendo efectivos. Limitar el alcance del daño tras un compromiso es vital; esto incluye gestionar privilegios cuidadosamente.
- Implementar técnicas de caza de amenazas puede ayudar a reducir el tiempo medio para detectar vulnerabilidades. Es necesario repensar cómo estructuramos nuestros programas de respuesta a incidentes.
Ejercicios Prácticos y Resiliencia Organizacional
- Los ejercicios prácticos son recomendados desde hace años, pero deben adaptarse al contexto actual donde múltiples ataques pueden ocurrir simultáneamente, desafiando la capacidad del equipo.
- Anticiparse a estos problemas permitirá asignar recursos adecuados para responder efectivamente a nuevas amenazas emergentes.
Nuevas Estrategias en Gestión de Vulnerabilidades
- La gestión de vulnerabilidades (volnapps o ASM - Attack Surface Management) debe ser reconsiderada. Las organizaciones necesitan planes que aborden no solo software destacado sino toda su infraestructura.
- Con la ayuda de IA, las organizaciones enfrentarán más amenazas debido a la facilidad con que se pueden identificar vulnerabilidades sin requerir experiencia previa significativa.
Reflexiones sobre el Futuro
- Mantenerse actualizado es complicado; todos enfrentamos desafíos constantes. Es importante reflexionar sobre cómo estas dinámicas afectarán nuestras organizaciones en el futuro.
- Se especula que las vulnerabilidades podrían aumentar drásticamente debido al uso creciente de IA, lo cual plantea nuevos retos aún no completamente comprendidos por la industria.
¿Cómo la IA está transformando la seguridad del software?
Enfoque en el software de código abierto
- Actualmente, Mythos y muchas plataformas se centran en el software de código abierto. Se menciona que Photoshop utiliza elementos de código abierto para sus analizadores de imágenes y archivos, lo que resalta las vulnerabilidades del software cerrado.
Proyecciones sobre vulnerabilidades futuras
- Se anticipa un aumento inicial en la detección de vulnerabilidades, con modelos de IA mejorando su capacidad para realizar ingeniería inversa en software cerrado. Esto podría complicar aún más la situación para las organizaciones.
- Se prevé un período donde la detección de vulnerabilidades alcanzará un punto máximo antes de estabilizarse. Este ciclo puede durar entre uno a cinco años, generando una fase tumultuosa llena de vulnerabilidades.
Futuro del ecosistema de software
- A largo plazo, se espera que las vulnerabilidades disminuyan significativamente. Aunque no hay certeza sobre cuándo ocurrirá esto, se vislumbra un futuro más seguro para el ecosistema del software.
- La mejora continua en los modelos de IA debería resultar en menos vulnerabilidades tanto en el software codificado por humanos como en el código abierto y cerrado.
Oportunidades y recursos disponibles
- Para avanzar hacia un entorno más seguro, es crucial identificar oportunidades y actuar proactivamente. Aunque los próximos años pueden ser desafiantes, hay esperanzas para un futuro mejor.
- Se mencionan recursos útiles como una cumbre sobre ciberseguridad centrada en IA organizada por SANS, accesible gratuitamente online.
Recursos adicionales recomendados
- Un documento titulado "La tormenta de vulnerabilidad AI: Construyendo un programa de seguridad listo para Mythos" ofrece consejos prácticos valiosos enfocados principalmente a CISOs.
- Rob Lee está organizando un hackathon llamado "Find Evil", destinado a construir nuevo software utilizando herramientas de IA enfocadas en análisis forense.
- También se presenta una nueva clase llamada "Análisis y explotación asistidos por IA del código fuente" diseñada para testers de penetración, destacando su relevancia actual.
- Se proporciona una guía práctica sobre cómo utilizar herramientas de IA para el análisis de vulnerabilidades del código fuente, resumiendo técnicas discutidas durante la presentación.
Preguntas y participación comunitaria
- Durante la sesión final se destaca la importancia del compromiso comunitario al abordar preguntas relevantes planteadas por los participantes sobre los temas discutidos.
¿Cómo se integra la inteligencia artificial en las pruebas de penetración?
Aplicaciones y metodologías de pruebas
- Se discute si el uso de LLM (Modelos de Lenguaje Grande) es específico para aplicaciones web o también se aplica a aplicaciones compiladas. La respuesta indica que los LLM pueden ser útiles en ambos contextos.
- Se menciona que los LLM están alcanzando un nivel donde pueden ayudar en la ingeniería inversa, con ejemplos de su uso junto a herramientas como Ghidra.
- El equipo está aplicando técnicas similares en hardware, analizando aplicaciones compiladas y utilizando LLM para facilitar el trabajo.
Interacción entre humanos y LLM
- Se plantea cuándo debe cambiarse del uso de LLM a pruebas manuales. La respuesta enfatiza que la intervención humana debe ser constante durante todo el proceso.
- Es crucial que los humanos estén mentalmente involucrados, ya que los LLM pueden desviarse hacia caminos no productivos sin supervisión adecuada.
Futuro del pen testing con IA
- Se pregunta si las pruebas de penetración asistidas por IA se convertirán en un estándar industrial. La respuesta sugiere que aunque hay lógica detrás de esto, la adopción será lenta debido a cuestiones de gobernanza.
- Aunque podría haber una integración inevitable de herramientas AI en procesos futuros, no necesariamente se exigirá su uso explícito; más bien se enfocará en resultados específicos.
Desafíos económicos y técnicos
- Se discuten las implicaciones económicas del costo elevado asociado al uso de tokens y cómo esto podría afectar la viabilidad práctica del uso continuo de modelos AI.
- Si el costo real del funcionamiento aumenta debido a cambios económicos, esto podría generar fricción en el proceso y hacer que los usuarios sean más responsables con sus solicitudes a los modelos AI.
Estructuración del equipo para proyectos valiosos
- Para proyectos importantes, se destaca la diversidad dentro del equipo: desde aquellos apasionados por la IA hasta quienes son más metódicos. Esto resalta la importancia de tener un balance entre creatividad e investigación sistemática al buscar vulnerabilidades.
Integración de la IA en Procesos Empresariales
Diversidad de Habilidades en Equipos
- La adopción de la IA puede haber sido tardía, pero las empresas continúan integrándola en sus procesos. Cada miembro del equipo aporta diferentes habilidades que son cruciales para evaluaciones y compromisos.
- Es esencial contar con habilidades técnicas sólidas, como pruebas de penetración. En CounterHack, todos los analistas tienen experiencia significativa, lo que permite una mezcla efectiva de creatividad y pensamiento metódico.
- La combinación de roles diversos es clave para lograr compromisos efectivos. Se fomenta el aprendizaje continuo entre empleados para mejorar el uso de modelos de lenguaje (LLMs).
Compartir Conocimientos con la Comunidad
- Se desarrolló un CTF interno para que el equipo aprenda técnicas a través de un enfoque divertido. Esto se transformó en una clase ofrecida por SANS, ampliando el alcance del conocimiento compartido.
Perspectivas sobre Innovaciones y Recursos
- Se plantean preguntas sobre soluciones innovadoras frente a recomendaciones tradicionales. Hay una necesidad urgente de priorizar recursos ante nuevas capacidades que pueden ser explotadas.
- Existe preocupación por la presión financiera sobre instituciones como hospitales y escuelas al considerar nuevas inversiones en seguridad cibernética.
Gestión del Estrés y Desigualdades
- No se debe abandonar cada proyecto existente; es vital que los tomadores de decisiones evalúen cuidadosamente las prioridades organizacionales.
- La gestión del agotamiento es crucial; un exceso puede llevar a una disminución en la producción significativa dentro de las organizaciones.
Oportunidades y Retos Futuros
- Aunque hay oportunidades para que la IA ayude a cerrar brechas, actualmente hay más énfasis en el lado ofensivo (ataques), mientras que las defensas no están avanzando al mismo ritmo.
- Iniciativas comunitarias como hackatones pueden contribuir a crear software open source, ayudando a reducir costos y ofreciendo opciones accesibles para muchas organizaciones.
Recomendaciones Prácticas
- Siempre se proporcionan parches sugeridos a los clientes tras pruebas de penetración. Aunque se pueden ofrecer cambios específicos en código, estos deben ser evaluados por desarrolladores competentes antes de su implementación.
¿Cuáles son los recursos útiles en seguridad en la nube?
Conclusiones y Recursos
- El tiempo de la discusión ha llegado a su fin. Chris Elgie y Josh Wright agradecen a todos por compartir información valiosa.
- Se menciona la importancia de revisar una diapositiva de recursos que contiene información útil para los asistentes.
- Se destaca un documento específico, el "Cloud Security Alliance paper", escrito por Gadi Evron, Rich Mogul y Rob T. Lee, como una lectura recomendada que ofrece gran perspectiva sobre los temas discutidos.
- Se anima a los participantes a explorar otros recursos presentados en la diapositiva, sugiriendo que pueden ser igualmente beneficiosos.
- La lectura del documento mencionado se considera esencial para profundizar en las ideas tratadas durante la conversación.