Skip to content

Threat Modeling Pipeline

The pipeline loads a system model graph (GML), analyzes assets, categorizes containers, derives tactics, and generates techniques.

from ThreatModeling.threat_model_creator import build_threat_model
result = build_threat_model("data/system_model_MYAPP_trivy.gml", application="MYAPP", write_results=False)
print(result.keys())  # dict: assets, tactics, techniques

Output Structure (Simplified)

{
  "assets": {"Container": {"categories": {"CatA": {"instances": [...]}}}},
  "tactics": {"Container": [{"tactic": "Initial Access", "description": "..."}]},
  "techniques": {"Container": {"CatA": {"Execution": [{"technique": "ExploitX", "target": "cluster"}]}}}
}

Offline vs Online

Mode Trigger Techniques Summaries
Online Default (no TC_OFFLINE) LLM generated Natural language
Offline TC_OFFLINE=1 Deterministic synthetic Structured placeholders

Set TC_OFFLINE=1 in CI for reproducibility.

Building Graph for Visualization

from ThreatModeling import tm_graph
G = tm_graph.tmr_to_graph(result)
tm_graph.attack_paths(G)