You are troubleshooting an issue where a SIEM cannot parse an incoming STIX 2.1 bundle. The bundle contains a 'Relationship' object linking a 'Malware' object to an 'Infrastructure' object. Which property within the 'Relationship' object must be verified to ensure the link type is recognized by the parser?
Trap 1: 'source_ref'
'source_ref' identifies the originating object's identifier, not the semantic link type, so a parser cannot determine the relationship's meaning from it. It is tempting because it is mandatory in every Relationship, and would be the correct property to verify when confirming which object the relationship originates from.
Trap 2: 'target_ref'
'target_ref' names the destination object's identifier, not the relationship's semantics, so it cannot tell the parser what kind of link exists. It is tempting because it is mandatory, and would be correct when verifying which object the relationship points to, not the link type.
Trap 3: 'spec_version'
'spec_version' declares the STIX specification version used, not the relationship's semantic type, so it cannot identify the link. It is tempting because version mismatches genuinely break parsing, and would be correct when diagnosing whether the bundle conforms to a supported STIX release.
- A
'source_ref'
Why it fails: 'source_ref' identifies the originating object's identifier, not the semantic link type, so a parser cannot determine the relationship's meaning from it. It is tempting because it is mandatory in every Relationship, and would be the correct property to verify when confirming which object the relationship originates from.
- B
'relationship_type'
STIX 2.1 Relationship objects use the 'relationship_type' property to define the semantic link between source_ref and target_ref, such as 'communicates-with'. A parser reads this property to classify the connection, so an unrecognised or malformed value prevents parsing.
- C
'target_ref'
Why it fails: 'target_ref' names the destination object's identifier, not the relationship's semantics, so it cannot tell the parser what kind of link exists. It is tempting because it is mandatory, and would be correct when verifying which object the relationship points to, not the link type.
- D
'spec_version'
Why it fails: 'spec_version' declares the STIX specification version used, not the relationship's semantic type, so it cannot identify the link. It is tempting because version mismatches genuinely break parsing, and would be correct when diagnosing whether the bundle conforms to a supported STIX release.