TIM - Process Indicators Against Approved Hash List

This playbook checks if file hash indicators exist in a Cortex XSOAR list. If the indicators exist in the list, they are tagged as approved_hash.

TIM - Indicator Auto-Processing · 10 tasks · 2 inputs · 2 outputs

Details

IDTIM - Process Indicators Against Approved Hash List
From Version5.5.0
Tasks10

README

This playbook checks if file hash indicators exist in a Cortex XSOAR list. If the indicators exist in the list, they are tagged as approved_hash.

Dependencies

This playbook uses the following sub-playbooks, integrations, and scripts.

Sub-playbooks

This playbook does not use any sub-playbooks.

Integrations

This playbook does not use any integrations.

Scripts

  • FilterByList
  • SetAndHandleEmpty

Commands

  • appendIndicatorField

Playbook Inputs


Name Description Default Value Required
ApprovedHashList A Cortex XSOAR list containing approved hash values. Hash indicators that appear in the list are tagged as approved.   Optional
Indicator Query Indicators matching the indicator query will be used as playbook input   Optional

Playbook Outputs


Path Description Type
HashesInApprovedList File hashes that are found in the approved_hash list. string
HashesNotInApprovedList File hashes that are not found in the approved_hash list. string

Playbook Image


Playbook Image

Inputs

  • ApprovedHashList — A Cortex XSOAR list containing approved hash values. Hash indicators that appear in the list are tagged as approved.

Outputs

  • HashesInApprovedList — File hashes that are found in the approved_hash list.
  • HashesNotInApprovedList — File hashes that are not found in the approved_hash list.

Commands used

appendIndicatorField

Flowchart

yes yes yes Start Start Done Done Are there file hash results? Are there file hash results? Add approved hash tag to indicators - appendIndicatorField Add approved hash tag to ... appendIndicatorField Is there an approved hash list? Is there an approved hash... Run filter by list check on indicators - FilterByList Run filter by list check ... FilterByList Set values in list - SetAndHandleEmpty Set values in list SetAndHandleEmpty Set values not in list - SetAndHandleEmpty Set values not in list SetAndHandleEmpty Do values appear in approved hash list? Do values appear in appro... Set values - SetAndHandleEmpty Set values SetAndHandleEmpty
id: TIM - Process Indicators Against Approved Hash List
version: -1
fromversion: 5.5.0
marketplaces:
- xsoar
name: TIM - Process Indicators Against Approved Hash List
description: This playbook checks if file hash indicators exist in
  a Cortex XSOAR list. If the indicators exist in the list, they are tagged as approved_hash.
