Cortex XDR Malware - Investigation And Response
This playbook is part of the 'Malware Investigation And Response' pack. For more information, refer to https://xsoar.pan.dev/docs/reference/packs/malware-investigation-and-response. This playbook investigates Cortex XDR malware incidents. It uses: - Cortex XDR insights - Command Line Analysis - Dedup - Sandbox hash search and detonation - Cortex XDR enrichment - Incident Handling (True/False Positive).
Cortex XDR by Palo Alto Networks · 43 tasks · 17 inputs · 1 output
Details
| ID | Cortex XDR Malware - Investigation And Response |
|---|---|
| From Version | 6.5.0 |
| Tasks | 43 |
README
This playbook is part of the ‘Malware Investigation And Response’ pack. For more information, refer to https://xsoar.pan.dev/docs/reference/packs/malware-investigation-and-response.
This playbook investigates Cortex XDR malware incidents. It uses:
- Cortex XDR insights
- Command Line Analysis
- Dedup
- Sandbox hash search and detonation
- Cortex XDR enrichment
- Incident Handling (True/False Positive)
Dependencies
This playbook uses the following sub-playbooks, integrations, and scripts.
Sub-playbooks
- Cortex XDR - False Positive Incident Handling
- Command-Line Analysis
- Cortex XDR - Retrieve File by sha256
- Detonate and Analyze File - Generic
- Cortex XDR Malware - Incident Enrichment
- Search For Hash In Sandbox - Generic
- Cortex XDR - Endpoint Investigation
- Cortex XDR - True Positive Incident Handling
- Dedup - Generic v4
Integrations
- CortexXDRIR
Scripts
- InvestigationDetailedSummaryParse
- InvestigationSummaryParse
Commands
- setIncident
- xdr-script-run
Playbook Inputs
| Name | Description | Default Value | Required |
|---|---|---|---|
| EnableDeduplication | Whether the deduplication playbook will be used. | False | Optional |
| AutoIsolation | Whether endpoint isolation is allowed. | False | Optional |
| RetrieveFile | Whether file retrieval from the endpoint is allowed. | True | Optional |
| TicketingSystemToUse | The name of the ticketing system to use, for example, Jira, or ServiceNow. (Used in case incident is classified as True Positive). | Optional | |
| TicketProjectName | The ticket project name. (Required for Jira). | Optional | |
| MaliciousTagName | The tag to assign for indicators to block. | MaliciousTagName | Optional |
| EnableClosureSteps | Whether the incident will be closed with closure steps or automatically. | True | Optional |
| DedupSimilarTextField | A comma-separated list of incident text fields to take into account when computing similarity. For example commandline, URL. | agnetsid,users,agentsid,CMDline,Hostnames,filenames,filepaths | Optional |
| AutoUnisolation | Whether automatic un-isolation is allowed. | False | Optional |
| DedupLimit | The maximum number of incidents to query and set to context data. | 200 | Optional |
| DedupHandleSimilar | Defines how to handle Similar incidents. Choose between: “Link”, “Close”, “Link and Close”. Note: Closing incidents requires you to define the “CloseSimilar” input as well. Also, the incidents found by similar indicators or fields will be closed if their similarity score is above the CloseSimilar value. |
Link | Optional |
| DedupCloseSimilar | Defines the threshold of similarity to close a similar incident. All similar incidents with similarity above this value will be closed. For example, if CloseSimilar is set to .8 and an incident has a similarity score of .9, the incident will be closed. The value should be between 0 and 1 [0=low similarity , 1=identical]. |
0.9 | Optional |
| DedupMinimunIncidentSimilarity | Retain incidents with a similarity score greater than the MinimunIncidentSimilarity. Value should be between 0 to 1 [0=low similarity, 1=identical] |
0.2 | Optional |
| BenignTagName | The name of the tag to apply for allowed indicators. | BenignTagName | Optional |
| AdvancedHunting | ‘Whether to run Advance Hunting queries through your Cortex XDR instance using the information on Alert Insights. Note: It may take some time.’ | True | Optional |
| RunAllHuntMitreTactics | Whether to run the Advanced Hunting section for all Mitre Tactics. | True | Optional |
| DetonateFile | Whether file detonation is allowed on the sandbox. | True | Optional |
Playbook Outputs
| Path | Description | Type |
|---|---|---|
| PaloAltoNetworksXDR.ScriptResult.results | Palo ALto Networks Script reuslts information. | unknown |
Playbook Image

