One-pass CAPEC ingestion → generate per-domain attack pattern taxonomies for PromptKit security audits
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 38/100
Línea de trabajo
Comienza leyendo la implementación de ingesta de CWE de #228/#229 y, después, revisa las descargas de CAPEC y las referencias del esquema. Distribuye el trabajo entre .github/prompts/, .github/skills/, scripts/ingest-capec.py, data/capec/, taxonomies/ y manifest.yaml. Se considera terminado cuando una ejecución produce taxonomías CAPEC versionadas por dominio, con referencias cruzadas a CWE y verificación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem / Motivation
PromptKit security audits currently scope what weakness to look for (via CWE taxonomies from #228), but do not scope how attackers exploit those weaknesses. CAPEC (Common Attack Pattern Enumeration and Classification) is the complementary MITRE database that classifies attack patterns — the adversary-side view of CWE weaknesses.
Adding CAPEC-derived taxonomies would let security audit prompts guide the LLM with domain-specific attack patterns, improving threat modeling and exploit path analysis.
CAPEC entries cross-reference CWE IDs, so the two taxonomy sets can be composed: "look for these weaknesses (CWE) using these attack patterns (CAPEC)."
Goal
Implement a pipeline (modeled on the CWE ingestion skill from #228/#229) that:
- Ingests the official CAPEC corpus (versioned XML) from MITRE: https://capec.mitre.org/data/downloads.html
- In a single run, generates per-domain CAPEC taxonomies (reusing the same 13-domain registry from #228).
- Cross-references CWE IDs in each CAPEC entry to enable CWE↔CAPEC composition at audit time.
Deliverables
/ingest-capec-taxonomiesprompt file (.github/prompts/) and matching CLI skill (.github/skills/)- Reusable Python script at
scripts/ingest-capec.py - Per-domain taxonomy files:
taxonomies/capec-<domain>.md - Normalized data:
data/capec/<version>/ - Updated
manifest.yaml
Design Notes
- Same architecture as CWE ingestion: 6-phase pipeline (Acquisition → Normalization → Domain Mapping → Taxonomy Generation → Integration → Verification)
- Same domain registry: Reuse the 13 domains from #228. Consider extracting the registry to a shared
data/domain-registry.jsonso both skills reference the same list. - CAPEC XML schema differs from CWE — separate parsing logic required. Key fields: attack pattern ID, name, abstraction, prerequisites, related weaknesses (CWE IDs), execution flow, consequences.
- Domain mapping: Use CAPEC
Related_WeaknessCWE cross-references as the primary signal (map CAPEC entries to domains via their associated CWEs). Fall back to CAPEC-specificPrerequisitesandSkills_Requiredfields. - Separate skill from CWE ingestion — different input format, different semantics (attack patterns vs weakness classes), different parsing.
External References
- CAPEC downloads: https://capec.mitre.org/data/downloads.html
- CAPEC schema: https://capec.mitre.org/documents/schema/
- CAPEC↔CWE mapping: cross-references embedded in CAPEC XML
Related_Weaknesselements
Non-Goals
- Do not merge with the CWE ingestion skill — keep as separate, composable skills.
- Do not claim exploitability of specific code from attack patterns.
- Do not fork or maintain a separate CAPEC; track upstream MITRE versions.
Relationship to Other Issues
- Depends on #228 for the domain registry and taxonomy file conventions.
- CAPEC taxonomies complement CWE taxonomies — together they scope both the "what" and "how" of security audits.
- Lenguaje dominante
- JavaScript
- Estrellas
- 105
- Forks
- 23
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/PromptKit
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
-
enhancement
Todos los issues de microsoft/PromptKit
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100