For the complete documentation index, see llms.txt. This page is also available as Markdown.

Tenable

Tenable WAS - Initiate Project Scope Scan [Step 1 of 5]

The purpose of this example is to initiate scheduling a Web Application scan of the assets on the project scope in Tenable when a user clicks on an Action in AttackForge.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

  • Action:

    • Entities: Projects and Project

  • Secrets:

Action 1 - Determine Action Entity

  • Script:

Action 2 - Get Project(s)

  • Method: GET

  • URL: https://{{af_hostname}}/api/ss/project/{{project_id}}

  • Headers:

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Trigger WAS Scan Flow

  • Method: POST

  • URL: https://{{af_hostname}}/api/flows/{{trigger_id}}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Tenable VM - Initiate Project Scope Scan [Step 1 of 5]

The purpose of this example is to initiate scheduling a VM scan of the assets on the project scope in Tenable when a user clicks on an Action in AttackForge.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

  • Action:

    • Entities: Projects and Project

  • Secrets:

Action 1 - Determine Action Entity

  • Script:

Action 2 - Get Project(s)

  • Method: GET

  • URL: https://{{af_hostname}}/api/ss/project/{{project_id}}

  • Headers:

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Trigger VM Scan Flow

  • Method: POST

  • URL: https://{{af_hostname}}/api/flows/{{trigger_id}}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Tenable WAS - Launch Scan [Step 2 of 5]

The purpose of this example is to create and launch a Web Application scan in Tenable.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

  • HTTP Trigger:

    • Method: POST

  • Secrets:

    • af_hostname - your AttackForge tenant hostname e.g. demo.attackforge.com

    • af_key - your AttackForge user API key

    • owner_id - the Tenable ID of the owner of the scanner.

    • tenable_template_id - the UUID of the Tenable-provided template resource.

    • user_template_id - the UUID of the Tenable user-defined template.

    • tenable_auth - your Tenable API Key

    • logging_level - set to "debug" for additional logging

Action 1 - Create WAS Scan Configuration

  • Method: POST

  • URL: https://cloud.tenable.com/was/v2/configs

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 2 - Launch WAS Scan

  • Method: POST

  • URL: https://cloud.tenable.com/was/v2/configs/{config_id}/scans

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Update Project with Scan Details

  • Method: PUT

  • URL: https://{{af_hostname}}/api/ss/project/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

  • Request Script:

  • Response Script:

Tenable VM - Launch Scan [Step 2 of 5]

The purpose of this example is to create and launch a VM scan in Tenable.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

  • HTTP Trigger:

    • Method: POST

  • Secrets:

    • af_hostname - your AttackForge tenant hostname e.g. demo.attackforge.com

    • af_key - your AttackForge user API key

    • scan_name_prefix - the prefix for the scan name in Tenable e.g. AttackForge Project Scan

    • vm_network_scan_template_uuid - the UUID for the Tenable VM scan template

    • tenable_auth - your Tenable API Key

    • logging_level - set to "debug" for additional logging

Action 1 - Create VM Scan Configuration

  • Method: POST

  • URL: https://cloud.tenable.com/scans

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 2 - Launch VM Scan

  • Method: POST

  • URL: https://cloud.tenable.com/scans/{scan_id}/launch

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Update Project with Scan Details

  • Method: PUT

  • URL: https://{{af_hostname}}/api/ss/project/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

  • Request Script:

  • Response Script:

Tenable VM & WAS - Find Active Scans to Poll Status [Step 3 of 5]

The purpose of this example is to poll the scan status for any active Tenable scans, and for any completed scans - trigger a download of the vulnerabilities.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

Action 1 - Get Tenable VM & WAS Scan Projects

  • Method: GET

  • URL: https://{{af_hostname}}/api/ss/projects?order=created:desc&limit=500

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

  • Request Script:

  • Response Script:

