Volver a actualizaciones
Nuevo releaseJul 16, 2026

attackgen v0.13.1

AttackGen es una herramienta de prueba de respuesta a incidentes de ciberseguridad que aprovecha el poder de los modelos de lenguaje grandes y el completo marco MITRE ATT&CK. La herramienta genera escenarios de respuesta a incidentes personalizados basados en grupos de actores de amenazas seleccionados por el usuario y los detalles de su organización.

Compartir

AttackGen

AttackGen es una herramienta de pruebas de respuesta a incidentes de ciberseguridad que aprovecha el poder de los grandes modelos de lenguaje y los completos marcos MITRE ATT&CK y ATLAS. La herramienta genera escenarios de respuesta a incidentes personalizados basados en grupos de actores de amenazas seleccionados por el usuario, estudios de casos de ataques de IA y los detalles de tu organización.

Tabla de contenidos

Star the Repo

Si encuentras AttackGen útil, considera darle una estrella al repositorio en GitHub. Esto ayuda a que más personas descubran la herramienta. ¡Tu apoyo es muy apreciado! ⭐

Características

  • Genera escenarios únicos de respuesta a incidentes basados en grupos de actores de amenazas seleccionados o estudios de casos de ATLAS.
  • Te permite especificar el tamaño y la industria de tu organización para un escenario personalizado.
  • Soporta los marcos MITRE ATT&CK Enterprise, ICS (Sistemas de Control Industrial) y ATLAS (Panorama de Amenazas Adversarias para Sistemas de IA).
  • Muestra una lista detallada de técnicas utilizadas por el grupo de actores de amenazas o el estudio de caso seleccionado.
  • Crea escenarios personalizados basados en una selección de técnicas de ATT&CK o ATLAS.
  • Utiliza plantillas de escenarios para generar rápidamente escenarios personalizados basados en tipos comunes de incidentes cibernéticos, incluidos patrones de ataque específicos de IA/ML.
  • Genera Escenarios de Amenazas Internas de IA: ejercicios de respuesta a incidentes en los que un agente de IA de frontera desplegado dentro de tu organización se comporta como una amenaza interna, basado en el modelo de amenazas de Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents. Los escenarios se configuran según el arquetipo de despliegue del agente (nivel de autonomía), la categoría de amenaza, las amenazas STRIDE y una semilla de escenario opcional en texto libre.
  • Asistente de AttackGen: una interfaz de chat para actualizar y/o hacer preguntas sobre los escenarios generados.
  • Captura comentarios de los usuarios sobre la calidad de los escenarios generados.
  • Escenarios descargables en formato Markdown.
  • Utiliza la API de OpenAI, la API de Anthropic (modelos Claude), la API de Google AI, la API de Mistral, la API de Groq o cualquier endpoint personalizado compatible con OpenAI (Ollama, LM Studio, Azure OpenAI, OpenRouter, etc.) para generar escenarios de respuesta a incidentes. Todos los proveedores se enrutan a través de LiteLLM detrás de un único envoltorio interno, por lo que añadir un nuevo modelo es un cambio de una sola línea.
  • Disponible como imagen de contenedor Docker para facilitar el despliegue.
  • Integración opcional con LangSmith para potentes capacidades de depuración, pruebas y monitoreo del rendimiento del modelo.
  • Gestión segura de credenciales mediante un archivo .env para claves API y secretos.

Captura de pantalla de AttackGen

Lanzamientos

v0.16

¿Qué hay de nuevo?¿Por qué es útil?
Generación de escenario base primero- Escenario antes de la espera: la generación ahora se ejecuta en fases: el escenario base se renderiza primero con sus botones Descargar escenario y Descargar capa de ATT&CK Navigator ya activos, y la narrativa opcional del equipo púrpura se transmite después. Si esa segunda pasada es lenta, o no la necesitas, el escenario se puede usar de inmediato en lugar de retenerse hasta que todo termine.

- Entradas congeladas al generar: cada ejecución trabaja con una instantánea tomada en el momento en que presionas Generar, por lo que cambiar la barra lateral a mitad de la ejecución no puede reescribir a medias el escenario que se está produciendo.

- Progreso honesto: una etiqueta de tiempo transcurrido en ejecución y fases con nombre (preparación de entradas, generación del escenario base, construcción de exportaciones deterministas, generación de la narrativa del equipo púrpura) muestran hasta dónde ha llegado realmente una ejecución larga.
Selectores neutrales y sin callejones sin salida- Solo opciones que funcionan: los selectores de grupos de amenazas y estudios de casos ahora ofrecen solo las opciones que realmente producen un escenario, por lo que una selección ya no puede llevar a un callejón sin salida.

- Orden natural: los grupos se ordenan en orden numérico natural, por lo que APT3 aparece antes que APT28 y APT30 en lugar de ordenarse como texto y quedar entre ellos.
Barra lateral de configuración compartida en cada página- Configura una vez: proveedor, modelo, marco, industria y tamaño de empresa ahora viven en una única barra lateral de Configuración compartida en cada página de escenario (Grupo de amenazas, Personalizado y Amenaza interna de IA), en lugar de volver a introducirse en cada una.

- Sobrevive a la navegación: las selecciones no secretas persisten al moverte entre páginas y se reflejan en la URL, mientras que las claves API se mantienen deliberadamente fuera de la cadena de consulta.
Mantenimiento de plataforma y seguridad- MCP en el SDK 2.x: el servidor MCP se ha movido al SDK mcp 2.x.

- Imagen base más reciente: la imagen Docker ahora se basa en python:3.14-slim.

- Puertas de CI en lugar de advertencias: los escaneos de seguridad ahora hacen fallar la compilación ante hallazgos en lugar de solo informarlos: pip-audit y Bandit actúan como puertas, Trivy ya no cuenta erróneamente el SBOM incluido de pip como paquetes instalados, y las CVEs accionables de la imagen están resueltas. Las GitHub Actions se han movido fuera del runtime de Node 20 y Dependabot ahora rastrea las propias acciones del flujo de trabajo.
Lanzamientos anteriores (v0.15 y anteriores)

v0.15

¿Qué hay de nuevo?¿Por qué es útil?
Preajuste de escape del entorno de evaluación y semilla de escenario- Ensaya un incidente específico: una nueva plantilla de amenaza interna de IA ensaya un agente de evaluación que alcanza sistemas reales desde un entorno que se asume aislado, lo que obliga a la contención, la rotación de credenciales, la notificación a terceros y la preservación de evidencia. Cubre las divulgaciones de julio de 2026 de agentes de evaluación que escaparon de sus sandboxes, donde el límite de aislamiento se asumía en lugar de aplicarse.

- Las plantillas ahora llegan al prompt: las plantillas de inicio rápido anteriormente solo rellenaban previamente los widgets de la página y nunca influían en el escenario generado. Ahora llevan un brief narrativo y las required_decisions que las Preguntas de discusión deben forzar, ambos integrados en el prompt, por lo que una plantilla produce un tabletop cronometrado utilizable en lugar de una bolsa de preguntas variadas. Esto las divide en dos clases: las seis plantillas originales de arquetipo solo establecen decisiones, por lo que el modelo inventa la premisa y volver a ejecutar una produce un ejercicio fresco para el mismo perfil de amenaza; las plantillas de incidente también establecen un brief, fijando la situación.

- Semilla de escenario en texto libre: un cuadro de semilla opcional en la página de Amenaza interna de IA dirige la narrativa en cualquier escenario. Seleccionar una plantilla lo rellena previamente, y puedes editarlo o escribir el tuyo desde cero.

- Taxonomía ampliada a 27 amenazas / 6 categorías: añade una sexta categoría de amenaza (Contención e impacto en terceros) y cuatro amenazas STRIDE sobre las que gira el ejercicio: S5 reutilización de credenciales de carga de trabajo, R4 supresión de telemetría del lado del agente, I5 compromiso de terceros y aguas abajo, y E5 fallo de aseguramiento del límite de contención. AttackGen ahora extiende el modelo de amenazas publicado en lugar de reflejarlo.

