MITRE ATT&CK CoA - T1189 - Drive-by Compromise

This playbook Remediates the Drive-by Compromise technique using intelligence-driven Courses of Action (COA) defined by Palo Alto Networks Unit 42 team. ***Disclaimer: This playbook does not simulate an attack using the specified technique, but follows the steps to remediation as defined by Palo Alto Networks Unit 42 team’s Actionable Threat Objects and Mitigations (ATOMs). Techniques Handled: - T1189: Drive-by Compromise Kill Chain phases: - Initial Access MITRE ATT&CK Description: Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation, but adversaries may also use compromised websites for non-exploitation behavior such as acquiring Application Access Token. Possible playbook uses: - The playbook can be used independently to handle and remediate the specific technique. - The playbook can be used as a part of the “Courses of Action - Defense Evasion” playbook to remediate techniques based on the kill chain phase. - The playbook can be used as a part of the “MITRE ATT&CK - Courses of Action” playbook, which can be triggered by different sources and accepts the technique MITRE ATT&CK ID as an input.

MITRE ATT&CK - Courses of Action · 14 tasks · 4 inputs · 1 output

Details

IDMITRE ATT&CK CoA - T1189 - Drive-by Compromise
From Version6.5.0
Tasks14

README

This playbook Remediates the Drive-by Compromise technique using intelligence-driven Courses of Action (COA) defined by Palo Alto Networks Unit 42 team.

***Disclaimer: This playbook does not simulate an attack using the specified technique, but follows the steps to remediation as defined by Palo Alto Networks Unit 42 team’s Actionable Threat Objects and Mitigations (ATOMs).
Techniques Handled:

  • T1189: Drive-by Compromise

Kill Chain phases:

  • Initial Access

MITRE ATT&CK Description:

Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user’s web browser is typically targeted for exploitation, but adversaries may also use compromised websites for non-exploitation behavior such as acquiring Application Access Token.

Possible playbook uses:

  • The playbook can be used independently to handle and remediate the specific technique.
  • The playbook can be used as a part of the “Courses of Action - Defense Evasion” playbook to remediate techniques based on the kill chain phase.
  • The playbook can be used as a part of the “MITRE ATT&CK - Courses of Action” playbook, which can be triggered by different sources and accepts the technique MITRE ATT&CK ID as an input.

Dependencies

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

Sub-playbooks

  • PAN-OS - Block all unknown and unauthorized applications
  • PAN-OS - Enforce Anti-Spyware Best Practices Profile
  • PAN-OS - Enforce Vulnerability Protection Best Practices Profile
  • PAN-OS - Enforce URL Filtering Best Practices Profile
  • PAN-OS - Enforce WildFire Best Practices Profile

Integrations

This playbook does not use any integrations.

Scripts

  • Set
  • SetGridField

Commands

This playbook does not use any commands.

Playbook Inputs


Name Description Default Value Required
template Template name to enforce WildFire best practices profile.   Optional
pre_post Rules location. Can be ‘pre-rulebase’ or ‘post-rulebase’. Mandatory for Panorama instances.   Optional
device-group The device group for which to return addresses (Panorama instances).   Optional
tag Tag for which to filter the rules.   Optional

Playbook Outputs


Path Description Type
Handled.Techniques The techniques handled in this playbook unknown

Playbook Image


MITRE ATT&CK CoA - T1189 - Drive-by Compromise

Inputs

  • template — Template name to enforce WildFire best practices profile.
  • pre_post — Rules location. Can be 'pre-rulebase' or 'post-rulebase'. Mandatory for Panorama instances.
  • device-group — The device group for which to return addresses (Panorama instances).
  • tag — Tag for which to filter the rules.

Outputs

  • Handled.Techniques — The techniques handled in this playbook

Flowchart

