Tanium · Arazzo Workflow

Tanium Threat Response Live Connection And Snapshot

Version 1.0.0

Open a live connection to an endpoint, poll until connected, then capture a snapshot for offline analysis.

1 workflow 1 source API 1 provider
View Spec View on GitHub ComplianceEndpoint ManagementPatch ManagementSecurityThreat DetectionUnified Endpoint ManagementArazzoWorkflows

Provider

tanium

Workflows

live-connection-snapshot
Connect to an endpoint, poll until connected, and capture a snapshot.
Initiates a live connection to an endpoint, polls until the connection is established, and captures a Recorder snapshot from the connected endpoint.
3 steps inputs: clientId, hostname, ip, platform, sessionToken outputs: connectionId, snapshotTaskId
1
openConnection
createConnection
Initiate a live connection to the target endpoint for investigation.
2
pollConnection
getConnection
Poll the connection by id until its status reports that the endpoint is connected and ready for snapshot capture.
3
captureSnapshot
createSnapshot
Initiate a point-in-time Recorder snapshot from the connected endpoint for offline analysis.

Source API Descriptions

Arazzo Workflow Specification

tanium-live-connection-snapshot-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Tanium Threat Response Live Connection And Snapshot
  summary: Open a live connection to an endpoint, poll until connected, then capture a snapshot for offline analysis.
  description: >-
    The Threat Response investigation pattern. The workflow opens a live
    connection to a specified endpoint, polls the connection by id until the
    Recorder reports it is connected, and then initiates a point-in-time
    snapshot of the endpoint's Recorder data for offline analysis. Every step
    spells out its request inline, including the session header used for token
    authentication, so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: threatResponseApi
  url: ../openapi/tanium-threat-response-api-openapi.yml
  type: openapi
workflows:
- workflowId: live-connection-snapshot
  summary: Connect to an endpoint, poll until connected, and capture a snapshot.
  description: >-
    Initiates a live connection to an endpoint, polls until the connection is
    established, and captures a Recorder snapshot from the connected endpoint.
  inputs:
    type: object
    required:
    - sessionToken
    - clientId
    - ip
    - platform
    - hostname
    properties:
      sessionToken:
        type: string
        description: API token or session token passed in the session header.
      clientId:
        type: string
        description: Tanium client identifier of the target endpoint.
      ip:
        type: string
        description: IP address of the target endpoint.
      platform:
        type: string
        description: Operating system platform of the target endpoint.
      hostname:
        type: string
        description: Hostname of the target endpoint.
  steps:
  - stepId: openConnection
    description: >-
      Initiate a live connection to the target endpoint for investigation.
    operationId: createConnection
    parameters:
    - name: session
      in: header
      value: $inputs.sessionToken
    requestBody:
      contentType: application/json
      payload:
        client_id: $inputs.clientId
        ip: $inputs.ip
        platform: $inputs.platform
        hostname: $inputs.hostname
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      connectionId: $response.body#/data/id
  - stepId: pollConnection
    description: >-
      Poll the connection by id until its status reports that the endpoint is
      connected and ready for snapshot capture.
    operationId: getConnection
    parameters:
    - name: session
      in: header
      value: $inputs.sessionToken
    - name: connectionId
      in: path
      value: $steps.openConnection.outputs.connectionId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.data.status == "connected"
      type: jsonpath
    outputs:
      connectionStatus: $response.body#/data/status
    onSuccess:
    - name: connected
      type: goto
      stepId: captureSnapshot
      criteria:
      - context: $response.body
        condition: $.data.status == "connected"
        type: jsonpath
  - stepId: captureSnapshot
    description: >-
      Initiate a point-in-time Recorder snapshot from the connected endpoint for
      offline analysis.
    operationId: createSnapshot
    parameters:
    - name: session
      in: header
      value: $inputs.sessionToken
    - name: connectionId
      in: path
      value: $steps.openConnection.outputs.connectionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      taskId: $response.body#/data/taskId
      taskStatus: $response.body#/data/status
  outputs:
    connectionId: $steps.openConnection.outputs.connectionId
    snapshotTaskId: $steps.captureSnapshot.outputs.taskId