FireEye Helix Archive Search

Create an archive search in FireEye Helix, and fetch the results as events.

FireEye Helix · 7 tasks · 10 inputs · 44 outputs

Details

IDFireEye Helix Archive Search
From Version5.0.0
Tasks7

README

Creates an archive search in FireEye Helix, and fetch the results as events.

Dependencies

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

Sub-playbooks

  • GenericPolling

Integrations

This playbook does not use any integrations.

Scripts

This playbook does not use any scripts.

Commands

  • fireeye-helix-archive-search
  • fireeye-helix-archive-search-get-results

Playbook Inputs


Name Description Default Value Required
Query The query to execute. This is the search clause in an MQL. - Required
Start The start time of the event in date format yyyy-mm-dd or yyyy-mm. - Optional
Offset The offset of the result. - Optional
Groupby The unique values for the specified field. This input groups them together based on the specified frequency. For example, groupby="srcipv4 5 100" will group the top 5 srcipv4 that have at least 100 occurences. Multiple values can be provided using a comma-separated list. - Optional
Sort_by Sorts the results by this field. The default is descending order. To change the default, the following command must be used: argument sort_order="asc". - Optional
Sort_order Controls the order of the results sorted by the sort_by argument. Can be, “ascending” or “descending”. - Optional
Limit The number of events for which to search. - Optional
Timeout The amount of time for which to poll before declaring a timeout and resuming the playbook (in minutes). 10 Required
Interval The frequency with which the polling command runs (in minutes). 1 Required
End The end time of the event, in date format yyyy-mm-dd or yyyy-mm. - Optional

Playbook Outputs


Path Description Type
FireEyeHelixSearch.Result.ID The event ID. string
FireEyeHelixSearch.Result.Type The event type. string
FireEyeHelixSearch.Result.Result The event result. string
FireEyeHelixSearch.Result.MatchedAt The time at which the the event was matched. date
FireEyeHelixSearch.Result.Confidence The confidence of the event. Can be, “low”, “medium” or “high”. string
FireEyeHelixSearch.Result.Status The status of the event. string
FireEyeHelixSearch.Result.EventTime The time at which the event took place. date
FireEyeHelixSearch.Result.DetectedRuleID The ID of the detected rule. string
FireEyeHelixSearch.Result.PID The process ID. string
FireEyeHelixSearch.Result.Process The process details. string
FireEyeHelixSearch.Result.ProcessPath The process path. string
FireEyeHelixSearch.Result.FileName The name of the file affected by the event. string
FireEyeHelixSearch.Result.FilePath The path of the file affected by the event. string
FireEyeHelixSearch.Result.DeviceName The device name. string
FireEyeHelixSearch.Result.Size The size of the file that created the event in bytes. string
FireEyeHelixSearch.Result.Virus The virus that was detected in the event. string
FireEyeHelixSearch.Result.MalwareType The malware type of the virus that was detected. string
FireEyeHelixSearch.Result.CreatedTime The time at which the event was created. date
FireEyeHelixSearch.Result.Class The event class. string
FireEyeHelixSearch.Result.MD5 The MD5 hash of the affected file. string
FireEyeHelixSearch.Result.SHA1 The SHA1 hash of the affected file. string
FireEyeHelixSearch.Result.Protocol The protocol used in the event. string
FireEyeHelixSearch.Result.SourceIPv4 The IPv4 address of the event source. string
FireEyeHelixSearch.Result.SourceIPv6 The IPv6 address of the event source. string
FireEyeHelixSearch.Result.SourcePort The port of the event source address. string
FireEyeHelixSearch.Result.SourceLongitude The longitude of the event source address. string
FireEyeHelixSearch.Result.SourceLatitude The latitude of the event source address. string
FireEyeHelixSearch.Result.DestinationIPv4 The IPv4 address of the event destination. string
FireEyeHelixSearch.Result.DestinationIPv6 The IPv6 address of the event destination. string
FireEyeHelixSearch.Result.DestinationPort The port of the event destination address. string
FireEyeHelixSearch.Result.ReportTime The time at which the event was reported. date
FireEyeHelixSearch.Result.FalsePositive Whether event is a false positive. string
FireEyeHelixSearch.Result.Domain The domain of the recepient. string
FireEyeHelixSearch.Result.From The source email address. string
FireEyeHelixSearch.Result.SourceDomain The domain of the host that created the event. string
FireEyeHelixSearch.Result.SourceISP The ISP of the source of the event. string
FireEyeHelixSearch.Result.DestinationISP The ISP of the destination of the event. string
FireEyeHelixSearch.Result.To The destination email address. string
FireEyeHelixSearch.Result.Attachment The email attachment. unknown
FireEyeHelixSearch.MQL The MQL query that created the result. string
FireEyeHelixSearch.GroupBy The group by values. unknown
FireEyeHelixSearch.GroupBy.DocCount The number of matches for the group. number
FireEyeHelixSearch.Result.RcpTo The “Recipient of” email address. string
FireEyeHelixSearch.Result.InReplyTo The “Reply to” email address. string