starttaskid: "0"
tasks:
  "0":
    id: "0"
    taskid: 962f88cb-45fc-47df-8cd7-9ccfe47142ac
    type: start
    task:
      id: 962f88cb-45fc-47df-8cd7-9ccfe47142ac
      version: -1
      name: ""
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#none#':
      - "19"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 520,
          "y": -1260
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "3":
    id: "3"
    taskid: be3bc4a8-af76-4ac4-83c9-fd54cfb34458
    type: title
    task:
      id: be3bc4a8-af76-4ac4-83c9-fd54cfb34458
      version: -1
      name: Done
      type: title
      iscommand: false
      brand: ""
      description: ''
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 520,
          "y": -90
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "19":
    id: "19"
    taskid: 2116b073-baf6-4ebb-84ae-4d003e8bf0d7
    type: condition
    task:
      id: 2116b073-baf6-4ebb-84ae-4d003e8bf0d7
      version: -1
      name: Are there file hash results?
      description: ''
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "3"
      "yes":
      - "54"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isEqualString
          left:
            value:
              simple: playbookQuery.indicator_type
            iscontext: true
          right:
            value:
              simple: File
    view: |-
      {
        "position": {
          "x": 520,
          "y": -1120
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 2
  "53":
    id: "53"
    taskid: c53273da-63ee-4f5b-88a8-9116f0b8ff9d
    type: regular
    task:
      id: c53273da-63ee-4f5b-88a8-9116f0b8ff9d
      version: -1
      name: Add approved hash tag to indicators
      description: Adds the 'approved_hash' tag to the relevant indicators.
      script: Builtin|||appendIndicatorField
      type: regular
      iscommand: true
      brand: Builtin
    nexttasks:
      '#none#':
      - "3"
    scriptarguments:
      field:
        simple: tags
      fieldValue:
        simple: approved_hash
      indicatorsValues:
        simple: ${List.In}
      value:
        simple: ${List.In}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 50,
          "y": -260
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 2
  "54":
    id: "54"
    taskid: 307fe282-7367-4646-8660-fad6d2330e69
    type: condition
    task:
      id: 307fe282-7367-4646-8660-fad6d2330e69
      version: -1
      name: Is there an approved hash list?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "59"
      "yes":
      - "55"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isNotEmpty
          left:
            value:
              simple: inputs.ApprovedHashList
            iscontext: true
    view: |-
      {
        "position": {
          "x": 240,
          "y": -950
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 2
  "55":
    id: "55"
    taskid: 4722c563-d0ec-40a5-83ed-345ba6330fb5
    type: regular
    task:
      id: 4722c563-d0ec-40a5-83ed-345ba6330fb5
      version: -1
      name: Run filter by list check on indicators
      description: Checks whether the specified item is in a Cortex XSOAR list.
      scriptName: FilterByList
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "56"
      - "57"
    scriptarguments:
      ignorecase:
        simple: "yes"
      listname:
        simple: ${inputs.ApprovedHashList}
      matchexact:
        simple: "yes"
      values:
        simple: ${playbookQuery.value}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 20,
          "y": -780
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 2
  "56":
    id: "56"
    taskid: 17527acc-acec-4100-8f3b-f7e9f87ee0b8
    type: regular
    task:
      id: 17527acc-acec-4100-8f3b-f7e9f87ee0b8
      version: -1
      name: Set values in list
      description: Checks if the specified value exists in context. If the value exists,
        it is set in context, otherwise no value is set in context.
      scriptName: SetAndHandleEmpty
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "58"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: HashesInApprovedList
      stringify: {}
      value:
        simple: ${List.In}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": -380,
          "y": -610
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "57":
    id: "57"
    taskid: e9779871-2ec6-4534-85c3-5ddec84debb7
    type: regular
    task:
      id: e9779871-2ec6-4534-85c3-5ddec84debb7
      version: -1
      name: Set values not in list
      description: Checks if the specified value exists in context. If the value exists,
        it is set in context, otherwise no value is set in context.
      scriptName: SetAndHandleEmpty
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "58"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: HashesNotInApprovedList
      stringify: {}
      value:
        simple: ${List.NotIn}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 20,
          "y": -610
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "58":
    id: "58"
    taskid: dd7beddc-7ee6-4190-8ea5-c5b87cc7d57e
    type: condition
    task:
      id: dd7beddc-7ee6-4190-8ea5-c5b87cc7d57e
      version: -1
      name: Do values appear in approved hash list?
      type: condition
      iscommand: false
      brand: ""
      description: ''
    nexttasks:
      '#default#':
      - "3"
      "yes":
      - "53"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isNotEmpty
          left:
            value:
              simple: List.In
            iscontext: true
    view: |-
      {
        "position": {
          "x": 240,
          "y": -440
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
  "59":
    id: "59"
    taskid: 482d4cb4-6726-4bb4-890e-73690433567e
    type: regular
    task:
      id: 482d4cb4-6726-4bb4-890e-73690433567e
      version: -1
      name: Set values
      description: Checks if the specified value exists in context. If the value exists,
        it is set in context, otherwise no value is set in context.
      scriptName: SetAndHandleEmpty
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "3"
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: HashesNotInApprovedList
      stringify: {}
      value:
        complex:
          root: playbookQuery
          filters:
          - - operator: isEqualString
              left:
                value:
                  simple: playbookQuery.indicator_type
                iscontext: true
              right:
                value:
                  simple: File
          accessor: value
          transformers:
          - operator: uniq
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 820,
          "y": -780
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
view: |-
  {
    "linkLabelsPosition": {},
    "paper": {
      "dimensions": {
        "height": 1235,
        "width": 1580,
        "x": -380,
        "y": -1260
      }
    }
  }
inputs:
- key: ApprovedHashList
  value: {}
  required: false
  description: A Cortex XSOAR list containing approved hash values. Hash indicators that
    appear in the list are tagged as approved.
  playbookInputQuery: null
- key: ""
  value: {}
  required: false
  description: ""
  playbookInputQuery:
    query: ""
    queryEntity: indicators
    results: null
    daterange:
      fromdate: 0001-01-01T00:00:00Z
      todate: 0001-01-01T00:00:00Z
      period:
        by: ""
        byto: ""
        byfrom: ""
        tovalue: null
        fromvalue: null
        field: ""
      fromdatelicenseval: 0001-01-01T00:00:00Z
    runFromLastJobTime: false
outputs:
- contextPath: HashesInApprovedList
  description: File hashes that are found in the approved_hash list.
  type: string
- contextPath: HashesNotInApprovedList
  description: File hashes that are not found in the approved_hash list.
  type: string
quiet: true
tests:
- No test