SSL_Certificate_Verification

Demo playbook - takes list of addresses from an XSOAR list, process the status of each SSL certificate, and generate war room and email summary outputs.

SSL Certificates · 15 tasks · 0 inputs · 0 outputs

Details

IDSSL_Certificate_Verification
From Version6.0.0
Tasks15

README

Demo playbook to take a list of addresses from a specified XSOAR list, process the status of the SSL certificate for each address, and generate war room and email outputs for the status of each certificate.

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

  • SetGridField
  • SSLVerifierV2_ParseOutput
  • SSLVerifierV2_GenerateEmailBody
  • SSLVerifierV2

Commands

  • send-mail

Playbook Inputs


There are no inputs for this playbook.

Playbook Outputs


There are no outputs for this playbook.

Playbook Image


SSL Certificate Verification (XSOAR List)

Commands used

send-mail

Flowchart

yes yes yes yes Start Start Check certificate status for each domain - SSLVerifierV2 Check certificate status ... SSLVerifierV2 Parse SSLVerifierV2 Output - SSLVerifierV2_ParseOutput Parse SSLVerifierV2 Output SSLVerifierV2_ParseOutput Generate Report Email (HTML) - SSLVerifierV2_GenerateEmailBody Generate Report Email (HTML) SSLVerifierV2_GenerateEmailBody Send Report Email (HTML) - send-mail Send Report Email (HTML) send-mail Set Expired Certificates Grid - SetGridField Set Expired Certificates ... SetGridField Set Expiring Certificates Grid - SetGridField Set Expiring Certificates... SetGridField Set Warning Certificates Grid - SetGridField Set Warning Certificates ... SetGridField Set Good Certificates Grid - SetGridField Set Good Certificates Grid SetGridField Playbook Finished Playbook Finished Were Expired Certificates Found? Were Expired Certificates... Were Expiring Certificates Found? Were Expiring Certificate... Were Warning Certificates Found? Were Warning Certificates... Were Good Certificates Found? Were Good Certificates Fo... Print output to War Room - Print Print output to War Room Print
contentitemexportablefields:
  contentitemfields:
    propagationLabels:
    - all