Inputs
EnableDeduplication— Whether the deduplication playbook will be used.AutoIsolation— Whether endpoint isolation is allowed.RetrieveFile— Whether file retrieval from the endpoint is allowed.TicketingSystemToUse— The name of the ticketing system to use, for example, Jira, or ServiceNow. (Used in case incident is classified as True Positive).TicketProjectName— The ticket project name. (Required for Jira).MaliciousTagName— The tag to assign for indicators to block.EnableClosureSteps— Whether the incident will be closed with closure steps or automatically.DedupSimilarTextField— A comma-separated list of incident text fields to take into account when computing similarity. For example commandline, URL.AutoUnisolation— Whether automatic un-isolation is allowed.DedupLimit— The maximum number of incidents to query and set to context data.DedupHandleSimilar— Defines how to handle Similar incidents. Choose between: "Link", "Close", "Link and Close". Note: Closing incidents requires you to define the "CloseSimilar" input as well. Also, the incidents found by similar indicators or fields will be closed if their similarity score is above the CloseSimilar value.DedupCloseSimilar— Defines the threshold of similarity to close a similar incident. All similar incidents with similarity above this value will be closed. For example, if CloseSimilar is set to .8 and an incident has a similarity score of .9, the incident will be closed. The value should be between 0 and 1 [0=low similarity , 1=identical].DedupMinimunIncidentSimilarity— Retain incidents with a similarity score greater than the MinimunIncidentSimilarity. Value should be between 0 to 1 [0=low similarity, 1=identical]BenignTagName— The name of the tag to apply for allowed indicators.AdvancedHunting— 'Whether to run Advance Hunting queries through your Cortex XDR instance using the information on Alert Insights. Note: It may take some time.'RunAllHuntMitreTactics— Whether to run the Advanced Hunting section for all Mitre Tactics.DetonateFile— Whether file detonation is allowed on the sandbox.
Outputs
PaloAltoNetworksXDR.ScriptResult.results— Palo ALto Networks Script reuslts information.
Commands used
setIncident
xdr-script-run
Flowchart
id: Cortex XDR Malware - Investigation And Response version: -1 name: Cortex XDR Malware - Investigation And Response description: "This playbook is part of the 'Malware Investigation And Response' pack. For more information, refer to https://xsoar.pan.dev/docs/reference/packs/malware-investigation-and-response.\nThis playbook investigates Cortex XDR malware incidents. It uses:\n - Cortex XDR insights \n - Command Line Analysis \n - Dedup \n - Sandbox hash search and detonation \n - Cortex XDR enrichment \n - Incident Handling (True/False Positive)." starttaskid: '0' tasks: '0': id: '0' taskid: b93c6a4d-ba67-4186-8dda-42474ed3c901 type: start task: id: b93c6a4d-ba67-4186-8dda-42474ed3c901 version: -1 name: '' iscommand: false brand: '' description: '' nexttasks: '#none#': - '96' separatecontext: false view: |- { "position": { "x": 460, "y": -110 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '6': id: '6' taskid: 8482ccf3-50ab-45eb-871b-757b4061fbf8 type: condition task: id: 8482ccf3-50ab-45eb-871b-757b4061fbf8 version: -1 name: Use deduplication? description: Use deduplication? type: condition iscommand: false brand: '' nexttasks: '#default#': - '8' yes: - '98' separatecontext: false conditions: - label: yes condition: - - operator: isEqualString left: value: simple: inputs.EnableDeduplication iscontext: true right: value: simple: 'True' ignorecase: true view: |- { "position": { "x": 460, "y": 315 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '8': id: '8' taskid: ab357c85-1482-4343-882c-105c9c436963 type: title task: id: ab357c85-1482-4343-882c-105c9c436963 version: -1 name: Deduplication Done type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '86' separatecontext: false view: |- { "position": { "x": 460, "y": 670 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '26': id: '26' taskid: 4ab161b1-b58d-4e35-8c5d-d524332dcd4c type: title task: id: 4ab161b1-b58d-4e35-8c5d-d524332dcd4c version: -1 name: Sandbox type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '103' separatecontext: false view: |- { "position": { "x": 1540, "y": 980 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '27': id: '27' taskid: 6dd40271-6772-4c6e-8f86-8e38e7de80d9 type: title task: id: 6dd40271-6772-4c6e-8f86-8e38e7de80d9 version: -1 name: Any prevention actions? type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '31' separatecontext: false view: |- { "position": { "x": 860, "y": 980 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '31': id: '31' taskid: 35d91074-aefb-4ac2-8257-c72ef5a06f15 type: condition task: id: 35d91074-aefb-4ac2-8257-c72ef5a06f15 version: -1 name: Check if there were any prevention Actions? description: Check if there were any prevention actions? type: condition iscommand: false brand: '' nexttasks: '#default#': - '33' Prevention: - '32' separatecontext: false conditions: - label: Prevention condition: - - operator: containsString left: value: simple: PaloAltoNetworksXDR.Incident.alerts.action_pretty iscontext: true right: value: simple: block ignorecase: true - operator: containsString left: value: simple: PaloAltoNetworksXDR.Incident.alerts.action_pretty iscontext: true right: value: simple: prevent ignorecase: true view: |- { "position": { "x": 860, "y": 1100 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '32': id: '32' taskid: 48deb565-d73c-444c-8ba8-f622c8a597a1 type: condition task: id: 48deb565-d73c-444c-8ba8-f622c8a597a1 version: -1 name: Was the malicious hash Blocked? description: Was the malicious hash Blocked? type: condition iscommand: false brand: '' nexttasks: '#default#': - '80' yes: - '33' separatecontext: false conditions: - label: yes condition: - - operator: containsString left: value: complex: root: PaloAltoNetworksXDR.Incident filters: - - operator: in left: value: simple: PaloAltoNetworksXDR.Incident.file_artifacts.file_sha256 iscontext: true right: value: simple: File(val.Malicious).SHA256 iscontext: true - operator: isEqualString left: value: simple: PaloAltoNetworksXDR.Incident.file_artifacts.file_wildfire_verdict iscontext: true right: value: simple: Malicious ignorecase: true accessor: alerts.action_pretty iscontext: true right: value: simple: Block ignorecase: true - operator: isEqualString left: value: complex: root: PaloAltoNetworksXDR.Incident filters: - - operator: in left: value: simple: PaloAltoNetworksXDR.Incident.file_artifacts.file_sha256 iscontext: true right: value: simple: File(val.Malicious).SHA256 iscontext: true - operator: isEqualString left: value: simple: PaloAltoNetworksXDR.Incident.file_artifacts.file_wildfire_verdict iscontext: true right: value: simple: Malicious accessor: alerts.action_pretty iscontext: true right: value: simple: Prevent view: |- { "position": { "x": 860, "y": 1480 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '33': id: '33' taskid: 6b6a0592-9a71-4320-88cd-1e0333428a02 type: title task: id: 6b6a0592-9a71-4320-88cd-1e0333428a02 version: -1 name: Manual Review if needed to proceed with the investigation type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '54' separatecontext: false view: |- { "position": { "x": 460, "y": 1825 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '36': id: '36' taskid: 9a189ad4-b9e7-4916-8fa8-c1487c4a43a2 type: regular task: id: 9a189ad4-b9e7-4916-8fa8-c1487c4a43a2 version: -1 name: Parse Finding from the sandboxes description: Retrieves information from previously run reputation commands and aggregates their results. scriptName: InvestigationSummaryParse type: regular iscommand: false brand: '' nexttasks: '#none#': - '116' separatecontext: false view: |- { "position": { "x": 1810, "y": 2400 } } note: false timertriggers: [] ignoreworker: false fieldMapping: - incidentfield: Malware Investigation Summary output: simple: ${InvestigationSummary} skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '37': id: '37' taskid: ebe6bf9b-5500-4c06-832e-8c146bae8cf9 type: condition task: id: ebe6bf9b-5500-4c06-832e-8c146bae8cf9 version: -1 name: Is file retrieval allowed? description: Is file retrieval allowed? type: condition iscommand: false brand: '' nexttasks: '#default#': - '40' yes: - '119' separatecontext: false conditions: - label: yes condition: - - operator: isEqualString left: value: simple: inputs.RetrieveFile iscontext: true right: value: simple: 'true' ignorecase: true - - operator: isEqualString left: value: complex: root: Endpoint filters: - - operator: isEqualString left: value: simple: Endpoint.ID iscontext: true right: value: simple: incident.deviceid iscontext: true accessor: Status iscontext: true right: value: simple: Online ignorecase: true view: |- { "position": { "x": 1300, "y": 1550 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '38': id: '38' taskid: 3f0c7cc9-00f3-4f6d-883d-347f7e0e2be6 type: condition task: id: 3f0c7cc9-00f3-4f6d-883d-347f7e0e2be6 version: -1 name: Were there any hashes without a verdict? description: Were there any hashes without a verdict? type: condition iscommand: false brand: '' nexttasks: '#default#': - '41' yes: - '42' separatecontext: false conditions: - label: yes condition: - - operator: isNotEmpty left: value: simple: NonFoundHashes iscontext: true ignorecase: true view: |- { "position": { "x": 1540, "y": 1250 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '40': id: '40' taskid: a7197a59-6a60-4644-803e-6a6687db6abb type: title task: id: a7197a59-6a60-4644-803e-6a6687db6abb version: -1 name: Parse Findings type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '36' separatecontext: false view: |- { "position": { "x": 1810, "y": 2270 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '41': id: '41' taskid: 6bb09f04-51b8-4f12-8a9c-c4a05e8130dc type: title task: id: 6bb09f04-51b8-4f12-8a9c-c4a05e8130dc version: -1 name: Known File type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '40' separatecontext: false view: |- { "position": { "x": 1810, "y": 1430 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '42': id: '42' taskid: 1857bdf6-77eb-4860-8fdb-a67bdeb01a1b type: title task: id: 1857bdf6-77eb-4860-8fdb-a67bdeb01a1b version: -1 name: Unknown File type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '37' separatecontext: false view: |- { "position": { "x": 1300, "y": 1430 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '45': id: '45' taskid: 004ff38e-e841-4e64-8d1f-66a778fa2725 type: playbook task: id: 004ff38e-e841-4e64-8d1f-66a778fa2725 version: -1 name: Detonate and Analyze File - Generic type: playbook iscommand: false brand: '' description: 'This playbook uploads, detonates, and analyzes files for supported sandboxes. Currently supported sandboxes are Falcon Intelligence Sandbox and Wildfire. ' playbookName: Detonate and Analyze File - Generic nexttasks: '#none#': - '40' scriptarguments: File: complex: root: File filters: - - operator: isNotEmpty left: value: simple: File.EntryID iscontext: true - - operator: in left: value: simple: File.SHA256 iscontext: true right: value: simple: NonFoundHashes iscontext: true - - operator: greaterThan left: value: simple: File.Size iscontext: true right: value: simple: '0' transformers: - operator: uniq separatecontext: true loop: iscommand: false scriptArguments: File: complex: root: File filters: - - operator: notContainsString left: value: simple: File.Extension iscontext: true right: value: simple: gz ignorecase: true - - operator: notContainsString left: value: simple: File.Name iscontext: true right: value: simple: Investigation_package_incident ignorecase: true exitCondition: '' wait: 1 max: 0 view: |- { "position": { "x": 1300, "y": 2100 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '47': id: '47' taskid: 8463ca61-fb65-4f02-832b-f55602e57e3b type: condition task: id: 8463ca61-fb65-4f02-832b-f55602e57e3b version: -1 name: Is Detonate Allowed? description: Is Detonate Allowed? type: condition iscommand: false brand: '' nexttasks: '#default#': - '40' yes: - '45' separatecontext: false conditions: - label: yes condition: - - operator: isEqualString left: value: simple: inputs.DetonateFile iscontext: true right: value: simple: 'true' ignorecase: true - - operator: isNotEmpty left: value: simple: File.EntryID iscontext: true view: |- { "position": { "x": 1300, "y": 1940 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '54': id: '54' taskid: 461d7bd4-6605-4f15-8134-4d1bbeb5d06b type: title task: id: 461d7bd4-6605-4f15-8134-4d1bbeb5d06b version: -1 name: Conclusion type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '97' separatecontext: false view: |- { "position": { "x": 460, "y": 2730 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '60': id: '60' taskid: aefe387a-028e-4db2-86bb-de9caa8295f6 type: title task: id: aefe387a-028e-4db2-86bb-de9caa8295f6 version: -1 name: Done type: title iscommand: false brand: '' description: '' separatecontext: false view: |- { "position": { "x": 460, "y": 3590 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '62': id: '62' taskid: 3def6c4e-c62a-4a42-8f55-77d1e64b25f4 type: collection task: id: 3def6c4e-c62a-4a42-8f55-77d1e64b25f4 version: -1 name: False / True Positive description: False / True Positive type: collection iscommand: false brand: '' nexttasks: '#none#': - '104' separatecontext: false view: |- { "position": { "x": -190, "y": 3060 } } note: false timertriggers: [] ignoreworker: false message: to: simple: Administrator,Analyst subject: simple: Is this incident FP body: methods: [] format: '' bcc: cc: simple: Administrator,Analyst timings: retriescount: 2 retriesinterval: 360 completeafterreplies: 1 completeafterv2: true completeaftersla: false replyOptions: - True Positive - False Positive form: questions: - id: '0' label: '' labelarg: simple: 'Incident Classification ' required: true gridcolumns: [] defaultrows: [] type: singleSelect options: [] optionsarg: - simple: Manual - simple: True Positive - simple: False Positive fieldassociated: '' placeholder: '' tooltip: '' readonly: false - id: '1' label: '' labelarg: simple: Comment required: true gridcolumns: [] defaultrows: [] type: shortText options: [] optionsarg: [] fieldassociated: '' placeholder: '' tooltip: Please enter information readonly: false title: Incident Classification description: '' sender: '' expired: false totalanswers: 0 skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '78': id: '78' taskid: 325e5a00-138c-49b3-862d-6906c586b023 type: title task: id: 325e5a00-138c-49b3-862d-6906c586b023 version: -1 name: Dedup description: Set multiple keys/values to the context. type: title iscommand: false brand: '' nexttasks: '#none#': - '6' separatecontext: false view: |- { "position": { "x": 460, "y": 190 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '80': id: '80' taskid: 1e7ce1b3-83d5-4a9c-8ff0-9c954cb0aded type: regular task: id: 1e7ce1b3-83d5-4a9c-8ff0-9c954cb0aded version: -1 name: Raise the incident severity description: commands.local.cmd.set.incident script: Builtin|||setIncident type: regular iscommand: true brand: Builtin nexttasks: '#none#': - '54' scriptarguments: appendTags: simple: 'true' severity: simple: High tags: simple: Containment Occured separatecontext: false view: |- { "position": { "x": 860, "y": 1810 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '86': id: '86' taskid: 1ea18ff7-595c-47f4-8402-535a964ba263 type: condition task: id: 1ea18ff7-595c-47f4-8402-535a964ba263 version: -1 name: Check if the device is not isolated? description: Check if the device is not isolated? type: condition iscommand: false brand: '' nexttasks: '#default#': - '33' yes: - '26' - '27' - '91' - '112' separatecontext: false conditions: - label: yes condition: - - operator: isNotEqualString left: value: simple: Endpoint.Status iscontext: true right: value: simple: Isolated ignorecase: true view: |- { "position": { "x": 460, "y": 810 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '91': id: '91' taskid: 6fa7ab5e-594e-49b5-8644-f3dbc51a9395 type: title task: id: 6fa7ab5e-594e-49b5-8644-f3dbc51a9395 version: -1 name: Command Line Analysis type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '95' separatecontext: false view: |- { "position": { "x": -20, "y": 980 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '92': id: '92' taskid: d8afccc1-4ec3-466b-853c-c67a5e4f9612 type: playbook task: id: d8afccc1-4ec3-466b-853c-c67a5e4f9612 version: -1 name: Command-Line Analysis description: "This playbook takes the command line from the alert and performs the following actions:\n - Checks for base64 string and decodes if exists\n - Extracts and enriches indicators from the command line\n - Checks specific arguments for malicious usage \n\n At the end of the playbook, it sets a possible verdict for the command line, based on the finding:\n 1. Indicators found in the command line\n 2. Found AMSI techniques\n 3. Found suspicious parameters\n 4. Usage of malicious tools\n 5. Indication of network activity" playbookName: Command-Line Analysis type: playbook iscommand: false brand: '' nexttasks: '#none#': - '93' scriptarguments: Commandline: complex: root: incident accessor: cmdline filters: - - operator: isNotEmpty left: value: simple: incident.cmdline iscontext: true transformers: - operator: append args: item: value: simple: incident.parentcmdline iscontext: true - operator: append args: item: value: simple: incident.processcmd iscontext: true - operator: uniq separatecontext: true loop: iscommand: false exitCondition: "" wait: 1 max: 100 forEach: true view: |- { "position": { "x": -20, "y": 1290 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '93': id: '93' taskid: 708210df-2505-465d-8766-91069eb2d3ce type: condition task: id: 708210df-2505-465d-8766-91069eb2d3ce version: -1 name: Found any suspicious components? description: Found any suspicious components? type: condition iscommand: false brand: '' nexttasks: '#default#': - '33' yes: - '94' separatecontext: false conditions: - label: yes condition: - - operator: isNotEmpty left: value: simple: CommandlineVerdict iscontext: true view: |- { "position": { "x": -20, "y": 1445 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '94': id: '94' taskid: 19fc3f8e-7fb5-4d74-8203-bf7e17c34744 type: regular task: id: 19fc3f8e-7fb5-4d74-8203-bf7e17c34744 version: -1 name: Set Tag `Suspicious Command-line` description: commands.local.cmd.set.incident script: Builtin|||setIncident type: regular iscommand: true brand: Builtin nexttasks: '#none#': - '33' scriptarguments: appendTags: simple: 'true' tags: complex: root: CommandlineVerdict transformers: - operator: Stringify - operator: RegexExtractAll args: error_if_no_match: {} ignore_case: {} multi_line: {} period_matches_newline: {} regex: value: simple: '"(\w*)":' unpack_matches: {} separatecontext: false view: |- { "position": { "x": -20, "y": 1635 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '95': id: '95' taskid: 402f5499-a2d2-4014-8500-99241941201c type: condition task: id: 402f5499-a2d2-4014-8500-99241941201c version: -1 name: Is there a CMD line parameter? description: Is there a CMD line parameter? type: condition iscommand: false brand: '' nexttasks: '#default#': - '33' yes: - '92' separatecontext: false conditions: - label: yes condition: - - operator: isNotEmpty left: value: complex: root: incident accessor: cmdline transformers: - operator: append args: item: value: simple: incident.parentcmdline iscontext: true - operator: append args: item: value: simple: incident.processcmd iscontext: true iscontext: true right: value: {} view: |- { "position": { "x": -20, "y": 1130 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '96': id: '96' taskid: 09f3defb-3f5d-4a66-8ae5-25d94975adfc type: playbook task: id: 09f3defb-3f5d-4a66-8ae5-25d94975adfc version: -1 name: Cortex XDR Malware - Incident Enrichment type: playbook iscommand: false brand: '' playbookName: Cortex XDR Malware - Incident Enrichment description: '' nexttasks: '#none#': - '78' separatecontext: true loop: iscommand: false exitCondition: '' wait: 1 max: 100 view: |- { "position": { "x": 460, "y": 20 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '97': id: '97' taskid: 60cf2173-58df-4c32-8564-7a61e231ed1a type: condition task: id: 60cf2173-58df-4c32-8564-7a61e231ed1a version: -1 name: Proceed To Closure Steps? description: Proceed To Closure Steps? type: condition iscommand: false brand: '' nexttasks: '#default#': - "120" yes: - '62' separatecontext: false conditions: - label: yes condition: - - operator: isEqualString left: value: simple: inputs.EnableClosureSteps iscontext: true right: value: simple: 'True' ignorecase: true view: |- { "position": { "x": 460, "y": 2890 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '98': id: '98' taskid: 75305d32-d17a-4a42-8505-01569173aee4 type: playbook task: id: 75305d32-d17a-4a42-8505-01569173aee4 version: -1 name: Dedup - Generic v4 description: "This playbook identifies duplicate incidents using the Cortex XSOAR machine learning method (script).\nIn this playbook, you can choose fields and/or indicators to be compared against other incidents in the Cortex XSOAR database. \n\nNote: To identify similar incidents you must *must* properly define the playbook inputs. " playbookName: Dedup - Generic v4 type: playbook iscommand: false brand: '' nexttasks: '#none#': - '8' scriptarguments: CloseSimilar: simple: ${inputs.DedupCloseSimilar} closeReason: simple: Closed by Dedup Playbook within inc ${incident.id} fromDate: simple: 1 months ago handleSimilar: simple: ${inputs.DedupHandleSimilar} limit: simple: ${inputs.DedupLimit} method: simple: Fields and Indicators minimunIncidentSimilarity: simple: ${inputs.DedupMinimunIncidentSimilarity} query: simple: -status:closed -category:job showIncidentSimilarityForAllFields: simple: 'True' similarTextField: simple: ${inputs.DedupSimilarTextField} separatecontext: true loop: iscommand: false exitCondition: '' wait: 1 max: 0 view: |- { "position": { "x": 740, "y": 490 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '103': id: '103' taskid: 5ca9c726-22ff-4ca2-853c-1c19b318d90d type: playbook task: id: 5ca9c726-22ff-4ca2-853c-1c19b318d90d version: -1 name: Search For Hash In Sandbox - Generic type: playbook iscommand: false brand: '' playbookName: Search For Hash In Sandbox - Generic description: '' nexttasks: '#none#': - '38' scriptarguments: FileSha256: simple: ${incident.filesha256} separatecontext: true loop: iscommand: false exitCondition: '' wait: 1 max: 100 view: |- { "position": { "x": 1540, "y": 1090 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '104': id: '104' taskid: fcf92b73-092e-49ef-8a19-67515c672c76 type: condition task: id: fcf92b73-092e-49ef-8a19-67515c672c76 version: -1 name: Check Classification description: Check Classification type: condition iscommand: false brand: '' nexttasks: '#default#': - '105' False Positive: - '107' True Positive: - '106' separatecontext: false conditions: - label: False Positive condition: - - operator: containsString left: value: simple: Incident Classification.Answers.0 iscontext: true right: value: simple: 'False' ignorecase: true - label: True Positive condition: - - operator: containsString left: value: simple: Incident Classification.Answers.0 iscontext: true right: value: simple: 'true' ignorecase: true view: |- { "position": { "x": -190, "y": 3220 } } note: false timertriggers: - fieldname: triagesla action: stop ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '105': id: '105' taskid: 719bc986-7121-480d-8354-22c0aaa60ae7 type: regular task: id: 719bc986-7121-480d-8354-22c0aaa60ae7 version: -1 name: Manual Handling description: Manual handling of this incident per your procedures. type: regular iscommand: false brand: '' nexttasks: '#none#': - '60' separatecontext: false view: |- { "position": { "x": -190, "y": 3410 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '106': id: '106' taskid: e8cd6314-274d-4efa-834e-751382c736f5 type: playbook task: id: e8cd6314-274d-4efa-834e-751382c736f5 version: -1 name: Cortex XDR - True Positive Incident Handling type: playbook iscommand: false brand: '' playbookName: Cortex XDR - True Positive Incident Handling description: '' nexttasks: '#none#': - '60' scriptarguments: AutoIsolation: simple: ${inputs.AutoIsolation} BlockTag: simple: ${inputs.MaliciousTagName} Classification: simple: ${Incident Classification.Answers.0} Comment: simple: ${Incident Classification.Answers.1} TicketProjectName: simple: ${inputs.TicketProjectName} TicketingSystemToUse: simple: ${inputs.TicketingSystemToUse} separatecontext: true loop: iscommand: false exitCondition: '' wait: 1 max: 100 view: |- { "position": { "x": -590, "y": 3410 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '107': id: '107' taskid: 432bd605-be60-4134-8876-13ff94e87f99 type: playbook task: id: 432bd605-be60-4134-8876-13ff94e87f99 version: -1 name: Cortex XDR - False Positive Incident Handling type: playbook iscommand: false brand: '' playbookName: Cortex XDR - False Positive Incident Handling description: '' nexttasks: '#none#': - '60' scriptarguments: AllowTag: simple: ${inputs.BenignTagName} AutoUnisolation: simple: ${inputs.AutoUnisolation} Comment: simple: '${Incident Classification.Answers.1}' FileSha256: simple: ${incident.filesha256} HostID: simple: ${incident.deviceid} Reason: simple: ${Incident Classification.Answers.0} separatecontext: true loop: iscommand: false exitCondition: '' wait: 1 max: 100 view: |- { "position": { "x": 220, "y": 3410 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '112': id: '112' taskid: 0fdf6a06-dba0-4896-8da8-24b713cd7fc4 type: title task: id: 0fdf6a06-dba0-4896-8da8-24b713cd7fc4 version: -1 name: Advanced Hunting type: title iscommand: false brand: '' description: '' nexttasks: '#none#': - '115' - '118' separatecontext: false view: |- { "position": { "x": -680, "y": 980 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '113': id: '113' taskid: 345f6a91-872c-409c-8dae-93d43f0ac554 type: playbook task: id: 345f6a91-872c-409c-8dae-93d43f0ac554 version: -1 name: Cortex XDR - Endpoint Investigation description: "This playbook handles all the endpoint investigation actions available with Cortex XSIAM, including the following tasks:\n * Pre-defined MITRE Tactics\n * Host fields (host ID)\n * Attacker fields (attacker IP, external host)\n * MITRE techniques\n * File hash (currently, the playbook supports only SHA256) \n\n Note: The playbook inputs enable manipulating the execution flow; read the input descriptions for details." type: playbook iscommand: false brand: '' playbookName: Cortex XDR - Endpoint Investigation nexttasks: '#none#': - '33' scriptarguments: FileSHA256: complex: root: incident accessor: filesha256 transformers: - operator: uniq HuntCnCTechniques: simple: 'True' HuntCollectionTechniques: simple: 'True' HuntDefenseEvasionTechniques: simple: 'True' HuntDiscoveryTechniques: simple: 'True' HuntExecutionTechniques: simple: 'True' HuntImpactTechniques: simple: 'True' HuntInitialAccessTechniques: simple: 'True' HuntLateralMovementTechniques: simple: 'True' HuntPersistenceTechniques: simple: 'True' HuntPrivilegeEscalationTechniques: simple: 'True' HuntReconnaissanceTechniques: simple: 'True' RunAll: simple: ${inputs.RunAllHuntMitreTactics} agentID: complex: root: incident accessor: deviceid transformers: - operator: uniq timeRange: simple: 2 hours ago separatecontext: true loop: iscommand: false exitCondition: '' wait: 1 max: 100 view: |- { "position": { "x": -1140, "y": 1310 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '115': id: '115' taskid: 9083ef53-4d2d-4436-8267-bde8dd489537 type: condition task: id: 9083ef53-4d2d-4436-8267-bde8dd489537 version: -1 name: Should run Advanced Hunting? description: Should run Advanced Hunting? type: condition iscommand: false brand: '' nexttasks: '#default#': - '33' yes: - '113' separatecontext: false conditions: - label: yes condition: - - operator: isEqualString left: value: simple: inputs.AdvancedHunting iscontext: true right: value: simple: 'true' ignorecase: true view: |- { "position": { "x": -890, "y": 1130 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '116': id: '116' taskid: 49983f56-a646-4ac9-8cae-8efcfc60357f type: regular task: id: 49983f56-a646-4ac9-8cae-8efcfc60357f version: -1 name: Parse Findings From the Sandbox description: Parses attacks from context, and shows them according to the MITRE technique they use. scriptName: InvestigationDetailedSummaryParse type: regular iscommand: false brand: '' nexttasks: '#none#': - '54' separatecontext: false view: |- { "position": { "x": 1810, "y": 2560 } } note: false timertriggers: [] ignoreworker: false fieldMapping: - incidentfield: Malware Detailed Investigation Summary output: simple: ${InvestigationDetailedSummary} skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '117': id: '117' taskid: 44bbda1c-f785-4912-894a-b99f0c60d0f5 type: regular task: id: 44bbda1c-f785-4912-894a-b99f0c60d0f5 version: -1 name: Get Device's Process List description: Initiates a new endpoint script execution action using a script from the script library and returns the results. type: regular iscommand: true brand: '' script: '|||xdr-script-run' nexttasks: '#none#': - '33' scriptarguments: endpoint_ids: simple: ${incident.deviceid} script_uid: simple: 956e8989f67ebcb2c71c4635311e47e4 retry-count: simple: "3" separatecontext: false view: |- { "position": { "x": -680, "y": 1310 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" continueonerror: true '118': id: '118' taskid: 1f35ed99-bfe2-4acc-8657-15e019a90911 type: condition task: id: 1f35ed99-bfe2-4acc-8657-15e019a90911 version: -1 name: Check if the device is online description: Check if the device is online. type: condition iscommand: false brand: '' nexttasks: '#default#': - '33' yes: - '117' separatecontext: false conditions: - label: yes condition: - - operator: isEqualString left: value: complex: root: Endpoint filters: - - operator: isEqualString left: value: simple: Endpoint.ID iscontext: true right: value: simple: incident.deviceid iscontext: true accessor: Status iscontext: true right: value: simple: Online ignorecase: true view: |- { "position": { "x": -470, "y": 1130 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" '119': id: '119' taskid: 88f83c35-be17-4995-8f7c-3795e568ef41 type: playbook task: id: 88f83c35-be17-4995-8f7c-3795e568ef41 version: -1 name: Cortex XDR - Retrieve File by sha256 description: |- This playbook is part of the 'Malware Investigation And Response' pack. For more information, refer to https://xsoar.pan.dev/docs/reference/packs/malware-investigation-and-response. This playbook is a sub-playbook for the Cortex XDR malware investigation flow. In this playbook, we retrieve multiple files from the investigated device (using the Device ID incident field), based on their SHA256 hash. playbookName: Cortex XDR - Retrieve File by sha256 type: playbook iscommand: false brand: '' nexttasks: '#none#': - '47' scriptarguments: Sha256: complex: root: NonFoundHashes transformers: - operator: uniq separatecontext: false loop: iscommand: false exitCondition: '' wait: 2 max: 100 forEach: true view: |- { "position": { "x": 1300, "y": 1775 } } note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false continueonerrortype: "" "120": id: "120" taskid: c7d205a3-68cf-476a-887c-6b63c9aaaa3e type: title task: id: c7d205a3-68cf-476a-887c-6b63c9aaaa3e version: -1 name: Stop Triage SLA timer type: title iscommand: false brand: "" description: '' nexttasks: '#none#': - "60" separatecontext: false continueonerrortype: "" view: |- { "position": { "x": 460, "y": 3220 } } note: false timertriggers: - fieldname: triagesla action: stop ignoreworker: false skipunavailable: false quietmode: 0 isoversize: false isautoswitchedtoquietmode: false view: |- { "linkLabelsPosition": { "31_33_#default#": 0.1, "32_33_yes": 0.68, "6_8_#default#": 0.5, "86_33_#default#": 0.11 }, "paper": { "dimensions": { "height": 3765, "width": 3330, "x": -1140, "y": -110 } } } inputs: - key: EnableDeduplication value: simple: 'False' required: false description: |- Whether the deduplication playbook will be used. playbookInputQuery: - key: AutoIsolation value: simple: 'False' required: false description: |- Whether endpoint isolation is allowed. playbookInputQuery: - key: RetrieveFile value: simple: 'True' required: false description: |- Whether file retrieval from the endpoint is allowed. playbookInputQuery: - key: TicketingSystemToUse value: {} required: false description: The name of the ticketing system to use, for example, Jira, or ServiceNow. (Used in case incident is classified as True Positive). playbookInputQuery: - key: TicketProjectName value: {} required: false description: The ticket project name. (Required for Jira). playbookInputQuery: - key: MaliciousTagName value: simple: MaliciousTagName required: false description: The tag to assign for indicators to block. playbookInputQuery: - key: EnableClosureSteps value: simple: 'True' required: false description: |- Whether the incident will be closed with closure steps or automatically. playbookInputQuery: - key: DedupSimilarTextField value: simple: agnetsid,users,agentsid,CMDline,Hostnames,filenames,filepaths required: false description: A comma-separated list of incident text fields to take into account when computing similarity. For example commandline, URL. playbookInputQuery: - key: AutoUnisolation value: simple: 'False' required: false description: |- Whether automatic un-isolation is allowed. playbookInputQuery: - key: DedupLimit value: simple: '200' required: false description: |- The maximum number of incidents to query and set to context data. playbookInputQuery: - key: DedupHandleSimilar value: simple: Link required: false description: "Defines how to handle Similar incidents. \n Choose between: \"Link\", \"Close\", \"Link and Close\".\n Note: Closing incidents requires you to define the \"CloseSimilar\" input as well.\n Also, the incidents found by similar indicators or fields will be closed if their similarity score is above the CloseSimilar value. " playbookInputQuery: - key: DedupCloseSimilar value: simple: '0.9' required: false description: |- Defines the threshold of similarity to close a similar incident. All similar incidents with similarity above this value will be closed. For example, if CloseSimilar is set to .8 and an incident has a similarity score of .9, the incident will be closed. The value should be between 0 and 1 [0=low similarity , 1=identical]. playbookInputQuery: - key: DedupMinimunIncidentSimilarity value: simple: '0.2' required: false description: |- Retain incidents with a similarity score greater than the MinimunIncidentSimilarity. Value should be between 0 to 1 [0=low similarity, 1=identical] playbookInputQuery: - key: BenignTagName value: simple: BenignTagName required: false description: The name of the tag to apply for allowed indicators. playbookInputQuery: - key: AdvancedHunting value: simple: 'True' required: false description: |- 'Whether to run Advance Hunting queries through your Cortex XDR instance using the information on Alert Insights. Note: It may take some time.' playbookInputQuery: - key: RunAllHuntMitreTactics value: simple: 'True' required: false description: Whether to run the Advanced Hunting section for all Mitre Tactics. playbookInputQuery: - key: DetonateFile value: simple: 'True' required: false description: Whether file detonation is allowed on the sandbox. playbookInputQuery: outputs: - contextPath: PaloAltoNetworksXDR.ScriptResult.results description: Palo ALto Networks Script reuslts information. type: unknown tests: - No tests (auto formatted) fromversion: 6.5.0 contentitemexportablefields: contentitemfields: {} marketplaces: - xsoar