opentide

Threat vector (TVM)

A threat vector describes an adversary capability or scenario: severity, impact, ATT&CK mapping, and optional chaining relationships. Schema identifier: `threat::1.0`.

Requirements

  • The document MUST declare metadata.schema: threat::1.0.
  • name and criticality MUST be present at the top level.
  • threat body MUST be present with all required subfields.
  • threat.att&ck MUST be a non-empty list of ATT&CK technique references (YAML key att&ck; aliased as att_ck in Pydantic).
  • references MAY be omitted.
  • threat.terrain MUST be a non-empty explanatory string describing where and how the threat operates.
  • threat.surface MUST be a non-empty list of surface::1.0 vocabulary values.
  • threat.chaining entries MUST reference valid chaining relation vocabulary values when present.

Definition

Top level (ThreatVector)

FieldTypeRequiredDefaultDescription
namestringyesThreat vector display name
criticalitystringyesCriticality vocabulary value
metadataObjectMetadatayesSee metadata.md
threatThreatBodyyesThreat assessment body
referencesObjectReferencesnonullExternal and internal references

threat (ThreatBody)

FieldTypeRequiredDefaultDescription
descriptionstringyesNarrative description
severitystringyesThreat severity vocabulary
impactstringyesImpact vocabulary
leveragestringyesLeverage vocabulary
viabilitystringyesViability vocabulary
terrainstringyesExplanatory narrative about where/how the threat operates
surfacelist[string]yesThreat surface vocabulary values (surface::1.0)
att&cklist[string]yesMITRE ATT&CK technique IDs
actorslist[string]nonullThreat actor vocabulary values
killchainstring | list[string]nonullKill chain stage(s)
chaininglist[ChainingEntry]nonullVector chaining relationships

terrain and surface are complementary: terrain is free-form prose for humans; surface is the controlled vocabulary used for filtering and coverage. Do not put vocabulary tokens in terrain.

chaining entry

FieldTypeRequiredDescription
(relation keys)stringper entryChaining relation from chaining_relations vocabulary

Relationships

  • metadata.md — shared metadata block
  • objective-1.0.md — objectives MAY reference threat UUIDs in objective.threats
  • rule-1.0.md — rules link to objectives via detection_model
  • Vocabularies: criticality, severity, impact, leverage, viability, surface, att&ck, actors, killchain, chaining_relations

Defaults & overrides

No object-level configuration overrides. Vocabulary values are canonical in vocabularies/. See configuration.md.

Examples

name: Simulated Actor
criticality: High
metadata:
  uuid: 00000000-0000-4000-8001-000000000001
  schema: threat::1.0
  version: 1
  tlp: clear
threat:
  description: Simulated threat actor exercising credential access
  severity: High
  impact: Data Breach
  leverage: High
  viability: High
  terrain: Endpoint workstations and user devices.
  surface:
    - Windows::Desktop
  att&ck:
    - T1059

History

VersionDateNotes
1.02026-06-25Initial spec from opentide models/threat.py

On this page