From Requirements to Attack Trees: Grounded LLM Agents for Design-Time Security Review
Organizations: Center for Advanced AI, Accenture
Abstract
Design-level security weaknesses can arise from requirements, trust assumptions, missing controls, and data flows before implementation begins. Existing security practices often identify these issues after code is written. We present a multi-agent LLM framework for design-time security analysis from product requirement documents and architecture diagrams. The proposed framework parses architecture diagrams into graph representations, generates misuse and failure cases, constructs attack trees, checks governance and compliance gaps, recommends mitigations, assigns enterprise security-domain tags, and produces a candidate revised architecture recommendation for expert review. The framework does not retrieve from Common Weakness Enumeration (CWE) databases at inference time. Instead, it analyzes system behavior, trust boundaries, component interactions, and data-flow assumptions. Misuse cases act as intermediate representations that link findings to system components and attack paths, while a validation and refinement loop filters unsupported findings and improves grounding, traceability, and actionability. We evaluate the framework on a Microsoft reference-labeled threat-modeling example, labeled synthetic PRD--architecture pairs, and two open-ended systems: Berty and Gas Town. The reference-labeled case supports threat-recovery and actionability analysis, while the open-ended cases evaluate validity, noise, traceability, actionability, redundancy, and attack-tree quality. Results show that architecture-informed, misuse-driven reasoning improves review quality compared with single-shot and ablation baselines. Keywords: LLM Multi-Agent Systems, Design-Time Security, Threat Modeling, Vulnerability Discovery, Architecture Diagrams, Security Analysis, Misuse Case Derivation, Attack Trees, Iterative Reasoning, Security Governance.
Figures & tables
| Approach | Multi-Artifact Input | Misuse Modeling | Attack Trees | Iterative Reasoning | No CVE Retrieval | Domain Routing | Redesign Recommendation |
| Manual Threat Modeling | ✓ | ✗ | ✓ | ✗ | |||
| Tool-Based Threat Modeling | ✗ | ✗ | ✗ | ✗ | |||
| Security Design Flaw Detection | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | |
| Architecture / DFD Extraction | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | |
| LLM Single-Prompt | ✗ | ✗ | ✗ | ✗ | ✗ | ||
| LLM-Assisted Threat Modeling | ✗ | ✗ | ✗ |
| Configuration | Description |
| Single-shot LLM | One prompt generates misuse cases, attack trees, and mitigations from PRD and architecture. |
| Single-shot STRIDE | One prompt generates a STRIDE-structured threat table from PRD and architecture. |
| No-MC | Removes the misuse-case agent and generates attack trees directly from architecture context. |
| PRD-only | Uses only the PRD, evaluating early-stage security analysis without architecture grounding. |
| Arch-Informed | Full pipeline using PRD, architecture diagram, misuse cases, attack trees, and iterative refinement. |
| Metric | Definition |
| Coverage (Raw) | Fraction of ground-truth threats identified by the system: . |
| Grounded Coverage | Fraction of ground-truth threats correctly identified and grounded in the architecture: . |
| Grounded Precision | Fraction of grounded generated threats that are correct: . |
| Novelty | Fraction of validated threats not present in the ground truth but judged plausible: . |
| Validity | Fraction of generated threats judged valid after evaluation: . |
| Noise | Fraction of generated threats judged invalid or unsupported: . |
| Domain | Config. | #MC | #AT | Raw Cov. | G. Cov. | G. Prec. | Valid. | Noise | Trace. | Action. | Novel. | Redun. | ATQ |
| EHS | Arch-Informed | 29.7 | 9.0 | 0.97 | 0.97 | 0.84 | 0.97 | 0.03 | 1.00 | 0.91 | 0.63 | 0.13 | 4.40 |
| EHS | No-MC | 0.0 | 15.3 | 0.67 | 0.67 | 0.26 | 0.99 | 0.01 | N/A | 0.20 | 0.73 | 0.13 | 4.30 |
| EHS | PRD-only | 30.3 | 11.7 | 0.88 | 0.85 | 0.72 | 0.95 | 0.05 | 0.72 | 0.88 | 0.72 | 0.06 | 4.13 |
| EHS | Single-shot LLM | 20.7 | 4.3 | 0.44 | 0.40 | 0.24 | 0.88 | 0.12 | 0.00 | 0.06 | 0.66 | 0.23 | 3.45 |
| EHS | Single-shot STRIDE | 23.3 | 4.0 | 0.58 | 0.42 | 0.36 | 0.87 | 0.13 | 0.00 | 0.31 | 0.56 | 0.17 | 3.30 |
| OLB | Arch-Informed | 11.3 | 13.0 | 0.85 | 0.85 | 0.81 | 0.99 | 0.01 | 0.80 | 0.90 | 0.25 | 0.10 | 4.30 |
| Metric | Arch-Informed | No-MC | PRD-only | Single-shot LLM | Single-shot STRIDE |
| # Misuse cases generated | 13.3 | 0.0 | 4.7 | 5.7 | 17.3 |
| # Attack trees generated | 9.0 | 6.7 | 2.3 | 3.0 | 6.0 |
| Coverage (Raw) | 0.83 | N/A | 0.17 | 0.17 | 0.33 |
| Grounded Coverage | 0.83 | N/A | 0.08 | 0.17 | 0.11 |
| Grounded Precision | 0.63 | N/A | 0.10 | 0.30 | 0.23 |
| Validity | 1.00 | N/A | 0.55 | 0.50 | 0.67 |
| Domain | Misuse/Failure | Attack Trees | Total |
| IAM | 2 | 3 | 5 |
| Network Security | 4 | 4 | 8 |
| Application Security | 4 | 4 | 8 |
| Data Security | 5 | 6 | 11 |
| Cloud Security | 4 | 4 | 8 |
| DevSecOps | 1 | 2 | 3 |
| Design change | Diagram evidence | Linked finding or weakness | Security effect |
| Service-to-service authentication | Mutual TLS is annotated on WebSocket flows among edge modules M1, M2, and M3. | Missing independent authentication; unauthorized module-to-module access. | Strengthens identity and trust between internal edge modules. |
| Storage upload access control | RBAC is annotated on the feedback-frame upload path from M2 to Azure Storage. | Unauthorized access to feedback uploads; weak access policy for cloud storage. | Restricts storage writes to authorized modules and identities. |
| Input and request validation | Data validation is annotated before the OCR/text-to-speech request to Azure Cognitive Services. | Input manipulation; missing validation before external service processing. | Reduces malformed or adversarial data sent to downstream services. |
| Encrypted data transmission | Encrypted response and telemetry paths are annotated in the revised design. | Telemetry data loss; MITM or disclosure risk on service communication paths. | Improves confidentiality and integrity of data in transit. |
| Browser-side content security | A Content Security Policy note is added for the browser-facing component. | Frontend data-handling risk; inadequate output filtering or browser-side injection exposure. | Reduces client-side injection and unsafe content-handling risk. |
| System | Config. | #MC | #AT | Valid. | Noise | Trace. | Action. | Redun. | ATQ |
| Berty | Arch-Informed | 11.70 | 6.70 | 0.92 | 0.08 | 0.90 | 0.84 | 0.14 | 4.00 |
| Berty | No-MC | 0.00 | 4.70 | N/A | N/A | N/A | N/A | N/A | 1.30 |
| Berty | PRD-only | 6.30 | 5.00 | 0.49 | 0.51 | 0.40 | 0.85 | 0.32 | 2.70 |
| Berty | Single-shot LLM | 5.70 | 3.00 | 0.54 | 0.46 | 0.59 | 0.85 | 0.00 | 1.70 |
| Berty | Single-shot STRIDE | 19.30 | 4.70 | 0.99 | 0.01 | 0.50 | 0.98 | 0.42 | 3.30 |
| Gas Town | Arch-Informed | 6.30 | 4.70 | 0.97 | 0.03 | 1.00 | 0.96 | 0.04 | 4.30 |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
| Type | Artifact | Domain tags |
| MC | No Rate Limiting on IoTEdge Modules | NET, GRC |
| MC | Missing Independent Authentication | IAM, NET, APP, GRC |
| MC | Lack of Fine-Grained Authorization | IAM, DATA, GRC |
| MC | Inadequate Output Filtering | NET, DATA |
| MC | Missing Input Validation in Modules | APP, GRC |
| MC | Unauthorized Access to Cognitive Transfers | NET, DATA, CLOUD, GRC |
| Stage | Calls | Input Tok. | Output Tok. | Total Tok. | Share |
| Misuse / failure-case generation | 8 | 26,833 | 5,655 | 32,488 | 25.8% |
| Attack-tree planner | 3 | 5,392 | 515 | 5,907 | 4.7% |
| Attack-tree workers | 17 | 27,491 | 6,914 | 34,405 | 27.4% |
| Confidence scoring / reasoning | 8 | 23,317 | 6,907 | 30,224 | 24.0% |
| Attack-tree validation | 3 | 13,772 | 1,242 | 15,014 | 11.9% |
| Governance review | 1 | 2,625 | 901 | 3,526 | 2.8% |
Cybersecurity
Cybersecurity develops methods to protect digital and cyber-physical systems from attacks, vulnerabilities, data loss, and misuse.
See all 355 papers