Playbook Image


FireEye_Helix_Archive_Search

Inputs

  • Query — Query to execute. This is the search clause in an MQL.
  • Start — Start time of the event in date format yyyy-mm-dd or yyyy-mm.
  • Offset — Offset of the result.
  • Groupby — Returns the unique values for the specified field and groups them together based on the specified frequency. For example, groupby="srcipv4 5 100" will group the top 5 srcipv4 that have at least 100 occurences. Multiple values can be provided using a comma separated list.
  • Sort_by — Sorts results by this field. Default is descending order; to change this add the following to the command: argument sort_order="asc"
  • Sort_order — Controls the order of the results sorted by the sort_by argument, ascending or descending.
  • Limit — Number of events for which to search.
  • Timeout — Amount of time for which to poll before declaring a timeout and resuming the playbook (in minutes).
  • Interval — Frequency with which the polling command runs (minutes).
  • End — End time of the event, in date format yyyy-mm-dd or yyyy-mm.

Outputs

  • FireEyeHelixSearch.Result.ID — Event ID.
  • FireEyeHelixSearch.Result.Type — Event type.
  • FireEyeHelixSearch.Result.Result — Event result.
  • FireEyeHelixSearch.Result.MatchedAt — Time at which the the event was matched.
  • FireEyeHelixSearch.Result.Confidence — Confidence of the event. Can be either low, medium or high.
  • FireEyeHelixSearch.Result.Status — Status of the event.
  • FireEyeHelixSearch.Result.EventTime — Time at which the event took place.
  • FireEyeHelixSearch.Result.DetectedRuleID — ID of the detected rule.
  • FireEyeHelixSearch.Result.PID — Process ID.
  • FireEyeHelixSearch.Result.Process — Process details.
  • FireEyeHelixSearch.Result.ProcessPath — Process path.
  • FireEyeHelixSearch.Result.FileName — Name of the file affected by the event.
  • FireEyeHelixSearch.Result.FilePath — Path of the file affected by the event.
  • FireEyeHelixSearch.Result.DeviceName — Device name.
  • FireEyeHelixSearch.Result.Size — Size of the file that created the event in bytes.
  • FireEyeHelixSearch.Result.Virus — Virus that was detected in the event.
  • FireEyeHelixSearch.Result.MalwareType — Malware type of the virus that was detected.
  • FireEyeHelixSearch.Result.CreatedTime — Time at which the event was created.
  • FireEyeHelixSearch.Result.Class — Event class.
  • FireEyeHelixSearch.Result.MD5 — MD5 hash of the affected file.
  • FireEyeHelixSearch.Result.SHA1 — SHA1 hash of the affected file.
  • FireEyeHelixSearch.Result.Protocol — Protocol used in the event.
  • FireEyeHelixSearch.Result.SourceIPv4 — IPv4 address of the event source.
  • FireEyeHelixSearch.Result.SourceIPv6 — IPv6 address of the event source.
  • FireEyeHelixSearch.Result.SourcePort — Port of the event source address.
  • FireEyeHelixSearch.Result.SourceLongitude — Longitude of the event source address.
  • FireEyeHelixSearch.Result.SourceLatitude — Latitude of the event source address.
  • FireEyeHelixSearch.Result.DestinationIPv4 — IPv4 address of the event destination.
  • FireEyeHelixSearch.Result.DestinationIPv6 — IPv6 address of the event destination.
  • FireEyeHelixSearch.Result.DestinationPort — Port of the event destination address.
  • FireEyeHelixSearch.Result.ReportTime — Time at which the event was reported.
  • FireEyeHelixSearch.Result.FalsePositive — Boolean flag - is the event a false positive.
  • FireEyeHelixSearch.Result.Domain — Domain of the recepient.
  • FireEyeHelixSearch.Result.From — Source email address.
  • FireEyeHelixSearch.Result.SourceDomain — Domain of the host that created the event.
  • FireEyeHelixSearch.Result.SourceISP — ISP of the source of the event.
  • FireEyeHelixSearch.Result.DestinationISP — ISP of the destination of the event.
  • FireEyeHelixSearch.Result.To — Destination email address.
  • FireEyeHelixSearch.Result.Attachment — Email attachment.
  • FireEyeHelixSearch.MQL — MQL query that created the result.
  • FireEyeHelixSearch.GroupBy — Group by values.
  • FireEyeHelixSearch.GroupBy.DocCount — Number of matches for the group.
  • FireEyeHelixSearch.Result.RcpTo — \'Recipient of\' email address.
  • FireEyeHelixSearch.Result.InReplyTo — \'Reply to\' email address.

