Frequently Asked Questions (FAQ)¶
Quick Navigation
Use the tabs below to jump to specific topics, or scroll through all questions.
General Questions¶
What is ThreatForest?¶
TL;DR
AI-powered threat modeling platform that generates attack trees mapped to MITRE ATT&CK using autonomous agents.
ThreatForest automates threat modeling by analyzing your project and generating comprehensive attack trees with MITRE ATT&CK mappings and mitigation strategies.
What is an attack tree?¶
TL;DR
Hierarchical diagram showing all ways to attack a system, with step-by-step paths mapped to MITRE techniques.
An attack tree visualizes attack scenarios:
- Root: High-level threat (e.g., "Data breach")
- Paths: Different attack routes
- Steps: Specific actions per path
- MITRE: Technique IDs (e.g., T1190)
- Mitigations: Defensive controls
Who should use ThreatForest?¶
ThreatForest is designed for security professionals, developers, and compliance teams:
- Security Teams - Automate threat modeling
- DevSecOps - Integrate into CI/CD
- Architects - Understand security implications
- Compliance - Document threat landscapes
Is ThreatForest free?¶
Yes, open-source under MIT License. You need LLM provider access:
- AWS Bedrock - Requires AWS account
- Anthropic/OpenAI - Requires API keys (paid)
- Ollama - Free local use
Getting Started¶
What are the prerequisites?¶
TL;DR
Python 3.11+, LLM provider access (AWS Bedrock recommended), project to analyze.
Required:
- Python 3.11 or higher
- LLM provider (AWS Bedrock, Anthropic, OpenAI, or Ollama)
Recommended:
- ThreatComposer file or documentation
- Architecture diagrams
Can I try ThreatForest without AWS?¶
Yes! ThreatForest supports multiple providers:
- Ollama - Completely local, no cloud
- Anthropic - Direct API access
- OpenAI - Direct API access
- Google Gemini - Direct API access
Configure in the wizard or config.yaml.
Features & Functionality¶
What file formats does ThreatForest support?¶
TL;DR
ThreatComposer (.tc), JSON, YAML, Markdown for threats. PNG, PDF, Mermaid for diagrams.
Threat Models:
- ThreatComposer (
.tc,.tc.json) ⭐ Recommended - JSON, YAML, Markdown
Diagrams:
- PNG, JPG, PDF, Mermaid, Draw.io, PlantUML
Documentation:
- Markdown, PDF, text files
Can ThreatForest analyze my existing threat model?¶
Yes! ThreatForest can:
- Import ThreatComposer workspaces
- Parse JSON/YAML/Markdown threats
- Enrich with MITRE ATT&CK mappings
- Generate attack trees
- Add mitigation recommendations
What is MITRE ATT&CK mapping?¶
TL;DR
Automatic mapping of attack steps to industry-standard MITRE techniques using AI-powered semantic matching.
MITRE ATT&CK is a framework of adversary tactics and techniques. ThreatForest maps each attack step to relevant techniques using:
- Semantic similarity matching
- Vector embeddings
- Confidence scoring (0.0-1.0)
This helps you understand attacks in standardized terminology and plan defenses using industry best practices.
How accurate is the AI-generated content?¶
Review Required
AI content is a starting point. Always review and validate outputs for your specific context.
Quality depends on:
- LLM model (Claude 3.5 Sonnet recommended)
- Documentation quality
- Threat description completeness
Best practices:
- Review all outputs
- Validate MITRE mappings
- Customize mitigations
- Iterate and refine
Privacy & Security¶
Is my code sent to the LLM provider?¶
Data Sent to LLM
Yes, relevant project context is sent for analysis. Choose your provider carefully.
Data sent:
- Application details and architecture
- Threat descriptions
- Documentation content
- Diagram descriptions
Privacy options:
- ✅ Ollama - Complete privacy (local)
- ✅ AWS Bedrock - Enterprise data handling
- ⚠️ Others - Review provider policies
How do I protect sensitive information?¶
Protection Strategies
- Review the AWS Bedrock security documentation for best practices on how to secure your data when interacting with Bedrock models
- Use Ollama if you want to avoid sending data to LLM providers
Troubleshooting¶
Error: 'externally-managed-environment'¶
Problem
Python prevents system-wide pip installs
Solution: Use pipx instead:
Error: 'Bedrock access failed'¶
Problem
AWS credentials not configured or insufficient permissions
Solution:
# Configure AWS credentials
aws configure
# Verify access
aws bedrock list-foundation-models --region us-east-1
# Check IAM permissions include:
# - bedrock:InvokeModel
# - bedrock:InvokeModelWithResponseStream
Very slow first run¶
This is normal!
First run downloads: - sentence-transformers models (~500MB) - torch library - MITRE ATT&CK data
Subsequent runs are much faster (seconds instead of minutes).
Why is ThreatForest slow?¶
Typical Duration
5-30 minutes depending on project size and model selection.
Performance factors:
- Model - Haiku (fast), Sonnet (balanced), Opus (slow)
- Project size - More threats = longer time
- Network - Latency to LLM provider
- Hardware - Local models need CPU/GPU
Speed optimization:
- Use AWS Bedrock or Anthropic
- Select Claude 3 Haiku for faster results
- Process threats incrementally
ThreatForest fails with "API rate limit exceeded"¶
Solutions:
- Wait and retry (automatic retry logic)
- Reduce concurrency
- Upgrade provider plan
- Switch providers
The attack trees don't match my application¶
Common causes:
- Incomplete documentation
- Generic threat descriptions
- Missing architecture context
Improvements:
- Add detailed architecture diagrams
- Include technology stack docs
- Write specific threat descriptions
- Use ThreatComposer format
Dashboard Won't Open¶
Solutions:
- Check file exists in output directory
- Try different browser
- Check file permissions
- Clear browser cache (Cmd/Ctrl+Shift+R)
Graph Not Displaying¶
Solutions:
- Enable JavaScript in browser
- Check browser console for errors (F12)
- Verify
threatforest_data.jsonexists - Clear browser cache
Slow Dashboard Performance¶
Solutions:
- Use filters to reduce visible threats
- Close other browser tabs
- Update to latest browser version
- Reduce zoom level
Missing Threat Details¶
Solutions:
- Regenerate analysis
- Check data file integrity
- Verify analysis completed successfully
- Review state file for errors
Manual Recovery: State Corruption¶
Problem
Analysis state file is corrupted or you need to restart analysis
Solution:
# Delete state file and restart
rm project/threatforest/attack_trees/.threatforest_state.json
threatforest
Manual Recovery: Partial Results¶
Problem
Analysis stopped mid-way and you want to check progress or resume
Solution:
# Review state file to identify completed threats
cat project/threatforest/attack_trees/.threatforest_state.json
# Resume or restart as needed
threatforest # Will detect existing state and offer to resume
Can I customize the output format?¶
Yes! ThreatForest generates:
- Markdown - Easily customizable
- JSON - For programmatic access
- HTML - Interactive dashboard
You can modify templates and parse JSON for custom reporting.
Integration & Advanced¶
Does ThreatForest support multiple languages?¶
Analysis is language-agnostic. ThreatForest analyzes:
- Architecture and design (not code directly)
- Threat descriptions (any language supported by LLM)
- Configuration files
- Data flow diagrams
LLM responses are in English.
Can I contribute to ThreatForest?¶
Absolutely! Contributions welcome:
- Bug reports on GitHub
- Feature requests
- Code contributions (pull requests)
- Documentation improvements
Still Have Questions?¶
📖 Documentation
Browse comprehensive guides
🐛 GitHub Issues
Report bugs or request features
💬 Discussions
Ask questions and share ideas