Action 2 - Tenable VM - Get Scan Status + Trigger Download

  • Method: POST

  • URL: https://{{af_hostname}}/api/flows/{{vm_poll_flow_trigger_id}}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Tenable WAS - Get Scan Status + Trigger Download

  • Method: PUT

  • URL: https://{{af_hostname}}/api/flows/{{was_poll_flow_trigger_id}}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Tenable WAS - Poll Scan Status [Step 4 of 5]

The purpose of this example is to export the results of a Web Application scan in Tenable.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

  • HTTP Trigger:

    • Method: POST

  • Secrets:

    • af_hostname - your AttackForge tenant hostname e.g. demo.attackforge.com

    • apikey - your AttackForge user API key

    • current_flow_id - the Id for this Flow in AttackForge once it's created (used for error reporting in email)

    • admin_user_id - the Id for the user in AttackForge who receives error emails (used for error reporting)

    • tenable_auth - your Tenable API Key

    • logging_level - set to "debug" for additional logging

Action 1 - Poll Scan Status

  • Method: GET

  • URL: https://cloud.tenable.com/was/v2/scans/{scan_id}

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 2 - Search Scans (multi-target only)

  • Method: POST

  • URL: https://cloud.tenable.com/was/v2/configs/{config_id}/scans/search

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Export Scan Report

  • Method: GET

  • URL: https://cloud.tenable.com/was/v2/scans/{scan_id}/report

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 4 - Import Scan Report Result

  • Method: POST

  • URL: https://{{af_hostname}}/api/flows/{{import_vuln_flow_trigger_id}}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 5 - Update Project to Remove Table Scan Details

  • Method: PUT

  • URL: https://{{af_hostname}}/api/ss/project/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = apikey

  • Request Script:

  • Response Script:

Action 6 - Send Email Report on Aborted Scan

  • Method: POST

  • URL: https://{{af_hostname}}/api/ss/email

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = apikey

  • Request Script:

  • Response Script:

Tenable VM - Poll Scan Status [Step 4 of 5]

The purpose of this example is to export the results of a VM scan in Tenable.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

Action 1 - Get Latest Scan Status

  • Method: GET

  • URL: https://cloud.tenable.com/scans/{scan_id/latest-status

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 2 - Export Scan

  • Method: POST

  • URL: https://cloud.tenable.com/was/v2/configs/{config_id}/scans/search

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 3 - Download Exported Scan

  • Method: GET

  • URL: https://cloud.tenable.com/scans/{scan_id}/export/{file_id}/download

  • Headers:

    • Key = X-ApiKeys; Type = Secret; Value = tenable_auth

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = Accept; Type = Value; Value = application/octet-stream

  • Request Script:

  • Response Script:

Action 4 - CSV to JSON

  • Method: POST

  • URL: https://{{af_hostname}}/api/ss/utils/parse-csv

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

  • Request Script:

  • Response Script:

Action 5 - Import Scan Results

  • Method: POST

  • URL: https://{{af_hostname}}/api/flows/{{import_vuln_flow_trigger_id}}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

  • Request Script:

  • Response Script:

Action 6 - Update Project to Remove Tenable Details

  • Method: PUT

  • URL: https://{{af_hostname}}/api/ss/project/{id}

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = apikey

  • Request Script:

  • Response Script:

Tenable VM & WAS - Import Vulnerabilities [Step 5 of 5]

The purpose of this example is to import vulnerabilities from a Tenable Web Application or VM scan.

This example Flow can be downloaded from our Flows GitHub Repository and imported into your AttackForge.

Initial Set Up

  • HTTP Trigger:

    • Method: POST

  • Secrets:

    • af_hostname - your AttackForge tenant hostname e.g. demo.attackforge.com

    • af_key - your AttackForge user API key

    • logging_level - set to "debug" for additional logging

Action 1 - Validate, Detect, Transform & Group Findings

  • Script:

Action 2 - Import Vulnerabilities

  • Method: POST

  • URL: https://{{af_hostname}}/api/ss/vulnerability

  • Headers:

    • Key = Content-Type; Type = Value; Value = application/json

    • Key = X-SSAPI-KEY; Type = Secret; Value = af_key

  • Request Script:

  • Response Script:

Last updated