id: IP Enrichment - Infoblox Cloud version: -1 name: IP Enrichment - Infoblox Cloud description: This playbook enriches IP addresses with the dossier, TIDE and asset data using Infoblox Threat Defense with DDI integration. starttaskid: "0" tasks: "0": id: "0" taskid: dc5385e7-809e-4742-8b52-99041534d32b type: start task: id: dc5385e7-809e-4742-8b52-99041534d32b version: -1 name: "" iscommand: false brand: "" description: '' nexttasks: '#none#': - "1" separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 610, "y": -70 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "1": id: "1" taskid: a1d742c2-2879-4058-8507-fdcdf9a40d58 type: condition task: id: a1d742c2-2879-4058-8507-fdcdf9a40d58 version: -1 name: Is Infoblox Threat Defense with DDI integration enabled? description: Checks whether Infoblox Threat Defense with DDI integration is enabled or not. type: condition iscommand: false brand: "" nexttasks: '#default#': - "6" "yes": - "2" separatecontext: false conditions: - label: "yes" condition: - - operator: isExists left: value: complex: root: modules filters: - - operator: containsGeneral left: value: simple: modules.brand iscontext: true right: value: simple: InfobloxBloxOneThreatDefense - - operator: isEqualString left: value: simple: modules.state iscontext: true right: value: simple: active accessor: name iscontext: true right: value: {} continueonerrortype: "" view: |- { "position": { "x": 610, "y": 70 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "2": id: "2" taskid: 4b46a403-43f8-4512-8850-3cc639734645 type: regular task: id: 4b46a403-43f8-4512-8850-3cc639734645 version: -1 name: Clear previous inputs description: |- Delete field from context. This automation runs using the default Limited User role, unless you explicitly change the permissions. For more information, see the section about permissions here: https://docs-cortex.paloaltonetworks.com/r/Cortex-XSOAR/6.10/Cortex-XSOAR-Administrator-Guide/Automations scriptName: DeleteContext type: regular iscommand: false brand: "" nexttasks: '#none#': - "8" scriptarguments: key: simple: FoundIndicators subplaybook: simple: auto separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 610, "y": 320 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "3": id: "3" taskid: 294c1c3f-2ddc-4d01-830e-0987ac5c0c87 type: regular task: id: 294c1c3f-2ddc-4d01-830e-0987ac5c0c87 version: -1 name: Fetch Indicators from Incident description: commands.local.cmd.find.indicators script: Builtin|||findIndicators type: regular iscommand: true brand: Builtin nexttasks: '#none#': - "10" scriptarguments: extend-context: simple: FoundIndicators=.={"value":val.value,"indicator_type":val.indicator_type} query: complex: root: incident accessor: id transformers: - operator: Stringify - operator: concat args: prefix: value: simple: 'investigationIDs:' suffix: {} separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 610, "y": 700 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "4": id: "4" taskid: 8ae04c0c-6877-4bb3-8e00-f963cb5723d0 type: regular task: id: 8ae04c0c-6877-4bb3-8e00-f963cb5723d0 version: -1 name: Get reputation for IP indicators description: Gets the comprehensive IP reputation and threat intelligence from Infoblox Threat Defense, including threat indicators, IPAM address information, and standard IP reputation data. script: InfobloxBloxOneThreatDefense|||ip type: regular iscommand: true brand: InfobloxBloxOneThreatDefense nexttasks: '#none#': - "6" scriptarguments: ip: complex: root: FoundIndicators filters: - - operator: isEqualString left: value: simple: FoundIndicators.indicator_type iscontext: true right: value: simple: ip ignorecase: true - operator: isEqualString left: value: simple: FoundIndicators.indicator_type iscontext: true right: value: simple: ipv6 ignorecase: true accessor: value transformers: - operator: SetIfEmpty args: applyIfEmpty: {} defaultValue: value: simple: inputs.ip_addresses iscontext: true - operator: splitAndTrim args: delimiter: value: simple: ',' - operator: RemoveEmpty args: empty_values: {} remove_keys: {} separatecontext: false continueonerror: true continueonerrortype: "" view: |- { "position": { "x": 390, "y": 1270 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "6": id: "6" taskid: 7ab40ff0-2f43-4af4-877a-93b7a5514f7a type: title task: id: 7ab40ff0-2f43-4af4-877a-93b7a5514f7a version: -1 name: Done type: title iscommand: false brand: "" description: '' separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 610, "y": 1460 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "8": id: "8" taskid: e43d6f00-2159-4993-82fa-c0370e9afdf5 type: condition task: id: e43d6f00-2159-4993-82fa-c0370e9afdf5 version: -1 name: Check whether IPs are available in playbook input description: Check whether IPs are available in playbook input. type: condition iscommand: false brand: "" nexttasks: '#default#': - "3" "yes": - "10" separatecontext: false conditions: - label: "yes" condition: - - operator: isNotEmpty left: value: complex: root: inputs.ip_addresses transformers: - operator: splitAndTrim args: delimiter: value: simple: ',' - operator: RemoveEmpty args: empty_values: {} remove_keys: {} iscontext: true right: value: {} continueonerrortype: "" view: |- { "position": { "x": 610, "y": 480 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "10": id: "10" taskid: ad9976cf-6986-42e6-889d-9307825b7b39 type: title task: id: ad9976cf-6986-42e6-889d-9307825b7b39 version: -1 name: Check for indicators type: title iscommand: false brand: "" description: '' nexttasks: '#none#': - "11" separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 610, "y": 900 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "11": id: "11" taskid: 57115529-15a8-4650-8b23-fbdbcce30be6 type: condition task: id: 57115529-15a8-4650-8b23-fbdbcce30be6 version: -1 name: Check that IP indicators are present or not description: Check that IP addresses are present or not. type: condition iscommand: false brand: "" nexttasks: '#default#': - "6" "yes": - "4" - "12" separatecontext: false conditions: - label: "yes" condition: - - operator: isNotEmpty left: value: complex: root: FoundIndicators filters: - - operator: isEqualString left: value: simple: FoundIndicators.indicator_type iscontext: true right: value: simple: ip ignorecase: true - operator: isEqualString left: value: simple: FoundIndicators.indicator_type iscontext: true right: value: simple: ipv6 ignorecase: true accessor: value transformers: - operator: SetIfEmpty args: applyIfEmpty: {} defaultValue: value: simple: inputs.ip_addresses iscontext: true - operator: splitAndTrim args: delimiter: value: simple: ',' - operator: RemoveEmpty args: empty_values: {} remove_keys: {} iscontext: true right: value: {} continueonerrortype: "" view: |- { "position": { "x": 610, "y": 1030 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false "12": id: "12" taskid: 189dc9bb-525b-4a2e-8372-164857af6b62 type: regular task: id: 189dc9bb-525b-4a2e-8372-164857af6b62 version: -1 name: Get dossier information for IP indicators description: The Dossier Lookup API returns detailed information on the specified indicator from the requested sources. script: '|||bloxone-td-dossier-lookup-get' type: regular iscommand: true brand: "" nexttasks: '#none#': - "6" scriptarguments: indicator_type: simple: ip value: complex: root: FoundIndicators filters: - - operator: isEqualString left: value: simple: FoundIndicators.indicator_type iscontext: true right: value: simple: ip ignorecase: true - operator: isEqualString left: value: simple: FoundIndicators.indicator_type iscontext: true right: value: simple: ipv6 ignorecase: true accessor: value transformers: - operator: SetIfEmpty args: applyIfEmpty: {} defaultValue: value: simple: inputs.ip_addresses iscontext: true - operator: splitAndTrim args: delimiter: value: simple: ',' - operator: RemoveEmpty args: empty_values: {} remove_keys: {} separatecontext: false continueonerror: true continueonerrortype: "" view: |- { "position": { "x": 830, "y": 1270 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false view: |- { "linkLabelsPosition": { "11_4_yes": 0.46, "11_6_#default#": 0.2, "1_2_yes": 0.58, "1_6_#default#": 0.1, "8_10_yes": 0.16, "8_3_#default#": 0.56 }, "paper": { "dimensions": { "height": 1595, "width": 820, "x": 390, "y": -70 } } } inputs: - key: ip_addresses value: {} required: false description: The optional comma-separated list of IP addresses to enrich. playbookInputQuery: outputs: [] tests: - No tests (auto formatted) fromversion: 6.5.0