- Plantillas utilizables a través de MCP: get_ai_insider_prompt y generate_ai_insider_scenario aceptan template= y scenario_seed=, y list_ai_insider_options devuelve cada plantilla con las selecciones y el brief que aplica, por lo que un cliente puede elegir un preajuste según sus méritos y llamar solo con una plantilla, industria y tamaño de empresa. Anteriormente los nombres de las plantillas se listaban pero ninguna herramienta los aceptaba.
Habilidad attackgen-tabletop: ruta de amenaza interna de IA- Una segunda ruta de ejercicio: la habilidad de agente ahora construye un tabletop a partir del modelo de amenaza interna de IA además de una kill chain de MITRE. Elige una plantilla de inicio rápido (o un arquetipo de despliegue y categorías de amenaza) y convierte la carga útil de get_ai_insider_prompt en un MSEL.

- Misma forma, diferente columna vertebral: el ejercicio mantiene las mismas seis secciones, pero la tabla de kill chain se convierte en un perfil de agente y un alcance de amenazas STRIDE, la tarjeta de puntuación de detección se evalúa contra la postura de detección del arquetipo de despliegue, por lo que las filas que no se activarían se convierten en el hallazgo, y las decisiones requeridas de la plantilla se convierten en preguntas de discusión obligatorias.

- Ruta elegida por ti: la descripción de la habilidad ahora se activa con frases sobre agentes rebeldes, por lo que pedir un "tabletop de amenaza interna de IA" llega a la ruta correcta. Un actor externo con tácticas aceleradas por IA permanece en la ruta de MITRE.

- Respuesta, no explotación: ambas rutas están explícitamente limitadas a ensayar las decisiones que un equipo de respuesta debe tomar (sin código de explotación, cargas útiles ni vulnerabilidades reales sin parchear), y la ruta de IA atribuye el comportamiento del agente a la configuración, el acceso y el objetivo en lugar de a la motivación humana.
Corrección: los prompts MCP de amenaza interna de IA omitían las capacidades del agente- Misma plantilla, mismo prompt: el bloque de capacidades del agente de frontera (las líneas basadas en benchmarks que hacen creíble un escenario de amenaza interna de IA) se omitía en cada llamada a get_ai_insider_prompt / generate_ai_insider_scenario que no nombraba capabilities explícitamente. Ninguna plantilla las proporciona, por lo que el argumento caía a vacío y el prompt sustituía una línea genérica de "asume un agente de codificación de frontera capaz", mientras que la página 3 enviaba las cuatro para la misma plantilla.

- Los valores predeterminados ahora coinciden con la aplicación: omitir capabilities aplica el conjunto completo, como hace el multiselect de la página. Pasar [] aún las deja sin especificar, por lo que la exclusión deliberada no cambia.
Corrección: generación de escenarios con Anthropic Claude 4.7+- Todos los modelos Claude funcionan de nuevo: Claude 4.7 y posteriores rechazan cualquier temperature de muestreo, devolviendo BadRequestError: 'temperature' is deprecated for this model. Cuatro de los cinco modelos Anthropic listados (Fable 5, Opus 4.8, Sonnet 5 y Opus 4.7) no podían generar un escenario en ninguna página; solo Haiku 4.5 funcionaba.

- Controlado por modelo, no por proveedor: la regla de temperatura se enrutaba anteriormente desde el proveedor, que no puede expresar un proveedor cuyos modelos difieren. ModelInfo.supports_temperature ahora marca los modelos que la rechazan, por lo que Haiku 4.5 mantiene su temperatura configurada mientras que sus hermanos la omiten. OpenAI sigue siendo una regla a nivel de proveedor (todos los modelos de chat actuales son modelos de razonamiento), y los modelos no registrados (endpoints locales de Ollama / LM Studio) aún reciben una temperatura.

v0.14

¿Qué hay de nuevo?¿Por qué es útil?
Servidor MCP para clientes agénticos- Generación de escenarios como herramientas: un nuevo servidor FastMCP (mcp_server.py, SDK oficial mcp) expone AttackGen a clientes agénticos a través de stdio, por lo que un asistente como Claude Code o Claude Desktop puede extraer datos de MITRE y generar escenarios sin la interfaz de Streamlit.

- Dos niveles: las herramientas de datos (list_threat_groups, list_case_studies, get_kill_chain, get_detection_report, get_navigator_layer, list_ai_insider_options, get_ai_insider_prompt) no hacen llamadas LLM y no necesitan clave API: devuelven datos MITRE estructurados y, cuando es útil, un prompt listo para ejecutar, por lo que son seguras de alojar a través de HTTP. Las herramientas de generación (generate_threat_group_scenario, generate_custom_scenario, generate_ai_insider_scenario) toman una configuración de trae-tu-propia-clave y devuelven Markdown terminado: mantenlas en stdio local.

- Implementación compartida: el servidor reutiliza los mismos constructores headless de core/prompts.py y los cargadores de core/attack_data.py que usan las páginas de Streamlit, por lo que los escenarios coinciden con la aplicación en lugar de desviarse. Inicia con python -m mcp_server o el script de consola attackgen-mcp.
Habilidad de agente attackgen-tabletop- Tabletops listos para facilitadores: una nueva habilidad de agente se basa en las herramientas de datos MCP para convertir un grupo de amenazas o estudio de caso de MITRE ATT&CK/ATLAS en un tabletop / MSEL completo de respuesta a incidentes: narrativa de escenario, kill chain mapeada por fases, inyecciones con marca de tiempo, preguntas de discusión NIST SP 800-61 y una tarjeta de puntuación de cobertura de detección.

- Se ejecuta en el modelo del llamador: la habilidad proporciona la artesanía del ejercicio mientras el servidor MCP proporciona los datos, por lo que se ejecuta en el propio modelo del cliente sin clave API adicional.

- Dos formatos de salida: entregado como Markdown (predeterminado) o un informe HTML autocontenido y apto para imprimir.
El asistente refina la salida de detección y respuesta- Edición de equipo púrpura: el Asistente de AttackGen ahora puede refinar la narrativa de Detección y respuesta, no solo el escenario. Cuando un escenario se genera con el interruptor de narrativa de equipo púrpura 🟣 (páginas de Grupo de amenazas / Personalizado), aparece un selector Edición: en la página del Asistente para que el chat pueda apuntar al escenario o al recorrido del defensor; anteriormente el Asistente solo tenía el texto del escenario.

- Modo de edición combinado: un tercer objetivo Escenario + Detección y respuesta refina ambos juntos, por lo que un cambio transversal (una industria diferente, actor de amenazas, técnica o cronología) se aplica de manera consistente en el escenario del atacante y la narrativa del defensor en lugar de hacerse dos veces y divergir.

- Hechos deterministas intactos: solo la narrativa LLM es un objetivo de refinamiento; la unión de detección STIX local nunca se edita por LLM. Cada modo de edición mantiene su propio historial de chat, y la pasada combinada se etiqueta purple_team_narrative en LangSmith.
Registro de modelos más simple- Una cosa menos por modelo: el kwarg max_completion_tokens y la regla de temperatura de modelos de razonamiento ahora se enrutan desde el proveedor en lugar de una bandera uses_max_completion_tokens por modelo: todos los modelos de chat actuales de OpenAI los usan, por lo que la bandera duplicaba un hecho que la clave del proveedor ya capturaba. Añadir un nuevo modelo de OpenAI sigue siendo una edición de una entrada en MODELS, sin bandera extra que recordar.

- Sin cambio de comportamiento: solo una simplificación interna: el envoltorio construye kwargs LiteLLM idénticos para todos los modelos actuales.

v0.13.1

¿Qué hay de nuevo?¿Por qué es útil?
Corrección: generación de escenarios con OpenAI GPT-5.x- Manejo correcto de modelos de razonamiento: los modelos de razonamiento GPT-5.x de OpenAI rechazan cualquier temperature de muestreo distinta de su valor predeterminado, por lo que cada generación GPT-5.x fallaba con BadRequestError: 'temperature' does not support 0.7 with this model. AttackGen ya no envía una temperatura personalizada a estos modelos, mientras que otros proveedores mantienen el valor configurado.
Actualización del registro de modelos- Modelos más recientes: lista de modelos actualizada según la documentación actual de cada proveedor: OpenAI GPT-5.6 (niveles Sol / Terra / Luna), Claude Fable 5 y Claude Sonnet 5, con una generación anterior mantenida por proveedor para continuidad.

