Digital Guardian Demo Playbook

This playbook will show how to handle an exfiltration event through Digital Guardian by emailing a user's manager and adding the user to a DG Watchlist.

Digital Guardian · 15 tasks · 4 inputs · 0 outputs

Details

IDDigital Guardian Demo Playbook
From Version5.0.0
Tasks15

README

This playbook will show how to handle an exfiltration event through Digital Guardian by emailing a user’s manager and adding the user to a DG Watchlist.

Dependencies

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

Sub-playbooks

  • Active Directory - Get User Manager Details
  • Account Enrichment - Generic v2.1

Integrations

  • Builtin
  • Digital Guardian

Scripts

This playbook does not use any scripts.

Commands

  • send-mail
  • digitalguardian-add-watchlist-entry
  • closeInvestigation

Playbook Inputs


Name Description Default Value Source Required
User Name User Name to check ${incident.digitalguardianusername}   Required
Watchlist Name The name of the DG watchlist to add the user to. DLP-USB-USERS   Required
Incident Match The incident name should contain this string in order for the playbook to handle the event. The default is DLP1008 which is a USB Exfiltration event. DLP1008   Required
Notify Manager Notify User’s Manager true   Optional

Playbook Outputs


There are no outputs for this playbook.

Digital Guardian Logo

Inputs

  • User Name — User Name to check
  • Watchlist Name — The name of the DG watchlist to add the user to.
  • Incident Match — The incident name should contain this string in order for the playbook to handle the event. The default is DLP1008 which is a USB Exfiltration event.
  • Notify Manager — Notify User's Manager

Commands used

closeInvestigation digitalguardian-add-watchlist-entry send-mail

Flowchart

yes yes yes yes yes yes Start Start Check if Event matches the condition Check if Event matches th... Send the Manager email about the violation - send-mail Send the Manager email ab... send-mail Close incident - closeInvestigation Close incident closeInvestigation Found user in AD Found user in AD Add user to the DG Watchlist - digitalguardian-add-watchlist-entry Add user to the DG Watch... digitalguardian-add-watchlist... Manually handle other alert type Manually handle other ale... Active Directory - Get User Manager Details - Active Directory - Get User Manager Details Active Directory - Get Us... Active Directory - Get User M... Account Enrichment - Generic v2.1 - Account Enrichment - Generic v2.1 Account Enrichment - Gene... Account Enrichment - Generic ... Shall we notify the manager? Shall we notify the manager? Is User's Manager email found? Is User's Manager email f... Manually Notify Manager Manually Notify Manager Manually Investigate Manually Investigate Is Digital Guardian Enabled? Is Digital Guardian Enabled? Done Done
id: Digital Guardian Demo Playbook
version: -1
name: Digital Guardian Demo Playbook
description: This playbook will show how to handle an exfiltration event through Digital
  Guardian by emailing a user's manager and adding the user to a DG Watchlist.