Start Start Block all unknown and unauthorized applications Block all unknown and una... Enable DNS Security in Anti-Spyware profile Enable DNS Security in An... Done Done PAN-OS - Block all unknown and unauthorized applications - PAN-OS - Block all unknown and unauthorized applications PAN-OS - Block all unknow... PAN-OS - Block all unknown an... PAN-OS - Enforce Anti-Spyware Best Practices Profile - PAN-OS - Enforce Anti-Spyware Best Practices Profile PAN-OS - Enforce Anti-Spy... PAN-OS - Enforce Anti-Spyware... Set technique handled Set technique handled PAN-OS - Enforce Vulnerability Protection Best Practices Profile - PAN-OS - Enforce Vulnerability Protection Best Practices Profile PAN-OS - Enforce Vulnerab... PAN-OS - Enforce Vulnerabilit... Deploy Vulnerability Protection Profile for all low and high severity threats with block action Deploy Vulnerability Prot... PAN-OS - Enforce URL Filtering Best Practices Profile - PAN-OS - Enforce URL Filtering Best Practices Profile PAN-OS - Enforce URL Filt... PAN-OS - Enforce URL Filterin... Control web access based on URL Category Control web access based ... PAN-OS - Enforce WildFire Best Practices Profile - PAN-OS - Enforce WildFire Best Practices Profile PAN-OS - Enforce WildFire... PAN-OS - Enforce WildFire Bes... Forward Files for WildFire Analysis Forward Files for WildFir... Set grid field Set grid field
description: "This playbook Remediates the Drive-by Compromise technique using intelligence-driven Courses of Action (COA) defined by Palo Alto Networks Unit 42 team.\n \n***Disclaimer: This playbook does not simulate an attack using the specified technique, but follows the steps to remediation as defined by Palo Alto Networks Unit 42 team’s Actionable Threat Objects and Mitigations (ATOMs).\nTechniques Handled:\n- T1189: Drive-by Compromise\n\nKill Chain phases:\n- Initial Access\n\nMITRE ATT&CK Description:\n\nAdversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation, but adversaries may also use compromised websites for non-exploitation behavior such as acquiring Application Access Token.\n\nPossible playbook uses:\n- The playbook can be used independently to handle and remediate the specific technique.\n- The playbook can be used as a part of the “Courses of Action - Defense Evasion” playbook to remediate techniques based on the kill chain phase.\n- The playbook can be used as a part of the “MITRE ATT&CK - Courses of Action” playbook, which can be triggered by different sources and accepts the technique MITRE ATT&CK ID as an input."
id: MITRE ATT&CK CoA - T1189 - Drive-by Compromise
inputs:
- description: Template name to enforce WildFire best practices profile.
  key: template
  playbookInputQuery:
  required: false
  value: {}
- description: Rules location. Can be 'pre-rulebase' or 'post-rulebase'. Mandatory for Panorama instances.
  key: pre_post
  playbookInputQuery:
  required: false
  value: {}
- description: The device group for which to return addresses (Panorama instances).
  key: device-group
  playbookInputQuery:
  required: false
  value: {}
- description: Tag for which to filter the rules.
  key: tag
  playbookInputQuery:
  required: false
  value: {}
name: MITRE ATT&CK CoA - T1189 - Drive-by Compromise
outputs:
- contextPath: Handled.Techniques
  description: The techniques handled in this playbook
  type: unknown