- Entradas obsoletas eliminadas: se eliminaron modelos que los proveedores han superado o están retirando, notablemente qwen3-32b de Groq (apagado el 17 jul 2026) y Magistral Medium de Mistral, para que la barra lateral no pueda ofrecer un modelo que dé error al seleccionarlo.

- Se añadió un nivel rápido/económico de Groq (llama-3.1-8b-instant).

v0.13

¿Qué hay de nuevo?¿Por qué es útil?
Modo equipo púrpura: detección y respuesta- Compañero defensivo: cada escenario de Grupo de amenazas y Personalizado ahora muestra una sección de Detección y respuesta que une cada una de las técnicas del escenario con las estrategias de detección, analíticas, fuentes de registro y mitigaciones de MITRE ATT&CK ya incluidas en los datos enviados, convirtiendo una narrativa solo roja en un ejercicio de equipo púrpura ("aquí está el ataque, y aquí está exactamente lo que tu SOC debería haber visto").

- Sin llamada LLM para los hechos: la sección de detección es una unión de datos local, no una llamada de modelo, por lo que las analíticas, fuentes de registro y mitigaciones que lista son el contenido MITRE real y actual en lugar de suposiciones del modelo. Se ofrece como su propia descarga ..._detection.md junto con el escenario y la capa.

- Fuentes de registro a habilitar: un resumen por escenario lista las fuentes de registro distintas que leen las detecciones (p. ej. WinEventLog:Security (EventCode=4624)), para que un SOC pueda ver de un vistazo qué telemetría asume el ejercicio.

- Narrativa opcional de equipo púrpura: un interruptor por página de 🟣 Narrativa de equipo púrpura añade una segunda pasada de modelo que recorre el escenario etapa por etapa desde el lado del defensor (qué debería activarse, qué ve el analista, cómo responder), basándose estrictamente en las detecciones y mitigaciones anteriores (sin detecciones inventadas).

- Consciente de ATLAS: los escenarios ATLAS listan mitigaciones (ATLAS aún no tiene estrategias de detección) y lo indican, en lugar de no mostrar nada.
MITRE ATT&CK v19.1 y datos ATLAS más recientes- Marcos actualizados: los datos de MITRE ATT&CK Enterprise e ICS se actualizaron de v18.1 a v19.1, y MITRE ATLAS se actualizó a la última versión, por lo que los escenarios generados reflejan las tácticas, técnicas y estudios de casos actuales.

- Listas de grupos actualizadas: los menús desplegables de grupos de amenazas se regeneran a partir de los paquetes v19.1 (174 grupos activos de Enterprise y 14 de ICS). Los grupos que MITRE ha revocado o fusionado aguas arriba (p. ej. APT34 → OilRig, UNC2452 → APT29) ya no aparecen, mientras que los grupos recién rastreados como MirrorFace sí.

- Más estudios de casos ATLAS: la biblioteca de estudios de casos ATLAS creció a 57 (17 incidentes, 40 ejercicios).

- Actualización repetible: un nuevo scripts/generate_groups.py regenera los mapeos de grupos a partir de los paquetes STIX incluidos, complementando el script existente de estudios de casos ATLAS, por lo que la próxima actualización es un paso con script en lugar de curación manual.
Exportación de capa ATT&CK Navigator- Capa descargable: cada escenario generado en las páginas de Grupo de amenazas y Escenario personalizado ahora ofrece una capa de ATT&CK Navigator (.json) junto con la descarga en Markdown, para que las técnicas de un escenario puedan visualizarse, anotarse y compartirse en ATT&CK Navigator. Para verla, descarga la capa y ábrela mediante Open Existing Layer → Upload from local en el Navigator.

- Las tres matrices: el dominio correcto del Navigator se establece automáticamente por matriz: sube capas de Enterprise e ICS al MITRE ATT&CK Navigator, y capas de ATLAS al fork del ATLAS Navigator. (Una capa de ATLAS no se cargará en el ATT&CK Navigator, ni viceversa, ya que cada uno solo reconoce su propio dominio.)

- Las técnicas permanecen visibles: las sub-técnicas puntuadas expanden automáticamente su padre y los IDs de técnica se muestran en el diseño, por lo que las técnicas resaltadas del escenario son inmediatamente evidentes en lugar de ocultas en filas colapsadas.

- Sin llamada LLM extra: la capa es una serialización local de las técnicas ya seleccionadas para el escenario: sin llamada de modelo adicional ni búsqueda externa.

- Nombres de archivo descriptivos: las descargas de escenario y capa ahora se nombran según el actor de amenazas / escenario personalizado y la matriz con una marca de tiempo de generación (p. ej. AttackGen_APT29_Enterprise_20260714-153045.md), por lo que los archivos guardados son significativos y no colisionan entre escenarios.
¿Qué hay de nuevo?¿Por qué es útil?
----------------------------
Escenarios de amenazas internas con IA- Nuevo tipo de escenario: una página dedicada genera ejercicios de mesa de respuesta a incidentes en los que un agente de IA de frontera desplegado dentro de tu organización se comporta como una amenaza interna — mediante desalineación, hacking de recompensas, objetivos emergentes o compromiso por inyección de prompts. Basado en el modelo de amenazas de Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents.

- Impulsado por arquetipos de despliegue: los escenarios se configuran según el nivel de autonomía del agente (L1 asistente supervisado → L4 flota totalmente autónoma), que es el principal determinante de su superficie de amenaza y postura de detección.

- Cinco categorías de amenazas internas: compromiso de credenciales, sabotaje de la cadena de suministro, exfiltración de datos, sabotaje de infraestructura y engaño y evasión — cada una mapeada a manifestaciones concretas de agentes de IA en lugar de motivaciones humanas.

- 23 amenazas STRIDE para agentes de IA: una taxonomía STRIDE completa (suplantación, manipulación, repudio, divulgación de información, denegación de servicio, elevación de privilegios) adaptada para agentes de IA de frontera, utilizada opcionalmente para acotar el alcance del escenario.

- Controles alineados con NIST CSF: los escenarios generados incluyen mitigaciones priorizadas mapeadas al Marco de Ciberseguridad del NIST (Identificar, Proteger, Detectar, Responder, Recuperar).

- Paridad de proveedores: admite el mismo conjunto de proveedores que el resto de AttackGen con seguimiento opcional de LangSmith.
Migración a LiteLLM y consolidación de proveedores- Envoltorio LLM unificado: toda la integración de proveedores ahora fluye a través de un único envoltorio core/llm.py que utiliza LiteLLM. Añadir un nuevo modelo es una edición de una línea en la lista MODELS de core/models.py; añadir un proveedor es una única entrada ProviderInfo. Refleja el patrón utilizado en stride-gpt.

- Reducción masiva de código: se eliminaron ~3.800 líneas de ramificaciones duplicadas por proveedor en las cuatro páginas (~1.000 líneas de bloques if model_provider == ... más ocho funciones envoltorio casi idénticas por página). Cada página ahora construye diccionarios de mensajes simples y llama a call_llm(config, messages).

- Barra lateral basada en registro: la barra lateral de bienvenida ahora se genera a partir del registro de proveedores, reemplazando ocho bloques de proveedores codificados a mano por un único bucle.

- Listas de modelos actualizadas: actualizadas a los modelos más recientes — familia OpenAI GPT-5.5 / 5.4, Anthropic Claude 4.6 / 4.7 / 4.8, vista previa Google Gemini 3.x, Mistral Large 3 / Magistral, Groq GPT-OSS y Qwen3.