starttaskid: '0'
tasks:
  '0':
    id: '0'
    taskid: 88ac459f-e1af-4abb-8aaf-b79e63012f29
    type: start
    task:
      id: 88ac459f-e1af-4abb-8aaf-b79e63012f29
      version: -1
      name: ''
      iscommand: false
      brand: ''
      description: ''
    nexttasks:
      '#none#':
      - '20'
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 1022.5,\n    \"y\": 50\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '2':
    id: '2'
    taskid: e81ff2cb-4039-47a8-8b20-0fc08cc0510f
    type: condition
    task:
      id: e81ff2cb-4039-47a8-8b20-0fc08cc0510f
      version: -1
      name: Check if Event matches the condition
      description: Check for incident name matching event criteria
      type: condition
      iscommand: false
      brand: ''
    nexttasks:
      '#default#':
      - '13'
      'yes':
      - '15'
    separatecontext: false
    conditions:
    - label: 'yes'
      condition:
      - - operator: startWith
          left:
            value:
              simple: incident.name
            iscontext: true
          right:
            value:
              simple: inputs.Incident Match
            iscontext: true
    view: "{\n  \"position\": {\n    \"x\": 275,\n    \"y\": 370\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '5':
    id: '5'
    taskid: 2ac2e077-3171-4b73-8577-53fbc2ecefdd
    type: regular
    task:
      id: 2ac2e077-3171-4b73-8577-53fbc2ecefdd
      version: -1
      name: Send the Manager email about the violation
      description: Send an email
      script: '|||send-mail'
      type: regular
      iscommand: true
      brand: ''
    nexttasks:
      '#none#':
      - '7'
    scriptarguments:
      additionalHeader: {}
      attachCIDs: {}
      attachIDs: {}
      attachNames: {}
      bcc: {}
      body:
        simple: ${incident.digitalguardianusername} has written ${incident.digitalguardianfilename}
          to removable media
      cc: {}
      htmlBody: {}
      raw_message: {}
      replyTo: {}
      subject:
        simple: Removable Media Policy Violation
      templateParams: {}
      to:
        complex:
          root: UserManagerEmail
      transientFile: {}
      transientFileCID: {}
      transientFileContent: {}
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 910,\n    \"y\": 1420\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '7':
    id: '7'
    taskid: b20c5d85-4db6-4b50-80ee-0fee65435bcf
    type: regular
    task:
      id: b20c5d85-4db6-4b50-80ee-0fee65435bcf
      version: -1
      name: Close incident
      description: commands.local.cmd.close.inv
      script: Builtin|||closeInvestigation
      type: regular
      iscommand: true
      brand: Builtin
    nexttasks:
      '#none#':
      - '21'
    scriptarguments:
      assetid: {}
      closeNotes: {}
      closeReason: {}
      emailclassification: {}
      id:
        simple: ${incident.id}
      phishingsubtype: {}
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 1125,\n    \"y\": 1595\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '11':
    id: '11'
    taskid: fcb0832b-09cc-49b1-8c8b-c0dfe81b4329
    type: condition
    task:
      id: fcb0832b-09cc-49b1-8c8b-c0dfe81b4329
      version: -1
      name: Found user in AD
      description: Check if we found the user in Active Directory
      type: condition
      iscommand: false
      brand: ''
    nexttasks:
      '#default#':
      - '19'
      'yes':
      - '12'
      - '16'
    separatecontext: false
    conditions:
    - label: 'yes'
      condition:
      - - operator: isNotEmpty
          left:
            value:
              simple: ActiveDirectory.Users.sAMAccountName
            iscontext: true
    view: "{\n  \"position\": {\n    \"x\": 1022.5,\n    \"y\": 720\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '12':
    id: '12'
    taskid: fdcfdd25-f8c2-48d8-8e77-854e26a9046c
    type: regular
    task:
      id: fdcfdd25-f8c2-48d8-8e77-854e26a9046c
      version: -1
      name: Add  user to the DG Watchlist
      description: Add User to Watchlist Entry
      script: Digital Guardian|||digitalguardian-add-watchlist-entry
      type: regular
      iscommand: true
      brand: Digital Guardian
    nexttasks:
      '#none#':
      - '7'
    scriptarguments:
      watchlist_entry:
        simple: ${inputs.User Name}
      watchlist_name:
        simple: ${inputs.Watchlist Name}
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 480,\n    \"y\": 1420\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '13':
    id: '13'
    taskid: 7906cccb-e7b6-4372-894f-d97567ee8435
    type: regular
    task:
      id: 7906cccb-e7b6-4372-894f-d97567ee8435
      version: -1
      name: Manually handle other alert type
      description: This alert is different from the one configured in this playbook
        to automatically investigate, please handle manually.
      type: regular
      iscommand: false
      brand: ''
    nexttasks:
      '#none#':
      - '7'
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 50,\n    \"y\": 1420\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '14':
    id: '14'
    taskid: ba0e57ca-65e6-4208-87fc-b26781eade5d
    type: playbook
    task:
      id: ba0e57ca-65e6-4208-87fc-b26781eade5d
      version: -1
      name: Active Directory - Get User Manager Details
      playbookName: Active Directory - Get User Manager Details
      type: playbook
      iscommand: false
      brand: ''
      description: ''
    nexttasks:
      '#none#':
      - '17'
    scriptarguments:
      UserEmail: {}
      Username:
        complex:
          root: inputs.User Name
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ''
      wait: 1
    view: "{\n  \"position\": {\n    \"x\": 1125,\n    \"y\": 1070\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '15':
    id: '15'
    taskid: 653b480f-1a20-4bc3-8bb1-368a0ccb6730
    type: playbook
    task:
      id: 653b480f-1a20-4bc3-8bb1-368a0ccb6730
      version: -1
      name: Account Enrichment - Generic v2.1
      playbookName: Account Enrichment - Generic v2.1
      type: playbook
      iscommand: false
      brand: ''
      description: ''
    nexttasks:
      '#none#':
      - '11'
    scriptarguments:
      Username:
        complex:
          root: inputs.User Name
          transformers:
          - operator: uniq
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ''
      wait: 1
    view: "{\n  \"position\": {\n    \"x\": 1022.5,\n    \"y\": 545\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '16':
    id: '16'
    taskid: 77aa8463-497e-499c-8eb0-28512cc8f4c0
    type: condition
    task:
      id: 77aa8463-497e-499c-8eb0-28512cc8f4c0
      version: -1
      name: Shall we notify the manager?
      type: condition
      iscommand: false
      brand: ''
      description: ''
    nexttasks:
      '#default#':
      - '7'
      'yes':
      - '14'
    separatecontext: false
    conditions:
    - label: 'yes'
      condition:
      - - operator: isEqualString
          left:
            value:
              simple: inputs.Notify Manager
            iscontext: true
          right:
            value:
              simple: 'true'
          ignorecase: true
    view: "{\n  \"position\": {\n    \"x\": 1237.5,\n    \"y\": 895\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '17':
    id: '17'
    taskid: c1efa71f-e72d-4eff-83fe-e3d08d105438
    type: condition
    task:
      id: c1efa71f-e72d-4eff-83fe-e3d08d105438
      version: -1
      name: Is User's Manager email found?
      description: Check if User's Manager email is found
      type: condition
      iscommand: false
      brand: ''
    nexttasks:
      '#default#':
      - '18'
      'yes':
      - '5'
    separatecontext: false
    conditions:
    - label: 'yes'
      condition:
      - - operator: isNotEmpty
          left:
            value:
              simple: UserManagerEmail
            iscontext: true
    view: "{\n  \"position\": {\n    \"x\": 1125,\n    \"y\": 1245\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '18':
    id: '18'
    taskid: 26f9cbac-cd35-42a3-8886-eb06dc816813
    type: regular
    task:
      id: 26f9cbac-cd35-42a3-8886-eb06dc816813
      version: -1
      name: Manually Notify Manager
      description: "User's Manager email not found: please manually notify the user's\
        \ manager"
      type: regular
      iscommand: false
      brand: ''
    nexttasks:
      '#none#':
      - '7'
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 1340,\n    \"y\": 1420\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '19':
    id: '19'
    taskid: ffb165b3-1945-4aab-8c2b-910d3deb10e3
    type: regular
    task:
      id: ffb165b3-1945-4aab-8c2b-910d3deb10e3
      version: -1
      name: Manually Investigate
      description: The Digital Guardian integration is not enabled, or the User was
        not found in Active Directory, investigate manually and handle the issue.
      type: regular
      iscommand: false
      brand: ''
    nexttasks:
      '#none#':
      - '7'
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 1790,\n    \"y\": 895\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '20':
    id: '20'
    taskid: 65e5d731-6a38-49ca-8c74-115c591fedb5
    type: condition
    task:
      id: 65e5d731-6a38-49ca-8c74-115c591fedb5
      version: -1
      name: Is Digital Guardian Enabled?
      description: Is Digital Guardian integration enabled?
      type: condition
      iscommand: false
      brand: ''
    nexttasks:
      '#default#':
      - '19'
      'yes':
      - '2'
    separatecontext: false
    conditions:
    - label: 'yes'
      condition:
      - - operator: isExists
          left:
            value:
              complex:
                root: modules
                filters:
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.brand
                      iscontext: true
                    right:
                      value:
                        simple: Digital Guardian
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.state
                      iscontext: true
                    right:
                      value:
                        simple: active
            iscontext: true
    view: "{\n  \"position\": {\n    \"x\": 1022.5,\n    \"y\": 195\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
  '21':
    id: '21'
    taskid: bcbdd941-c197-4b41-8533-54f048b867b0
    type: title
    task:
      id: bcbdd941-c197-4b41-8533-54f048b867b0
      version: -1
      name: Done
      type: title
      iscommand: false
      brand: ''
      description: ''
    separatecontext: false
    view: "{\n  \"position\": {\n    \"x\": 1125,\n    \"y\": 1770\n  }\n}"
    note: false
    timertriggers: []
    ignoreworker: false
view: "{\n  \"linkLabelsPosition\": {\n    \"20_2_yes\": 0.41\n  },\n  \"paper\":\
  \ {\n    \"dimensions\": {\n      \"height\": 1785,\n      \"width\": 2120,\n  \
  \    \"x\": 50,\n      \"y\": 50\n    }\n  }\n}"
inputs:
- key: User Name
  value:
    simple: ${incident.digitalguardianusername}
  required: true
  description: User Name to check
- key: Watchlist Name
  value:
    simple: DLP-USB-USERS
  required: true
  description: The name of the DG watchlist to add the user to.
- key: Incident Match
  value:
    simple: DLP1008
  required: true
  description: The incident name should contain this string in order for the playbook
    to handle the event.  The default is DLP1008 which is a USB Exfiltration event.
- key: Notify Manager
  value:
    simple: 'true'
  required: false
  description: Notify User's Manager
outputs: []
sourceplaybookid: 20bb2629-4467-456f-8d20-c89e17842fa7
fromversion: 5.0.0
tests:
- No tests