id: SSL_Certificate_Verification
name: SSL_Certificate_Verification
description: 'Demo playbook - takes list of addresses from an XSOAR list, process the status of each SSL certificate, and generate war room and email summary outputs.'
starttaskid: "0"
tasks:
  "0":
    id: "0"
    taskid: f0b75a56-9b8e-4ea4-850a-c194e46d18d3
    type: start
    task:
      description: ""
      id: f0b75a56-9b8e-4ea4-850a-c194e46d18d3
      version: -1
      name: ""
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "2"
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 50
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
    isoversize: false
    isautoswitchedtoquietmode: false
  "2":
    id: "2"
    taskid: e6993720-eb0a-47a9-88aa-fbae58abe029
    type: regular
    task:
      id: e6993720-eb0a-47a9-88aa-fbae58abe029
      version: -1
      name: Check certificate status for each domain
      description: Use this automation to check for validity of your SSL certificate
        and get the time until expiration.
      scriptName: SSLVerifierV2
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "4"
    scriptarguments:
      URL:
        complex:
          root: lists
          accessor: Domains_All
          transformers:
          - operator: splitAndTrim
            args:
              delimiter:
                value:
                  simple: ','
      ignore-outputs:
        simple: "false"
    separatecontext: false
    continueonerror: true
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 195
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
    isoversize: false
    isautoswitchedtoquietmode: false
  "4":
    id: "4"
    taskid: 886eed48-8ee6-4c2d-8f6a-2433e1f6e0e1
    type: regular
    task:
      id: 886eed48-8ee6-4c2d-8f6a-2433e1f6e0e1
      version: -1
      name: Parse SSLVerifierV2 Output
      description: "Parses the output from the !SSLVerifier automation into a markdown
        table and separate context key \n\n"
      scriptName: SSLVerifierV2_ParseOutput
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "15"
      - "16"
      - "17"
      - "18"
    scriptarguments:
      OutputToWarRoom:
        simple: "False"
      StatusType:
        simple: all
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 370
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "5":
    id: "5"
    taskid: ee0cf87d-7eda-4b2e-8073-f2d98b8f15b6
    type: regular
    task:
      id: ee0cf87d-7eda-4b2e-8073-f2d98b8f15b6
      version: -1
      name: Generate Report Email (HTML)
      description: Generate the HTML-formatted report for delivery via email
      scriptName: SSLVerifierV2_GenerateEmailBody
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "6"
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 895
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
    isoversize: false
    isautoswitchedtoquietmode: false
  "6":
    id: "6"
    taskid: e00afaca-34b2-47f1-87dd-4f15e61f9a3a
    type: regular
    task:
      id: e00afaca-34b2-47f1-87dd-4f15e61f9a3a
      version: -1
      name: Send Report Email (HTML)
      description: Sends mail using Gmail.
      script: '|||send-mail'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "19"
    scriptarguments:
      htmlBody:
        simple: ${SSLReport.HTML}
      subject:
        simple: SSL Certificate Report
      to:
        simple: lol@hotmail.com
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 1070
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
    isoversize: false
    isautoswitchedtoquietmode: false
  "10":
    id: "10"
    taskid: 2a695572-5883-4d50-8ea2-0b735ced3b41
    type: regular
    task:
      id: 2a695572-5883-4d50-8ea2-0b735ced3b41
      version: -1
      name: Set Expired Certificates Grid
      description: Creates a Grid table from items or key-value pairs.
      scriptName: SetGridField
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      columns:
        simple: Domain, ExpirationDate, TimeToExpiration
      context_path:
        simple: SSLReport.Expired
      grid_id:
        simple: sslcertificatesexpired
      overwrite:
        simple: "true"
      sort_by:
        simple: timetoexpiration
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 720
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "11":
    id: "11"
    taskid: 6fac48fe-8413-4176-85b5-5237d8542ae9
    type: regular
    task:
      id: 6fac48fe-8413-4176-85b5-5237d8542ae9
      version: -1
      name: Set Expiring Certificates Grid
      description: Creates a Grid table from items or key-value pairs.
      scriptName: SetGridField
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      columns:
        simple: Domain, ExpirationDate, TimeToExpiration
      context_path:
        simple: SSLReport.Expiring
      grid_id:
        simple: sslcertificatesexpiring
      overwrite:
        simple: "true"
      sort_by:
        simple: timetoexpiration
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 612.5,
          "y": 720
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "12":
    id: "12"
    taskid: 20f51842-d663-49da-86cd-729637a1f7ac
    type: regular
    task:
      id: 20f51842-d663-49da-86cd-729637a1f7ac
      version: -1
      name: Set Warning Certificates Grid
      description: Creates a Grid table from items or key-value pairs.
      scriptName: SetGridField
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      columns:
        simple: Domain, ExpirationDate, TimeToExpiration
      context_path:
        simple: SSLReport.Warning
      grid_id:
        simple: sslcertificateswarning
      overwrite:
        simple: "true"
      sort_by:
        simple: timetoexpiration
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 1062.5,
          "y": 720
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "13":
    id: "13"
    taskid: 8ac08fdf-83be-45cf-84b8-af7e6cd6c257
    type: regular
    task:
      id: 8ac08fdf-83be-45cf-84b8-af7e6cd6c257
      version: -1
      name: Set Good Certificates Grid
      description: Creates a Grid table from items or key-value pairs.
      scriptName: SetGridField
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      columns:
        simple: Domain, ExpirationDate, TimeToExpiration
      context_path:
        simple: SSLReport.Good
      grid_id:
        simple: sslcertificatesgood
      overwrite:
        simple: "true"
      sort_by:
        simple: timetoexpiration
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 1512.5,
          "y": 720
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "14":
    id: "14"
    taskid: b4cbe90d-11b5-4a19-87af-b4104075b1d3
    type: title
    task:
      description: ""
      id: b4cbe90d-11b5-4a19-87af-b4104075b1d3
      version: -1
      name: Playbook Finished
      type: title
      iscommand: false
      brand: ""
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 1420
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
    isoversize: false
    isautoswitchedtoquietmode: false
  "15":
    id: "15"
    taskid: 3cff891b-3eeb-4822-8d3c-ff22abd027fb
    type: condition
    task:
      id: 3cff891b-3eeb-4822-8d3c-ff22abd027fb
      version: -1
      name: Were Expired Certificates Found?
      description: This script checks that a context key exists (and contains data),
        and optionally checks the value of the context key for a match against an
        input value. If a regex is not supplied, the script checks that the key is
        not empty. This script can be used with the "GenericPolling" playbook to poll
        for field population or that a field contains a specific value. This scripts
        does not support a context key which holds a list of values.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "10"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              simple: ${SSLReport.Expired}
            iscontext: true
          right:
            value: {}
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 50,
          "y": 545
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "16":
    id: "16"
    taskid: 224d869f-67db-468f-8b71-8f2193711dd4
    type: condition
    task:
      id: 224d869f-67db-468f-8b71-8f2193711dd4
      version: -1
      name: Were Expiring Certificates Found?
      description: This script checks that a context key exists (and contains data),
        and optionally checks the value of the context key for a match against an
        input value. If a regex is not supplied, the script checks that the key is
        not empty. This script can be used with the "GenericPolling" playbook to poll
        for field population or that a field contains a specific value. This scripts
        does not support a context key which holds a list of values.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "11"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              simple: ${SSLReport.Expiring}
            iscontext: true
          right:
            value: {}
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 500,
          "y": 545
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "17":
    id: "17"
    taskid: 4373cdbb-6054-406a-82e2-fc0fbadd8b7c
    type: condition
    task:
      id: 4373cdbb-6054-406a-82e2-fc0fbadd8b7c
      version: -1
      name: Were Warning Certificates Found?
      description: This script checks that a context key exists (and contains data),
        and optionally checks the value of the context key for a match against an
        input value. If a regex is not supplied, the script checks that the key is
        not empty. This script can be used with the "GenericPolling" playbook to poll
        for field population or that a field contains a specific value. This scripts
        does not support a context key which holds a list of values.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "12"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              simple: ${SSLReport.Warning}
            iscontext: true
          right:
            value: {}
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 950,
          "y": 545
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "18":
    id: "18"
    taskid: f435796d-9278-44a9-88e0-fd21853b7ada
    type: condition
    task:
      id: f435796d-9278-44a9-88e0-fd21853b7ada
      version: -1
      name: Were Good Certificates Found?
      description: This script checks that a context key exists (and contains data),
        and optionally checks the value of the context key for a match against an
        input value. If a regex is not supplied, the script checks that the key is
        not empty. This script can be used with the "GenericPolling" playbook to poll
        for field population or that a field contains a specific value. This scripts
        does not support a context key which holds a list of values.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "5"
      "yes":
      - "13"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              simple: ${SSLReport.Good}
            iscontext: true
          right:
            value: {}
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 1400,
          "y": 545
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 1
    isoversize: false
    isautoswitchedtoquietmode: false
  "19":
    id: "19"
    taskid: 1a365373-a1f7-4a84-82c1-eeb45f26009d
    type: regular
    task:
      id: 1a365373-a1f7-4a84-82c1-eeb45f26009d
      version: -1
      name: Print output to War Room
      description: Prints text to war room (Markdown supported)
      scriptName: Print
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "14"
    scriptarguments:
      value:
        simple: ${SSLReport.md}
    separatecontext: false
    continueonerrortype: ""
    view: |-
      {
        "position": {
          "x": 725,
          "y": 1245
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
    skipunavailable: false
    quietmode: 0
    isoversize: false
    isautoswitchedtoquietmode: false
version: -1
view: |-
  {
    "linkLabelsPosition": {},
    "paper": {
      "dimensions": {
        "height": 1435,
        "width": 1842.5,
        "x": 50,
        "y": 50
      }
    }
  }
tests:
- No tests (auto formatted)
fromversion: 6.0.0