- Consolidación de proveedores: se reemplazaron las entradas separadas de Azure OpenAI Service y Ollama por una única opción Personalizado (compatible con OpenAI). Las implementaciones de Azure, Ollama (http://localhost:11434/v1), LM Studio (http://localhost:1234/v1), OpenRouter y los endpoints autoalojados funcionan todos a través de esta única vía.

- Menor huella de dependencias: se eliminaron los paquetes langchain, langchain-anthropic, langchain-core, langchain-community, langchain-google-genai, langchain-mistralai, langchain-openai y anthropic — reemplazados por una única dependencia litellm>=1.40. langsmith se mantiene para el seguimiento opcional.

- Seguimiento LangSmith conservado: el decorador @traceable y el widget de comentarios siguen funcionando de forma transparente; core/llm.py envuelve call_llm en @traceable cuando hay un cliente LangSmith disponible.
Actualización de seguridad de la imagen Docker- Imagen base actualizada: se actualizó el digest de python:3.12-slim para eliminar CVEs obsoletos de la capa del sistema operativo señalados por el escaneo de código Trivy, reduciendo el número de alertas abiertas contra la imagen de contenedor publicada.

- Corrección de pip CVE-2025-8869: pip ahora se actualiza antes de instalar los requisitos, incorporando la corrección para las comprobaciones de enlaces simbólicos faltantes durante la extracción de paquetes.
Salida LLM en streaming- Generación token a token: los escenarios y el chat del Asistente de AttackGen ahora transmiten tokens a medida que llegan en lugar de bloquearse hasta la respuesta completa, por lo que las generaciones largas se sienten receptivas y puedes leer mientras el modelo escribe.

- API de streaming opcional: añade call_llm_stream junto a call_llm en el envoltorio unificado de LiteLLM, de modo que los llamadores eligen si transmitir sin cambiar el resto del contrato.

- Manejo limpio del razonamiento: un helper con estado stream_filter_thinking suprime las regiones <think>...</think> en la vista en vivo mientras que clean_model_response posterior al streaming continúa poblando el expansor de razonamiento a partir del texto bruto completo.
Alternancia de adversario mejorado con IA- Nueva alternancia por página: añade una alternancia "adversario mejorado con IA" en las páginas de Grupo de amenazas y Escenario personalizado que reformula el escenario generado para que el adversario use IA para acelerar y mejorar la misma cadena de eliminación — menor umbral de habilidad, cronogramas comprimidos, orquestación autónoma y escala paralela — en lugar de introducir nuevas técnicas.

- Basado en la investigación de Anthropic: basado en la investigación del LLM ATT&CK Navigator de Anthropic, que encontró que el cambio más significativo en las amenazas cibernéticas del mundo real es la aceleración y orquestación de técnicas existentes en lugar de nuevas.

- Visibilidad de rastreo: escenarios etiquetados con ai_enhanced en LangSmith para que las generaciones mejoradas con IA puedan filtrarse y compararse con las ejecuciones de referencia.

- Omitido deliberadamente en la página de amenazas internas con IA: el actor de amenaza de esa página ya es un agente de IA de frontera, por lo que el marco "mejorado con IA" sería redundante.
Correcciones de errores y mejoras- Esta versión incluye varias correcciones menores de pulido de interfaz y renderizado en las páginas de escenarios y la barra lateral.

v0.11

¿Qué hay de nuevo?¿Por qué es útil?
Soporte del marco MITRE ATLAS- Cobertura de amenazas IA/ML: AttackGen ahora admite el marco MITRE ATLAS (Adversarial Threat Landscape for AI Systems), lo que permite generar escenarios de respuesta a incidentes para amenazas dirigidas a sistemas de IA y aprendizaje automático.

- Escenarios basados en casos de estudio: genera escenarios basados en 45 casos de estudio documentados de ataques de IA del mundo real, incluidos 14 incidentes reales y 31 ejercicios de investigación que cubren ataques como inyección de prompts, extracción de modelos y envenenamiento de datos.

- 147 técnicas ATLAS: accede a la biblioteca completa de técnicas ATLAS que cubre 16 tácticas específicas de IA, incluido el acceso a modelos de IA, la preparación de ataques de IA y las fases de ataque tradicionales adaptadas para sistemas de IA.

- Plantillas específicas de IA: seis nuevas plantillas de escenarios personalizados para ataques comunes de IA/ML: evasión de modelos, envenenamiento de datos, extracción de modelos, inyección de prompts, jailbreak de LLM y ataques a la cadena de suministro de IA.
Datos MITRE ATT&CK actualizados a v18.1- Inteligencia de amenazas más reciente: AttackGen ahora utiliza datos de MITRE ATT&CK v18.1, lo que garantiza que los escenarios generados reflejen las tácticas, técnicas y procedimientos más actuales utilizados por los actores de amenazas.

- Cobertura empresarial ampliada: la lista de grupos de amenazas empresariales ha crecido de más de 150 a 187 grupos, incluidos actores recientemente rastreados.

- Cobertura ICS ampliada: la lista de grupos de amenazas ICS ha crecido de 7 a 16 grupos, proporcionando una mejor cobertura para escenarios de sistemas de control industrial.
Soporte de modelos LLM actualizado- OpenAI: se añadieron los modelos GPT-5.2 y GPT-5.2 Pro; se simplificó la lista de modelos eliminando los modelos de razonamiento obsoletos de la serie o.

- Anthropic: actualizado a la familia Claude 4.5 con Sonnet 4.5, Haiku 4.5 y Opus 4.5.

- Google AI: se añadieron los modelos de vista previa Gemini 3 Pro y Flash; se actualizaron las opciones de Gemini 2.5.

- Groq: se añadieron los modelos GPT-OSS 120B y 20B para inferencia de alto rendimiento.

- Mistral: actualizado a versiones de modelos con fecha (Large 2512, Medium 2508, Small 2506); se añadió Ministral 14B.
Correcciones de errores- Corrección del manejo de respuestas de Google AI: se actualizó el análisis de respuestas para manejar el formato de contenido estructurado devuelto por los modelos Gemini más recientes, garantizando que el texto del escenario se extraiga y muestre correctamente.

- Corrección de mensajes de error de la matriz ICS: los mensajes de error ahora muestran correctamente "ICS ATT&CK" en lugar de "Enterprise ATT&CK" al usar la matriz ICS.

- Mejora del manejo de técnicas vacías: se añadió un manejo elegante cuando un grupo de amenazas no tiene técnicas asociadas, evitando errores secundarios.

v0.10.1

¿Qué hay de nuevo?¿Por qué es útil?
Compatibilidad con LangChain v1.0- Corrección de cambios de importación incompatibles: se actualizaron todas las importaciones de langchain.prompts.chat (obsoleto) a langchain_core.prompts, garantizando la compatibilidad con LangChain v1.0 y evitando problemas de ModuleNotFoundError. Esto mantiene la estabilidad a medida que evoluciona el ecosistema LangChain.
Infraestructura de seguridad integral- Escaneo de seguridad automatizado: se introdujeron flujos de trabajo de GitHub Actions para el monitoreo continuo de seguridad mediante Bandit (análisis de código Python), CodeQL (detección de vulnerabilidades), pip-audit (escaneo de dependencias), Safety (vulnerabilidades conocidas), Gitleaks (detección de secretos) y Trivy (escaneo de imágenes Docker).

- Documentación de mejores prácticas de seguridad: se añadió un SECURITY.md completo que cubre versiones compatibles, reporte de vulnerabilidades, gestión de claves API, consideraciones de privacidad de datos y guía de seguridad de implementación.

- Sección de seguridad mejorada en el README: se amplió la guía de seguridad con recomendaciones claras de qué hacer y qué no hacer para la protección de claves API, consideraciones de privacidad de datos y prácticas de implementación responsables.
Mejoras en Docker- Seguridad mejorada: se actualizó el Dockerfile para ejecutarse como usuario no root, mejorando la postura de seguridad del contenedor.

- Soporte de Docker Compose: se añadió docker-compose.yml para una implementación de múltiples servicios optimizada y una configuración de desarrollo local más fácil.

- Mejor optimización de compilación: se mejoró .dockerignore para reducir el tamaño de la imagen y evitar que archivos sensibles se incluyan en las imágenes de contenedor.

- Plantilla de configuración integral: se actualizó .env.example con todas las claves API compatibles (OpenAI, Anthropic, Azure, Google, Mistral, Groq) para una configuración inicial más fácil.
Correcciones de errores- Tiempo de espera de la API de Ollama: se añadió configuración de tiempo de espera a las solicitudes de la API de Ollama para evitar conexiones colgadas.

- Actualizaciones de la CLI de Safety: se actualizó del comando obsoleto safety check al nuevo comando safety scan, garantizando la funcionalidad continua de escaneo de seguridad.

- Configuración de Bandit: se corrigió la configuración de escaneo de seguridad de Bandit para un análisis de código Python más preciso.

v0.10

¿Qué hay de nuevo?¿Por qué es útil?
Integración de la API Responses de OpenAI- API de próxima generación: AttackGen ahora utiliza la última API Responses de OpenAI para todos los modelos compatibles, proporcionando una interfaz unificada y mejorada.
Soporte de los últimos modelos de frontera- Integración de GPT-5: se añadió soporte para la última serie de modelos GPT-5 de OpenAI, incluidos gpt-5, gpt-5-mini y gpt-5-nano, proporcionando acceso a las capacidades de IA más avanzadas para la generación de escenarios.

- Claude Sonnet 4.5: se añadió soporte para el último modelo Claude Sonnet 4.5 de Anthropic (claude-sonnet-4-5-20250929), junto con versiones actualizadas de modelos Claude, incluido Claude Opus 4.1 (claude-opus-4-1-20250805).
Correcciones de errores y mejoras- Corrección de la advertencia de obsolescencia de Streamlit: se reemplazó el parámetro obsoleto use_container_width por el nuevo parámetro width para garantizar la compatibilidad con futuras versiones de Streamlit.

- Documentación mejorada: se actualizó CLAUDE.md con guía integral para el desarrollo futuro y se añadió información detallada de arquitectura.

v0.9

¿Qué hay de nuevo?¿Por qué es útil?
Soporte de modelos ampliado- Últimos modelos de razonamiento de OpenAI: AttackGen ahora admite los modelos de razonamiento más nuevos de OpenAI, incluidos o4-mini (el último modelo de razonamiento), o3/o3-mini y o1-pro (capacidades de razonamiento mejoradas). Estos modelos sobresalen en la generación de escenarios complejos que requieren pensamiento lógico profundo.

- Serie GPT-4.1: se añadió soporte para los modelos de la serie GPT-4.1 (gpt-4.1, gpt-4.1-mini y gpt-4.1-nano), que ofrecen las últimas mejoras en capacidades generales de IA con alternativas más ligeras para casos de uso sensibles al costo.

- Modelos Anthropic Claude: se añadió soporte integral para los modelos Claude de Anthropic, incluidos claude-opus-4-20250514, claude-sonnet-4-20250514, claude-3-7-sonnet-latest y claude-3-5-haiku-latest. Estos modelos ofrecen un rendimiento excelente para generar escenarios de respuesta a incidentes detallados y contextualmente conscientes con sólidas capacidades de razonamiento.

- Modelos de Google AI actualizados: se actualizó la selección de modelos de Google AI para incluir los últimos modelos de vista previa Gemini 2.5 (gemini-2.5-flash-preview-05-20 y gemini-2.5-pro-preview-05-06) junto con los modelos Gemini 2.0, proporcionando acceso a las mejoras más recientes en la tecnología de IA de Google.

- Mejor organización de modelos: se reorganizaron los menús desplegables de selección de modelos para priorizar los modelos más nuevos y se actualizaron las descripciones para distinguir claramente entre diferentes tipos de modelos y capacidades.
Lógica de selección de técnicas mejorada- Manejo de grupos más robusto: se corrigió un problema donde los grupos de actores de amenazas vacíos podían causar errores durante la selección de técnicas. La herramienta ahora maneja correctamente los grupos vacíos devolviendo un DataFrame vacío, garantizando una operación estable incluso con datos limitados de actores de amenazas.

- Preservación del nombre de fase: se mejoró el proceso de selección de técnicas para incluir correctamente 'Phase Name' en la salida, manteniendo la información de la fase de la cadena de eliminación durante todo el proceso de generación de escenarios. Esto garantiza que los escenarios generados mantengan el contexto adecuado sobre a qué fase de un ataque pertenece cada técnica.
Mejoras del entorno de desarrollo- .gitignore mejorado: se añadió soporte para directorios de entorno virtual .venv además de venv, adaptándose a diferentes preferencias de desarrolladores y herramientas de gestión de entornos Python.

- Limpieza de código: se eliminaron importaciones no utilizadas en los scripts de generación de escenarios, mejorando el mantenimiento del código y reduciendo la posible confusión.

v0.8

¿Qué hay de nuevo?¿Por qué es útil?
Endpoints de API personalizados compatibles con OpenAI- Mayor flexibilidad: AttackGen ahora admite endpoints de API personalizados compatibles con OpenAI, como Anyscale, Together AI o cualquier API compatible autoalojada. Esta función permite a los usuarios aprovechar una gama más amplia de modelos y servicios más allá de los proveedores oficialmente compatibles.

- Soporte de autoalojamiento: las organizaciones con sus propias implementaciones de modelos compatibles con OpenAI ahora pueden conectar AttackGen directamente a estos endpoints.

- Control sobre la selección de modelos: los usuarios pueden especificar la URL base, el nombre del modelo y la clave API para cualquier servicio compatible, proporcionando un mayor control sobre qué modelos y endpoints se utilizan para la generación de escenarios.
Selección de modelos actualizada- Acceso a los últimos modelos: la selección de modelos de OpenAI ahora incluye los nuevos modelos de la serie GPT-4.1 (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano), que ofrecen un rendimiento mejorado en codificación, seguimiento de instrucciones y tareas de contexto largo.

- Soporte de Gemini ampliado: se añadió soporte para los últimos modelos Gemini 2.5 Pro Preview, 2.0 Flash y 2.0 Flash Lite.

v0.7

¿Qué hay de nuevo?¿Por qué es útil?
Integración de la API de Groq- Rendimiento mejorado: AttackGen ahora admite la API de alto rendimiento de Groq, proporcionando acceso a modelos como llama-3.3-70b-versatile y deepseek-r1-distill-llama-70b. Esta integración ofrece tiempos de inferencia rápidos mientras mantiene una generación de escenarios de alta calidad.

- Visualización mejorada de la salida del modelo: para modelos como DeepSeek que proporcionan razonamiento junto con su salida, AttackGen ahora muestra este razonamiento en un widget expansor plegable. Esto permite a los usuarios ver el proceso de pensamiento del modelo cuando lo deseen mientras mantiene la salida principal del escenario limpia y enfocada.
Soporte de modelos OpenAI actualizado- Últimos modelos: AttackGen ahora admite el último modelo de razonamiento o3 de OpenAI y la versión GA (disponibilidad general) del modelo o1, reemplazando la versión de vista previa anterior. Estas actualizaciones proporcionan acceso a modelos más estables y mejorados para la generación de escenarios.

v0.6

¿Qué hay de nuevo?¿Por qué es útil?
Soporte para los nuevos modelos de 'razonamiento' de OpenAI- Generación de escenarios mejorada: AttackGen ahora admite los nuevos modelos de 'razonamiento' de OpenAI (o1-preview y o1-mini), lo que permite la generación de escenarios de respuesta a incidentes altamente detallados y matizados. Estos modelos ofrecen una coherencia y profundidad mejoradas en la creación de escenarios.
Soporte de la matriz MITRE ATT&CK ICS- Alcance ampliado: AttackGen ahora admite la generación de escenarios de prueba de respuesta a incidentes utilizando la matriz MITRE ATT&CK ICS (Sistemas de Control Industrial), además de la matriz Enterprise. Esto permite a los usuarios crear escenarios adaptados a entornos industriales y de infraestructura crítica.
Datos fuente ATT&CK actualizados a v15.1- Inteligencia de amenazas más reciente: la herramienta ahora utiliza los datos MITRE ATT&CK más actualizados (v15.1), garantizando que los escenarios generados reflejen las últimas tácticas, técnicas y procedimientos conocidos utilizados por los actores de amenazas.
Datos de grupos de actores de amenazas actualizados- Cobertura integral: los datos de grupos se han actualizado para incluir los últimos grupos rastreados en MITRE ATT&CK, como Scattered Spider. Esto garantiza que los usuarios puedan generar escenarios basados en la información más actualizada de actores de amenazas disponible.
Carga de claves API / secretos desde un archivo .env- Seguridad mejorada: los usuarios ahora pueden almacenar sus claves API y otra información sensible en un archivo .env, mejorando la seguridad y facilitando la gestión de credenciales en diferentes entornos.

v0.5.2

¿Qué hay de nuevo?¿Por qué es útil?
Soporte del modelo GPT-4o mini- Opciones de modelo ampliadas: AttackGen ahora admite el uso del modelo GPT-4o mini de OpenAI. GPT4-o mini es un modelo pequeño altamente rentable.
Opciones de modelo actualizadas para la API de Google AI- Opciones de modelo ampliadas: AttackGen ahora admite las versiones estable y de vista previa de Gemini 1.5 Pro.

v0.5.1

¿Qué hay de nuevo?¿Por qué es útil?
Soporte del modelo GPT-4o- Opciones de modelo mejoradas: AttackGen ahora admite el uso del modelo GPT-4o de OpenAI. GPT4-o es el modelo líder de OpenAI, capaz de generar escenarios dos veces más rápido que GPT-4 por la mitad del costo.
¿Qué hay de nuevo?¿Por qué es útil?
---------------------------
Asistente de AttackGen- Refinamiento iterativo de escenarios: La nueva interfaz de chat permite a los usuarios interactuar con sus escenarios de respuesta a incidentes generados, lo que facilita actualizarlos y hacer preguntas sobre el escenario sin tener que regenerarlo desde cero. Esta función permite un enfoque iterativo en el desarrollo de escenarios, donde los usuarios pueden refinar y mejorar sus escenarios basándose en las respuestas del asistente de IA.

- Asistencia contextual: El asistente de IA responde a las consultas de los usuarios basándose en el contexto del escenario generado y en el historial de la conversación. Esto garantiza que las respuestas del asistente sean relevantes y útiles para refinar el escenario.
Plantillas de inicio rápido para escenarios personalizados- Generación rápida de escenarios: Los usuarios ahora pueden generar rápidamente escenarios personalizados de respuesta a incidentes basados en plantillas predefinidas para tipos comunes de incidentes cibernéticos, como ataques de phishing, ataques de ransomware, infecciones de malware y amenazas internas. Esta función facilita la creación de escenarios realistas sin tener que seleccionar técnicas individuales de ATT&CK.

- Flujo de trabajo optimizado: La selección de plantillas se integra perfectamente en el proceso de generación de escenarios personalizados. Los usuarios pueden elegir una plantilla, que automáticamente completa las técnicas relevantes de ATT&CK, y luego personalizar aún más el escenario si es necesario.
Integración con la API de Google AI- Opciones de modelo ampliadas: AttackGen ahora admite el uso de los modelos Gemini de Google para generar escenarios de respuesta a incidentes. Esta integración amplía la gama de modelos de alta calidad disponibles para los usuarios, permitiéndoles aprovechar las capacidades de IA de Google para crear escenarios realistas y diversos.

v0.4

¿Qué hay de nuevo?¿Por qué es útil?
Integración con la API de Mistral- Proveedor de modelos alternativo: Los usuarios ahora pueden aprovechar los modelos de IA de Mistral para generar escenarios de respuesta a incidentes. Esta integración ofrece una alternativa a los modelos de OpenAI y Azure OpenAI Service, permitiendo a los usuarios explorar y comparar el rendimiento de diferentes modelos de lenguaje para su caso de uso específico.
Soporte de modelos locales mediante Ollama- Alojamiento de modelos local: AttackGen ahora admite el uso de LLM alojados localmente mediante una integración con Ollama. Esta función es particularmente útil para organizaciones con requisitos estrictos de privacidad de datos o para aquellas que prefieren mantener sus datos en sus propias instalaciones. Tenga en cuenta que esta función no está disponible para los usuarios de la versión de AttackGen alojada en Streamlit Community Cloud en https://attackgen.streamlit.app
Integración opcional con LangSmith- Mayor flexibilidad: La integración con LangSmith ahora es opcional. Si no se proporciona una clave de API de LangChain, los usuarios verán un mensaje informativo que indica que la ejecución no será registrada por LangSmith, en lugar de que se produzca un error. Este cambio mejora la experiencia general del usuario y permite a los usuarios seguir usando AttackGen sin necesidad de LangSmith.
Varias correcciones de errores y mejoras- Experiencia de usuario mejorada: Esta versión incluye varias correcciones de errores y mejoras en la interfaz de usuario, lo que hace que AttackGen sea más fácil de usar y más robusto.

v0.3

¿Qué hay de nuevo?¿Por qué es útil?
Integración con Azure OpenAI Service- Integración mejorada: Los usuarios ahora pueden elegir utilizar modelos de OpenAI implementados en Azure OpenAI Service, además de la API estándar de OpenAI. Esta integración ofrece una solución fluida y segura para incorporar AttackGen en ecosistemas de Azure existentes, aprovechando acuerdos comerciales y de confidencialidad establecidos.

- Seguridad de datos mejorada: Ejecutar AttackGen desde Azure garantiza que las descripciones de aplicaciones y otros datos permanezcan dentro del entorno de Azure, lo que lo hace ideal para organizaciones que manejan datos sensibles en sus modelos de amenazas.
LangSmith para Azure OpenAI Service- Depuración mejorada: El rastreo de LangSmith ahora está disponible para escenarios generados mediante Azure OpenAI Service. Esta función proporciona una herramienta potente para depurar, probar y monitorear el rendimiento del modelo, permitiendo a los usuarios obtener información sobre el proceso de toma de decisiones del modelo e identificar posibles problemas con los escenarios generados.

- Comentarios de los usuarios: LangSmith también captura comentarios de los usuarios sobre la calidad de los escenarios generados mediante Azure OpenAI Service, proporcionando información valiosa sobre el rendimiento del modelo y la satisfacción del usuario.
Selección de modelos para la API de OpenAI- Opciones de modelo flexibles: Los usuarios ahora pueden seleccionar entre varios modelos disponibles desde el endpoint de la API de OpenAI, como gpt-4-turbo-preview. Esto permite una mayor personalización y experimentación con diferentes modelos de lenguaje, permitiendo a los usuarios encontrar el modelo más adecuado para su caso de uso específico.
Imagen de contenedor Docker- Implementación fácil: AttackGen ahora está disponible como una imagen de contenedor Docker, lo que facilita implementar y ejecutar la aplicación en un entorno consistente y reproducible. Esta función es particularmente útil para los usuarios que desean ejecutar AttackGen en un entorno contenerizado, o para aquellos que desean implementar la aplicación en una plataforma en la nube.

v0.2

¿Qué hay de nuevo?¿Por qué es útil?
Escenarios personalizados basados en técnicas de ATT&CK- Para organizaciones maduras: Esta función es particularmente beneficiosa si su organización tiene capacidades avanzadas de inteligencia de amenazas. Por ejemplo, si está monitoreando un grupo de actores de amenazas recién identificado o menos conocido, puede adaptar los escenarios de prueba de respuesta a incidentes específicos a las técnicas utilizadas por ese grupo.

- Pruebas enfocadas: Alternativamente, use esta función para enfocar sus pruebas de respuesta a incidentes en partes específicas de la cadena de eliminación cibernética o en ciertas tácticas de MITRE ATT&CK como 'Movimiento Lateral' o 'Exfiltración'. Esto es útil para organizaciones que buscan evaluar y mejorar áreas específicas de su postura de defensa.
Comentarios de los usuarios sobre escenarios generados- Recopilar comentarios es esencial para realizar un seguimiento del rendimiento del modelo a lo largo del tiempo y ayuda a resaltar fortalezas y debilidades en las tareas de generación de escenarios.
Mejor manejo de errores para claves de API faltantes- Experiencia de usuario mejorada.
Se reemplazaron los widgets st.spinner de Streamlit por el nuevo widget st.status- Proporciona una mejor visibilidad de los procesos de larga duración (es decir, la generación de escenarios).

v0.1

Versión inicial.

Requisitos

  • Versión reciente de Python.
  • Paquetes de Python: streamlit, litellm, mitreattack-python, pandas (consulte requirements.txt para la lista completa).
  • Clave de API de OpenAI (o clave de API para su proveedor de modelos elegido).
  • Clave de API de LangChain (opcional): consulte la sección Configuración de LangSmith a continuación para obtener más detalles.
  • Archivos de datos de MITRE ATT&CK y ATLAS. Estos se incluyen con el repositorio (en ./data/), por lo que no se requiere descarga manual (consulte Configuración de datos).
  • Archivo .env para almacenar claves de API y secretos (consulte la sección Instalación para obtener detalles).

Instalación

Opción 1: Clonar el repositorio

  1. Clone este repositorio:``` git clone https://github.com/mrwadams/attackgen.git
2. Cambia al directorio del repositorio clonado:```
cd attackgen
  1. Instala los paquetes de Python necesarios:``` pip install -r requirements.txt
### Opción 2: Usando Docker

1. Extrae la imagen del contenedor Docker desde Docker Hub:```
docker pull mrwadams/attackgen

Configuración de LangSmith

Si deseas usar LangSmith para depurar, probar y monitorear el rendimiento del modelo, necesitarás crear una cuenta de LangSmith y crear un archivo .streamlit/secrets.toml que contenga tu clave de API de LangChain. Sigue las instrucciones aquí para configurar tu cuenta y obtener tu clave de API. Encontrarás un archivo secrets.toml-example en el directorio .streamlit/ que puedes usar como plantilla para tu propio archivo secrets.toml.

Si no deseas usar LangSmith, aún debes tener un archivo .streamlit/secrets.toml en su lugar, pero puedes dejar el campo LANGCHAIN_API_KEY vacío.

Configuración de datos

Los conjuntos de datos de MITRE ATT&CK (Enterprise + ICS) y ATLAS que AttackGen necesita están incluidos en el repositorio bajo ./data/, por lo que un clon nuevo está listo para ejecutarse sin necesidad de un paso adicional de descarga. Estos incluyen enterprise-attack.json, ics-attack.json, stix-atlas.json, groups.json, groups_ics.json y atlas-case-studies.json.

Si deseas actualizarlos a la última versión disponible, puedes volver a descargar los paquetes STIX desde el repositorio de datos STIX de MITRE ATT&CK (y el repositorio de datos de ATLAS) y reemplazar los archivos en ./data/.

Ejecutar AttackGen

Después de la configuración de datos, puedes ejecutar AttackGen con el siguiente comando:``` streamlit run 00_👋_Welcome.py

Puedes probar también la aplicación en [Streamlit Community Cloud](https://attackgen.streamlit.app/).

## Servidor MCP

AttackGen incluye un servidor [MCP](https://modelcontextprotocol.io/) para que los flujos de trabajo agénticos (Claude Code, Claude Desktop, Cursor y otros clientes MCP) puedan generar escenarios sin la interfaz de Streamlit. Expone **dos niveles de herramientas**:

- **Herramientas de datos: sin clave de API, sin llamada a LLM.** Estas exponen los datos MITRE de AttackGen: listar grupos de amenazas / casos de estudio de ATLAS, resolver la cadena de eliminación de un grupo, generar el informe de Detección y Respuesta del equipo púrpura, producir una capa de ATT&CK Navigator y listar las opciones de amenazas internas de IA. `list_ai_insider_options` devuelve cada plantilla de inicio rápido con las selecciones y el resumen narrativo que aplica, de modo que `get_ai_insider_prompt` / `generate_ai_insider_scenario` se pueden llamar solo con `template=` más tu industria y tamaño de empresa. Cuando es útil, también devuelven un prompt listo para ejecutar, de modo que **el modelo propio de tu cliente** pueda escribir el escenario, lo que significa que funcionan incluso si no tienes una clave de API de un proveedor separado. Esta es la superficie que es segura de alojar a través de HTTP.
- **Herramientas de generación: trae tu propia clave.** `generate_threat_group_scenario`, `generate_custom_scenario` y `generate_ai_insider_scenario` llaman a un servidor LLM y devuelven un escenario Markdown terminado. El proveedor, el modelo y la clave se proporcionan por llamada; si omites `api_key`, LiteLLM recurre a la variable de entorno correspondiente (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, …), es decir, **tu propia** clave. Debido a que estas leen credenciales del entorno del proceso, mantenlas en **stdio local** y no las expongas en un host compartido.

### Instalación y ejecución

La dependencia `mcp` está incluida en `requirements.txt`. Instala el proyecto (una instalación editable también te da el script de consola `attackgen-mcp`):```
pip install -r requirements.txt
# optional, for the console script:
pip install -e .

Lanza el servidor (stdio):``` python -m mcp_server # or: attackgen-mcp

### Añadirlo a un cliente

**Claude Code:**```
claude mcp add attackgen -- python -m mcp_server

Claude Desktop (claude_desktop_config.json) — las claves van en env:```json { "mcpServers": { "attackgen": { "command": "python", "args": ["-m", "mcp_server"], "cwd": "/absolute/path/to/attackgen", "env": { "OPENAI_API_KEY": "sk-...", "ANTHROPIC_API_KEY": "sk-ant-..." } } } }

Puedes establecer `ATTACKGEN_PROVIDER` y `ATTACKGEN_MODEL` en `env` para dar a las herramientas de generación un proveedor/modelo predeterminado, de modo que los llamadores no tengan que pasarlos cada vez. Los paquetes pesados de MITRE se cargan de forma diferida en la primera llamada a una herramienta de datos, por lo que el servidor se inicia al instante.

## Habilidades del Agente

Junto con el servidor MCP se incluye una **[Habilidad del Agente](https://github.com/mrwadams/attackgen/blob/main/skills)**, `attackgen-tabletop`, que convierte los datos de AttackGen en un ejercicio de mesa de respuesta a incidentes listo para facilitadores.

Dado un grupo de amenazas o un caso de estudio de ATLAS, la habilidad produce un ejercicio de mesa completo / Lista Maestra de Eventos de Escenario (MSEL, por sus siglas en inglés) — narrativa del escenario, cadena de eliminación mapeada por fases, inyecciones con marca de tiempo, preguntas de discusión según NIST SP 800-61 y un cuadro de mando de cobertura de detección — como Markdown o un informe HTML autocontenido y apto para imprimir.

También cubre la vía de **amenaza interna de IA**: cuando el adversario es un agente de IA de frontera desplegado dentro de la organización, la habilidad trabaja a partir de `list_ai_insider_options` y `get_ai_insider_prompt` en lugar de una cadena de eliminación. El ejercicio mantiene la misma estructura de seis secciones, pero su columna vertebral es el alcance de amenazas STRIDE y el arquetipo de despliegue, su cuadro de mando de detección se evalúa contra la postura de detección de ese arquetipo, y las `required_decisions` de una plantilla se convierten en preguntas de discusión obligatorias.

La división del trabajo es deliberada: las **herramientas de datos** del MCP aportan los hechos (cada técnica o ID de STRIDE se remonta a un resultado de herramienta) y la habilidad aporta el arte del ejercicio, por lo que se ejecuta en el propio modelo de tu cliente **sin necesidad de una clave API adicional**. Conecta el servidor MCP (arriba) y luego apunta un cliente compatible con habilidades, como Claude Code o Claude Desktop, al directorio [`skills/`](https://github.com/mrwadams/attackgen/blob/main/skills). Consulta [`skills/README.md`](https://github.com/mrwadams/attackgen/blob/main/skills/README.md) para conocer las ubicaciones de instalación y los detalles por cliente.

## Uso

### Ejecutar AttackGen

#### Opción 1: Ejecutar la aplicación Streamlit localmente
1. Ejecuta la aplicación Streamlit:```
streamlit run 00_👋_Welcome.py
  1. Abre tu navegador web y navega a la URL proporcionada por Streamlit.
  2. Usa la aplicación para generar escenarios estándar o personalizados de respuesta a incidentes (consulta los detalles a continuación).

Opción 2: Usar la imagen de contenedor Docker

  1. Ejecuta el contenedor Docker:``` docker run -p 8501:8501 mrwadams/attackgen
Este comando iniciará el contenedor y mapeará el puerto 8501 (el predeterminado para aplicaciones Streamlit) del contenedor a tu máquina host.
2. Abre tu navegador web y navega a `http://localhost:8501`.
3. Usa la aplicación para generar escenarios de respuesta a incidentes estándar o personalizados (consulta los detalles a continuación).

### Generación de Escenarios

#### Generación de Escenarios Estándar
1. Elige si deseas usar la API de OpenAI, la API de Anthropic, la API de Google AI, la API de Mistral, la API de Groq o un endpoint personalizado compatible con OpenAI (para Ollama, LM Studio, implementaciones de Azure OpenAI, OpenRouter, etc.).
2. Introduce tu clave de API para el proveedor elegido. Para el proveedor personalizado, también introduce la URL base y el nombre del modelo.
3. Selecciona tu modelo preferido en el menú desplegable.
4. Selecciona el sector y el tamaño de tu organización en los menús desplegables.
5. Navega a la página `Threat Group Scenarios`.
6. Selecciona el Grupo de Actores de Amenazas que deseas simular.
7. Haz clic en 'Generate Scenario' para crear el escenario de respuesta a incidentes.
8. Usa los botones 👍 o 👎 para proporcionar comentarios sobre la calidad del escenario generado. N.B. Los botones de comentarios solo aparecen si se ha establecido un valor para LANGCHAIN_API_KEY en el archivo `.streamlit/secrets.toml`.

#### Generación de Escenarios Personalizados
1. Elige si deseas usar la API de OpenAI, la API de Anthropic, la API de Google AI, la API de Mistral, la API de Groq o un endpoint personalizado compatible con OpenAI.
2. Introduce tu clave de API para el proveedor elegido. Para el proveedor personalizado, también introduce la URL base y el nombre del modelo.
3. Selecciona tu modelo preferido en el menú desplegable.
4. Selecciona el sector y el tamaño de tu organización en los menús desplegables.
5. Navega a la página `Custom Scenario`.
6. Usa el cuadro de selección múltiple para buscar y seleccionar las técnicas de ATT&CK relevantes para tu escenario.
7. Haz clic en 'Generate Scenario' para crear tu escenario personalizado de pruebas de respuesta a incidentes basado en las técnicas seleccionadas.
8. Usa los botones 👍 o 👎 para proporcionar comentarios sobre la calidad del escenario generado. N.B. Los botones de comentarios solo aparecen si se ha establecido un valor para LANGCHAIN_API_KEY en el archivo `.streamlit/secrets.toml`.

#### Generación de Escenarios de Amenazas Internas de IA
1. Elige tu proveedor de modelos e introduce la clave de API correspondiente (usa el proveedor personalizado para implementaciones de Azure OpenAI o modelos locales).
2. Selecciona tu modelo preferido en el menú desplegable.
3. Selecciona el sector y el tamaño de tu organización en los menús desplegables.
4. Navega a la página `AI Insider Threat Scenarios`.
5. (Opcional) Elige una plantilla para rellenar previamente el arquetipo de implementación, las categorías de amenazas y las amenazas STRIDE para un escenario común.
6. Elige el **arquetipo de implementación** que refleje cuán autónomamente opera el agente de IA dentro de tu organización (p. ej., asistente supervisado, agente autónomo, flota totalmente autónoma). Este es el principal impulsor de la superficie de amenazas del agente.
7. Selecciona una o más **categorías de amenazas** (Compromiso de Credenciales, Sabotaje de la Cadena de Suministro, Exfiltración de Datos, Sabotaje de Infraestructura, Engaño y Evasión).
8. (Opcional) Limita el escenario a **amenazas STRIDE** específicas. Si se deja vacío, se usan automáticamente las amenazas STRIDE asociadas con tus categorías seleccionadas. Estas son las 23 amenazas STRIDE del documento subyacente.
9. (Opcional) Ajusta las **capacidades del agente fronterizo** destacadas en el prompt.
10. Haz clic en 'Generate Scenario'. La salida incluye una narrativa de ataque mapeada a identificadores STRIDE, oportunidades de detección y controles recomendados alineados con el NIST CSF.
11. Usa los botones 👍 o 👎 para proporcionar comentarios (requiere LANGCHAIN_API_KEY).

El modelo de amenazas detrás de esta página se describe en [*Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents*](https://ai-insider-threat.matt-adams.co.uk).

Ten en cuenta que la generación de escenarios puede tardar un minuto aproximadamente. Una vez que el escenario se genera, puedes verlo en la aplicación y también descargarlo como archivo Markdown.

## Mejores Prácticas de Seguridad

AttackGen está diseñado para implementación local de un solo usuario. Al usar la herramienta:

### Protegiendo tus Claves de API

**Tus claves de API son credenciales sensibles que pueden generar cargos en tu cuenta.**

✅ **HACER:**
- Introduce las claves de API a través de la interfaz de usuario (permanecen en tu sesión del navegador)
- Usa el archivo .env para mayor comodidad en tu máquina personal
- Establece límites de gasto en el panel de tu proveedor de LLM
- Revisa regularmente tu uso y costos de API
- Limpia la sesión cuando uses computadoras compartidas

❌ **NO HACER:**
- Confirmar archivos .env en el control de versiones (ya está en .gitignore)
- Compartir capturas de pantalla con claves de API visibles
- Ejecutar AttackGen en sistemas no confiables/comprometidos
- Compartir tus claves de API con otros
- Ignorar cargos inesperados de API

### Consideraciones de Privacidad de Datos

Cuando generas escenarios, AttackGen envía datos a tu proveedor de LLM elegido:
- Detalles de la organización (sector, tamaño de la empresa)
- Técnicas de ATT&CK seleccionadas
- Texto de entrada personalizado
- Escenarios generados (a través del Asistente de AttackGen)

**Qué significa esto:**
- OpenAI, Anthropic, etc. pueden registrar estos datos según sus políticas de privacidad
- Considera usar detalles de organización genéricos/ficticios para demostraciones
- Revisa las políticas de retención de datos y privacidad de tu proveedor de LLM
- Para casos de uso sensibles, considera proveedores con garantías de privacidad más estrictas

### Para Implementaciones de Equipo/Organización

Si implementas AttackGen para múltiples usuarios (no es el caso de uso predeterminado):
- Añade autenticación/autorización (no incluida por defecto)
- Usa un servicio de gestión de secretos para las claves de API
- Implementa detrás de una VPN o red interna
- Revisa este documento de modelo de amenazas para consideraciones adicionales
- Considera los requisitos de residencia de datos y cumplimiento

### Seguridad de Dependencias

Mantenemos las dependencias y monitoreamos vulnerabilidades:
- Las dependencias se actualizan regularmente
- Los avisos de seguridad se rastrean en los Problemas de GitHub
- Ejecuta `pip list --outdated` para verificar actualizaciones
- Considera usar `pip-audit` para el escaneo de vulnerabilidades

### Reportando Problemas de Seguridad

¿Encontraste un problema de seguridad? Por favor, repórtalo de manera responsable:
- Crea un aviso de seguridad a través del [reporte privado de vulnerabilidades de GitHub](https://github.com/mrwadams/attackgen/security/advisories/new)
- No publiques problemas de seguridad públicamente
- Te confirmaremos dentro de 48 horas
- Las correcciones se priorizarán y publicarán rápidamente

## Contribuciones

Estoy muy contento de aceptar contribuciones a este proyecto. No dudes en enviar un problema o solicitud de extracción.

## Licencia

Este proyecto está licenciado bajo [GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/).

Categorías