Common Step: Pivot on IOC using GTI Relationships#
Objective#
Explore relationships connected to a specific Indicator of Compromise (IOC) within Google Threat Intelligence (GTI) to discover related entities (other IOCs, threats, etc.).
Scope#
This sub-runbook executes the appropriate gti-mcp_get_entities_related_to_a_... tool based on the input IOC type and desired relationship(s). It returns the discovered related entities.
Inputs#
${IOC_VALUE}: The specific IOC value (e.g., “198.51.100.10”, “evil-domain.com”, “abcdef123456…”, “http://bad.url/path”).${IOC_TYPE}: The type of IOC (“IP Address”, “Domain”, “File Hash”, “URL”, “Collection”). Note: Added “Collection” type.${RELATIONSHIP_NAMES}: A list of relationship names to query (e.g., [“resolutions”, “communicating_files”], [“malware_families”, “attack_techniques”]). The available relationships depend on the${IOC_TYPE}.
Outputs#
${RELATED_ENTITIES}: A structured dictionary or list containing the entities found for each queried relationship.${PIVOT_STATUS}: Confirmation or status of the pivoting attempt(s).
Tools#
gti-mcp:get_entities_related_to_an_ip_address,get_entities_related_to_a_domain,get_entities_related_to_a_file,get_entities_related_to_an_url,get_entities_related_to_a_collection
Workflow Steps & Diagram#
Receive Input: Obtain
${IOC_VALUE},${IOC_TYPE}, and${RELATIONSHIP_NAMES}from the calling runbook. Initialize${RELATED_ENTITIES}as an empty structure.Determine GTI Tool: Based on
${IOC_TYPE}, select the correctgti-mcptool (e.g.,get_entities_related_to_an_ip_addressfor “IP Address”).Iterate Relationships: Loop through each
relationshipin${RELATIONSHIP_NAMES}.Call the selected GTI tool with the appropriate identifier (
ip_address,domain,hash,url,id) set to${IOC_VALUE}andrelationship_name=relationship.Store the results under the
relationshipkey within${RELATED_ENTITIES}.
Return Results: Set
${PIVOT_STATUS}based on the success/failure of the API calls. Return${RELATED_ENTITIES}and${PIVOT_STATUS}to the calling runbook.
sequenceDiagram
participant CallingRunbook
participant PivotOnIOC as pivot_on_ioc_gti.md (This Runbook)
participant GTI as gti-mcp
CallingRunbook->>PivotOnIOC: Execute GTI Pivot\nInput: IOC_VALUE, IOC_TYPE, RELATIONSHIP_NAMES
%% Step 2: Determine Tool
Note over PivotOnIOC: Select GTI tool based on IOC_TYPE
%% Step 3: Iterate Relationships
loop For each relationship R in RELATIONSHIP_NAMES
PivotOnIOC->>GTI: [Selected Tool](identifier=IOC_VALUE, relationship_name=R)
GTI-->>PivotOnIOC: Related Entities List for R
Note over PivotOnIOC: Store results in RELATED_ENTITIES[R]
end
%% Step 4: Return Results
Note over PivotOnIOC: Set PIVOT_STATUS
PivotOnIOC-->>CallingRunbook: Return Results:\nRELATED_ENTITIES,\nPIVOT_STATUS
Completion Criteria#
The relevant GTI relationship queries have been attempted for the specified IOC. The discovered related entities (${RELATED_ENTITIES}) and status (${PIVOT_STATUS}) are available.