starttaskid: "0"
tasks:
  "0":
    id: "0"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "2"
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: 7fa1a17a-6852-413c-8bea-b596083ad387
      iscommand: false
      name: ""
      version: -1
      description: ''
    taskid: 7fa1a17a-6852-413c-8bea-b596083ad387
    timertriggers: []
    type: start
    view: |-
      {
        "position": {
          "x": 50,
          "y": 50
        }
      }
  "2":
    id: "2"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "12"
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: f261d0ff-97a9-47e9-867a-4f18096bc6f3
      iscommand: false
      name: Block all unknown and unauthorized applications
      type: title
      version: -1
      description: ''
    taskid: f261d0ff-97a9-47e9-867a-4f18096bc6f3
    timertriggers: []
    type: title
    view: |-
      {
        "position": {
          "x": 50,
          "y": 195
        }
      }
  "5":
    id: "5"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "13"
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: 40757400-37e4-4a21-8a4c-f20f01ee8768
      iscommand: false
      name: Enable DNS Security in Anti-Spyware profile
      type: title
      version: -1
      description: ''
    taskid: 40757400-37e4-4a21-8a4c-f20f01ee8768
    timertriggers: []
    type: title
    view: |-
      {
        "position": {
          "x": 50,
          "y": 835
        }
      }
  "9":
    id: "9"
    ignoreworker: false
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: af416a1e-1af5-4168-8d25-3e8e01ce9b66
      iscommand: false
      name: Done
      type: title
      version: -1
      description: ''
    taskid: af416a1e-1af5-4168-8d25-3e8e01ce9b66
    timertriggers: []
    type: title
    view: |-
      {
        "position": {
          "x": 50,
          "y": 2170
        }
      }
  "12":
    id: "12"
    ignoreworker: false
    loop:
      exitCondition: ""
      iscommand: false
      max: 100
      wait: 1
    nexttasks:
      '#none#':
      - "17"
    note: false
    quietmode: 0
    scriptarguments:
      device-group:
        complex:
          root: inputs.device-group
      pre_post:
        complex:
          root: inputs.pre_post
      tag:
        complex:
          root: inputs.tag
    separatecontext: true
    skipunavailable: false
    task:
      brand: ""
      id: d6c3eb38-2604-4019-821f-5d3d5aaca8cb
      iscommand: false
      name: PAN-OS - Block all unknown and unauthorized applications
      playbookId: PAN-OS - Block all unknown and unauthorized applications
      type: playbook
      version: -1
      description: ''
    taskid: d6c3eb38-2604-4019-821f-5d3d5aaca8cb
    timertriggers: []
    type: playbook
    view: |-
      {
        "position": {
          "x": 50,
          "y": 340
        }
      }
  "13":
    id: "13"
    ignoreworker: false
    loop:
      exitCondition: ""
      iscommand: false
      max: 100
      wait: 1
    nexttasks:
      '#none#':
      - "19"
    note: false
    quietmode: 0
    scriptarguments:
      ApplyToRule:
        complex:
          root: inputs.ApplyToRule
      device-group:
        complex:
          root: inputs.device-group
      pre-post-rulebase:
        complex:
          root: inputs.pre_post
      rule_name:
        complex:
          root: inputs.rule_name
      tag:
        complex:
          root: inputs.tag
    separatecontext: true
    skipunavailable: false
    task:
      brand: ""
      description: |
        This playbook enforces the Anti-Spyware Best Practices Profile as defined by Palo Alto Networks BPA.
        The playbook performs the following tasks:
        - Check for DNS Security license (If license is not activated, the playbook refers users to their Palo Alto Networks account manager for further instructions).
        - Get the existing profile information.
        - Get the best practices profile information.
        - Check if the best practices profile set by Cortex XSOAR is enforced. (If not, the playbook allows the user to compare the existing profile with the best practices and decide on the action to take).
        - Create best practices profile.
        - Apply profile to policy rules on PAN-OS firewall or Panorama.
      id: 59873349-be12-4206-83e0-c7b7a1a70321
      iscommand: false
      name: PAN-OS - Enforce Anti-Spyware Best Practices Profile
      playbookId: PAN-OS - Enforce Anti-Spyware Best Practices Profile
      type: playbook
      version: -1
    taskid: 59873349-be12-4206-83e0-c7b7a1a70321
    timertriggers: []
    type: playbook
    view: |-
      {
        "position": {
          "x": 50,
          "y": 980
        }
      }
  "15":
    id: "15"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "22"
    note: false
    quietmode: 0
    scriptarguments:
      append:
        simple: "true"
      key:
        simple: Handled.Techniques
      stringify: {}
      value:
        simple: T1189
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      description: Set a value in context under the key you entered.
      id: f4db8f64-8063-4602-8514-25c55ad6ea6b
      iscommand: false
      name: Set technique handled
      script: Set
      type: regular
      version: -1
    taskid: f4db8f64-8063-4602-8514-25c55ad6ea6b
    timertriggers: []
    type: regular
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1795
        }
      }
  "16":
    id: "16"
    ignoreworker: false
    loop:
      exitCondition: ""
      iscommand: false
      max: 100
      wait: 1
    nexttasks:
      '#none#':
      - "5"
    note: false
    quietmode: 0
    scriptarguments:
      ApplyToRule:
        complex:
          root: inputs.ApplyToRule
      device-group:
        complex:
          root: inputs.device-group
      pre-post-rulebase:
        complex:
          root: inputs.pre_post
      rule_name:
        complex:
          root: inputs.rule_name
      tag:
        complex:
          root: inputs.tag
    separatecontext: true
    skipunavailable: false
    task:
      brand: ""
      id: 948ad793-e334-4456-8cb6-b21d044828f5
      iscommand: false
      name: PAN-OS - Enforce Vulnerability Protection Best Practices Profile
      playbookId: PAN-OS - Enforce Vulnerability Protection Best Practices Profile
      type: playbook
      version: -1
      description: ''
    taskid: 948ad793-e334-4456-8cb6-b21d044828f5
    timertriggers: []
    type: playbook
    view: |-
      {
        "position": {
          "x": 50,
          "y": 660
        }
      }
  "17":
    id: "17"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "16"
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: 5159855d-1e8f-4ae8-8ca7-9a73f33067e9
      iscommand: false
      name: Deploy Vulnerability Protection Profile for all low and high severity threats with block action
      type: title
      version: -1
      description: ''
    taskid: 5159855d-1e8f-4ae8-8ca7-9a73f33067e9
    timertriggers: []
    type: title
    view: |-
      {
        "position": {
          "x": 50,
          "y": 515
        }
      }
  "18":
    id: "18"
    ignoreworker: false
    loop:
      exitCondition: ""
      iscommand: false
      max: 100
      wait: 1
    nexttasks:
      '#none#':
      - "21"
    note: false
    quietmode: 0
    scriptarguments:
      ApplyToRule:
        complex:
          root: inputs.ApplyToRule
      device-group:
        complex:
          root: inputs.device-group
      pre-post-rulebase:
        complex:
          root: inputs.pre_post
      rule_name:
        complex:
          root: inputs.rule_name
      tag:
        complex:
          root: inputs.tag
    separatecontext: true
    skipunavailable: false
    task:
      brand: ""
      id: 2ea2173d-5676-4689-8222-5c3852b45ead
      iscommand: false
      name: PAN-OS - Enforce URL Filtering Best Practices Profile
      playbookId: PAN-OS - Enforce URL Filtering Best Practices Profile
      type: playbook
      version: -1
      description: ''
    taskid: 2ea2173d-5676-4689-8222-5c3852b45ead
    timertriggers: []
    type: playbook
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1300
        }
      }
  "19":
    id: "19"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "18"
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: ccae770a-3e5f-4ba2-8417-6994cdee7587
      iscommand: false
      name: Control web access based on URL Category
      type: title
      version: -1
      description: ''
    taskid: ccae770a-3e5f-4ba2-8417-6994cdee7587
    timertriggers: []
    type: title
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1155
        }
      }
  "20":
    id: "20"
    ignoreworker: false
    loop:
      exitCondition: ""
      iscommand: false
      max: 100
      wait: 1
    nexttasks:
      '#none#':
      - "15"
    note: false
    quietmode: 0
    scriptarguments:
      ApplyToRule:
        complex:
          root: inputs.ApplyToRule
      device-group:
        complex:
          root: inputs.device-group
      pre-post-rulebase:
        complex:
          root: inputs.pre_post
      rule_name:
        complex:
          root: inputs.rule_name
      tag:
        complex:
          root: inputs.tag
      template:
        complex:
          root: inputs.template
    separatecontext: true
    skipunavailable: false
    task:
      brand: ""
      id: 54fa5fe4-ca04-47db-8031-2f9dd15d72fe
      iscommand: false
      name: PAN-OS - Enforce WildFire Best Practices Profile
      playbookId: PAN-OS - Enforce WildFire Best Practices Profile
      type: playbook
      version: -1
      description: ''
    taskid: 54fa5fe4-ca04-47db-8031-2f9dd15d72fe
    timertriggers: []
    type: playbook
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1620
        }
      }
  "21":
    id: "21"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "20"
    note: false
    quietmode: 0
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      id: 503f7522-0840-48da-8cd9-0b60c3d84b06
      iscommand: false
      name: Forward Files for WildFire Analysis
      type: title
      version: -1
      description: ''
    taskid: 503f7522-0840-48da-8cd9-0b60c3d84b06
    timertriggers: []
    type: title
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1475
        }
      }
  "22":
    continueonerror: true
    id: "22"
    ignoreworker: false
    nexttasks:
      '#none#':
      - "9"
    note: false
    quietmode: 0
    scriptarguments:
      columns:
        simple: technique
      context_path:
        simple: Handled.Techniques
      grid_id:
        simple: handledtechniques
      keys: {}
      overwrite: {}
      sort_by: {}
      unpack_nested_elements: {}
    separatecontext: false
    skipunavailable: false
    task:
      brand: ""
      description: Creates a Grid table from items or key-value pairs.
      id: b44faf5a-ef6d-45cf-8262-a974ecfba339
      iscommand: false
      name: Set grid field
      script: SetGridField
      type: regular
      version: -1
    taskid: b44faf5a-ef6d-45cf-8262-a974ecfba339
    timertriggers: []
    type: regular
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1970
        }
      }
version: -1
view: |-
  {
    "linkLabelsPosition": {},
    "paper": {
      "dimensions": {
        "height": 2185,
        "width": 380,
        "x": 50,
        "y": 50
      }
    }
  }
tests:
- No tests (auto formatted)
fromversion: 6.5.0