Commands used

fireeye-helix-archive-search fireeye-helix-archive-search-get-results

Flowchart

yes yes Start Start Archive Search - fireeye-helix-archive-search Archive Search fireeye-helix-archive-search Check search status Check search status Get search results - fireeye-helix-archive-search-get-results Get search results fireeye-helix-archive-search-... GenericPolling - GenericPolling GenericPolling GenericPolling Completed searches? Completed searches? Search could not run Search could not run
id: FireEye Helix Archive Search
version: -1
name: FireEye Helix Archive Search
fromversion: 5.0.0
description: Create an archive search in FireEye Helix, and fetch the results as events.
starttaskid: "0"
tasks:
  "0":
    id: "0"
    taskid: 143400cc-bc76-4d6e-8a38-f46da34b74d5
    type: start
    task:
      id: 143400cc-bc76-4d6e-8a38-f46da34b74d5
      version: -1
      name: ""
      description: Start.
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "1"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 377.5,
          "y": 50
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "1":
    id: "1"
    taskid: edc7890e-7604-42cc-89c8-15e0b513c9ad
    type: regular
    task:
      id: edc7890e-7604-42cc-89c8-15e0b513c9ad
      version: -1
      name: Archive Search
      description: Initiates a new archive search.
      script: '|||fireeye-helix-archive-search'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "6"
    scriptarguments:
      end:
        complex:
          root: inputs.End
      groupby:
        complex:
          root: inputs.Groupby
      limit:
        complex:
          root: inputs.Limit
      offset:
        complex:
          root: inputs.Offset
      query:
        complex:
          root: inputs.Query
      sort_by:
        complex:
          root: inputs.Sort_by
      sort_order:
        complex:
          root: inputs.Sort_order
      start:
        complex:
          root: inputs.Start
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 377.5,
          "y": 195
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "2":
    id: "2"
    taskid: 473a8564-2302-4afc-80cd-405e56e53991
    type: condition
    task:
      id: 473a8564-2302-4afc-80cd-405e56e53991
      version: -1
      name: Check search status
      description: Verify if there are searches that haven't yet completed.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "4"
      "yes":
      - "5"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: lessThan
          left:
            value:
              complex:
                root: FireEyeHelixSearch
                filters:
                - - operator: isNotEqualString
                    left:
                      value:
                        simple: FireEyeHelixSearch.State
                      iscontext: true
                    right:
                      value:
                        simple: cancelled
                accessor: PercentComplete
                transformers:
                - operator: floor
            iscontext: true
          right:
            value:
              complex:
                root: "100"
            iscontext: true
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 545
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "4":
    id: "4"
    taskid: 45a4c9df-a4f0-4dfd-8876-adcd2ac79463
    type: regular
    task:
      id: 45a4c9df-a4f0-4dfd-8876-adcd2ac79463
      version: -1
      name: Get search results
      description: Fetches search results only for searches that were completed.
      script: '|||fireeye-helix-archive-search-get-results'
      type: regular
      iscommand: true
      brand: ""
    scriptarguments:
      search_id:
        complex:
          root: FireEyeHelixSearch
          filters:
          - - operator: isNotEqualNumber
              left:
                value:
                  simple: FireEyeHelixSearch.PercentComplete
                iscontext: true
              right:
                value:
                  simple: "100"
          accessor: ID
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 895
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "5":
    id: "5"
    taskid: ddf16391-704b-41e4-886e-a188df0096f8
    type: playbook
    task:
      id: ddf16391-704b-41e4-886e-a188df0096f8
      version: -1
      name: GenericPolling
      description: |-
        Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete.
        This playbook implements polling by continuously running the command in Step \#2 until the operation completes.
        The remote action should have the following structure:

        1. Initiate the operation.
        2. Poll to check if the operation completed.
        3. (optional) Get the results of the operation.
      playbookName: GenericPolling
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "4"
    scriptarguments:
      AdditionalPollingCommandArgNames: {}
      AdditionalPollingCommandArgValues: {}
      Ids:
        complex:
          root: FireEyeHelixSearch
          accessor: ID
      Interval:
        complex:
          root: inputs.Interval
      PollingCommandArgName:
        simple: search_id
      PollingCommandName:
        simple: fireeye-helix-archive-search-get-status
      Timeout:
        complex:
          root: inputs.Timeout
      dt:
        simple: FireEyeHelixSearch(val.PercentComplete < 100).ID
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 50,
          "y": 720
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "6":
    id: "6"
    taskid: 97da4134-2fbf-426e-86a8-d1dc791e56a9
    type: condition
    task:
      id: 97da4134-2fbf-426e-86a8-d1dc791e56a9
      version: -1
      name: Completed searches?
      description: Checks whether there are searches that weren't cancelled.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "7"
      "yes":
      - "2"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isNotEqualString
          left:
            value:
              complex:
                root: FireEyeHelixSearch
                accessor: State
            iscontext: true
          right:
            value:
              simple: cancelled
    view: |-
      {
        "position": {
          "x": 377.5,
          "y": 370
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "7":
    id: "7"
    taskid: f5a31249-1556-4fc6-82cd-4c8c6ebc7bb9
    type: title
    task:
      id: f5a31249-1556-4fc6-82cd-4c8c6ebc7bb9
      version: -1
      name: Search could not run
      description: FireEye Helix couldn't run the search
      type: title
      iscommand: false
      brand: ""
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 592.5,
          "y": 560
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
view: |-
  {
    "linkLabelsPosition": {},
    "paper": {
      "dimensions": {
        "height": 940,
        "width": 922.5,
        "x": 50,
        "y": 50
      }
    }
  }
inputs:
- key: Query
  value: {}
  required: true
  description: Query to execute. This is the search clause in an MQL.
- key: Start
  value: {}
  required: false
  description: Start time of the event in date format yyyy-mm-dd or yyyy-mm.
- key: Offset
  value: {}
  required: false
  description: Offset of the result.
- key: Groupby
  value: {}
  required: false
  description: Returns the unique values for the specified field and groups them together based on the specified frequency. For example, groupby="srcipv4 5 100" will group the top 5 srcipv4 that have at least 100 occurences. Multiple values can be provided using a comma separated list.
- key: Sort_by
  value: {}
  required: false
  description: 'Sorts results by this field. Default is descending order; to change this add the following to the command: argument sort_order="asc"'
- key: Sort_order
  value: {}
  required: false
  description: Controls the order of the results sorted by the sort_by argument, ascending or descending.
- key: Limit
  value: {}
  required: false
  description: Number of events for which to search.
- key: Timeout
  value:
    simple: "10"
  required: true
  description: Amount of time for which to poll before declaring a timeout and resuming the playbook (in minutes).
- key: Interval
  value:
    simple: "1"
  required: true
  description: Frequency with which the polling command runs (minutes).
- key: End
  value: {}
  required: false
  description: End time of the event, in date format yyyy-mm-dd or yyyy-mm.
outputs:
- contextPath: FireEyeHelixSearch.Result.ID
  description: Event ID.
  type: string
- contextPath: FireEyeHelixSearch.Result.Type
  description: Event type.
  type: string
- contextPath: FireEyeHelixSearch.Result.Result
  description: Event result.
  type: string
- contextPath: FireEyeHelixSearch.Result.MatchedAt
  description: Time at which the the event was matched.
  type: date
- contextPath: FireEyeHelixSearch.Result.Confidence
  description: Confidence of the event. Can be either low, medium or high.
  type: string
- contextPath: FireEyeHelixSearch.Result.Status
  description: Status of the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.EventTime
  description: Time at which the event took place.
  type: date
- contextPath: FireEyeHelixSearch.Result.DetectedRuleID
  description: ID of the detected rule.
  type: string
- contextPath: FireEyeHelixSearch.Result.PID
  description: Process ID.
  type: string
- contextPath: FireEyeHelixSearch.Result.Process
  description: Process details.
  type: string
- contextPath: FireEyeHelixSearch.Result.ProcessPath
  description: Process path.
  type: string
- contextPath: FireEyeHelixSearch.Result.FileName
  description: Name of the file affected by the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.FilePath
  description: Path of the file affected by the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.DeviceName
  description: Device name.
  type: string
- contextPath: FireEyeHelixSearch.Result.Size
  description: Size of the file that created the event in bytes.
  type: string
- contextPath: FireEyeHelixSearch.Result.Virus
  description: Virus that was detected in the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.MalwareType
  description: Malware type of the virus that was detected.
  type: string
- contextPath: FireEyeHelixSearch.Result.CreatedTime
  description: Time at which the event was created.
  type: date
- contextPath: FireEyeHelixSearch.Result.Class
  description: Event class.
  type: string
- contextPath: FireEyeHelixSearch.Result.MD5
  description: MD5 hash of the affected file.
  type: string
- contextPath: FireEyeHelixSearch.Result.SHA1
  description: SHA1 hash of the affected file.
  type: string
- contextPath: FireEyeHelixSearch.Result.Protocol
  description: Protocol used in the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourceIPv4
  description: IPv4 address of the event source.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourceIPv6
  description: IPv6 address of the event source.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourcePort
  description: Port of the event source address.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourceLongitude
  description: Longitude of the event source address.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourceLatitude
  description: Latitude of the event source address.
  type: string
- contextPath: FireEyeHelixSearch.Result.DestinationIPv4
  description: IPv4 address of the event destination.
  type: string
- contextPath: FireEyeHelixSearch.Result.DestinationIPv6
  description: IPv6 address of the event destination.
  type: string
- contextPath: FireEyeHelixSearch.Result.DestinationPort
  description: Port of the event destination address.
  type: string
- contextPath: FireEyeHelixSearch.Result.ReportTime
  description: Time at which the event was reported.
  type: date
- contextPath: FireEyeHelixSearch.Result.FalsePositive
  description: Boolean flag - is the event a false positive.
  type: string
- contextPath: FireEyeHelixSearch.Result.Domain
  description: Domain of the recepient.
  type: string
- contextPath: FireEyeHelixSearch.Result.From
  description: Source email address.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourceDomain
  description: Domain of the host that created the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.SourceISP
  description: ISP of the source of the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.DestinationISP
  description: ISP of the destination of the event.
  type: string
- contextPath: FireEyeHelixSearch.Result.To
  description: Destination email address.
  type: string
- contextPath: FireEyeHelixSearch.Result.Attachment
  description: Email attachment.
  type: unknown
- contextPath: FireEyeHelixSearch.MQL
  description: MQL query that created the result.
  type: string
- contextPath: FireEyeHelixSearch.GroupBy
  description: Group by values.
  type: unknown
- contextPath: FireEyeHelixSearch.GroupBy.DocCount
  description: Number of matches for the group.
  type: number
- contextPath: FireEyeHelixSearch.Result.RcpTo
  description: \'Recipient of\' email address.
  type: string
- contextPath: FireEyeHelixSearch.Result.InReplyTo
  description: \'Reply to\' email address.
  type: string
tests:
- No test - No instance