Class: AttackRelationship
ATT&CK Relationship objects connect ATT&CK STIX objects using typed semantic relationships. ATT&CK restricts STIX relationship semantics to a closed set of relationship_type values and enforces valid (source_type, relationship_type, target_type) combinations.
Valid relationship combinations:
_ uses:_
_ malware | tool | intrusion-set | campaign → attack-pattern | malware | tool_
_ (malware→malware and tool→tool combinations are explicitly prohibited)_
_ mitigates:_
_ course-of-action → attack-pattern_
_ subtechnique-of:_
_ attack-pattern → attack-pattern (source=sub-technique, target=parent)_
_ detects:_
_ x-mitre-data-component | x-mitre-detection-strategy → attack-pattern_
_ (x-mitre-data-component→attack-pattern DEPRECATED as of Spec 3.3.0)_
_ attributed-to:_
_ campaign → intrusion-set_
_ targets:_
_ attack-pattern → x-mitre-asset_
_ revoked-by:_
_
__
ATT&CK Relationship objects do not carry a 'name' property or 'x_mitre_version'. The x_mitre_modified_by_ref is required on all ATT&CK relationships.
URI: attack:AttackRelationship
classDiagram
class AttackRelationship
click AttackRelationship href "../AttackRelationship/"
AttackObject <|-- AttackRelationship
click AttackObject href "../AttackObject/"
AttackRelationship : confidence
AttackRelationship : created
AttackRelationship : created_by_ref
AttackRelationship : description
AttackRelationship : extensions
AttackRelationship : external_references
AttackRelationship --> "*" ExternalReference : external_references
click ExternalReference href "../ExternalReference/"
AttackRelationship : granular_markings
AttackRelationship --> "*" GranularMarking : granular_markings
click GranularMarking href "../GranularMarking/"
AttackRelationship : id
AttackRelationship : labels
AttackRelationship : lang
AttackRelationship : modified
AttackRelationship : name
AttackRelationship : object_marking_refs
AttackRelationship : revoked
AttackRelationship : spec_version
AttackRelationship --> "1" SpecVersionEnum : spec_version
click SpecVersionEnum href "../SpecVersionEnum/"
AttackRelationship : type
AttackRelationship : x_mitre_attack_spec_version
AttackRelationship : x_mitre_deprecated
AttackRelationship : x_mitre_modified_by_ref
AttackRelationship : x_mitre_old_attack_id
AttackRelationship : x_mitre_version
Inheritance
- StixEntity
- CommonSchemaComponent
- Core
- AttackObject
- AttackRelationship
- AttackObject
- Core
- CommonSchemaComponent
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| x_mitre_modified_by_ref | 1 StixIdentifier |
The STIX ID of the identity object that created the current version of this o... | direct |
| x_mitre_attack_spec_version | 1 SemverString |
The version of the ATT&CK Data Model specification used to construct this obj... | AttackObject |
| x_mitre_version | 0..1 AttackVersionString |
Not present on ATT&CK Relationship objects | AttackObject |
| x_mitre_deprecated | 0..1 Boolean |
Boolean flag indicating that this ATT&CK object has been deprecated and shoul... | AttackObject |
| x_mitre_old_attack_id | 0..1 String |
A legacy ATT&CK ID previously assigned to this object before a knowledge base... | AttackObject |
| type | 1 StixTypeName |
STIX object type | Core, StixEntity |
| spec_version | 1 SpecVersionEnum |
STIX specification version | Core |
| id | 1 StixIdentifier |
STIX object identifier | Core, StixEntity |
| created | 1 Datetime |
Creation timestamp | Core |
| modified | 1 Datetime |
Modification timestamp | Core |
| created_by_ref | 0..1 StixIdentifier |
The STIX ID of the identity object that first created this ATT&CK object | Core |
| labels | * String |
Terms used to describe this object | Core |
| revoked | 0..1 Boolean |
Indicates whether this object has been revoked | Core |
| confidence | 0..1 Integer |
Confidence that the producer has in this data | Core |
| lang | 0..1 String |
Language of textual properties | Core |
| external_references | * ExternalReference |
External references to non-STIX information | Core |
| object_marking_refs | * StixIdentifier |
Marking definition references applied to this object | Core |
| granular_markings | * GranularMarking |
Granular markings that apply to selected content | Core |
| extensions | * String |
Open-ended extension payloads | Core |
| name | 0..1 String |
Not present on ATT&CK Relationship objects | StixEntity |
| description | 0..1 String |
Optional human-readable description providing context about this specific rel... | StixEntity |
In Subsets
Comments
- validator_hint: validate-attack-relationship-source-target-type-compatibility
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| stix_type | relationship |
Schema Source
- from schema: https://w3id.org/lmodel/attack
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | attack:AttackRelationship |
| native | attack:AttackRelationship |
LinkML Source
Direct
name: AttackRelationship
annotations:
stix_type:
tag: stix_type
value: relationship
description: "ATT&CK Relationship objects connect ATT&CK STIX objects using typed\
\ semantic relationships. ATT&CK restricts STIX relationship semantics to a closed\
\ set of relationship_type values and enforces valid (source_type, relationship_type,\
\ target_type) combinations.\nValid relationship combinations:\n uses:\n malware\
\ | tool | intrusion-set | campaign → attack-pattern | malware | tool\n (malware→malware\
\ and tool→tool combinations are explicitly prohibited)\n mitigates:\n course-of-action\
\ → attack-pattern\n subtechnique-of:\n attack-pattern → attack-pattern\
\ (source=sub-technique, target=parent)\n detects:\n x-mitre-data-component\
\ | x-mitre-detection-strategy → attack-pattern\n (x-mitre-data-component→attack-pattern\
\ DEPRECATED as of Spec 3.3.0)\n attributed-to:\n campaign → intrusion-set\n\
\ targets:\n attack-pattern → x-mitre-asset\n revoked-by:\n <any> → <same\
\ STIX type> (source and target must be the same type)\n\nATT&CK Relationship objects\
\ do not carry a 'name' property or 'x_mitre_version'. The x_mitre_modified_by_ref\
\ is required on all ATT&CK relationships."
comments:
- 'validator_hint: validate-attack-relationship-source-target-type-compatibility'
in_subset:
- attack_sros
from_schema: https://w3id.org/lmodel/attack
is_a: AttackObject
slots:
- x_mitre_modified_by_ref
slot_usage:
type:
name: type
required: true
pattern: ^relationship$
id:
name: id
required: true
pattern: ^relationship--
relationship_type:
name: relationship_type
description: The semantic type of this relationship. Must be one of the seven
ATT&CK relationship types.
range: AttackRelationshipTypeEnum
required: true
source_ref:
name: source_ref
description: The STIX ID of the source object. The STIX type prefix must be compatible
with the relationship_type and target_ref type.
required: true
target_ref:
name: target_ref
description: The STIX ID of the target object. The STIX type prefix must be compatible
with the relationship_type and source_ref type.
required: true
description:
name: description
description: Optional human-readable description providing context about this
specific relationship instance.
x_mitre_modified_by_ref:
name: x_mitre_modified_by_ref
required: true
name:
name: name
description: Not present on ATT&CK Relationship objects. Inherited from the base
STIX specification but omitted in ATT&CK's use of relationship objects.
required: false
x_mitre_version:
name: x_mitre_version
description: Not present on ATT&CK Relationship objects. Version tracking is not
applied to relationship objects in the ATT&CK Data Model.
required: false
Induced
name: AttackRelationship
annotations:
stix_type:
tag: stix_type
value: relationship
description: "ATT&CK Relationship objects connect ATT&CK STIX objects using typed\
\ semantic relationships. ATT&CK restricts STIX relationship semantics to a closed\
\ set of relationship_type values and enforces valid (source_type, relationship_type,\
\ target_type) combinations.\nValid relationship combinations:\n uses:\n malware\
\ | tool | intrusion-set | campaign → attack-pattern | malware | tool\n (malware→malware\
\ and tool→tool combinations are explicitly prohibited)\n mitigates:\n course-of-action\
\ → attack-pattern\n subtechnique-of:\n attack-pattern → attack-pattern\
\ (source=sub-technique, target=parent)\n detects:\n x-mitre-data-component\
\ | x-mitre-detection-strategy → attack-pattern\n (x-mitre-data-component→attack-pattern\
\ DEPRECATED as of Spec 3.3.0)\n attributed-to:\n campaign → intrusion-set\n\
\ targets:\n attack-pattern → x-mitre-asset\n revoked-by:\n <any> → <same\
\ STIX type> (source and target must be the same type)\n\nATT&CK Relationship objects\
\ do not carry a 'name' property or 'x_mitre_version'. The x_mitre_modified_by_ref\
\ is required on all ATT&CK relationships."
comments:
- 'validator_hint: validate-attack-relationship-source-target-type-compatibility'
in_subset:
- attack_sros
from_schema: https://w3id.org/lmodel/attack
is_a: AttackObject
slot_usage:
type:
name: type
required: true
pattern: ^relationship$
id:
name: id
required: true
pattern: ^relationship--
relationship_type:
name: relationship_type
description: The semantic type of this relationship. Must be one of the seven
ATT&CK relationship types.
range: AttackRelationshipTypeEnum
required: true
source_ref:
name: source_ref
description: The STIX ID of the source object. The STIX type prefix must be compatible
with the relationship_type and target_ref type.
required: true
target_ref:
name: target_ref
description: The STIX ID of the target object. The STIX type prefix must be compatible
with the relationship_type and source_ref type.
required: true
description:
name: description
description: Optional human-readable description providing context about this
specific relationship instance.
x_mitre_modified_by_ref:
name: x_mitre_modified_by_ref
required: true
name:
name: name
description: Not present on ATT&CK Relationship objects. Inherited from the base
STIX specification but omitted in ATT&CK's use of relationship objects.
required: false
x_mitre_version:
name: x_mitre_version
description: Not present on ATT&CK Relationship objects. Version tracking is not
applied to relationship objects in the ATT&CK Data Model.
required: false
attributes:
x_mitre_modified_by_ref:
name: x_mitre_modified_by_ref
description: 'The STIX ID of the identity object that created the current version
of this object. In practice, always references MITRE''s canonical identity object:
identity--c78cb6e5-0c4b-4611-8297-d1b8b55e40b5. May differ from created_by_ref
if the object was originally created by a third party and subsequently adopted
or updated by MITRE.'
comments:
- 'validator_hint: must-match-mitre-identity-id'
in_subset:
- attack_sdos
- attack_sros
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: x_mitre_modified_by_ref
owner: AttackRelationship
domain_of:
- Technique
- Tactic
- Group
- AttackCampaign
- Mitigation
- AttackMalware
- AttackTool
- Asset
- DataSource
- DataComponent
- Matrix
- Collection
- DetectionStrategy
- Analytic
- AttackRelationship
range: stix_identifier
required: true
pattern: ^identity--c78cb6e5-0c4b-4611-8297-d1b8b55e40b5$
x_mitre_attack_spec_version:
name: x_mitre_attack_spec_version
description: The version of the ATT&CK Data Model specification used to construct
this object, in MAJOR.MINOR.PATCH (semantic versioning) format. Helps consuming
software determine whether the data format is supported. Objects lacking this
property are assumed to conform to ATT&CK spec version 2.0.0. Refer to the ATT&CK
CHANGELOG for all supported versions.
comments:
- 'absent_on: marking-definition, identity (x_mitre_version absent), relationship
(x_mitre_version absent)'
in_subset:
- attack_sdos
- attack_sros
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: x_mitre_attack_spec_version
owner: AttackRelationship
domain_of:
- AttackObject
range: semver_string
required: true
x_mitre_version:
name: x_mitre_version
description: Not present on ATT&CK Relationship objects. Version tracking is not
applied to relationship objects in the ATT&CK Data Model.
comments:
- 'absent_on: relationship, marking-definition'
in_subset:
- attack_sdos
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: x_mitre_version
owner: AttackRelationship
domain_of:
- AttackObject
range: attack_version_string
required: false
x_mitre_deprecated:
name: x_mitre_deprecated
description: Boolean flag indicating that this ATT&CK object has been deprecated
and should no longer be used in new analyses or tooling implementations. Deprecated
objects are retained in the knowledge base for historical reference and legacy
compatibility, but are not actively maintained with new information.
comments:
- 'absent_on: marking-definition'
in_subset:
- attack_sdos
- attack_sros
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: x_mitre_deprecated
owner: AttackRelationship
domain_of:
- AttackObject
range: boolean
x_mitre_old_attack_id:
name: x_mitre_old_attack_id
description: A legacy ATT&CK ID previously assigned to this object before a knowledge
base restructuring or domain migration event. Format mirrors the current ATT&CK
ID format but from the prior numbering scheme (e.g., "MOB-T1001" for a mobile
technique previously in the pre-unification Mobile ATT&CK dataset).
in_subset:
- attack_sdos
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: x_mitre_old_attack_id
owner: AttackRelationship
domain_of:
- AttackObject
range: string
type:
name: type
description: STIX object type.
from_schema: https://w3id.org/lmodel/attack
related_mappings:
- unified_cyber_ontology:state
rank: 1000
alias: type
owner: AttackRelationship
domain_of:
- StixEntity
- Bundle
- Core
- CyberObservableCore
- ExtensionDefinition
- LanguageContent
- MarkingDefinition
- File
range: stix_type_name
required: true
pattern: ^relationship$
spec_version:
name: spec_version
description: STIX specification version.
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:specVersion
rank: 1000
alias: spec_version
owner: AttackRelationship
domain_of:
- Core
- CyberObservableCore
- MarkingDefinition
range: SpecVersionEnum
required: true
id:
name: id
description: STIX object identifier.
from_schema: https://w3id.org/lmodel/attack
related_mappings:
- unified_cyber_ontology:externalReference
rank: 1000
alias: id
owner: AttackRelationship
domain_of:
- StixEntity
- Bundle
- Core
- CyberObservableCore
- ExtensionDefinition
- LanguageContent
- MarkingDefinition
- File
range: stix_identifier
required: true
pattern: ^relationship--
created:
name: created
description: Creation timestamp.
notes:
- STIX core timestamps require millisecond precision.
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:objectCreatedTime
rank: 1000
alias: created
owner: AttackRelationship
domain_of:
- Core
- MarkingDefinition
range: datetime
required: true
pattern: T\d{2}:\d{2}:\d{2}\.\d{3,}Z$
modified:
name: modified
description: Modification timestamp.
notes:
- STIX core timestamps require millisecond precision.
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:modifiedTime
rank: 1000
alias: modified
owner: AttackRelationship
domain_of:
- Core
range: datetime
required: true
pattern: T\d{2}:\d{2}:\d{2}\.\d{3,}Z$
created_by_ref:
name: created_by_ref
description: The STIX ID of the identity object that first created this ATT&CK
object. Typically references MITRE's identity (identity--c78cb6e5-0c4b-4611-8297-d1b8b55e40b5).
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:createdBy
rank: 1000
alias: created_by_ref
owner: AttackRelationship
domain_of:
- Core
- MarkingDefinition
range: stix_identifier
labels:
name: labels
description: Terms used to describe this object.
comments:
- 'jsonschema_minItems: "1"'
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:tag
rank: 1000
alias: labels
owner: AttackRelationship
domain_of:
- Core
range: string
multivalued: true
revoked:
name: revoked
description: Indicates whether this object has been revoked.
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: revoked
owner: AttackRelationship
domain_of:
- Core
range: boolean
confidence:
name: confidence
description: Confidence that the producer has in this data.
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: confidence
owner: AttackRelationship
domain_of:
- Core
range: integer
minimum_value: 0
maximum_value: 100
lang:
name: lang
description: Language of textual properties.
from_schema: https://w3id.org/lmodel/attack
rank: 1000
alias: lang
owner: AttackRelationship
domain_of:
- Core
- GranularMarking
range: string
external_references:
name: external_references
description: External references to non-STIX information.
comments:
- 'jsonschema_minItems: "1"'
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:externalReference
rank: 1000
alias: external_references
owner: AttackRelationship
domain_of:
- Core
- MarkingDefinition
range: ExternalReference
multivalued: true
object_marking_refs:
name: object_marking_refs
description: Marking definition references applied to this object.
comments:
- 'jsonschema_minItems: "1"'
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:objectMarking
rank: 1000
alias: object_marking_refs
owner: AttackRelationship
domain_of:
- Core
- CyberObservableCore
- MarkingDefinition
range: stix_identifier
multivalued: true
granular_markings:
name: granular_markings
description: Granular markings that apply to selected content.
comments:
- 'jsonschema_minItems: "1"'
from_schema: https://w3id.org/lmodel/attack
narrow_mappings:
- unified_cyber_ontology:objectMarking
rank: 1000
alias: granular_markings
owner: AttackRelationship
domain_of:
- Core
- CyberObservableCore
- MarkingDefinition
range: GranularMarking
multivalued: true
extensions:
name: extensions
description: Open-ended extension payloads.
notes:
- JSON Schema uses patternProperties for extension keys; exact key validation
is delegated to validator tooling.
comments:
- 'jsonschema_rule: patternProperties validator_hint: validate-extension-keys-and-values'
from_schema: https://w3id.org/lmodel/attack
related_mappings:
- unified_cyber_ontology:hasFacet
rank: 1000
alias: extensions
owner: AttackRelationship
domain_of:
- Core
- CyberObservableCore
- MarkingDefinition
- File
range: string
multivalued: true
name:
name: name
description: Not present on ATT&CK Relationship objects. Inherited from the base
STIX specification but omitted in ATT&CK's use of relationship objects.
from_schema: https://w3id.org/lmodel/attack
exact_mappings:
- unified_cyber_ontology:name
rank: 1000
alias: name
owner: AttackRelationship
domain_of:
- RelatedAsset
- StixEntity
- ExtensionDefinition
- MarkingDefinition
- AutonomousSystem
- File
range: string
required: false
description:
name: description
description: Optional human-readable description providing context about this
specific relationship instance.
from_schema: https://w3id.org/lmodel/attack
close_mappings:
- unified_cyber_ontology:description
rank: 1000
alias: description
owner: AttackRelationship
domain_of:
- RelatedAsset
- MutableElement
- StixEntity
- ExtensionDefinition
- ExternalReference
range: string