From 7447f2023a4fc864a5898f80e242a8be1774c8a0 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Thu, 2 Mar 2023 21:55:57 -0800 Subject: [PATCH 01/34] 'create generate-doc.yml file' --- .github/workflows/generate-doc.yml | 14 ++++++++++++++ .pre-commit-config.yaml | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/generate-doc.yml diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml new file mode 100644 index 0000000..4661718 --- /dev/null +++ b/.github/workflows/generate-doc.yml @@ -0,0 +1,14 @@ +name: Generate Readme Doc +on: + workflow_dispatch: + push: + paths: + - '*.json' + - 'readme.html' +jobs: + generate-doc: + runs-on: ubuntu-latest + steps: + - uses: 'phantomcyber/dev-cicd-tools/github-actions/generate-doc@main' + with: + GITHUB_TOKEN: ${{ secrets.SOAR_APPS_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 88dc32a..b269de3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,11 +1,11 @@ repos: - repo: https://github.com/phantomcyber/dev-cicd-tools - rev: v1.13 + rev: v1.16 hooks: - id: org-hook - id: package-app-dependencies - repo: https://github.com/Yelp/detect-secrets - rev: v1.3.0 + rev: v1.4.0 hooks: - id: detect-secrets args: ['--no-verify', '--exclude-files', '^threatstream.json$'] From 3f45c5b155525d4448daad578bfce2ccca5bda2f Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Mon, 6 Mar 2023 22:05:15 -0800 Subject: [PATCH 02/34] 'update generate-doc.yml file' --- .github/workflows/generate-doc.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml index 4661718..e63a4cd 100644 --- a/.github/workflows/generate-doc.yml +++ b/.github/workflows/generate-doc.yml @@ -5,6 +5,11 @@ on: paths: - '*.json' - 'readme.html' + tags-ignore: + - '*-beta*' + branches-ignore: + - next + - main jobs: generate-doc: runs-on: ubuntu-latest From cb5c21107b28965364ff372d74e4eb1a28d76d68 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Tue, 7 Mar 2023 15:14:15 -0800 Subject: [PATCH 03/34] 'update generate-doc.yml file' --- .github/workflows/generate-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml index e63a4cd..7a3ba90 100644 --- a/.github/workflows/generate-doc.yml +++ b/.github/workflows/generate-doc.yml @@ -6,7 +6,7 @@ on: - '*.json' - 'readme.html' tags-ignore: - - '*-beta*' + - '**' branches-ignore: - next - main From 2ad2c0875f83c8267e9872850f7e1e21cf9e28d2 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Sat, 22 Apr 2023 00:38:32 -0700 Subject: [PATCH 04/34] 'update generate-doc.yml file with manual_readme_content.md' --- .github/workflows/generate-doc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml index 7a3ba90..9284f9d 100644 --- a/.github/workflows/generate-doc.yml +++ b/.github/workflows/generate-doc.yml @@ -5,6 +5,7 @@ on: paths: - '*.json' - 'readme.html' + - 'manual_readme_content.md' tags-ignore: - '**' branches-ignore: From 235727b283871511e35a52ac1b77bce20758fa85 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Fri, 14 Jul 2023 14:32:11 -0700 Subject: [PATCH 05/34] Remove semgrep workflow file --- .github/workflows/semgrep.yml | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 .github/workflows/semgrep.yml diff --git a/.github/workflows/semgrep.yml b/.github/workflows/semgrep.yml deleted file mode 100644 index 712cc1b..0000000 --- a/.github/workflows/semgrep.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Semgrep -on: - pull_request_target: - branches: - - next - - main - push: - branches: - - next - - main -jobs: - semgrep: - runs-on: ubuntu-latest - steps: - - if: github.event_name == 'push' - run: | - echo "REPOSITORY=${{ github.repository }}" >> $GITHUB_ENV - echo "REF=${{ github.REF }}" >> $GITHUB_ENV - - if: github.event_name == 'pull_request_target' - run: | - echo "REPOSITORY=${{ github.event.pull_request.head.repo.full_name }}" >> $GITHUB_ENV - echo "REF=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV - - uses: 'phantomcyber/dev-cicd-tools/github-actions/semgrep@main' - with: - SEMGREP_DEPLOYMENT_ID: ${{ secrets.SEMGREP_DEPLOYMENT_ID }} - SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} - REPOSITORY: ${{ github.repository }} - REF: ${{ github.ref }} From 9e15488c11d06f5dc3b2012c2f0f87a8e32651b2 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Tue, 1 Aug 2023 12:47:28 -0700 Subject: [PATCH 06/34] 'convert readme.html to manual_readme_content.md' --- manual_readme_content.md | 281 +++++++++++++++++++++++++ readme.html | 440 --------------------------------------- 2 files changed, 281 insertions(+), 440 deletions(-) create mode 100644 manual_readme_content.md delete mode 100644 readme.html diff --git a/manual_readme_content.md b/manual_readme_content.md new file mode 100644 index 0000000..279d082 --- /dev/null +++ b/manual_readme_content.md @@ -0,0 +1,281 @@ +[comment]: # " File: README.md" +[comment]: # " Copyright (c) 2016-2022 Splunk Inc." +[comment]: # "" +[comment]: # "Licensed under the Apache License, Version 2.0 (the 'License');" +[comment]: # "you may not use this file except in compliance with the License." +[comment]: # "You may obtain a copy of the License at" +[comment]: # "" +[comment]: # " http://www.apache.org/licenses/LICENSE-2.0" +[comment]: # "" +[comment]: # "Unless required by applicable law or agreed to in writing, software distributed under" +[comment]: # "the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND," +[comment]: # "either express or implied. See the License for the specific language governing permissions" +[comment]: # "and limitations under the License." +[comment]: # "" +**Playbook Backward Compatibility** + +- New action parameters have been added to the actions given below. Hence, it is requested to the + end-user please update their existing playbooks and provide values to these new action + parameters to ensure the correct functioning of the playbooks created on the earlier versions of + the app. + + + + - **For version 3.4.X :** + + + + - Import domain observable - **source** parameter has been added + - Import URL observable - **source, allow_unresolved** parameters have been added + - Import IP observable - **source** parameter has been added + - Import file observable - **source** parameter has been added + - Import email observable - **source** parameter has been added + - Detonate file - **use_premium_sandbox, use_vmray_sandbox, vmray_max_jobs, fields** + parameters have been added + - Detonate URL - **use_premium_sandbox, use_vmray_sandbox, vmray_max_jobs, fields** + parameters have been added + + - **For version 3.0.X :** + + + + - Import domain observable - **with_approval, allow_unresolved** parameters have been + added + - Import URL observable - **with_approval** parameter has been added + - Import IP observable - **with_approval** parameter has been added + - Import file observable - **with_approval** parameter has been added + - Import email observable - **with_approval** parameter has been added + - Import observables - **with_approval, allow_unresolved** parameters have been added + - List threat models - **publication_status** parameter has been added + + - **For version 2.0.9 :** + + + + - Create Incident - **create_on_cloud** parameter has been added + - Import domain observable - **create_on_cloud** parameter has been added + - Import URL observable - **create_on_cloud** parameter has been added + - Import IP observable - **create_on_cloud** parameter has been added + - Import file observable - **create_on_cloud** parameter has been added + - Import email observable - **create_on_cloud** parameter has been added + - Import observables - **create_on_cloud** parameter has been added + +**Asset Configuration Parameters** + +- **is_cloud_instance** - This boolean parameter is used to indicate whether the Anomali + Threatstream instance is on the cloud. If the parameter is left unchecked, the app and its + functionalities will internally consider it as an on-prem instance. + +**Prerequisite for \[Delete Incident / Delete Actor / Delete Vulnerability / Delete Rule / Delete +Threat Bulletin\] actions** + +- The authenticated user in the app should have appropriate permissions (Organization Admin) for + deleting the incidents/actors/vulnerabilities/rules/threat-bulletins on the Anomali Threatstream + instance for these actions to be executed successfully. + +**Behavior for \[Whois IP\] action** + +- If the action can fetch additional whois data for the provided IP then, the action will pass + successfully with that additional data. +- If the action is unable to fetch additional whois data for the provided IP then, the action will + pass successfully without that additional data but with an appropriate message. + +**Behavior for Domain Reputation** + +- The action will try to find an intelligence with the same name provided in the \[domain\] + parameter in the Anomali ThreatStream instance. If it is not found, then 'None' will be + displayed under the corresponding columns in the output view. +- If the provided domain is not found as intelligence in the Anomali ThreatStream instance, then + the user needs to import a domain observable with the provided domain as input and then try to + re-run the \[domain reputation\] action. + +**On Poll Functionality** + +- It fetches the incidents (belonging to the configured organization ID in the configuration + parameters) and their intelligence data to ingest them as containers and artifacts. + +- Approaches for fetching incidents based on the **Ingest only incidents marked published** + configuration parameter + + + + - Parameter kept unchecked: Ingesting all the incidents irrespective of their publication + status + - Parameter kept checked: Ingesting the incidents which are only in the published state + +- Types of polling + + + + - Manual Polling + + + + - All the incidents are fetched, controlled by the count mentioned in the container_count + parameter in the oldest first order based on the **modified_ts** value of the incidents + irrespective of the incidents fetched in the last run. If the user tries to run the + manual polling again with a value less than the already ingested incidents, then, again + the same incidents will be fetched starting from the oldest first and will be marked as + duplicates. It is recommended to run manual polling using a relatively greater value in + the container_count parameter to ensure all the incidents are ingested. + - The **modified_ts** time of the last fetched incident is not considered for consequent + runs of the manual polling. + + - Scheduled | Interval Polling + + + + - Same functionality as manual polling along with the additional points mentioned below: + + + + - **The maximum number of incidents to poll in the first run of the scheduled + polling** configuration parameter governs the number of incidents fetched in the + first run. + - The **modified_ts** time of the last fetched incident is stored in the + **last_incident_time** key of the state file. + - For the consecutive runs, the incidents are fetched starting from the time stored in + the **last_incident_time** key of the state file. + - Please provide a larger value in the **Maximum number of incidents to poll in the + first run of the scheduled polling** configuration parameter to fetch all the + existing (older) incidents in the first run itself. From the consecutive runs, the + newly created or the modified incidents will be automatically ingested. + +**Behavior for \[Create vulnerability / Update vulnerability / Create actor / Update Actor / Create +threat bulletin / Update threat bulletin\] actions** + +- Trusted circles are not available locally on On-prem (Hybrid) instance. + +**Behavior for \[Create vulnerability / Update vulnerability / Create actor / Update Actor / Create +threat bulletin / Update threat bulletin / Create incident / Update incident\] actions** + +- The action uses different API endpoints for creating / updating an entity and associating + intelligence, attachments, import sessions or comments to the entity. +- If the action fails to associate the intelligence, attachments, import sessions or comments + while creating an entity, the user can associate them by running the Update action with valid + inputs. + +**Confidence action parameter for import observable related actions** + +- For \[import file observable\] and \[import email observable\] actions user has to provide the + confidence value in \[confidence\] action parameter. + +- For \[import domain observable\], \[import ip observable\], and \[import url observable\] + actions ThreatStream automatically gives the confidence value based on some internal logical + operations | processes as per the API documentation. + +- For \[import observable\] action user can provide confidence value in 'fields' parameter as + {"confidence": \}. + + + + - For hash and email type of observable, the value of the confidence will be reflected. + - For domain, IP, and URL type of observable, the value of the confidence will be ignored. + +**Behavior of import\_\\_observable and the import_observables actions** + +- The action run just sends a request for importing the observable value to the Anomali server. + +- The action run is a success if a response of **202 Accepted** is returned by the Anomali API. + The action does not wait for the observable to reflect on the Anomali UI. + +- The successful run of the actions does not guarantee the successful import of the observable on + the Anomali server + + + + - If the provided parameters and their expected combinations are correct, then the observable + will be successfully imported after an indefinite interval of time (based on the Anomali + server). + - If the provided parameters and their combinations are incorrect, then the action run would + be a success (because the API does not return an error response for this and accepts the + request) though the observable is not imported on the Anomali server. + +- It is recommended to add a required time delay between the action blocks which are dependent on + the successful import of an observable. + +- To check if the observable was successfully imported, the user can run and check the **List + Observables** action which fetches the observables in the latest first order (based on + **created_ts** time). + +**List of indicator types (itype) for the import\_\\_observable and the +import_observables actions (To be given as input when with_approval parameter is set to False)** + +| actor_ip | actor_ipv6 | adware_domain | adware_registry_key | +|-------------------------|----------------------|-------------------------|-----------------------------| +| anon_proxy | anon_proxy_ipv6 | anon_vpn | anon_vpn_ipv6 | +| apt_domain | apt_email | apt_file_name | apt_file_path | +| apt_ip | apt_ipv6 | apt_md5 | apt_mta | +| apt_mutex | apt_registry_key | apt_service_description | apt_service_displayname | +| apt_service_name | apt_ssdeep | apt_subject | apt_ua | +| apt_url | bot_ip | bot_ipv6 | brute_ip | +| brute_ipv6 | c2_domain | c2_ip | c2_ipv6 | +| c2_url | comm_proxy_domain | comm_proxy_ip | compromised_domain | +| compromised_email | compromised_ip | compromised_ipv6 | compromised_service_account | +| compromised_url | crypto_hash | crypto_ip | crypto_pool | +| crypto_url | crypto_wallet | ddos_ip | ddos_ipv6 | +| disposable_email_domain | dyn_dns | exfil_domain | exfil_ip | +| exfil_ipv6 | exfil_url | exploit_domain | exploit_ip | +| exploit_ipv6 | exploit_url | fraud_domain | fraud_ip | +| fraud_md5 | fraud_email | fraud_url | free_email_domain | +| geolocation_url | hack_tool | i2p_ip | i2p_ipv6 | +| ipcheck_url | mal_domain | mal_email | mal_file_name | +| mal_file_path | mal_ip | mal_ipv6 | mal_md5 | +| mal_mutex | mal_registry_key | mal_service_description | mal_service_displayname | +| mal_service_name | mal_ssdeep | mal_sslcert_sh1 | mal_ua | +| mal_url | p2pcnc | p2pcnc_ipv6 | parked_domain | +| parked_ip | parked_ipv6 | parked_url | pastesite_url | +| phish_domain | phish_email | phish_ip | phish_ipv6 | +| phish_md5 | phish_url | proxy_ip | proxy_ipv6 | +| scan_ip | scan_ipv6 | sinkhole_domain | sinkhole_ip | +| sinkhole_ipv6 | social_media_url | spam_domain | spam_email | +| spam_ip | spam_ipv6 | spam_mta | spam_url | +| speedtest_url | ssh_ip | ssh_ipv6 | ssl_cert_serial_number | +| suppress | suspicious_domain | suspicious_email | suspicious_ip | +| suspicious_reg_email | suspicious_url | tor_ip | tor_ipv6 | +| torrent_tracker_url | vpn_domain | vps_ip | vps_ipv6 | +| whois_bulk_reg_email | whois_privacy_domain | whois_privacy_email | | + +**NOTE:** If the input contains any indicator_type value except the ones listed above, the action +will behave according to the API behavior. + +**List of threat types (threat_type) for the import\_\\_observable and the +import_observables actions (To be given as input when with_approval parameter is set to True)** + +| adware | anomalous | anonymization | apt | +|--------|---------------|---------------|-------------| +| bot | brute | c2 | compromised | +| crypto | data_leakage | ddos | dyn_dns | +| exfil | exploit | fraud | hack_tool | +| i2p | informational | malware | p2p | +| parked | phish | scan | sinkhole | +| spam | suppress | suspicious | tor | +| vps | | | | + +**NOTE:** If the input contains any threat_type value except the ones listed above, the action will +behave according to the API behavior. + +## Port Information + +The app uses HTTP/HTTPS protocol for communicating with the ThreatStream Server. Below are the +default ports used by Splunk SOAR. + +| Service Name | Transport Protocol | Port | +|--------------|--------------------|------| +| http | tcp | 80 | +| https | tcp | 443 | + +## ipwhois + +This app uses the ipwhois module, which is licensed under the BSD License, Copyright (c) 2013-2019 +Philip Hane. + +## wizard-whois + +This app uses the wizard-whois module, which is licensed under the MIT License, Copyright (c) +Michael Ramsey. + +## dnspython + +This app uses the dns module, which is licensed under the Freeware (BSD-like) License, Copyright (c) +2018 Bob Halley. diff --git a/readme.html b/readme.html deleted file mode 100644 index 7bcc055..0000000 --- a/readme.html +++ /dev/null @@ -1,440 +0,0 @@ - - -

Playbook Backward Compatibility -

    -
  • New action parameters have been added to the actions given below. Hence, it is requested to the end-user please update their existing playbooks and provide values to these new action parameters to ensure the correct functioning of the playbooks created on the earlier versions of the app.
  • -
      -
    • For version 3.4.X :
    • -
        -
      • Import domain observable - source parameter has been added
      • -
      • Import URL observable - source, allow_unresolved parameters have been added
      • -
      • Import IP observable - source parameter has been added
      • -
      • Import file observable - source parameter has been added
      • -
      • Import email observable - source parameter has been added
      • -
      • Detonate file - use_premium_sandbox, use_vmray_sandbox, vmray_max_jobs, fields parameters have been added
      • -
      • Detonate URL - use_premium_sandbox, use_vmray_sandbox, vmray_max_jobs, fields parameters have been added
      • -
      -
    • For version 3.0.X :
    • -
        -
      • Import domain observable - with_approval, allow_unresolved parameters have been added
      • -
      • Import URL observable - with_approval parameter has been added
      • -
      • Import IP observable - with_approval parameter has been added
      • -
      • Import file observable - with_approval parameter has been added
      • -
      • Import email observable - with_approval parameter has been added
      • -
      • Import observables - with_approval, allow_unresolved parameters have been added
      • -
      • List threat models - publication_status parameter has been added
      • -
      -
    • For version 2.0.9 :
    • -
        -
      • Create Incident - create_on_cloud parameter has been added
      • -
      • Import domain observable - create_on_cloud parameter has been added
      • -
      • Import URL observable - create_on_cloud parameter has been added
      • -
      • Import IP observable - create_on_cloud parameter has been added
      • -
      • Import file observable - create_on_cloud parameter has been added
      • -
      • Import email observable - create_on_cloud parameter has been added
      • -
      • Import observables - create_on_cloud parameter has been added
      • -
      -
    -
-

- -

Asset Configuration Parameters -

    -
  • is_cloud_instance - This boolean parameter is used to indicate whether the Anomali Threatstream instance is on the cloud. If the parameter is left unchecked, the app and its functionalities will internally consider it as an on-prem instance.
  • -
-

- -

Prerequisite for [Delete Incident / Delete Actor / Delete Vulnerability / Delete Rule / Delete Threat Bulletin] actions -

    -
  • The authenticated user in the app should have appropriate permissions (Organization Admin) for deleting the incidents/actors/vulnerabilities/rules/threat-bulletins on the Anomali Threatstream instance for these actions to be executed successfully.
  • -
-

- -

Behavior for [Whois IP] action -

    -
  • If the action can fetch additional whois data for the provided IP then, the action will pass successfully with that additional data.
  • -
  • If the action is unable to fetch additional whois data for the provided IP then, the action will pass successfully without that additional data but with an appropriate message.
  • -
-

- -

Behavior for Domain Reputation -

    -
  • The action will try to find an intelligence with the same name provided in the [domain] parameter in the Anomali ThreatStream instance. If it is not found, then 'None' will be displayed under the corresponding columns in the output view.
  • -
  • If the provided domain is not found as intelligence in the Anomali ThreatStream instance, then the user needs to import a domain observable with the provided domain as input and then try to re-run the [domain reputation] action.
  • -
-

- -

On Poll Functionality -

    -
  • It fetches the incidents (belonging to the configured organization ID in the configuration parameters) and their intelligence data to ingest them as containers and artifacts.
  • -
  • Approaches for fetching incidents based on the Ingest only incidents marked published configuration parameter
  • -
      -
    • Parameter kept unchecked: Ingesting all the incidents irrespective of their publication status
    • -
    • Parameter kept checked: Ingesting the incidents which are only in the published state
    • -
    -
  • Types of polling
  • -
      -
    • Manual Polling
    • -
        -
      • All the incidents are fetched, controlled by the count mentioned in the container_count parameter in the oldest first order based on the modified_ts value of the incidents irrespective of the incidents fetched in the last run. If the user tries to run the manual polling again with a value less than the already ingested incidents, then, again the same incidents will be fetched starting from the oldest first and will be marked as duplicates. It is recommended to run manual polling using a relatively greater value in the container_count parameter to ensure all the incidents are ingested.
      • -
      • The modified_ts time of the last fetched incident is not considered for consequent runs of the manual polling.
      • -
      - -
    • Scheduled | Interval Polling
    • -
        -
      • Same functionality as manual polling along with the additional points mentioned below:
      • -
          -
        • The maximum number of incidents to poll in the first run of the scheduled polling configuration parameter governs the number of incidents fetched in the first run.
        • -
        • The modified_ts time of the last fetched incident is stored in the last_incident_time key of the state file.
        • -
        • For the consecutive runs, the incidents are fetched starting from the time stored in the last_incident_time key of the state file.
        • -
        • Please provide a larger value in the Maximum number of incidents to poll in the first run of the scheduled polling configuration parameter to fetch all the existing (older) incidents in the first run itself. From the consecutive runs, the newly created or the modified incidents will be automatically ingested.
        • -
        -
      -
    -
-

- -

Behavior for [Create vulnerability / Update vulnerability / Create actor / Update Actor / Create threat bulletin / Update threat bulletin] actions -

    -
  • Trusted circles are not available locally on On-prem (Hybrid) instance.
  • -
-

- -

Behavior for [Create vulnerability / Update vulnerability / Create actor / Update Actor / Create threat bulletin / Update threat bulletin / Create incident / Update incident] actions -

    -
  • The action uses different API endpoints for creating / updating an entity and associating intelligence, attachments, import sessions or comments to the entity.
  • -
  • If the action fails to associate the intelligence, attachments, import sessions or comments while creating an entity, the user can associate them by running the Update action with valid inputs.
  • -
-

- -

Confidence action parameter for import observable related actions -

    -
  • For [import file observable] and [import email observable] actions user has to provide the confidence value in [confidence] action parameter.
  • -
  • For [import domain observable], [import ip observable], and [import url observable] actions ThreatStream automatically gives the confidence value based on some internal logical operations | processes as per the API documentation.
  • -
  • For [import observable] action user can provide confidence value in 'fields' parameter as {"confidence": <confidence_value>}.
  • -
      -
    • For hash and email type of observable, the value of the confidence will be reflected.
    • -
    • For domain, IP, and URL type of observable, the value of the confidence will be ignored.
    • -
    -
-

- -

Behavior of import_<indicator_type>_observable and the import_observables actions -

    -
  • The action run just sends a request for importing the observable value to the Anomali server.
  • -
  • The action run is a success if a response of 202 Accepted is returned by the Anomali API. The action does not wait for the observable to reflect on the Anomali UI.
  • -
  • The successful run of the actions does not guarantee the successful import of the observable on the Anomali server
  • -
      -
    • If the provided parameters and their expected combinations are correct, then the observable will be successfully imported after an indefinite interval of time (based on the Anomali server).
    • -
    • If the provided parameters and their combinations are incorrect, then the action run would be a success (because the API does not return an error response for this and accepts the request) though the observable is not imported on the Anomali server.
    • -
    -
  • It is recommended to add a required time delay between the action blocks which are dependent on the successful import of an observable.
  • -
  • To check if the observable was successfully imported, the user can run and check the List Observables action which fetches the observables in the latest first order (based on created_ts time).
  • -
-

- -

- List of indicator types (itype) for the import_<indicator_type>_observable and the import_observables - actions (To be given as input when with_approval parameter is set to False) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
actor_ipactor_ipv6adware_domainadware_registry_key
anon_proxyanon_proxy_ipv6anon_vpnanon_vpn_ipv6
apt_domainapt_emailapt_file_nameapt_file_path
apt_ipapt_ipv6apt_md5apt_mta
apt_mutexapt_registry_keyapt_service_descriptionapt_service_displayname
apt_service_nameapt_ssdeepapt_subjectapt_ua
apt_urlbot_ipbot_ipv6brute_ip
brute_ipv6c2_domainc2_ipc2_ipv6
c2_urlcomm_proxy_domaincomm_proxy_ipcompromised_domain
compromised_emailcompromised_ipcompromised_ipv6compromised_service_account
compromised_urlcrypto_hashcrypto_ipcrypto_pool
crypto_urlcrypto_walletddos_ipddos_ipv6
disposable_email_domaindyn_dnsexfil_domainexfil_ip
exfil_ipv6exfil_urlexploit_domainexploit_ip
exploit_ipv6exploit_urlfraud_domainfraud_ip
fraud_md5fraud_emailfraud_urlfree_email_domain
geolocation_urlhack_tooli2p_ipi2p_ipv6
ipcheck_urlmal_domainmal_emailmal_file_name
mal_file_pathmal_ipmal_ipv6mal_md5
mal_mutexmal_registry_keymal_service_descriptionmal_service_displayname
mal_service_namemal_ssdeepmal_sslcert_sh1mal_ua
mal_urlp2pcncp2pcnc_ipv6parked_domain
parked_ipparked_ipv6parked_urlpastesite_url
phish_domainphish_emailphish_ipphish_ipv6
phish_md5phish_urlproxy_ipproxy_ipv6
scan_ipscan_ipv6sinkhole_domainsinkhole_ip
sinkhole_ipv6social_media_urlspam_domainspam_email
spam_ipspam_ipv6spam_mtaspam_url
speedtest_urlssh_ipssh_ipv6ssl_cert_serial_number
suppresssuspicious_domainsuspicious_emailsuspicious_ip
suspicious_reg_emailsuspicious_urltor_iptor_ipv6
torrent_tracker_urlvpn_domainvps_ipvps_ipv6
whois_bulk_reg_emailwhois_privacy_domainwhois_privacy_email
-NOTE: If the input contains any indicator_type value except the ones listed above, the action will behave according to the API behavior. -

- -

- List of threat types (threat_type) for the import_<indicator_type>_observable and the import_observables actions (To be given as input when with_approval parameter is set to True) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adwareanomalousanonymizationapt
botbrutec2compromised
cryptodata_leakageddosdyn_dns
exfilexploitfraudhack_tool
i2pinformationalmalwarep2p
parkedphishscansinkhole
spamsuppresssuspicioustor
vps
- NOTE: If the input contains any threat_type value except the ones listed above, the action will behave according to the API behavior. -

- -

Port Information

-

- The app uses HTTP/HTTPS protocol for communicating with the ThreatStream Server. Below are the default ports used by Splunk SOAR. - - - - - - - - - - - - - - - - -
Service NameTransport ProtocolPort
httptcp80
httpstcp443
-

- -

-

ipwhois

- This app uses the ipwhois module, which is licensed under the BSD License, Copyright (c) 2013-2019 Philip Hane. -

-

-

wizard-whois

- This app uses the wizard-whois module, which is licensed under the MIT License, Copyright (c) Michael Ramsey. -

-

-

dnspython

- This app uses the dns module, which is licensed under the Freeware (BSD-like) License, Copyright (c) 2018 Bob Halley. -

From 67e6c404ca05dc562c33b5e74f1345414b58dc1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 1 Dec 2023 09:04:52 +0100 Subject: [PATCH 07/34] removed validation for supporting custom types, mentioning default types in action description --- threatstream.json | 34 +++++++---- threatstream_connector.py | 122 +++++++++++++++++++------------------- threatstream_consts.py | 1 - 3 files changed, 84 insertions(+), 73 deletions(-) diff --git a/threatstream.json b/threatstream.json index 99967fd..6e608cc 100644 --- a/threatstream.json +++ b/threatstream.json @@ -131,6 +131,22 @@ "data_type": "boolean", "order": 4, "description": "Verify server certificate" + }, + "custom_types_str": { + "data_type": "string", + "order": 0, + "description": "Specify additional types" + }, + "custom_types": { + "data_type": "array", + "order": 0, + "items": [ + { + "data_type": "string", + "description": "type" + } + ], + "description": "Specify additional types" } }, "actions": [ @@ -8251,17 +8267,10 @@ "read_only": false, "parameters": { "observable_type": { - "description": "Type of observable to import", + "description": "Type of observable to import, default types: [ip, domain, url, email, hash]. Custom types can be provided if they are available on ThreatStream instance", "data_type": "string", "order": 0, - "required": true, - "value_list": [ - "ip", - "domain", - "url", - "email", - "hash" - ] + "required": true }, "value": { "description": "Observable value", @@ -8309,6 +8318,11 @@ "description": "Unresolved domains will be imported if set to true", "data_type": "boolean", "order": 6 + }, + "allow_custom_type": { + "description": "Allows upload of custom observable_type", + "data_type": "boolean", + "order": 6 } }, "output": [ @@ -27232,4 +27246,4 @@ } ] } -} +} \ No newline at end of file diff --git a/threatstream_connector.py b/threatstream_connector.py index b05131f..76d58ba 100644 --- a/threatstream_connector.py +++ b/threatstream_connector.py @@ -131,6 +131,9 @@ def __init__(self): self._is_cloud_instance = None self._first_run_limit = None self._data_dict = {} # Blank dict to contain data from all API calls + + def _save_action_handler_progress(self): + self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) def initialize(self): config = self.get_config() @@ -631,7 +634,7 @@ def _test_connectivity(self, param): return action_result.set_status(phantom.APP_SUCCESS, "") def _file_reputation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) value = param[THREATSTREAM_JSON_HASH] @@ -658,7 +661,7 @@ def _file_reputation(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved information on File") def _domain_reputation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) value = param[THREATSTREAM_JSON_DOMAIN] @@ -678,7 +681,7 @@ def _domain_reputation(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved information on Domain") def _ip_reputation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) value = param[THREATSTREAM_JSON_IP] @@ -694,7 +697,7 @@ def _ip_reputation(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved information on IP") def _url_reputation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) value = param[THREATSTREAM_JSON_URL] @@ -717,7 +720,7 @@ def _url_reputation(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved information on URL") def _email_reputation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -742,7 +745,7 @@ def _email_reputation(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved information on Email") def _whois_domain(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) value = param[THREATSTREAM_JSON_DOMAIN] @@ -752,7 +755,7 @@ def _whois_domain(self, param): return action_result.get_status() def _whois_ip(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) value = param[THREATSTREAM_JSON_IP] @@ -792,7 +795,7 @@ def _paginator(self, endpoint, action_result, payload=None, offset=0, limit=None return items_list def _handle_list_observables(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, limit = self._validate_integer(action_result, param.get("limit", 1000), THREATSTREAM_LIMIT) @@ -816,7 +819,7 @@ def _handle_list_observables(self, param): return action_result.set_status(phantom.APP_SUCCESS) def _handle_list_vulnerabilities(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, limit = self._validate_integer(action_result, param.get("limit", 1000), THREATSTREAM_LIMIT) @@ -838,7 +841,7 @@ def _handle_list_vulnerabilities(self, param): return action_result.set_status(phantom.APP_SUCCESS) def _handle_list_incidents(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, limit = self._validate_integer(action_result, param.get("limit", 1000), THREATSTREAM_LIMIT) @@ -941,7 +944,7 @@ def _get_threat_model_support(self, action_result, endpoint): return phantom.APP_SUCCESS, resp_json def _handle_get_incident(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, resp_json = self._get_incident_support(action_result, param) @@ -953,7 +956,7 @@ def _handle_get_incident(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved incident") def _handle_get_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, intelligence_id = self._validate_integer(action_result, param["intelligence_id"], THREATSTREAM_INTELLIGENCE_ID) @@ -974,7 +977,7 @@ def _handle_get_observable(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved observable") def _handle_get_vulnerability(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, vulnerability_id = self._validate_integer(action_result, param["vulnerability_id"], THREATSTREAM_VULNERABILITY_ID) @@ -1000,7 +1003,7 @@ def _handle_get_vulnerability(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved vulnerability") def _handle_delete_incident(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, incident_id = self._validate_integer(action_result, param["incident_id"], THREATSTREAM_INCIDENT_ID) @@ -1029,7 +1032,7 @@ def _handle_delete_incident(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully deleted incident") def _handle_create_incident(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) create_on_cloud = param.get("create_on_cloud", False) @@ -1169,7 +1172,7 @@ def _handle_create_incident(self, param): return action_result.set_status(phantom.APP_SUCCESS, message) def _handle_update_incident(self, param): # noqa - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) message = None @@ -1418,7 +1421,7 @@ def _create_intelligence(self, action_result, intelligence): return intel def _handle_run_query(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) payload = self._generate_payload() @@ -1506,11 +1509,6 @@ def import_support(self, param, action_result): # noqa ) if not with_approval: observable_type = param["observable_type"] - if observable_type not in THREATSTREAM_OBSERVABLE_TYPE: - return action_result.set_status( - phantom.APP_ERROR, - THREATSTREAM_INVALID_SELECTION.format("observable type", ", ".join(THREATSTREAM_OBSERVABLE_TYPE)) - ) key = "itype" endpoint = ENDPOINT_IMPORT_IOC method = "patch" @@ -1712,7 +1710,7 @@ def import_support(self, param, action_result): # noqa return action_result.set_status(phantom.APP_SUCCESS, "Successfully sent the request for importing the observable") def _handle_import_email_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) self.debug_print("Calling generic method import_support to import the email observables") @@ -1720,7 +1718,7 @@ def _handle_import_email_observable(self, param): return action_result.get_status() def _handle_import_file_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) self.debug_print("Calling generic method import_support to import the file observables") @@ -1728,7 +1726,7 @@ def _handle_import_file_observable(self, param): return action_result.get_status() def _handle_import_ip_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) self.debug_print("Calling generic method import_support to import the IP observables") @@ -1736,7 +1734,7 @@ def _handle_import_ip_observable(self, param): return action_result.get_status() def _handle_import_url_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) self.debug_print("Calling generic method import_support to import the URL observables") @@ -1744,7 +1742,7 @@ def _handle_import_url_observable(self, param): return action_result.get_status() def _handle_import_domain_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) self.debug_print("Calling generic method import_support to import the domain observables") @@ -1752,7 +1750,7 @@ def _handle_import_domain_observable(self, param): return action_result.get_status() def _handle_import_observables(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) self.debug_print("Calling generic method import_support to import the IOC observables") @@ -1760,7 +1758,7 @@ def _handle_import_observables(self, param): return action_result.get_status() def _handle_tag_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) config = self.get_config() @@ -1815,7 +1813,7 @@ def _handle_tag_observable(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully tagged observable") def _handle_get_status(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) payload = self._generate_payload() @@ -1829,7 +1827,7 @@ def _handle_get_status(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved detonation status") def _handle_get_report(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) payload = self._generate_payload() @@ -1868,7 +1866,7 @@ def _build_data_detonate_actions(self, action_result, data, param): return data def _handle_detonate_file(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -1953,7 +1951,7 @@ def _handle_detonate_file(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully detonated file") def _handle_detonate_url(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -2011,7 +2009,7 @@ def _handle_detonate_url(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully detonated URL") def _handle_get_pcap(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -2340,7 +2338,7 @@ def _handle_on_poll(self, param): # noqa return action_result.set_status(phantom.APP_SUCCESS, "Successfully retrieved and ingested the list of incidents") def _handle_import_session_search(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -2378,7 +2376,7 @@ def _handle_import_session_search(self, param): return phantom.APP_SUCCESS def _handle_import_session_update(self, param): # noqa - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -2548,7 +2546,7 @@ def _handle_import_session_update(self, param): # noqa return action_result.set_status(phantom.APP_SUCCESS, ". ".join(messages)) def _handle_threat_model_search(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) ret_val, limit = self._validate_integer(action_result, param.get("limit", 1000), THREATSTREAM_LIMIT) @@ -2642,7 +2640,7 @@ def _build_threatbulletin_data(self, param, data): return data def _handle_create_threat_bulletin(self, param): # noqa - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) comments = param.get('comments') @@ -2835,7 +2833,7 @@ def _handle_create_threat_bulletin(self, param): # noqa return action_result.set_status(phantom.APP_SUCCESS, message) def _handle_update_threat_bulletin(self, param): # noqa - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3064,7 +3062,7 @@ def _handle_update_threat_bulletin(self, param): # noqa return action_result.set_status(phantom.APP_SUCCESS, "Successfully updated threat bulletin") def _handle_delete_threat_bulletin(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3097,7 +3095,7 @@ def _handle_delete_threat_bulletin(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully deleted threat bulletin") def _handle_list_threat_bulletins(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3144,7 +3142,7 @@ def _handle_list_threat_bulletins(self, param): return action_result.set_status(phantom.APP_SUCCESS) def _handle_list_associations(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3315,13 +3313,13 @@ def _handle_association(self, param, endpoint): # noqa return action_result.set_status(phantom.APP_SUCCESS, "Successfully updated associations") def _handle_add_association(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() endpoint = ENDPOINT_ADD_ASSOCIATION return self._handle_association(param, endpoint) def _handle_remove_association(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() endpoint = ENDPOINT_REMOVE_ASSOCIATION return self._handle_association(param, endpoint) @@ -3427,7 +3425,7 @@ def _get_rule_support(self, action_result, param=None, payload=None, rule_id=Non return phantom.APP_SUCCESS, resp_json def _handle_create_rule(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) create_on_cloud = param.get("create_on_cloud", False) @@ -3486,7 +3484,7 @@ def _handle_create_rule(self, param): return action_result.set_status(phantom.APP_SUCCESS, message) def _handle_update_rule(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3528,7 +3526,7 @@ def _handle_update_rule(self, param): return action_result.set_status(phantom.APP_SUCCESS, message) def _handle_list_rules(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3552,7 +3550,7 @@ def _handle_list_rules(self, param): return action_result.set_status(phantom.APP_SUCCESS) def _handle_delete_rule(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3585,7 +3583,7 @@ def _handle_delete_rule(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully deleted rule") def _handle_list_actors(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3607,7 +3605,7 @@ def _handle_list_actors(self, param): summary['actors_returned'] = action_result.get_data_size() def _handle_delete_actor(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -3640,7 +3638,7 @@ def _handle_delete_actor(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully deleted actor") def _handle_list_imports(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4221,7 +4219,7 @@ def _update_threat_model(self, action_result, param, endpoint, entity_type, enti return action_result.set_status(phantom.APP_SUCCESS, "Successfully updated {}".format(entity_type)) def _handle_create_vulnerability(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4229,7 +4227,7 @@ def _handle_create_vulnerability(self, param): return action_result.get_status() def _handle_update_vulnerability(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4242,7 +4240,7 @@ def _handle_update_vulnerability(self, param): return action_result.get_status() def _handle_delete_vulnerability(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4278,7 +4276,7 @@ def _handle_delete_vulnerability(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully deleted vulnerability") def _handle_create_actor(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4286,7 +4284,7 @@ def _handle_create_actor(self, param): return action_result.get_status() def _handle_update_actor(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4298,7 +4296,7 @@ def _handle_update_actor(self, param): return action_result.get_status() def _handle_update_observable(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4376,7 +4374,7 @@ def _handle_update_observable(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Successfully updated observable") def _handle_create_investigation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4421,7 +4419,7 @@ def _handle_create_investigation(self, param): return action_result.set_status(phantom.APP_SUCCESS, 'Successfully created investigation') def _handle_list_investigations(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4444,7 +4442,7 @@ def _handle_list_investigations(self, param): return action_result.set_status(phantom.APP_SUCCESS) def _handle_get_investigation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) payload = self._generate_payload() @@ -4473,7 +4471,7 @@ def _handle_get_investigation(self, param): return action_result.set_status(phantom.APP_SUCCESS, 'Successfully retrieved investigation') def _handle_update_investigation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) @@ -4512,7 +4510,7 @@ def _handle_update_investigation(self, param): return action_result.set_status(phantom.APP_SUCCESS, 'Successfully updated investigation') def _handle_delete_investigation(self, param): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self._save_action_handler_progress() action_result = self.add_action_result(ActionResult(dict(param))) diff --git a/threatstream_consts.py b/threatstream_consts.py index c7f57d5..6ea0134 100644 --- a/threatstream_consts.py +++ b/threatstream_consts.py @@ -79,7 +79,6 @@ THREATSTREAM_BODY_CONTENT_TYPE = ["markdown", "richtext"] THREATSTREAM_STATUS = ["Approved", "Ready To Review", "Errors", "Rejected", "Processing"] THREATSTREAM_PRIORITY = ["very low", "low", "medium", "high", "very high"] -THREATSTREAM_OBSERVABLE_TYPE = ["ip", "domain", "url", "email", "hash"] # Error and status messages THREATSTREAM_INVALID_SELECTION = "Invalid '{0}' entered. Must be one of: {1}" From 35e1ed015ed0680067482854c264be53c40f0b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 1 Dec 2023 09:05:45 +0100 Subject: [PATCH 08/34] Updated version and licesning --- threatstream.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/threatstream.json b/threatstream.json index 6e608cc..ca38461 100644 --- a/threatstream.json +++ b/threatstream.json @@ -5,7 +5,7 @@ "publisher": "Splunk", "type": "threat intel", "main_module": "threatstream_connector.py", - "app_version": "3.5.0", + "app_version": "3.5.1", "latest_tested_versions": [ "On-premise v4.0 RED", "Cloud, 26 September 2022" @@ -20,7 +20,7 @@ "python_version": "3", "min_phantom_version": "5.3.3", "fips_compliant": true, - "license": "Copyright (c) 2016-2022 Splunk Inc.", + "license": "Copyright (c) 2016-2023 Splunk Inc.", "pip_dependencies": { "wheel": [ { From 58cabeee12cdcde4b2264d44eacb2ae2200e42ef Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Fri, 1 Dec 2023 08:06:31 +0000 Subject: [PATCH 09/34] Update README.md --- README.md | 7662 +++++++++++++++++++++++++++-------------------------- 1 file changed, 3926 insertions(+), 3736 deletions(-) diff --git a/README.md b/README.md index de33554..2d99357 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ # ThreatStream Publisher: Splunk -Connector Version: 3\.5\.0 +Connector Version: 3.5.1 Product Vendor: Anomali Product Name: ThreatStream -Product Version Supported (regex): "\.\*" -Minimum Product Version: 5\.3\.3 +Product Version Supported (regex): ".\*" +Minimum Product Version: 5.3.3 Integrates a variety of generic, reputation, and investigative actions from the Anomali ThreatStream threat intelligence platform @@ -133,7 +133,7 @@ Threat Bulletin\] actions** - The **modified_ts** time of the last fetched incident is not considered for consequent runs of the manual polling. - - Scheduled \| Interval Polling + - Scheduled | Interval Polling @@ -174,7 +174,7 @@ threat bulletin / Update threat bulletin / Create incident / Update incident\] a - For \[import domain observable\], \[import ip observable\], and \[import url observable\] actions ThreatStream automatically gives the confidence value based on some internal logical - operations \| processes as per the API documentation. + operations | processes as per the API documentation. - For \[import observable\] action user can provide confidence value in 'fields' parameter as {"confidence": \}. @@ -299,13 +299,15 @@ The below configuration variables are required for this Connector to operate. T VARIABLE | REQUIRED | TYPE | DESCRIPTION -------- | -------- | ---- | ----------- **hostname** | required | string | Host Name -**organization\_id** | optional | numeric | Organization ID for filtering incidents when polling +**organization_id** | optional | numeric | Organization ID for filtering incidents when polling **username** | required | string | User name -**api\_key** | required | password | API Key -**first\_run\_containers** | optional | numeric | Maximum number of incidents to poll in the first run of the scheduled polling -**ingest\_only\_published\_incidents** | optional | boolean | Ingest only incidents marked as published -**is\_cloud\_instance** | optional | boolean | Is the provided instance in hostname parameter cloud? -**verify\_server\_cert** | optional | boolean | Verify server certificate +**api_key** | required | password | API Key +**first_run_containers** | optional | numeric | Maximum number of incidents to poll in the first run of the scheduled polling +**ingest_only_published_incidents** | optional | boolean | Ingest only incidents marked as published +**is_cloud_instance** | optional | boolean | Is the provided instance in hostname parameter cloud? +**verify_server_cert** | optional | boolean | Verify server certificate +**custom_types_str** | optional | string | Specify additional types +**custom_types** | optional | array | Specify additional types ### Supported Actions [test connectivity](#action-test-connectivity) - Test connectivity to ThreatStream by querying the intelligence endpoint @@ -337,7 +339,7 @@ VARIABLE | REQUIRED | TYPE | DESCRIPTION [detonate url](#action-detonate-url) - Detonate URL in ThreatStream [get status](#action-get-status) - Retrieve detonation status present in Threatstream [get report](#action-get-report) - Retrieve detonation report present in Threatstream -[on poll](#action-on-poll) - Callback action for the on\_poll ingest functionality +[on poll](#action-on-poll) - Callback action for the on_poll ingest functionality [run query](#action-run-query) - Run observables query in ThreatStream [list import sessions](#action-list-import-sessions) - List all the import sessions [update import session](#action-update-import-session) - This action updates the fields of the provided item id @@ -386,70 +388,70 @@ Get information about a file Type: **investigate** Read only: **True** -If nothing is found, this is because ThreatStream has no information on that file\. If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\. +If nothing is found, this is because ThreatStream has no information on that file. If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **hash** | required | Hash of file | string | `sha1` `sha256` `md5` `hash` **limit** | optional | Total number of observables to return | numeric | -**extend\_source** | optional | Fetch extra data from Anomali server if available | boolean | +**extend_source** | optional | Fetch extra data from Anomali server if available | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.extend\_source | boolean | -action\_result\.parameter\.hash | string | `sha1` `sha256` `md5` `hash` -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.extended\_source | string | -action\_result\.data\.\*\.external\_references\.VirusTotal | string | -action\_result\.data\.\*\.external\_references\.remote\_api | boolean | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `md5` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.extend_source | boolean | | True False +action_result.parameter.hash | string | `sha1` `sha256` `md5` `hash` | 9bfc3649f7e6067764ce8ef18e8bfbb837bc68f2dd83e37daa05477c604492b2 +action_result.parameter.limit | numeric | | 1000 +action_result.data.\*.asn | string | | +action_result.data.\*.confidence | numeric | | +action_result.data.\*.country | string | | +action_result.data.\*.created_ts | string | | +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | +action_result.data.\*.extended_source | string | | +action_result.data.\*.external_references.VirusTotal | string | | +action_result.data.\*.external_references.remote_api | boolean | | True False +action_result.data.\*.feed_id | numeric | | +action_result.data.\*.id | numeric | `threatstream intelligence id` | +action_result.data.\*.import_session_id | string | | +action_result.data.\*.ip | string | `ip` | +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_public | boolean | | +action_result.data.\*.itype | string | | +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail2 | string | | +action_result.data.\*.meta.severity | string | | +action_result.data.\*.modified_ts | string | | +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | `threatstream organization id` | +action_result.data.\*.rdns | string | | +action_result.data.\*.resource_uri | string | | +action_result.data.\*.retina_confidence | numeric | | +action_result.data.\*.source | string | | +action_result.data.\*.source_reported_confidence | numeric | | +action_result.data.\*.status | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | +action_result.data.\*.tags.\*.name | string | | +action_result.data.\*.tags.\*.org_id | string | | +action_result.data.\*.tags.\*.source_user | string | | +action_result.data.\*.tags.\*.source_user_id | string | | +action_result.data.\*.threat_type | string | | +action_result.data.\*.threatscore | numeric | | +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | md5 +action_result.data.\*.update_id | numeric | | +action_result.data.\*.uuid | string | | 4cf3228b-0de4-45f0-a66d-255b6ff32eaa +action_result.data.\*.value | string | `md5` | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved information on File +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'domain reputation' Get information about a given domain @@ -457,80 +459,80 @@ Get information about a given domain Type: **investigate** Read only: **True** -If nothing is found, this may be due to the format of the domain\. Try excluding any subdomains \(namely www\)\. If there is still no information found, then it is because ThreatStream has no information on that domain\. ThreatStream, however, may still have Passive DNS \(PDNS\) information on it, which can be found in extra data\. If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
Extra data includes PDNS, insights, and external resources\. By default, extra data is not included in the response\. You can update the flag params to include the extra data\. The search\_exact\_value parameter searches for the exact domain on ThreatStream server\. If this parameter is kept true, then the extend\_source parameter will be ignored and no extra information will be available\. +If nothing is found, this may be due to the format of the domain. Try excluding any subdomains (namely www). If there is still no information found, then it is because ThreatStream has no information on that domain. ThreatStream, however, may still have Passive DNS (PDNS) information on it, which can be found in extra data. If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
Extra data includes PDNS, insights, and external resources. By default, extra data is not included in the response. You can update the flag params to include the extra data. The search_exact_value parameter searches for the exact domain on ThreatStream server. If this parameter is kept true, then the extend_source parameter will be ignored and no extra information will be available. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **domain** | required | Domain to investigate | string | `domain` `url` **limit** | optional | Total number of observables to return | numeric | -**extend\_source** | optional | Fetch extra data from Anomali server if available | boolean | +**extend_source** | optional | Fetch extra data from Anomali server if available | boolean | **pdns** | optional | If enabled, pdns will also be fetched | boolean | **insights** | optional | If enabled, insights will also be fetched | boolean | -**external\_references** | optional | If enabled, external references will also be fetched | boolean | -**search\_exact\_value** | optional | Search for the exact domain | boolean | +**external_references** | optional | If enabled, external references will also be fetched | boolean | +**search_exact_value** | optional | Search for the exact domain | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.domain | string | `domain` `url` -action\_result\.parameter\.extend\_source | boolean | -action\_result\.parameter\.external\_references | boolean | -action\_result\.parameter\.insights | boolean | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.pdns | boolean | -action\_result\.parameter\.search\_exact\_value | boolean | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.extended\_source | string | -action\_result\.data\.\*\.external\_references\.Google Safe Browsing | string | -action\_result\.data\.\*\.external\_references\.URLVoid | string | -action\_result\.data\.\*\.external\_references\.VirusTotal | string | -action\_result\.data\.\*\.external\_references\.Web of Trust | string | -action\_result\.data\.\*\.external\_references\.urlscan\.io | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `domain` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.domain | string | `domain` `url` | test.com +action_result.parameter.extend_source | boolean | | True False +action_result.parameter.external_references | boolean | | True False +action_result.parameter.insights | boolean | | True False +action_result.parameter.limit | numeric | | +action_result.parameter.pdns | boolean | | True False +action_result.parameter.search_exact_value | boolean | | True False +action_result.data.\*.asn | string | | +action_result.data.\*.confidence | numeric | | +action_result.data.\*.country | string | | +action_result.data.\*.created_ts | string | | +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | +action_result.data.\*.extended_source | string | | +action_result.data.\*.external_references.Google Safe Browsing | string | | +action_result.data.\*.external_references.URLVoid | string | | +action_result.data.\*.external_references.VirusTotal | string | | +action_result.data.\*.external_references.Web of Trust | string | | +action_result.data.\*.external_references.urlscan.io | string | | https://test.io/domain/uponvoice.net +action_result.data.\*.feed_id | numeric | | +action_result.data.\*.id | numeric | `threatstream intelligence id` | +action_result.data.\*.import_session_id | string | | +action_result.data.\*.ip | string | `ip` | +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_public | boolean | | +action_result.data.\*.itype | string | | +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail2 | string | | +action_result.data.\*.meta.severity | string | | +action_result.data.\*.modified_ts | string | | +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | `threatstream organization id` | +action_result.data.\*.rdns | string | | +action_result.data.\*.resource_uri | string | | +action_result.data.\*.retina_confidence | numeric | | +action_result.data.\*.source | string | | +action_result.data.\*.source_reported_confidence | numeric | | +action_result.data.\*.status | string | | +action_result.data.\*.tags.\*.id | string | | +action_result.data.\*.tags.\*.name | string | | +action_result.data.\*.tags.\*.org_id | string | | +action_result.data.\*.tags.\*.source_user | string | | +action_result.data.\*.tags.\*.source_user_id | string | | +action_result.data.\*.threat_type | string | | +action_result.data.\*.threatscore | numeric | | +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | domain +action_result.data.\*.update_id | numeric | | +action_result.data.\*.uuid | string | | 4cf3228b-0de4-45f0-a66d-255b6ff32eaa +action_result.data.\*.value | string | `domain` | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved information on Domain +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'ip reputation' Get information about a given IP @@ -538,90 +540,90 @@ Get information about a given IP Type: **investigate** Read only: **True** -If nothing is found, then it is because ThreatStream has no information on that IP\. ThreatStream, however, may still have Passive DNS \(PDNS\) information on it, which can be found in extra data\. If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
Extra data includes PDNS, insights, and external resources\. By default, extra data is not included in the response\. You can update the flag params to include the extra data\. +If nothing is found, then it is because ThreatStream has no information on that IP. ThreatStream, however, may still have Passive DNS (PDNS) information on it, which can be found in extra data. If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
Extra data includes PDNS, insights, and external resources. By default, extra data is not included in the response. You can update the flag params to include the extra data. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **ip** | required | IP to investigate | string | `ip` `ipv6` **limit** | optional | Total number of observables to return | numeric | -**extend\_source** | optional | Fetch extra data from Anomali server if available | boolean | +**extend_source** | optional | Fetch extra data from Anomali server if available | boolean | **pdns** | optional | If enabled, pdns will also be fetched | boolean | **insights** | optional | If enabled, insights will also be fetched | boolean | -**external\_references** | optional | If enabled, external references will also be fetched | boolean | +**external_references** | optional | If enabled, external references will also be fetched | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.extend\_source | boolean | -action\_result\.parameter\.external\_references | boolean | -action\_result\.parameter\.insights | boolean | -action\_result\.parameter\.ip | string | `ip` `ipv6` -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.pdns | boolean | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_by | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.extended\_source | string | -action\_result\.data\.\*\.external\_references\.Google Safe Browsing | string | -action\_result\.data\.\*\.external\_references\.IPVoid | string | -action\_result\.data\.\*\.external\_references\.Shodan | string | -action\_result\.data\.\*\.external\_references\.VirusTotal | string | -action\_result\.data\.\*\.external\_references\.remote\_api | boolean | -action\_result\.data\.\*\.external\_references\.urlscan\.io | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | numeric | -action\_result\.data\.\*\.import\_source | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.subtype | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `ip` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.extend_source | boolean | | True False +action_result.parameter.external_references | boolean | | True False +action_result.parameter.insights | boolean | | True False +action_result.parameter.ip | string | `ip` `ipv6` | 122.122.122.122 +action_result.parameter.limit | numeric | | 1000 +action_result.parameter.pdns | boolean | | True False +action_result.data.\*.asn | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.confidence | numeric | | +action_result.data.\*.country | string | | +action_result.data.\*.created_by | string | | +action_result.data.\*.created_ts | string | | +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | +action_result.data.\*.extended_source | string | | +action_result.data.\*.external_references.Google Safe Browsing | string | | +action_result.data.\*.external_references.IPVoid | string | | +action_result.data.\*.external_references.Shodan | string | | +action_result.data.\*.external_references.VirusTotal | string | | +action_result.data.\*.external_references.remote_api | boolean | | True False +action_result.data.\*.external_references.urlscan.io | string | | https://test.io/domain/uponvoice.net +action_result.data.\*.feed_id | numeric | | +action_result.data.\*.id | numeric | `threatstream intelligence id` | +action_result.data.\*.import_session_id | numeric | | +action_result.data.\*.import_source | string | | +action_result.data.\*.ip | string | `ip` | +action_result.data.\*.is_anonymous | boolean | | False +action_result.data.\*.is_editable | boolean | | False +action_result.data.\*.is_public | boolean | | +action_result.data.\*.itype | string | | +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail | string | | Blocklist Brute Force IPs +action_result.data.\*.meta.detail2 | string | | +action_result.data.\*.meta.severity | string | | +action_result.data.\*.modified_ts | string | | +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | `threatstream organization id` | +action_result.data.\*.rdns | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | +action_result.data.\*.retina_confidence | numeric | | +action_result.data.\*.source | string | | +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.source_reported_confidence | numeric | | +action_result.data.\*.status | string | | +action_result.data.\*.subtype | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | +action_result.data.\*.tags.\*.name | string | | +action_result.data.\*.tags.\*.org_id | string | | +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.source_user | string | | +action_result.data.\*.tags.\*.source_user_id | string | | +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.threat_type | string | | +action_result.data.\*.threatscore | numeric | | +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | ip +action_result.data.\*.update_id | numeric | | +action_result.data.\*.uuid | string | | 4cf3228b-0de4-45f0-a66d-255b6ff32eaa +action_result.data.\*.value | string | `ip` | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved information on IP +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'email reputation' Get information about a given email @@ -629,72 +631,72 @@ Get information about a given email Type: **investigate** Read only: **True** -If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\. The search\_exact\_value parameter searches for the exact email on ThreatStream server\. If this parameter is kept true, then the extend\_source parameter will be ignored and no extra information will be available\. +If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter. The search_exact_value parameter searches for the exact email on ThreatStream server. If this parameter is kept true, then the extend_source parameter will be ignored and no extra information will be available. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **email** | required | Email to investigate | string | `email` **limit** | optional | Total number of observables to return | numeric | -**extend\_source** | optional | Fetch extra data from Anomali server if available | boolean | -**search\_exact\_value** | optional | Search for the exact email | boolean | +**extend_source** | optional | Fetch extra data from Anomali server if available | boolean | +**search_exact_value** | optional | Search for the exact email | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.email | string | `email` -action\_result\.parameter\.extend\_source | boolean | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.search\_exact\_value | boolean | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.extended\_source | string | -action\_result\.data\.\*\.external\_references\.remote\_api | boolean | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `email` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.email | string | `email` | test.com +action_result.parameter.extend_source | boolean | | True False +action_result.parameter.limit | numeric | | 1000 +action_result.parameter.search_exact_value | boolean | | True False +action_result.data.\*.asn | string | | +action_result.data.\*.confidence | numeric | | +action_result.data.\*.country | string | | +action_result.data.\*.created_ts | string | | +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | +action_result.data.\*.extended_source | string | | +action_result.data.\*.external_references.remote_api | boolean | | True False +action_result.data.\*.feed_id | numeric | | +action_result.data.\*.id | numeric | `threatstream intelligence id` | +action_result.data.\*.import_session_id | string | | +action_result.data.\*.ip | string | `ip` | test@test.com +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_public | boolean | | +action_result.data.\*.itype | string | | +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail | string | | +action_result.data.\*.meta.detail2 | string | | +action_result.data.\*.meta.severity | string | | +action_result.data.\*.modified_ts | string | | +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | `threatstream organization id` | +action_result.data.\*.rdns | string | | +action_result.data.\*.resource_uri | string | | +action_result.data.\*.retina_confidence | numeric | | +action_result.data.\*.source | string | | +action_result.data.\*.source_reported_confidence | numeric | | +action_result.data.\*.status | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | +action_result.data.\*.tags.\*.name | string | | +action_result.data.\*.tags.\*.org_id | string | | +action_result.data.\*.tags.\*.source_user | string | | +action_result.data.\*.tags.\*.source_user_id | string | | +action_result.data.\*.threat_type | string | | +action_result.data.\*.threatscore | numeric | | +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | email +action_result.data.\*.update_id | numeric | | +action_result.data.\*.uuid | string | | 4cf3228b-0de4-45f0-a66d-255b6ff32eaa +action_result.data.\*.value | string | `email` | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved information on Email +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'url reputation' Get information about a URL @@ -702,78 +704,78 @@ Get information about a URL Type: **investigate** Read only: **True** -If nothing is found, this is because ThreatStream has no information on that URL\. If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\. The search\_exact\_value parameter searches for the exact url on ThreatStream server\. If this parameter is kept true, then the extend\_source parameter will be ignored and no extra information will be available\. +If nothing is found, this is because ThreatStream has no information on that URL. If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter. The search_exact_value parameter searches for the exact url on ThreatStream server. If this parameter is kept true, then the extend_source parameter will be ignored and no extra information will be available. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **url** | required | URL to investigate | string | `url` **limit** | optional | Total number of observables to return | numeric | -**extend\_source** | optional | Fetch extra data from Anomali server if available | boolean | -**search\_exact\_value** | optional | Search for the exact url | boolean | +**extend_source** | optional | Fetch extra data from Anomali server if available | boolean | +**search_exact_value** | optional | Search for the exact url | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.extend\_source | boolean | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.url | string | `url` -action\_result\.parameter\.search\_exact\_value | boolean | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.extended\_source | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | numeric | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | numeric | -action\_result\.data\.\*\.longitude | numeric | -action\_result\.data\.\*\.meta\.detail | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.registrant\_address | string | -action\_result\.data\.\*\.meta\.registrant\_created | string | -action\_result\.data\.\*\.meta\.registrant\_email | string | -action\_result\.data\.\*\.meta\.registrant\_name | string | -action\_result\.data\.\*\.meta\.registrant\_org | string | -action\_result\.data\.\*\.meta\.registrant\_phone | string | -action\_result\.data\.\*\.meta\.registrant\_updated | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `url` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.extend_source | boolean | | True False +action_result.parameter.limit | numeric | | 1000 +action_result.parameter.url | string | `url` | http://122.122.122.122/ +action_result.parameter.search_exact_value | boolean | | True False +action_result.data.\*.asn | string | | +action_result.data.\*.confidence | numeric | | +action_result.data.\*.country | string | | +action_result.data.\*.created_ts | string | | +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | +action_result.data.\*.extended_source | string | | +action_result.data.\*.feed_id | numeric | | +action_result.data.\*.id | numeric | `threatstream intelligence id` | +action_result.data.\*.import_session_id | numeric | | +action_result.data.\*.ip | string | `ip` | +action_result.data.\*.is_anonymous | boolean | | False +action_result.data.\*.is_editable | boolean | | False +action_result.data.\*.is_public | boolean | | +action_result.data.\*.itype | string | | +action_result.data.\*.latitude | numeric | | +action_result.data.\*.longitude | numeric | | +action_result.data.\*.meta.detail | string | | +action_result.data.\*.meta.detail2 | string | | +action_result.data.\*.meta.registrant_address | string | | +action_result.data.\*.meta.registrant_created | string | | +action_result.data.\*.meta.registrant_email | string | | test@test.com +action_result.data.\*.meta.registrant_name | string | | Protection of Private Person +action_result.data.\*.meta.registrant_org | string | | +action_result.data.\*.meta.registrant_phone | string | | +action_result.data.\*.meta.registrant_updated | string | | +action_result.data.\*.meta.severity | string | | +action_result.data.\*.modified_ts | string | | +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | `threatstream organization id` | +action_result.data.\*.rdns | string | | +action_result.data.\*.resource_uri | string | | +action_result.data.\*.retina_confidence | numeric | | +action_result.data.\*.source | string | | +action_result.data.\*.source_reported_confidence | numeric | | +action_result.data.\*.status | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | +action_result.data.\*.tags.\*.name | string | | +action_result.data.\*.tags.\*.org_id | string | | +action_result.data.\*.tags.\*.source_user | string | | +action_result.data.\*.tags.\*.source_user_id | string | | +action_result.data.\*.threat_type | string | | +action_result.data.\*.threatscore | numeric | | +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | url +action_result.data.\*.update_id | numeric | | +action_result.data.\*.uuid | string | | 4cf3228b-0de4-45f0-a66d-255b6ff32eaa +action_result.data.\*.value | string | `url` | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved information on URL +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'whois ip' Execute a whois lookup on the given IP @@ -781,7 +783,7 @@ Execute a whois lookup on the given IP Type: **investigate** Read only: **True** -ThreatStream returns whois info as a raw string \(present in the raw field\) which the app will then attempt to parse into the output\. Depending on the contents of the raw string, it may not be able to parse all or any of the required fields\. +ThreatStream returns whois info as a raw string (present in the raw field) which the app will then attempt to parse into the output. Depending on the contents of the raw string, it may not be able to parse all or any of the required fields. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -789,48 +791,103 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **ip** | required | IP | string | `ip` `ipv6` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.ip | string | `ip` `ipv6` -action\_result\.data\.\*\.addtional\_info | string | -action\_result\.data\.\*\.addtional\_info\.asn | string | -action\_result\.data\.\*\.addtional\_info\.asn\_cidr | string | -action\_result\.data\.\*\.addtional\_info\.asn\_country\_code | string | -action\_result\.data\.\*\.addtional\_info\.asn\_date | string | -action\_result\.data\.\*\.addtional\_info\.asn\_description | string | -action\_result\.data\.\*\.addtional\_info\.asn\_registry | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.address | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.cidr | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.city | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.country | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.created | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.description | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.emails | string | `email` -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.handle | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.name | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.postal\_code | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.range | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.state | string | -action\_result\.data\.\*\.addtional\_info\.nets\.\*\.updated | string | -action\_result\.data\.\*\.addtional\_info\.nir | string | -action\_result\.data\.\*\.addtional\_info\.query | string | `ip` -action\_result\.data\.\*\.addtional\_info\.raw | string | -action\_result\.data\.\*\.addtional\_info\.raw\_referral | string | -action\_result\.data\.\*\.addtional\_info\.referral | string | -action\_result\.data\.\*\.contacts\.admin\.handle | string | -action\_result\.data\.\*\.contacts\.billing | string | -action\_result\.data\.\*\.contacts\.registrant | string | -action\_result\.data\.\*\.contacts\.registrant\.name | string | -action\_result\.data\.\*\.contacts\.tech\.handle | string | -action\_result\.data\.\*\.emails | string | `email` -action\_result\.data\.\*\.raw | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.updated\_date | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.ip | string | `ip` `ipv6` | 122.122.122.122 +action_result.data.\*.addtional_info | string | | +action_result.data.\*.addtional_info.asn | string | | 4134 +action_result.data.\*.addtional_info.asn_cidr | string | | 122.122.122.122/13 +action_result.data.\*.addtional_info.asn_country_code | string | | CN +action_result.data.\*.addtional_info.asn_date | string | | 2009-10-23 +action_result.data.\*.addtional_info.asn_description | string | | National, NL +action_result.data.\*.addtional_info.asn_registry | string | | apnic +action_result.data.\*.addtional_info.nets.\*.address | string | | 3 test IP Street Address +action_result.data.\*.addtional_info.nets.\*.cidr | string | | 122.122.122.122/32 +action_result.data.\*.addtional_info.nets.\*.city | string | | +action_result.data.\*.addtional_info.nets.\*.country | string | | CN +action_result.data.\*.addtional_info.nets.\*.created | string | | +action_result.data.\*.addtional_info.nets.\*.description | string | | WX +action_result.data.\*.addtional_info.nets.\*.emails | string | `email` | testmalicious@cta.cq.cn +action_result.data.\*.addtional_info.nets.\*.handle | string | | ZL235-AP +action_result.data.\*.addtional_info.nets.\*.name | string | | WX +action_result.data.\*.addtional_info.nets.\*.postal_code | string | | +action_result.data.\*.addtional_info.nets.\*.range | string | | 122.122.122.122 - 122.122.122.122 +action_result.data.\*.addtional_info.nets.\*.state | string | | +action_result.data.\*.addtional_info.nets.\*.updated | string | | +action_result.data.\*.addtional_info.nir | string | | +action_result.data.\*.addtional_info.query | string | `ip` | 122.122.122.122 +action_result.data.\*.addtional_info.raw | string | | +action_result.data.\*.addtional_info.raw_referral | string | | +action_result.data.\*.addtional_info.referral | string | | +action_result.data.\*.contacts.admin.handle | string | | IM646-AP +action_result.data.\*.contacts.billing | string | | +action_result.data.\*.contacts.registrant | string | | +action_result.data.\*.contacts.registrant.name | string | | IP Manager +action_result.data.\*.contacts.tech.handle | string | | IM646-AP +action_result.data.\*.emails | string | `email` | hostmaster@nic.or.kr +action_result.data.\*.raw | string | | inetnum: 61.32.0.0 - 61.39.255.255 +netname: BORANET +descr: LG DACOM Corporation +admin-c: IM646-AP +tech-c: IM646-AP +country: KR +status: ALLOCATED PORTABLE +mnt-by: MNT-KRNIC-AP +mnt-irt: IRT-KRNIC-KR +last-modified: 2017-02-03T00:55:02Z +source: APNIC +irt: IRT-KRNIC-KR +address: Jeollanam-do Naju-si Jinheung-gil +e-mail: irt@nic.or.kr +abuse-mailbox: irt@nic.or.kr +admin-c: IM574-AP +tech-c: IM574-AP +auth: # Filtered +remarks: irt@nic.or.kr was validated on 2019-10-01 +mnt-by: MNT-KRNIC-AP +last-modified: 2019-10-01T08:41:39Z +source: APNIC +person: IP Manager +address: Seoul Yongsan-gu Hangang-daero 32 +country: KR +phone: +82-2-10-1 +e-mail: ipadm@lguplus.co.kr +nic-hdl: IM646-AP +mnt-by: MNT-KRNIC-AP +last-modified: 2017-08-07T01:06:21Z +source: APNIC +inetnum: 61.32.0.0 - 61.39.255.255 +netname: BORANET-KR +descr: LG DACOM Corporation +country: KR +admin-c: IA5-KR +tech-c: IA5-KR +status: ALLOCATED PORTABLE +mnt-by: MNT-KRNIC-AP +mnt-irt: IRT-KRNIC-KR +remarks: This information has been partially mirrored by APNIC from +remarks: KRNIC. To obtain more specific information, please use the +remarks: KRNIC whois server at whois.test.or.kr. +changed: hostmaster@nic.or.kr +source: KRNIC +person: IP Manager +address: Seoul Yongsan-gu Hangang-daero 32 +address: LG UPLUS +country: KR +phone: +82-2-10-1 +e-mail: ipadm@lguplus.co.kr +nic-hdl: IA5-KR +mnt-by: MNT-KRNIC-AP +changed: hostmaster@nic.or.kr +source: KRNIC + +action_result.data.\*.status | string | | Allocated Portable +action_result.data.\*.updated_date | string | | 2017-08-07T01:06:21 +action_result.summary | string | | +action_result.message | string | | Successfully retrieved whois info Successfully retrieved whois info. Unable to fetch additional info for the given IP. ERROR: HTTP lookup failed for http://whois.test.or.kr/eng/whois.jsc. +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'whois domain' Execute a whois lookup on the given domain @@ -838,7 +895,7 @@ Execute a whois lookup on the given domain Type: **investigate** Read only: **True** -ThreatStream returns whois info as a raw string \(present in the raw field\) which the app will then attempt to parse into the output\. Depending on the contents of the raw string, it may not be able to parse all or any of the required fields\. +ThreatStream returns whois info as a raw string (present in the raw field) which the app will then attempt to parse into the output. Depending on the contents of the raw string, it may not be able to parse all or any of the required fields. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -846,64 +903,196 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **domain** | required | Domain | string | `domain` `url` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.domain | string | `domain` `url` -action\_result\.data\.\*\.contacts\.admin | string | -action\_result\.data\.\*\.contacts\.admin\.city | string | -action\_result\.data\.\*\.contacts\.admin\.country | string | -action\_result\.data\.\*\.contacts\.admin\.email | string | `email` -action\_result\.data\.\*\.contacts\.admin\.fax | string | -action\_result\.data\.\*\.contacts\.admin\.fax\_ext | string | -action\_result\.data\.\*\.contacts\.admin\.handle | string | -action\_result\.data\.\*\.contacts\.admin\.name | string | -action\_result\.data\.\*\.contacts\.admin\.organization | string | -action\_result\.data\.\*\.contacts\.admin\.phone | string | -action\_result\.data\.\*\.contacts\.admin\.postalcode | string | -action\_result\.data\.\*\.contacts\.admin\.state | string | -action\_result\.data\.\*\.contacts\.admin\.street | string | -action\_result\.data\.\*\.contacts\.billing | string | -action\_result\.data\.\*\.contacts\.registrant | string | -action\_result\.data\.\*\.contacts\.registrant\.city | string | -action\_result\.data\.\*\.contacts\.registrant\.country | string | -action\_result\.data\.\*\.contacts\.registrant\.email | string | `email` -action\_result\.data\.\*\.contacts\.registrant\.fax | string | -action\_result\.data\.\*\.contacts\.registrant\.fax\_ext | string | -action\_result\.data\.\*\.contacts\.registrant\.handle | string | -action\_result\.data\.\*\.contacts\.registrant\.name | string | -action\_result\.data\.\*\.contacts\.registrant\.organization | string | -action\_result\.data\.\*\.contacts\.registrant\.phone | string | -action\_result\.data\.\*\.contacts\.registrant\.postalcode | string | -action\_result\.data\.\*\.contacts\.registrant\.state | string | -action\_result\.data\.\*\.contacts\.registrant\.street | string | -action\_result\.data\.\*\.contacts\.tech | string | -action\_result\.data\.\*\.contacts\.tech\.city | string | -action\_result\.data\.\*\.contacts\.tech\.country | string | -action\_result\.data\.\*\.contacts\.tech\.email | string | `email` -action\_result\.data\.\*\.contacts\.tech\.fax | string | -action\_result\.data\.\*\.contacts\.tech\.fax\_ext | string | -action\_result\.data\.\*\.contacts\.tech\.handle | string | -action\_result\.data\.\*\.contacts\.tech\.name | string | -action\_result\.data\.\*\.contacts\.tech\.organization | string | -action\_result\.data\.\*\.contacts\.tech\.phone | string | -action\_result\.data\.\*\.contacts\.tech\.postalcode | string | -action\_result\.data\.\*\.contacts\.tech\.state | string | -action\_result\.data\.\*\.contacts\.tech\.street | string | -action\_result\.data\.\*\.creation\_date | string | -action\_result\.data\.\*\.emails | string | `email` -action\_result\.data\.\*\.expiration\_date | string | -action\_result\.data\.\*\.id | string | -action\_result\.data\.\*\.nameservers | string | -action\_result\.data\.\*\.raw | string | -action\_result\.data\.\*\.registrar | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.updated\_date | string | -action\_result\.data\.\*\.whois\_server | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.domain | string | `domain` `url` | malware3.obfuscated.network test.com +action_result.data.\*.contacts.admin | string | | +action_result.data.\*.contacts.admin.city | string | | Redacted For Privacy +action_result.data.\*.contacts.admin.country | string | | Redacted For Privacy +action_result.data.\*.contacts.admin.email | string | `email` | please query the rdds service of the registrar of record identified in this output for information on how to contact the registrant, admin, or tech contact of the queried domain name. +action_result.data.\*.contacts.admin.fax | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.admin.fax_ext | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.admin.handle | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.admin.name | string | | Redacted For Privacy +action_result.data.\*.contacts.admin.organization | string | | Redacted For Privacy +action_result.data.\*.contacts.admin.phone | string | | REDACTED FOR PRIVACY ext. REDACTED FOR PRIVACY +action_result.data.\*.contacts.admin.postalcode | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.admin.state | string | | Redacted For Privacy +action_result.data.\*.contacts.admin.street | string | | Redacted For Privacy +action_result.data.\*.contacts.billing | string | | +action_result.data.\*.contacts.registrant | string | | +action_result.data.\*.contacts.registrant.city | string | | Redacted For Privacy +action_result.data.\*.contacts.registrant.country | string | | United States +action_result.data.\*.contacts.registrant.email | string | `email` | please query the rdds service of the registrar of record identified in this output for information on how to contact the registrant, admin, or tech contact of the queried domain name. +action_result.data.\*.contacts.registrant.fax | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.registrant.fax_ext | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.registrant.handle | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.registrant.name | string | | Redacted For Privacy +action_result.data.\*.contacts.registrant.organization | string | | Domains By Proxy, LLC +action_result.data.\*.contacts.registrant.phone | string | | REDACTED FOR PRIVACY ext. REDACTED FOR PRIVACY +action_result.data.\*.contacts.registrant.postalcode | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.registrant.state | string | | Arizona +action_result.data.\*.contacts.registrant.street | string | | Redacted For Privacy +action_result.data.\*.contacts.tech | string | | +action_result.data.\*.contacts.tech.city | string | | Redacted For Privacy +action_result.data.\*.contacts.tech.country | string | | Redacted For Privacy +action_result.data.\*.contacts.tech.email | string | `email` | please query the rdds service of the registrar of record identified in this output for information on how to contact the registrant, admin, or tech contact of the queried domain name. +action_result.data.\*.contacts.tech.fax | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.tech.fax_ext | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.tech.handle | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.tech.name | string | | Redacted For Privacy +action_result.data.\*.contacts.tech.organization | string | | Redacted For Privacy +action_result.data.\*.contacts.tech.phone | string | | REDACTED FOR PRIVACY ext. REDACTED FOR PRIVACY +action_result.data.\*.contacts.tech.postalcode | string | | REDACTED FOR PRIVACY +action_result.data.\*.contacts.tech.state | string | | Redacted For Privacy +action_result.data.\*.contacts.tech.street | string | | Redacted For Privacy +action_result.data.\*.creation_date | string | | 2017-04-08T04:08:19 1997-09-15T00:00:00 +action_result.data.\*.emails | string | `email` | abuse@test.com whoisrequest@test.com +action_result.data.\*.expiration_date | string | | 2023-04-08T04:08:19 2028-09-13T00:00:00 +action_result.data.\*.id | string | | 65e105d7aa3a44bfb2c5cab6e6e9e4a4-DONUTS 2138514_DOMAIN_COM-VRSN +action_result.data.\*.nameservers | string | | ns-cloud-c4.test.com ns4.test.com +action_result.data.\*.raw | string | | Domain Name: obfuscated.network +Registry Domain ID: 65e105d7aa3a44bfb2c5cab6e6e9e4a4-DONUTS +Registrar WHOIS Server: whois.godaddy.com/ +Registrar URL: http://www.godaddy.com/domains/search.aspx?ci=8990 +Updated Date: 2019-09-23T23:57:27Z +Creation Date: 2017-04-08T04:08:19Z +Registry Expiry Date: 2023-04-08T04:08:19Z +Registrar: GoDaddy.com, LLC +Registrar IANA ID: 146 +Registrar Abuse Contact Email: abuse@godaddy.com +Registrar Abuse Contact Phone: +1.4806242505 +Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited +Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited +Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited +Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited +Registry Registrant ID: REDACTED FOR PRIVACY +Registrant Name: REDACTED FOR PRIVACY +Registrant Organization: Domains By Proxy, LLC +Registrant Street: REDACTED FOR PRIVACY +Registrant City: REDACTED FOR PRIVACY +Registrant State/Province: Arizona +Registrant Postal Code: REDACTED FOR PRIVACY +Registrant Country: US +Registrant Phone: REDACTED FOR PRIVACY +Registrant Phone Ext: REDACTED FOR PRIVACY +Registrant Fax: REDACTED FOR PRIVACY +Registrant Fax Ext: REDACTED FOR PRIVACY +Registrant Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name. +Registry Admin ID: REDACTED FOR PRIVACY +Admin Name: REDACTED FOR PRIVACY +Admin Organization: REDACTED FOR PRIVACY +Admin Street: REDACTED FOR PRIVACY +Admin City: REDACTED FOR PRIVACY +Admin State/Province: REDACTED FOR PRIVACY +Admin Postal Code: REDACTED FOR PRIVACY +Admin Country: REDACTED FOR PRIVACY +Admin Phone: REDACTED FOR PRIVACY +Admin Phone Ext: REDACTED FOR PRIVACY +Admin Fax: REDACTED FOR PRIVACY +Admin Fax Ext: REDACTED FOR PRIVACY +Admin Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name. +Registry Tech ID: REDACTED FOR PRIVACY +Tech Name: REDACTED FOR PRIVACY +Tech Organization: REDACTED FOR PRIVACY +Tech Street: REDACTED FOR PRIVACY +Tech City: REDACTED FOR PRIVACY +Tech State/Province: REDACTED FOR PRIVACY +Tech Postal Code: REDACTED FOR PRIVACY +Tech Country: REDACTED FOR PRIVACY +Tech Phone: REDACTED FOR PRIVACY +Tech Phone Ext: REDACTED FOR PRIVACY +Tech Fax: REDACTED FOR PRIVACY +Tech Fax Ext: REDACTED FOR PRIVACY +Tech Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name. +Name Server: ns-cloud-c1.googledomains.com +Name Server: ns-cloud-c2.googledomains.com +Name Server: ns-cloud-c3.googledomains.com +Name Server: ns-cloud-c4.googledomains.com +DNSSEC: signedDelegation +URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ +>>> Last update of WHOIS database: 2020-01-12T06:25:08Z <<< +For more information on Whois status codes, please visit https://icann.org/epp +Terms of Use: Donuts Inc. provides this Whois service for information purposes, and to assist persons in obtaining information about or related to a domain name registration record. Donuts does not guarantee its accuracy. Users accessing the Donuts Whois service agree to use the data only for lawful purposes, and under no circumstances may this data be used to: a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the registrar’s own existing customers and b) enable high volume, automated, electronic processes that send queries or data to the systems of Donuts or any ICANN-accredited registrar, except as reasonably necessary to register domain names or modify existing registrations. When using the Donuts Whois service, please consider the following: The Whois service is not a replacement for standard EPP commands to the SRS service. Whois is not considered authoritative for registered domain objects. The Whois service may be scheduled for downtime during production or OT&E maintenance periods. Queries to the Whois services are throttled. If too many queries are received from a single IP address within a specified time, the service will begin to reject further queries for a period of time to prevent disruption of Whois service access. Abuse of the Whois system through data mining is mitigated by detecting and limiting bulk query access from single sources. Where applicable, the presence of a [Non-Public Data] tag indicates that such data is not made publicly available due to applicable data privacy laws or requirements. Should you wish to contact the registrant, please refer to the Whois records available through the registrar URL listed above. Access to non-public data may be provided, upon request, where it can be reasonably confirmed that the requester holds a specific legitimate interest and a proper legal basis for accessing the withheld data. Access to this data can be requested by submitting a request via the form found at https://donuts.domains/about/policies/whois-layered-access/ Donuts Inc. reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy. Domain Name: google.com +Registry Domain ID: 2138514_DOMAIN_COM-VRSN +Registrar WHOIS Server: whois.markmonitor.com +Registrar URL: http://www.markmonitor.com +Updated Date: 2019-09-09T08:39:04-0700 +Creation Date: 1997-09-15T00:00:00-0700 +Registrar Registration Expiration Date: 2028-09-13T00:00:00-0700 +Registrar: MarkMonitor, Inc. +Registrar IANA ID: 292 +Registrar Abuse Contact Email: abusecomplaints@markmonitor.com +Registrar Abuse Contact Phone: +1.2083895770 +Domain Status: clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited) +Domain Status: clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited) +Domain Status: clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited) +Domain Status: serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited) +Domain Status: serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited) +Domain Status: serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited) +Registrant Organization: Google LLC +Registrant State/Province: CA +Registrant Country: US +Admin Organization: Google LLC +Admin State/Province: CA +Admin Country: US +Tech Organization: Google LLC +Tech State/Province: CA +Tech Country: US +Name Server: ns3.google.com +Name Server: ns2.google.com +Name Server: ns1.google.com +Name Server: ns4.google.com +DNSSEC: unsigned +URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ +>>> Last update of WHOIS database: 2020-01-11T17:54:34-0800 <<< +For more information on WHOIS status codes, please visit: + https://www.icann.org/resources/pages/epp-status-codes +If you wish to contact this domain’s Registrant, Administrative, or Technical +contact, and such email address is not visible above, you may do so via our web +form, pursuant to ICANN’s Temporary Specification. To verify that you are not a +robot, please enter your email address to receive a link to a page that +facilitates email communication with the relevant contact(s). +Web-based WHOIS: + https://domains.markmonitor.com/whois +If you have a legitimate interest in viewing the non-public WHOIS details, send +your request and the reasons for your request to whoisrequest@markmonitor.com +and specify the domain name in the subject line. We will review that request and +may ask for supporting documentation and explanation. +The data in MarkMonitor’s WHOIS database is provided for information purposes, +and to assist persons in obtaining information about or related to a domain +name’s registration record. While MarkMonitor believes the data to be accurate, +the data is provided "as is" with no guarantee or warranties regarding its +accuracy. +By submitting a WHOIS query, you agree that you will use this data only for +lawful purposes and that, under no circumstances will you use this data to: + (1) allow, enable, or otherwise support the transmission by email, telephone, +or facsimile of mass, unsolicited, commercial advertising, or spam; or + (2) enable high volume, automated, or electronic processes that send queries, +data, or email to MarkMonitor (or its systems) or the domain name contacts (or +its systems). +MarkMonitor.com reserves the right to modify these terms at any time. +By submitting this query, you agree to abide by this policy. +MarkMonitor is the Global Leader in Online Brand Protection. +MarkMonitor Domain Management(TM) +MarkMonitor Brand Protection(TM) +MarkMonitor AntiCounterfeiting(TM) +MarkMonitor AntiPiracy(TM) +MarkMonitor AntiFraud(TM) +Professional and Managed Services +Visit MarkMonitor at https://www.markmonitor.com +Contact us at +1.8007459229 +In Europe, at +44.02032062220 +-- +action_result.data.\*.registrar | string | | test.com, LLC test, Inc. +action_result.data.\*.status | string | | clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited) +action_result.data.\*.updated_date | string | | 2019-09-23T23:57:27 2019-09-09T08:39:04 +action_result.data.\*.whois_server | string | | whois.test.com/ whois.test.com +action_result.summary | string | | +action_result.message | string | | Successfully retrieved whois info +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get observable' Get observable present in ThreatStream by ID number @@ -914,65 +1103,65 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**intelligence\_id** | required | ID number of intelligence to return | string | `threatstream intelligence id` +**intelligence_id** | required | ID number of intelligence to return | string | `threatstream intelligence id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.intelligence\_id | string | `threatstream intelligence id` -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_by | string | `email` -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.import\_source | string | -action\_result\.data\.\*\.ip | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | `email` -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.subtype | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `email` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.intelligence_id | string | `threatstream intelligence id` | 171143571 +action_result.data.\*.asn | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.confidence | numeric | | 50 +action_result.data.\*.country | string | | +action_result.data.\*.created_by | string | `email` | test@test.com +action_result.data.\*.created_ts | string | | 2019-12-12T09:07:42.124Z +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | 2020-03-11T09:04:49.324Z +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream intelligence id` | 171143571 +action_result.data.\*.import_session_id | string | | 235 +action_result.data.\*.import_source | string | | +action_result.data.\*.ip | string | | +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.itype | string | | mal_email +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail2 | string | | imported by user 136 +action_result.data.\*.meta.severity | string | | low +action_result.data.\*.modified_ts | string | | 2019-12-12T09:08:15.714Z +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | | 67 +action_result.data.\*.rdns | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v2/intelligence/171143571/?remote_api=true +action_result.data.\*.retina_confidence | numeric | | -1 +action_result.data.\*.source | string | `email` | test@test.com +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.source_reported_confidence | numeric | | 50 +action_result.data.\*.status | string | | active +action_result.data.\*.subtype | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | cg0 +action_result.data.\*.tags.\*.name | string | | test_name +action_result.data.\*.tags.\*.org_id | string | | 67 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.threat_type | string | | malware +action_result.data.\*.threatscore | numeric | | 10 +action_result.data.\*.tlp | string | | amber +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | email +action_result.data.\*.update_id | numeric | | 343406992 +action_result.data.\*.uuid | string | | 4a035a95-6a80-4eaf-be5e-c2bfc4bdf570 +action_result.data.\*.value | string | `email` | test@test00.com +action_result.summary | string | | +action_result.message | string | | Successfully retrieved observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list observables' List observables present in ThreatStream @@ -980,7 +1169,7 @@ List observables present in ThreatStream Type: **investigate** Read only: **True** -
  • The observables will be listed in the latest first order on the basis of created\_ts\.
  • If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
+
  • The observables will be listed in the latest first order on the basis of created_ts.
  • If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -988,74 +1177,74 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **limit** | optional | Total number of observables to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_by | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.import\_source | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.registrant\_address | string | -action\_result\.data\.\*\.meta\.registrant\_created | string | -action\_result\.data\.\*\.meta\.registrant\_email | string | -action\_result\.data\.\*\.meta\.registrant\_name | string | -action\_result\.data\.\*\.meta\.registrant\_org | string | -action\_result\.data\.\*\.meta\.registrant\_phone | string | -action\_result\.data\.\*\.meta\.registrant\_updated | string | -action\_result\.data\.\*\.meta\.registrantion\_created | string | -action\_result\.data\.\*\.meta\.registrantion\_updated | string | -action\_result\.data\.\*\.meta\.registration\_created | string | -action\_result\.data\.\*\.meta\.registration\_updated | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.subtype | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | -action\_result\.summary\.observables\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 5 +action_result.data.\*.asn | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.confidence | numeric | | 57 +action_result.data.\*.country | string | | DE +action_result.data.\*.created_by | string | | testuser2@test.testdata.com +action_result.data.\*.created_ts | string | | 2019-09-06T08:27:20.995Z +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | 2019-09-07T08:27:17.860Z +action_result.data.\*.feed_id | numeric | | 122 +action_result.data.\*.id | numeric | `threatstream intelligence id` | 53702579051 +action_result.data.\*.import_session_id | string | | +action_result.data.\*.import_source | string | | +action_result.data.\*.ip | string | `ip` | 122.122.122.122 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.itype | string | | tor_ip +action_result.data.\*.latitude | string | | 49.7739 +action_result.data.\*.longitude | string | | 8.8844 +action_result.data.\*.meta.detail | string | | +action_result.data.\*.meta.detail2 | string | | imported by user 668 +action_result.data.\*.meta.registrant_address | string | | +action_result.data.\*.meta.registrant_created | string | | +action_result.data.\*.meta.registrant_email | string | | test@test00.com +action_result.data.\*.meta.registrant_name | string | | Protection of Private Person +action_result.data.\*.meta.registrant_org | string | | +action_result.data.\*.meta.registrant_phone | string | | +action_result.data.\*.meta.registrant_updated | string | | +action_result.data.\*.meta.registrantion_created | string | | 2001-06-28T16:04:59+00:00 +action_result.data.\*.meta.registrantion_updated | string | | 2014-08-13T20:24:31+00:00 +action_result.data.\*.meta.registration_created | string | | 1993-02-09T05:00:00+00:00 +action_result.data.\*.meta.registration_updated | string | | 2019-02-05T15:21:43+00:00 +action_result.data.\*.meta.severity | string | | low +action_result.data.\*.modified_ts | string | | 2019-09-06T08:27:20.995Z +action_result.data.\*.org | string | | ENTEGA Medianet GmbH +action_result.data.\*.owner_organization_id | numeric | | 2 +action_result.data.\*.rdns | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v2/intelligence/53702579051/ +action_result.data.\*.retina_confidence | numeric | | 57 +action_result.data.\*.source | string | | TOR Exit Nodes +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.source_reported_confidence | numeric | | 100 +action_result.data.\*.status | string | | active +action_result.data.\*.subtype | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | dgo +action_result.data.\*.tags.\*.name | string | | Suspicious-Domain-Registration +action_result.data.\*.tags.\*.org_id | string | | 67 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.threat_type | string | | tor +action_result.data.\*.threatscore | numeric | | 15 +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | ip +action_result.data.\*.update_id | numeric | | 4887255342 +action_result.data.\*.uuid | string | | 9f6cb8db-bb18-45e0-b46a-da9b2f783d1c +action_result.data.\*.value | string | | 122.122.122.122 +action_result.summary.observables_returned | numeric | | 5 +action_result.message | string | | Observables returned: 5 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get vulnerability' Get vulnerability present in ThreatStream by ID number @@ -1066,58 +1255,58 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**vulnerability\_id** | required | ID number of vulnerability to return | string | `threatstream vulnerability id` +**vulnerability_id** | required | ID number of vulnerability to return | string | `threatstream vulnerability id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.vulnerability\_id | string | `threatstream vulnerability id` -action\_result\.data\.\*\.aliases | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.cvss2\_score | string | -action\_result\.data\.\*\.cvss3\_score | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.feed\_id | string | -action\_result\.data\.\*\.id | numeric | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_system | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.update\_id | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.vulnerability_id | string | `threatstream vulnerability id` | 5679 +action_result.data.\*.aliases | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.created_ts | string | | 2019-12-11T07:19:48.120816 +action_result.data.\*.cvss2_score | string | | +action_result.data.\*.cvss3_score | string | | +action_result.data.\*.description | string | | +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.feed_id | string | | 0 +action_result.data.\*.id | numeric | | 5679 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_system | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2019-12-11T07:19:48.129404 +action_result.data.\*.name | string | | test_vulnerabilities_remote +action_result.data.\*.organization.id | string | | 67 +action_result.data.\*.organization.name | string | | qa.test.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.organization_id | numeric | `threatstream organization id` | 67 +action_result.data.\*.owner_user.email | string | `email` | test@qa.test.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | new +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/vulnerability/5679/?remote_api=true +action_result.data.\*.source | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.tlp | string | | +action_result.data.\*.update_id | string | | 14060 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.message | string | | Successfully retrieved vulnerability +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list vulnerabilities' List vulnerabilities present in ThreatStream @@ -1125,7 +1314,7 @@ List vulnerabilities present in ThreatStream Type: **investigate** Read only: **True** -
  • The vulnerabilities will be listed in the latest first order on the basis of created\_ts\.
  • If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
+
  • The vulnerabilities will be listed in the latest first order on the basis of created_ts.
  • If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -1133,51 +1322,51 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **limit** | optional | Total number of vulnerabilities to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream vulnerability id` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_system | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | `threatstream organization id` -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.title | string | -action\_result\.data\.\*\.organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.summary\.vulnerabilities\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 1000 +action_result.data.\*.assignee_user | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | string | | 146 +action_result.data.\*.circles.\*.name | string | | Anomali Curated OSINT +action_result.data.\*.circles.\*.remote_api | boolean | | True False +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/trustedcircle/146/ +action_result.data.\*.created_ts | string | | 2017-11-16T00:43:49.307763 +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream vulnerability id` | 1 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes_private_only +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_system | boolean | | True False +action_result.data.\*.modified_ts | string | | 2010-12-16T05:00:00 +action_result.data.\*.name | string | | CVE-1999-0001 +action_result.data.\*.organization.id | string | `threatstream organization id` | 2342 +action_result.data.\*.organization.name | string | | test_organization_name.us +action_result.data.\*.organization.title | string | | analyst +action_result.data.\*.organization_id | numeric | `threatstream organization id` | 2 +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.publication_status | string | | published +action_result.data.\*.published_ts | string | | 1999-12-30T05:00:00 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/vulnerability/1/ +action_result.data.\*.source | string | | mitre +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.tags | string | | NVD-CWE-Other +action_result.data.\*.tags_v2.\*.id | string | | 2_CWE-20 +action_result.data.\*.tags_v2.\*.name | string | | CWE-20 +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.remote_api | boolean | | True False +action_result.data.\*.tags_v2.\*.tlp | string | | red +action_result.data.\*.tlp | string | | white +action_result.data.\*.update_id | numeric | | 451620 +action_result.data.\*.uuid | string | | +action_result.summary.vulnerabilities_returned | numeric | | 1000 +action_result.message | string | | Vulnerabilities returned: 1000 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list incidents' List incidents present in ThreatStream @@ -1185,68 +1374,68 @@ List incidents present in ThreatStream Type: **investigate** Read only: **True** -
  • The incidents will be listed in the latest first order on the basis of created\_ts\.
  • If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
+
  • The incidents will be listed in the latest first order on the basis of created_ts.
  • If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**intel\_value** | optional | Intelligence value to filter incidents \(ie\. google\.com\) | string | +**intel_value** | optional | Intelligence value to filter incidents (ie. google.com) | string | **limit** | optional | Total number of incidents to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.intel\_value | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream incident id` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent\.id | string | -action\_result\.data\.\*\.parent\.name | string | -action\_result\.data\.\*\.parent\.recource\_uri | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.status\.display\_name | string | -action\_result\.data\.\*\.status\.id | numeric | -action\_result\.data\.\*\.status\.resource\_uri | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary\.incidents\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.intel_value | string | | test@test.com +action_result.parameter.limit | numeric | | 10 +action_result.data.\*.assignee_user | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | string | | 145 +action_result.data.\*.circles.\*.name | string | | Anomali Labs Premium +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/test/145/ +action_result.data.\*.created_ts | string | | 2015-08-11T19:39:13.604417 +action_result.data.\*.end_date | string | | 2011-04-08T04:00:00 +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream incident id` | 1 +action_result.data.\*.is_anonymous | boolean | | False True +action_result.data.\*.is_cloneable | string | | yes_private_only +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.modified_ts | string | | 2015-09-25T16:51:45.730982 +action_result.data.\*.name | string | | Test Incident Name +action_result.data.\*.organization_id | numeric | `threatstream organization id` | 1223 +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.parent.id | string | | 5794 +action_result.data.\*.parent.name | string | | MySpace Credential Leak (2016) +action_result.data.\*.parent.recource_uri | string | | /api/v1/incident/5794/ +action_result.data.\*.publication_status | string | | published +action_result.data.\*.published_ts | string | | 2015-09-25T16:51:45.730982 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/incident/1/ +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 1 +action_result.data.\*.start_date | string | | 2015-08-11T19:18:53.160000 +action_result.data.\*.status | string | | +action_result.data.\*.status.display_name | string | | New +action_result.data.\*.status.id | numeric | | 1 +action_result.data.\*.status.resource_uri | string | | /api/v1/incidentstatustype/1/ +action_result.data.\*.tags | string | | Breach +action_result.data.\*.tags_v2.\*.id | string | | 1223_Axiom +action_result.data.\*.tags_v2.\*.name | string | | Axiom +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.remote_api | boolean | | True False +action_result.data.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.tlp | string | | white +action_result.data.\*.uuid | string | | f47b82f2-3607-42bc-9ed1-5c86e15e952b +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary.incidents_returned | numeric | | 142 +action_result.message | string | | Incidents returned: 142 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete incident' Delete incident in ThreatStream by ID number @@ -1257,18 +1446,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**incident\_id** | required | ID number of incident to delete | string | `threatstream incident id` +**incident_id** | required | ID number of incident to delete | string | `threatstream incident id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.incident\_id | string | `threatstream incident id` -action\_result\.data | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.incident_id | string | `threatstream incident id` | 15518 +action_result.data | string | | +action_result.summary | string | | +action_result.message | string | | Successfully deleted incident +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get incident' Get incident in ThreatStream by ID number @@ -1279,127 +1468,127 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**incident\_id** | required | ID number of incident to return | string | `threatstream incident id` +**incident_id** | required | ID number of incident to return | string | `threatstream incident id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.incident\_id | string | `threatstream incident id` -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.asn | string | -action\_result\.data\.\*\.intelligence\.\*\.association\_info\.\*\.comment | string | -action\_result\.data\.\*\.intelligence\.\*\.association\_info\.\*\.created | string | -action\_result\.data\.\*\.intelligence\.\*\.association\_info\.\*\.from\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.association\_info\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.intelligence\.\*\.confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.country | string | -action\_result\.data\.\*\.intelligence\.\*\.created\_by | string | `email` -action\_result\.data\.\*\.intelligence\.\*\.created\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.description | string | -action\_result\.data\.\*\.intelligence\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.id | string | `threatstream intelligence id` -action\_result\.data\.\*\.intelligence\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.import\_source | string | -action\_result\.data\.\*\.intelligence\.\*\.ip | string | -action\_result\.data\.\*\.intelligence\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.intelligence\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.intelligence\.\*\.is\_public | boolean | -action\_result\.data\.\*\.intelligence\.\*\.itype | string | -action\_result\.data\.\*\.intelligence\.\*\.latitude | string | -action\_result\.data\.\*\.intelligence\.\*\.longitude | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.registrant\_address | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.registrant\_email | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.registrant\_name | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.registrant\_phone | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.registration\_created | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.registration\_updated | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.severity | string | -action\_result\.data\.\*\.intelligence\.\*\.modified\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.org | string | -action\_result\.data\.\*\.intelligence\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.rdns | string | -action\_result\.data\.\*\.intelligence\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.resource\_uri | string | -action\_result\.data\.\*\.intelligence\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.source | string | `email` -action\_result\.data\.\*\.intelligence\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.status | string | -action\_result\.data\.\*\.intelligence\.\*\.subtype | string | -action\_result\.data\.\*\.intelligence\.\*\.tags | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.category | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.tagger | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.intelligence\.\*\.threat\_type | string | -action\_result\.data\.\*\.intelligence\.\*\.threatscore | numeric | -action\_result\.data\.\*\.intelligence\.\*\.tlp | string | -action\_result\.data\.\*\.intelligence\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.intelligence\.\*\.type | string | -action\_result\.data\.\*\.intelligence\.\*\.update\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.uuid | string | -action\_result\.data\.\*\.intelligence\.\*\.value | string | `email` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status\.display\_name | string | -action\_result\.data\.\*\.status\.id | numeric | -action\_result\.data\.\*\.status\.resource\_uri | string | -action\_result\.data\.\*\.status\_desc | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.incident_id | string | `threatstream incident id` | 1000000003 +action_result.data.\*.assignee_user | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.created_ts | string | | 2019-12-11T07:12:16.022460 +action_result.data.\*.description | string | | +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.end_date | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | | 1000000003 +action_result.data.\*.intelligence.\*.asn | string | | +action_result.data.\*.intelligence.\*.association_info.\*.comment | string | | +action_result.data.\*.intelligence.\*.association_info.\*.created | string | | 2021-05-27T12:26:00.546115 +action_result.data.\*.intelligence.\*.association_info.\*.from_id | string | | 173098 +action_result.data.\*.intelligence.\*.association_info.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.intelligence.\*.confidence | numeric | | 50 +action_result.data.\*.intelligence.\*.country | string | | +action_result.data.\*.intelligence.\*.created_by | string | `email` | qa+test@test00.com +action_result.data.\*.intelligence.\*.created_ts | string | | 2019-12-12T09:05:12.270082 +action_result.data.\*.intelligence.\*.description | string | | +action_result.data.\*.intelligence.\*.expiration_ts | string | | 2020-03-11T09:04:49.324000 +action_result.data.\*.intelligence.\*.feed_id | numeric | | 0 +action_result.data.\*.intelligence.\*.id | string | `threatstream intelligence id` | 1000000009 +action_result.data.\*.intelligence.\*.import_session_id | string | | 1000000005 +action_result.data.\*.intelligence.\*.import_source | string | | +action_result.data.\*.intelligence.\*.ip | string | | +action_result.data.\*.intelligence.\*.is_anonymous | boolean | | True False +action_result.data.\*.intelligence.\*.is_editable | boolean | | True False +action_result.data.\*.intelligence.\*.is_public | boolean | | True False +action_result.data.\*.intelligence.\*.itype | string | | mal_email +action_result.data.\*.intelligence.\*.latitude | string | | +action_result.data.\*.intelligence.\*.longitude | string | | +action_result.data.\*.intelligence.\*.meta.detail2 | string | | imported by user 136 +action_result.data.\*.intelligence.\*.meta.registrant_address | string | | calavi, Calavi, BENIN, 229 +action_result.data.\*.intelligence.\*.meta.registrant_email | string | | test@outlook.com +action_result.data.\*.intelligence.\*.meta.registrant_name | string | | test registrant +action_result.data.\*.intelligence.\*.meta.registrant_phone | string | | 22966300066 +action_result.data.\*.intelligence.\*.meta.registration_created | string | | 2017-05-31T12:18:59+00:00 +action_result.data.\*.intelligence.\*.meta.registration_updated | string | | 2017-06-26T12:58:10+00:00 +action_result.data.\*.intelligence.\*.meta.severity | string | | low +action_result.data.\*.intelligence.\*.modified_ts | string | | 2019-12-12T09:05:42.169722 +action_result.data.\*.intelligence.\*.org | string | | +action_result.data.\*.intelligence.\*.owner_organization_id | numeric | | 67 +action_result.data.\*.intelligence.\*.rdns | string | | +action_result.data.\*.intelligence.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.resource_uri | string | | +action_result.data.\*.intelligence.\*.retina_confidence | numeric | | -1 +action_result.data.\*.intelligence.\*.source | string | `email` | qa+test@test00.com +action_result.data.\*.intelligence.\*.source_reported_confidence | numeric | | 50 +action_result.data.\*.intelligence.\*.status | string | | active +action_result.data.\*.intelligence.\*.subtype | string | | +action_result.data.\*.intelligence.\*.tags | string | | +action_result.data.\*.intelligence.\*.tags.\*.category | string | | user +action_result.data.\*.intelligence.\*.tags.\*.id | numeric | | 123 +action_result.data.\*.intelligence.\*.tags.\*.name | string | | test_hybrid +action_result.data.\*.intelligence.\*.tags.\*.org_id | string | | 67 +action_result.data.\*.intelligence.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.tags.\*.source_user | string | | +action_result.data.\*.intelligence.\*.tags.\*.source_user_id | string | | 1234 +action_result.data.\*.intelligence.\*.tags.\*.tagger | string | | user +action_result.data.\*.intelligence.\*.tags.\*.tlp | string | | white +action_result.data.\*.intelligence.\*.threat_type | string | | malware +action_result.data.\*.intelligence.\*.threatscore | numeric | | 10 +action_result.data.\*.intelligence.\*.tlp | string | | amber +action_result.data.\*.intelligence.\*.trusted_circle_ids | string | | +action_result.data.\*.intelligence.\*.type | string | | email +action_result.data.\*.intelligence.\*.update_id | numeric | | 100010 +action_result.data.\*.intelligence.\*.uuid | string | | a5f417fb-0c7e-4eb7-b590-bca1af0c3dfb +action_result.data.\*.intelligence.\*.value | string | `email` | test@tes123.com +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2019-12-12T13:21:42.080982 +action_result.data.\*.name | string | | test_local_incident +action_result.data.\*.organization.id | string | | 67 +action_result.data.\*.organization.name | string | | qa.test.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.organization_id | numeric | `threatstream organization id` | 67 +action_result.data.\*.owner_user.email | string | `email` | qa+test@qa.test.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | new +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/incident/1000000003/ +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.start_date | string | | +action_result.data.\*.status.display_name | string | | New +action_result.data.\*.status.id | numeric | | 1 +action_result.data.\*.status.resource_uri | string | | /api/v1/incidentstatustype/1/ +action_result.data.\*.status_desc | string | | +action_result.data.\*.tags_v2.\*.id | string | | 15e +action_result.data.\*.tags_v2.\*.name | string | | test_name +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.remote_api | boolean | | True False +action_result.data.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.tlp | string | | amber +action_result.data.\*.uuid | string | | 28a86936-dfa8-44aa-9305-b3a5b9dbfbed +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.message | string | | Successfully retrieved incident +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create incident' Create an incident in ThreatStream @@ -1410,75 +1599,75 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with the incident \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with the incident \- Note that this appends | string | `threatstream intelligence id` +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with the incident - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with the incident - Note that this appends | string | `threatstream intelligence id` **name** | required | Name to give the incident | string | **fields** | optional | JSON formatted string of fields to include with the incident | string | -**is\_public** | optional | Classification designation | boolean | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | +**is_public** | optional | Classification designation | boolean | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.is\_public | boolean | -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.name | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.fjregnvjnj | string | -action\_result\.data\.\*\.id | numeric | `threatstream incident id` -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.invalid field | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | `threatstream organization id` -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status\.display\_name | string | -action\_result\.data\.\*\.status\.id | numeric | -action\_result\.data\.\*\.status\.resource\_uri | string | -action\_result\.data\.\*\.status\_desc | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | 171831109 +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.fields | string | | {"status": 2} +action_result.parameter.is_public | boolean | | True False +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | 1000000003,1000000004 +action_result.parameter.name | string | | new_threatstream_2 +action_result.data.\*.assignee_user | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.created_ts | string | | 2019-12-15T06:39:20.395924 +action_result.data.\*.description | string | | +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.end_date | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.fjregnvjnj | string | | frfer +action_result.data.\*.id | numeric | `threatstream incident id` | 1000000008 +action_result.data.\*.intelligence.\*.id | numeric | | 1000000003 +action_result.data.\*.invalid field | string | | failed +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2019-12-15T06:39:20.407307 +action_result.data.\*.name | string | | new_threatstream_2 +action_result.data.\*.organization.id | string | `threatstream organization id` | 67 +action_result.data.\*.organization.name | string | | qa.test.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.organization_id | numeric | `threatstream organization id` | 67 +action_result.data.\*.owner_user.email | string | `email` | qa+test@qa.test.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | new +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/incident/1000000008/ +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.start_date | string | | +action_result.data.\*.status.display_name | string | | New +action_result.data.\*.status.id | numeric | | 1 +action_result.data.\*.status.resource_uri | string | | /api/v1/incidentstatustype/1/ +action_result.data.\*.status_desc | string | | +action_result.data.\*.tlp | string | | +action_result.data.\*.uuid | string | | 68ed8fc0-8f3b-4a86-bc52-724a0057d43b +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully created incident +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update incident' Update an incident in ThreatStream by ID number @@ -1489,69 +1678,69 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with the incident \- Note that this appends | string | -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with the incident \- Note that this appends | string | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with the incident - Note that this appends | string | +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with the incident - Note that this appends | string | **fields** | optional | JSON formatted string of fields to update on the incident | string | -**incident\_id** | required | ID number of incident to update | string | `threatstream incident id` +**incident_id** | required | ID number of incident to update | string | `threatstream incident id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.cloud\_intelligence | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.incident\_id | string | `threatstream incident id` -action\_result\.parameter\.local\_intelligence | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream incident id` -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | `threatstream incident id` -action\_result\.data\.\*\.invalid field | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | `threatstream organization id` -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | `threatstream organization id` -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status\.display\_name | string | -action\_result\.data\.\*\.status\.id | numeric | -action\_result\.data\.\*\.status\.resource\_uri | string | -action\_result\.data\.\*\.status\_desc | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.cloud_intelligence | string | | 171831109 +action_result.parameter.fields | string | | {"status": 2} +action_result.parameter.incident_id | string | `threatstream incident id` | 1000000008 +action_result.parameter.local_intelligence | string | | 1000000002 +action_result.data.\*.assignee_user | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.created_ts | string | | 2019-12-15T06:39:20.395924 +action_result.data.\*.description | string | | +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.end_date | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream incident id` | 1000000008 +action_result.data.\*.intelligence.\*.id | numeric | `threatstream incident id` | 1000000002 +action_result.data.\*.invalid field | string | | failed +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2019-12-15T09:23:18.988408 +action_result.data.\*.name | string | | new_threatstream_2 +action_result.data.\*.organization.id | string | `threatstream organization id` | 67 +action_result.data.\*.organization.name | string | | qa.test.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.organization_id | numeric | `threatstream organization id` | 67 +action_result.data.\*.owner_user.email | string | `email` | qa+test@qa.test.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | new +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/incident/1000000008/ +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.start_date | string | | +action_result.data.\*.status.display_name | string | | Open +action_result.data.\*.status.id | numeric | | 2 +action_result.data.\*.status.resource_uri | string | | /api/v1/incidentstatustype/2/ +action_result.data.\*.status_desc | string | | +action_result.data.\*.tlp | string | | +action_result.data.\*.uuid | string | | 28a86936-dfa8-44aa-9305-b3a5b9dbfbed +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.message | string | | Successfully updated incident +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'import domain observable' Import domain observable into ThreatStream @@ -1559,43 +1748,43 @@ Import domain observable into ThreatStream Type: **generic** Read only: **False** -
  • For importing domain observables without approval, the user must provide indicator type in the field parameter \(e\.g \- "mal\_domain"\) whereas, for importing observables with approval, the user must provide threat type in the field parameter \(e\.g \- "malware"\)\.
  • The possible values of indicator type \(itype\) and threat\_type are listed at the starting of the documentation\. If the input contains any indicator type \(itype\) or threat\_type value except the ones listed, the action will behave according to the API behavior\.
+
  • For importing domain observables without approval, the user must provide indicator type in the field parameter (e.g - "mal_domain") whereas, for importing observables with approval, the user must provide threat type in the field parameter (e.g - "malware").
  • The possible values of indicator type (itype) and threat_type are listed at the starting of the documentation. If the input contains any indicator type (itype) or threat_type value except the ones listed, the action will behave according to the API behavior.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **domain** | required | Value of domain | string | `domain` -**indicator\_type** | required | Type of observable to import | string | -**source** | optional | Source of observable to import \(It will only be reflected on UI when observable is imported without approval\) | string | +**indicator_type** | required | Type of observable to import | string | +**source** | optional | Source of observable to import (It will only be reflected on UI when observable is imported without approval) | string | **classification** | optional | Designate classification for observable | string | **severity** | optional | Severity of the observable | string | -**tags** | optional | Comma\-separated list of tags to associate with this Observable | string | `threatstream tags` -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**with\_approval** | optional | Import the observable with approvals | boolean | -**allow\_unresolved** | optional | Unresolved domains will be imported if set to true | boolean | +**tags** | optional | Comma-separated list of tags to associate with this Observable | string | `threatstream tags` +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**with_approval** | optional | Import the observable with approvals | boolean | +**allow_unresolved** | optional | Unresolved domains will be imported if set to true | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.allow\_unresolved | boolean | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.domain | string | `domain` -action\_result\.parameter\.indicator\_type | string | -action\_result\.parameter\.severity | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.with\_approval | boolean | -action\_result\.data | string | -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.job\_id | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.success | boolean | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.allow_unresolved | boolean | | True False +action_result.parameter.classification | string | | public +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.domain | string | `domain` | test.com +action_result.parameter.indicator_type | string | | mal_domain malware +action_result.parameter.severity | string | | medium +action_result.parameter.source | string | | testsource +action_result.parameter.tags | string | `threatstream tags` | test_domain_tag +action_result.parameter.with_approval | boolean | | True False +action_result.data | string | | +action_result.data.\*.import_session_id | string | | 3369 +action_result.data.\*.job_id | string | | a75b7e4a-fc77-4d76-ad1f-4de03bbc7fa2 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.success | boolean | | True False +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully sent the request for importing the observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'import url observable' Import URL observable into ThreatStream @@ -1603,39 +1792,39 @@ Import URL observable into ThreatStream Type: **generic** Read only: **False** -
  • For importing URL observables without approval, the user must provide indicator type in the indicator\_type parameter \(e\.g \- "phish\_url"\) whereas, for importing observables with approval, the user must provide threat type in the indicator\_type parameter \(e\.g \- "phish"\)\.
  • The possible values of indicator type \(itype\) and threat\_type are listed at the starting of the documentation\. If the input contains any indicator type \(itype\) or threat\_type value except the ones listed, the action will behave according to the API behavior\.
+
  • For importing URL observables without approval, the user must provide indicator type in the indicator_type parameter (e.g - "phish_url") whereas, for importing observables with approval, the user must provide threat type in the indicator_type parameter (e.g - "phish").
  • The possible values of indicator type (itype) and threat_type are listed at the starting of the documentation. If the input contains any indicator type (itype) or threat_type value except the ones listed, the action will behave according to the API behavior.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **url** | required | Value of URL | string | `url` -**indicator\_type** | required | Type of observable to import | string | -**source** | optional | Source of observable to import \(It will only be reflected on UI when observable is imported without approval\) | string | +**indicator_type** | required | Type of observable to import | string | +**source** | optional | Source of observable to import (It will only be reflected on UI when observable is imported without approval) | string | **classification** | optional | Designate classification for observable | string | **severity** | optional | Severity of the observable | string | -**tags** | optional | Comma\-separated list of tags to associate with this Observable | string | `threatstream tags` -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**with\_approval** | optional | Import the observable with approvals | boolean | -**allow\_unresolved** | optional | Unresolved urls will be imported if set to true | boolean | +**tags** | optional | Comma-separated list of tags to associate with this Observable | string | `threatstream tags` +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**with_approval** | optional | Import the observable with approvals | boolean | +**allow_unresolved** | optional | Unresolved urls will be imported if set to true | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.allow\_unresolved | boolean | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.indicator\_type | string | -action\_result\.parameter\.severity | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.url | string | `url` -action\_result\.parameter\.with\_approval | boolean | -action\_result\.data | string | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.allow_unresolved | boolean | | True False +action_result.parameter.classification | string | | public +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.indicator_type | string | | phish_url phish +action_result.parameter.severity | string | | medium +action_result.parameter.source | string | | testsource +action_result.parameter.tags | string | `threatstream tags` | test_url_tag +action_result.parameter.url | string | `url` | http://122.122.122.122/ +action_result.parameter.with_approval | boolean | | True False +action_result.data | string | | +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully sent the request for importing the observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'import ip observable' Import IP observable into ThreatStream @@ -1643,37 +1832,37 @@ Import IP observable into ThreatStream Type: **generic** Read only: **False** -
  • For importing IP observables without approval, the user must provide indicator type in the indicator\_type parameter \(e\.g \- "apt\_ip"\) whereas, for importing observables with approval, the user must provide threat type in the indicator\_type parameter \(e\.g \- "apt"\)\.
  • The possible values of indicator type \(itype\) and threat\_type are listed at the starting of the documentation\. If the input contains any indicator type \(itype\) or threat\_type value except the ones listed, the action will behave according to the API behavior\.
+
  • For importing IP observables without approval, the user must provide indicator type in the indicator_type parameter (e.g - "apt_ip") whereas, for importing observables with approval, the user must provide threat type in the indicator_type parameter (e.g - "apt").
  • The possible values of indicator type (itype) and threat_type are listed at the starting of the documentation. If the input contains any indicator type (itype) or threat_type value except the ones listed, the action will behave according to the API behavior.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**ip\_address** | required | Value of IP | string | `ip` `ipv6` -**indicator\_type** | required | Type of observable to import | string | -**source** | optional | Source of observable to import \(It will only be reflected on UI when observable is imported without approval\) | string | +**ip_address** | required | Value of IP | string | `ip` `ipv6` +**indicator_type** | required | Type of observable to import | string | +**source** | optional | Source of observable to import (It will only be reflected on UI when observable is imported without approval) | string | **classification** | optional | Designate classification for observable | string | **severity** | optional | Severity of the observable | string | -**tags** | optional | Comma\-separated list of tags to associate with this Observable | string | `threatstream tags` -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**with\_approval** | optional | Import the observable with approvals | boolean | +**tags** | optional | Comma-separated list of tags to associate with this Observable | string | `threatstream tags` +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**with_approval** | optional | Import the observable with approvals | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.indicator\_type | string | -action\_result\.parameter\.ip\_address | string | `ip` `ipv6` -action\_result\.parameter\.severity | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.with\_approval | boolean | -action\_result\.data | string | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.classification | string | | public +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.indicator_type | string | | apt_ip apt +action_result.parameter.ip_address | string | `ip` `ipv6` | 122.122.122.122 +action_result.parameter.severity | string | | medium +action_result.parameter.source | string | | testsource +action_result.parameter.tags | string | `threatstream tags` | test_ip_tag +action_result.parameter.with_approval | boolean | | True False +action_result.data | string | | +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully sent the request for importing the observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'import file observable' Import file observable into ThreatStream @@ -1681,42 +1870,42 @@ Import file observable into ThreatStream Type: **generic** Read only: **False** -
  • For importing file observables without approval, the user must provide indicator type in the field parameter \(e\.g \- "crypto\_hash"\) whereas, for importing observables with approval, the user must provide threat type in the field parameter \(e\.g \- "crypto"\)\.
  • The possible values of indicator type \(itype\) and threat\_type are listed at the starting of the documentation\. If the input contains any indicator type \(itype\) or threat\_type value except the ones listed, the action will behave according to the API behavior\.
+
  • For importing file observables without approval, the user must provide indicator type in the field parameter (e.g - "crypto_hash") whereas, for importing observables with approval, the user must provide threat type in the field parameter (e.g - "crypto").
  • The possible values of indicator type (itype) and threat_type are listed at the starting of the documentation. If the input contains any indicator type (itype) or threat_type value except the ones listed, the action will behave according to the API behavior.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**file\_hash** | required | Hash value of file | string | `sha1` `sha256` `md5` `hash` -**indicator\_type** | required | Type of observable to import | string | -**source** | optional | Source of observable to import \(It will only be reflected on UI when observable is imported without approval\) | string | +**file_hash** | required | Hash value of file | string | `sha1` `sha256` `md5` `hash` +**indicator_type** | required | Type of observable to import | string | +**source** | optional | Source of observable to import (It will only be reflected on UI when observable is imported without approval) | string | **confidence** | required | Confidence level | numeric | **classification** | optional | Designate classification for observable | string | **severity** | optional | Severity of the observable | string | -**tags** | optional | Comma\-separated list of tags to associate with this Observable | string | `threatstream tags` -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**with\_approval** | optional | Import the observable with approvals | boolean | +**tags** | optional | Comma-separated list of tags to associate with this Observable | string | `threatstream tags` +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**with_approval** | optional | Import the observable with approvals | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.confidence | numeric | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.file\_hash | string | `sha1` `sha256` `md5` `hash` -action\_result\.parameter\.indicator\_type | string | -action\_result\.parameter\.severity | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.with\_approval | boolean | -action\_result\.data | string | -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.job\_id | string | -action\_result\.data\.\*\.success | boolean | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.classification | string | | public +action_result.parameter.confidence | numeric | | 71 +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.file_hash | string | `sha1` `sha256` `md5` `hash` | EBDD888E3A22FE7EA3C5750DAFB5484367CA808184D480D461B5E51580AC813B +action_result.parameter.indicator_type | string | | crypto_hash crypto +action_result.parameter.severity | string | | medium +action_result.parameter.source | string | | testsource +action_result.parameter.tags | string | `threatstream tags` | test_file_tag +action_result.parameter.with_approval | boolean | | True False +action_result.data | string | | +action_result.data.\*.import_session_id | string | | 1000001099 +action_result.data.\*.job_id | string | | ba6002fd-6bb9-4e6d-912d-8d69e3db5c65 +action_result.data.\*.success | boolean | | True False +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully sent the request for importing the observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'import email observable' Import email observable into ThreatStream @@ -1724,42 +1913,42 @@ Import email observable into ThreatStream Type: **generic** Read only: **False** -
  • For importing email observables without approval, the user must provide indicator type in the indicator\_type parameter \(e\.g \- "spam\_email"\) whereas, for importing observables with approval, the user must provide threat type in the indicator\_type parameter \(e\.g \- "spam"\)\.
  • The possible values of indicator type \(itype\) and threat\_type are listed at the starting of the documentation\. If the input contains any indicator type \(itype\) or threat\_type value except the ones listed, the action will behave according to the API behavior\.
+
  • For importing email observables without approval, the user must provide indicator type in the indicator_type parameter (e.g - "spam_email") whereas, for importing observables with approval, the user must provide threat type in the indicator_type parameter (e.g - "spam").
  • The possible values of indicator type (itype) and threat_type are listed at the starting of the documentation. If the input contains any indicator type (itype) or threat_type value except the ones listed, the action will behave according to the API behavior.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **email** | required | Value of email | string | `email` -**indicator\_type** | required | Type of observable to import | string | -**source** | optional | Source of observable to import \(It will only be reflected on UI when observable is imported without approval\) | string | +**indicator_type** | required | Type of observable to import | string | +**source** | optional | Source of observable to import (It will only be reflected on UI when observable is imported without approval) | string | **confidence** | required | Confidence level | numeric | **classification** | optional | Designate classification for observable | string | **severity** | optional | Severity of the observable | string | -**tags** | optional | Comma\-separated list of tags to associate with this Observable | string | `threatstream tags` -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**with\_approval** | optional | Import the observable with approvals | boolean | +**tags** | optional | Comma-separated list of tags to associate with this Observable | string | `threatstream tags` +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**with_approval** | optional | Import the observable with approvals | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.confidence | numeric | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.email | string | `email` -action\_result\.parameter\.indicator\_type | string | -action\_result\.parameter\.severity | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.with\_approval | boolean | -action\_result\.data | string | -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.job\_id | string | -action\_result\.data\.\*\.success | boolean | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.classification | string | | private +action_result.parameter.confidence | numeric | | 79 +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.email | string | `email` | test_remote_1@tmail.com +action_result.parameter.indicator_type | string | | spam_email spam +action_result.parameter.severity | string | | medium +action_result.parameter.source | string | | testsource +action_result.parameter.tags | string | `threatstream tags` | test_email_test +action_result.parameter.with_approval | boolean | | True False +action_result.data | string | | +action_result.data.\*.import_session_id | string | | 1000000020 +action_result.data.\*.job_id | string | | 321d4116-b632-4ea5-8862-e04c6572e300 +action_result.data.\*.success | boolean | | True False +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully sent the request for importing the observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'import observables' Import observables into ThreatStream @@ -1767,39 +1956,40 @@ Import observables into ThreatStream Type: **generic** Read only: **False** -
  • For importing observables without approval, the user must provide indicator type in the field parameter \(e\.g \- \{"itype"\: "<indicator\_type>"\}\) whereas, for importing observables with approval, the user must provide threat type in the field parameter \(e\.g \- \{"threat\_type"\: "<threat\_type>"\}\)\.
  • The "allow\_unresolved" parameter will be passed in the API call if the "value" parameter is set to "domain" or "url" and "with\_approval" parameter is set to "False"\.
  • The possible values of indicator type \(itype\) and threat\_type are listed at the starting of the documentation\. If the input contains any indicator type \(itype\) or threat\_type value except the ones listed, the action will behave according to the API behavior\.
  • For importing observables of type 'URL', 'IP' and 'Domain', Threatstream itself detects the confidence value whereas, for importing observables of type 'Email', 'File', the user must provide confidence value in the field parameter \(e\.g \- \{"itype"\: "<indicator\_type>", "confidence"\: <confidence\_value>\}\)\.
  • If both the "itype" and "threat\_type" values are passed in the "fields" parameter when "with\_approval" is set to "True", the action will behave according to the API behavior\.
+
  • For importing observables without approval, the user must provide indicator type in the field parameter (e.g - {"itype": "<indicator_type>"}) whereas, for importing observables with approval, the user must provide threat type in the field parameter (e.g - {"threat_type": "<threat_type>"}).
  • The "allow_unresolved" parameter will be passed in the API call if the "value" parameter is set to "domain" or "url" and "with_approval" parameter is set to "False".
  • The possible values of indicator type (itype) and threat_type are listed at the starting of the documentation. If the input contains any indicator type (itype) or threat_type value except the ones listed, the action will behave according to the API behavior.
  • For importing observables of type 'URL', 'IP' and 'Domain', Threatstream itself detects the confidence value whereas, for importing observables of type 'Email', 'File', the user must provide confidence value in the field parameter (e.g - {"itype": "<indicator_type>", "confidence": <confidence_value>}).
  • If both the "itype" and "threat_type" values are passed in the "fields" parameter when "with_approval" is set to "True", the action will behave according to the API behavior.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**observable\_type** | required | Type of observable to import | string | +**observable_type** | required | Type of observable to import, default types: [ip, domain, url, email, hash]. Custom types can be provided if they are available on ThreatStream instance | string | **value** | required | Observable value | string | `ip` `domain` `url` `email` `md5` `sha1` `hash` **classification** | required | Designate classification for observable | string | **fields** | optional | JSON formatted string of fields to include with the observable | string | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**with\_approval** | optional | Import the observable with approvals | boolean | -**allow\_unresolved** | optional | Unresolved domains will be imported if set to true | boolean | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**with_approval** | optional | Import the observable with approvals | boolean | +**allow_unresolved** | optional | Unresolved domains will be imported if set to true | boolean | +**allow_custom_type** | optional | Allows upload of custom observable_type | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.allow\_unresolved | boolean | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.observable\_type | string | -action\_result\.parameter\.value | string | `ip` `domain` `url` `email` `md5` `sha1` `hash` -action\_result\.parameter\.with\_approval | boolean | -action\_result\.data | string | -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.job\_id | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.success | boolean | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.allow_unresolved | boolean | | True False +action_result.parameter.classification | string | | public +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.fields | string | | {"itype": "tor_ip", "confidence": 45} {"threat_type": "tor", "confidence": 45} +action_result.parameter.observable_type | string | | ip +action_result.parameter.value | string | `ip` `domain` `url` `email` `md5` `sha1` `hash` | 122.122.122.122 +action_result.parameter.with_approval | boolean | | True False +action_result.data | string | | +action_result.data.\*.import_session_id | string | | 1045 +action_result.data.\*.job_id | string | | 2643424c-868d-42c5-9234-8d754cfcfe4f +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.success | boolean | | True False +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Successfully sent the request for importing the observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'tag observable' Add a tag to the observable @@ -1811,30 +2001,30 @@ Read only: **False** PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **id** | required | Intelligence ID | string | `threatstream intelligence id` -**source\_user\_id** | required | ID of user to associate with tag | string | -**tags** | required | Comma\-separated list of tags to associate with this Observable | string | `threatstream tags` +**source_user_id** | required | ID of user to associate with tag | string | +**tags** | required | Comma-separated list of tags to associate with this Observable | string | `threatstream tags` **tlp** | optional | TLP to assign to each tag | string | `threatstream tlp` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.id | string | `threatstream intelligence id` -action\_result\.parameter\.source\_user\_id | string | -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.tlp | string | `threatstream tlp` -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.success | boolean | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.id | string | `threatstream intelligence id` | 51590754288 +action_result.parameter.source_user_id | string | | 16783 +action_result.parameter.tags | string | `threatstream tags` | test_tag +action_result.parameter.tlp | string | `threatstream tlp` | red white +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.success | boolean | | True False +action_result.data.\*.tags.\*.id | string | | 9x2 nyj +action_result.data.\*.tags.\*.name | string | | tag_test +action_result.data.\*.tags.\*.org_id | numeric | | +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.source_user_id | string | | 16783 +action_result.data.\*.tags.\*.tlp | string | | red +action_result.summary | string | | +action_result.message | string | | Successfully tagged Observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get pcap' Download pcap file of a sample submitted to the sandbox and add it to vault @@ -1848,16 +2038,16 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **id** | required | ID of report associated with the pcap to download | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.id | numeric | -action\_result\.data\.\*\.file\_name | string | -action\_result\.data\.\*\.vault\_id | string | `sha1` `vault id` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.id | numeric | | 445798 +action_result.data.\*.file_name | string | | 20190819_134705_userId-16783_dump.pcap +action_result.data.\*.vault_id | string | `sha1` `vault id` | 285ed37b6be7b4bf1583b59150b22e9a741caede +action_result.summary | string | | +action_result.message | string | | PCAP file added successfully to the vault +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'detonate file' Detonate file in ThreatStream @@ -1865,62 +2055,62 @@ Detonate file in ThreatStream Type: **generic** Read only: **False** -If classification or platform parameter is added and is also mentioned in the fields parameter, the value given in the individual parameters is considered\. +If classification or platform parameter is added and is also mentioned in the fields parameter, the value given in the individual parameters is considered. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**platform** | optional | Which platform to run the detonation on \- Ex\: WINDOWS10x64\. Default is 'WINDOWS7' which will run the detonation on 'WINDOWS7' platform | string | -**vault\_id** | required | Vault id of file to be detonated | string | `vault id` `sha1` -**classification** | required | Classification of the sandbox submission \- private or public | string | -**use\_premium\_sandbox** | optional | Specify whether the premium sandbox should be used for detonation \- true or false\. If you want to use the Joe Sandbox service for detonation, set this attribute to true | boolean | -**use\_vmray\_sandbox** | optional | Specify whether the vmray sandbox should be used for detonation \- true or false\. If you want to use the VMRay sandbox service for detonation, set this attribute to true | boolean | -**vmray\_max\_jobs** | optional | Specify the number of detonations you want VMRay to perform for the submission | numeric | -**fields** | optional | JSON formatted string of additional fields to be included in the detonate file action\. e\.g\. \{"file\_has\_password"\:"true","file\_password"\:"abc123"\}\. Please check the API doc to find more information on other valid fields | string | +**platform** | optional | Which platform to run the detonation on - Ex: WINDOWS10x64. Default is 'WINDOWS7' which will run the detonation on 'WINDOWS7' platform | string | +**vault_id** | required | Vault id of file to be detonated | string | `vault id` `sha1` +**classification** | required | Classification of the sandbox submission - private or public | string | +**use_premium_sandbox** | optional | Specify whether the premium sandbox should be used for detonation - true or false. If you want to use the Joe Sandbox service for detonation, set this attribute to true | boolean | +**use_vmray_sandbox** | optional | Specify whether the vmray sandbox should be used for detonation - true or false. If you want to use the VMRay sandbox service for detonation, set this attribute to true | boolean | +**vmray_max_jobs** | optional | Specify the number of detonations you want VMRay to perform for the submission | numeric | +**fields** | optional | JSON formatted string of additional fields to be included in the detonate file action. e.g. {"file_has_password":"true","file_password":"abc123"}. Please check the API doc to find more information on other valid fields | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.platform | string | -action\_result\.parameter\.use\_premium\_sandbox | boolean | -action\_result\.parameter\.use\_vmray\_sandbox | boolean | -action\_result\.parameter\.vault\_id | string | `vault id` `sha1` -action\_result\.parameter\.vmray\_max\_jobs | numeric | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.reports\.ANDROID4\.4\.detail | string | -action\_result\.data\.\*\.reports\.ANDROID4\.4\.status | string | -action\_result\.data\.\*\.reports\.ANDROID5\.1\.detail | string | -action\_result\.data\.\*\.reports\.ANDROID5\.1\.status | string | -action\_result\.data\.\*\.reports\.ANDROID6\.0\.detail | string | -action\_result\.data\.\*\.reports\.ANDROID6\.0\.status | string | -action\_result\.data\.\*\.reports\.MACOSX\.detail | string | -action\_result\.data\.\*\.reports\.MACOSX\.status | string | -action\_result\.data\.\*\.reports\.WINDOWS10\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS10\.status | string | -action\_result\.data\.\*\.reports\.WINDOWS10x64\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS10x64\.status | string | -action\_result\.data\.\*\.reports\.WINDOWS7\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS7\.id | numeric | -action\_result\.data\.\*\.reports\.WINDOWS7\.status | string | -action\_result\.data\.\*\.reports\.WINDOWS7NATIVE\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS7NATIVE\.status | string | -action\_result\.data\.\*\.reports\.WINDOWS7OFFICE2010\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS7OFFICE2010\.status | string | -action\_result\.data\.\*\.reports\.WINDOWS7OFFICE2013\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS7OFFICE2013\.status | string | -action\_result\.data\.\*\.reports\.WINDOWSXP\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWSXP\.id | numeric | -action\_result\.data\.\*\.reports\.WINDOWSXP\.status | string | -action\_result\.data\.\*\.reports\.WINDOWSXPNATIVE\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWSXPNATIVE\.status | string | -action\_result\.data\.\*\.success | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.classification | string | | public +action_result.parameter.fields | string | | {"file_has_password":"true","file_password":"abc123","import_indicators":"true","report_radio-notes":"Credential-Exposure,compromised_email","trusted_circles":"13"} +action_result.parameter.platform | string | | WINDOWS7 +action_result.parameter.use_premium_sandbox | boolean | | True False +action_result.parameter.use_vmray_sandbox | boolean | | True False +action_result.parameter.vault_id | string | `vault id` `sha1` | dd88508cda7bcfc71ffdbc0e26afe97d3fb9a0b6 +action_result.parameter.vmray_max_jobs | numeric | | 5 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.reports.ANDROID4.4.detail | string | | +action_result.data.\*.reports.ANDROID4.4.status | string | | +action_result.data.\*.reports.ANDROID5.1.detail | string | | +action_result.data.\*.reports.ANDROID5.1.status | string | | +action_result.data.\*.reports.ANDROID6.0.detail | string | | +action_result.data.\*.reports.ANDROID6.0.status | string | | +action_result.data.\*.reports.MACOSX.detail | string | | +action_result.data.\*.reports.MACOSX.status | string | | +action_result.data.\*.reports.WINDOWS10.detail | string | | +action_result.data.\*.reports.WINDOWS10.status | string | | +action_result.data.\*.reports.WINDOWS10x64.detail | string | | +action_result.data.\*.reports.WINDOWS10x64.status | string | | +action_result.data.\*.reports.WINDOWS7.detail | string | | +action_result.data.\*.reports.WINDOWS7.id | numeric | | 449205 +action_result.data.\*.reports.WINDOWS7.status | string | | +action_result.data.\*.reports.WINDOWS7NATIVE.detail | string | | +action_result.data.\*.reports.WINDOWS7NATIVE.status | string | | +action_result.data.\*.reports.WINDOWS7OFFICE2010.detail | string | | +action_result.data.\*.reports.WINDOWS7OFFICE2010.status | string | | +action_result.data.\*.reports.WINDOWS7OFFICE2013.detail | string | | +action_result.data.\*.reports.WINDOWS7OFFICE2013.status | string | | +action_result.data.\*.reports.WINDOWSXP.detail | string | | +action_result.data.\*.reports.WINDOWSXP.id | numeric | | 449204 +action_result.data.\*.reports.WINDOWSXP.status | string | | +action_result.data.\*.reports.WINDOWSXPNATIVE.detail | string | | +action_result.data.\*.reports.WINDOWSXPNATIVE.status | string | | +action_result.data.\*.success | string | | True False +action_result.summary | string | | +action_result.message | string | | Successfully detonated file +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'detonate url' Detonate URL in ThreatStream @@ -1928,42 +2118,42 @@ Detonate URL in ThreatStream Type: **generic** Read only: **False** -If classification or platform parameter is added and is also mentioned in the fields parameter, the value given in the individual parameters is considered\. +If classification or platform parameter is added and is also mentioned in the fields parameter, the value given in the individual parameters is considered. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**platform** | optional | Which platform to run the detonation on \- Ex\: WINDOWS10x64\. Default is 'WINDOWS7' which will run the detonation on 'WINDOWS7' platform | string | +**platform** | optional | Which platform to run the detonation on - Ex: WINDOWS10x64. Default is 'WINDOWS7' which will run the detonation on 'WINDOWS7' platform | string | **url** | required | URL to be detonated | string | `url` -**classification** | required | Classification of the sandbox submission \- private or public | string | -**use\_premium\_sandbox** | optional | Specify whether the premium sandbox should be used for detonation \- true or false\. If you want to use the Joe Sandbox service for detonation, set this attribute to true | boolean | -**use\_vmray\_sandbox** | optional | Specify whether the vmray sandbox should be used for detonation \- true or false\. If you want to use the VMRay sandbox service for detonation, set this attribute to true | boolean | -**vmray\_max\_jobs** | optional | Specify the number of detonations you want VMRay to perform for the submission | numeric | -**fields** | optional | JSON formatted string of additional fields to be included in the detonate url action\. e\.g\. \{"import\_indicators"\:"true","report\_radio\-notes"\:"Credential\-Exposure,compromised\_email"\}\. Please check the API doc to find more infomation on other valid fields | string | +**classification** | required | Classification of the sandbox submission - private or public | string | +**use_premium_sandbox** | optional | Specify whether the premium sandbox should be used for detonation - true or false. If you want to use the Joe Sandbox service for detonation, set this attribute to true | boolean | +**use_vmray_sandbox** | optional | Specify whether the vmray sandbox should be used for detonation - true or false. If you want to use the VMRay sandbox service for detonation, set this attribute to true | boolean | +**vmray_max_jobs** | optional | Specify the number of detonations you want VMRay to perform for the submission | numeric | +**fields** | optional | JSON formatted string of additional fields to be included in the detonate url action. e.g. {"import_indicators":"true","report_radio-notes":"Credential-Exposure,compromised_email"}. Please check the API doc to find more infomation on other valid fields | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.classification | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.platform | string | -action\_result\.parameter\.url | string | `url` -action\_result\.parameter\.use\_premium\_sandbox | boolean | -action\_result\.parameter\.use\_vmray\_sandbox | boolean | -action\_result\.parameter\.vmray\_max\_jobs | numeric | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.reports\.WINDOWS7\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWS7\.id | numeric | -action\_result\.data\.\*\.reports\.WINDOWS7\.status | string | -action\_result\.data\.\*\.reports\.WINDOWSXP\.detail | string | -action\_result\.data\.\*\.reports\.WINDOWSXP\.id | numeric | -action\_result\.data\.\*\.reports\.WINDOWSXP\.status | string | -action\_result\.data\.\*\.success | boolean | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.classification | string | | public +action_result.parameter.fields | string | | {"import_indicators":"true","report_radio-notes":"Credential-Exposure,compromised_email","trusted_circles":"13"} +action_result.parameter.platform | string | | WINDOWS7 +action_result.parameter.url | string | `url` | https://test.com +action_result.parameter.use_premium_sandbox | boolean | | True False +action_result.parameter.use_vmray_sandbox | boolean | | True False +action_result.parameter.vmray_max_jobs | numeric | | 5 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.reports.WINDOWS7.detail | string | | /api/v1/submit/451705/report/ +action_result.data.\*.reports.WINDOWS7.id | numeric | | 451705 +action_result.data.\*.reports.WINDOWS7.status | string | | /api/v1/submit/451705/ +action_result.data.\*.reports.WINDOWSXP.detail | string | | /api/v1/submit/451704/report/ +action_result.data.\*.reports.WINDOWSXP.id | numeric | | 451704 +action_result.data.\*.reports.WINDOWSXP.status | string | | /api/v1/submit/451704/ +action_result.data.\*.success | boolean | | True False +action_result.summary | string | | +action_result.message | string | | Successfully detonated URL +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get status' Retrieve detonation status present in Threatstream @@ -1974,55 +2164,55 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**endpoint** | required | Endpoint given by Detonate File/URL \(eg\: /api/v1/submit/12345/\) | string | `threatstream endpoint status` +**endpoint** | required | Endpoint given by Detonate File/URL (eg: /api/v1/submit/12345/) | string | `threatstream endpoint status` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.endpoint | string | `threatstream endpoint status` -action\_result\.data\.\*\.classification | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.date\_added | string | -action\_result\.data\.\*\.detail | string | -action\_result\.data\.\*\.file | string | -action\_result\.data\.\*\.html\_report | string | -action\_result\.data\.\*\.id | numeric | -action\_result\.data\.\*\.import\_indicators | boolean | -action\_result\.data\.\*\.jobID | string | -action\_result\.data\.\*\.maec\_report | string | -action\_result\.data\.\*\.md5 | string | -action\_result\.data\.\*\.message | string | -action\_result\.data\.\*\.misc\_info | string | -action\_result\.data\.\*\.notes | string | -action\_result\.data\.\*\.pdf\_generated | numeric | -action\_result\.data\.\*\.platform | string | -action\_result\.data\.\*\.platform\_label | string | -action\_result\.data\.\*\.priority | numeric | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.reportid | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.sandbox\_vendor | string | -action\_result\.data\.\*\.sha1 | string | -action\_result\.data\.\*\.sha256 | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.url | string | `url` -action\_result\.data\.\*\.user\.id | numeric | -action\_result\.data\.\*\.user\.username | string | `email` `user name` -action\_result\.data\.\*\.user\_id | numeric | -action\_result\.data\.\*\.verdict | string | -action\_result\.data\.\*\.virustotal | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.data\.\*\.yara | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.endpoint | string | `threatstream endpoint status` | /api/v1/submit/454240/ +action_result.data.\*.classification | string | | private +action_result.data.\*.confidence | numeric | | +action_result.data.\*.date_added | string | | 2018-08-17T17:52:13.832385 +action_result.data.\*.detail | string | | +action_result.data.\*.file | string | | /test_file.png +action_result.data.\*.html_report | string | | +action_result.data.\*.id | numeric | | 291629 +action_result.data.\*.import_indicators | boolean | | True False +action_result.data.\*.jobID | string | | 189200 +action_result.data.\*.maec_report | string | | +action_result.data.\*.md5 | string | | +action_result.data.\*.message | string | | +action_result.data.\*.misc_info | string | | +action_result.data.\*.notes | string | | +action_result.data.\*.pdf_generated | numeric | | 0 +action_result.data.\*.platform | string | | WINDOWS7 +action_result.data.\*.platform_label | string | | Windows 7 +action_result.data.\*.priority | numeric | | 2 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.reportid | string | | +action_result.data.\*.resource_uri | string | | +action_result.data.\*.sandbox_vendor | string | | test +action_result.data.\*.sha1 | string | | +action_result.data.\*.sha256 | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.status | string | | processing +action_result.data.\*.url | string | `url` | +action_result.data.\*.user.id | numeric | | 6941 +action_result.data.\*.user.username | string | `email` `user name` | +action_result.data.\*.user_id | numeric | | 16783 +action_result.data.\*.verdict | string | | benign +action_result.data.\*.virustotal | string | | +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.data.\*.yara | string | | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved detonation status +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get report' Retrieve detonation report present in Threatstream @@ -2033,131 +2223,131 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**endpoint** | required | Endpoint given by Detonate File/URL \(eg\: /api/v1/submit/141/report/\) | string | `threatstream endpoint report` +**endpoint** | required | Endpoint given by Detonate File/URL (eg: /api/v1/submit/141/report/) | string | `threatstream endpoint report` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.endpoint | string | `threatstream endpoint report` -action\_result\.data\.\*\.pcap | string | `url` -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.results\.behavior\.anomaly\.\*\.category | string | -action\_result\.data\.\*\.results\.behavior\.anomaly\.\*\.funcname | string | -action\_result\.data\.\*\.results\.behavior\.anomaly\.\*\.message | string | -action\_result\.data\.\*\.results\.behavior\.anomaly\.\*\.name | string | -action\_result\.data\.\*\.results\.behavior\.anomaly\.\*\.pid | numeric | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.classname | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.content | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.file | string | `file name` `file path` -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.moduleaddress | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.object | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.pathtofile | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.regkey | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.data\.windowname | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.eid | numeric | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.event | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.object | string | -action\_result\.data\.\*\.results\.behavior\.enhanced\.\*\.timestamp | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.api | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.arguments\.\*\.name | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.arguments\.\*\.value | string | `file path` `file name` -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.category | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.id | numeric | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.repeated | numeric | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.return | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.status | boolean | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.thread\_id | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.calls\.\*\.timestamp | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.first\_seen | string | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.parent\_id | numeric | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.process\_id | numeric | -action\_result\.data\.\*\.results\.behavior\.processes\.\*\.process\_name | string | `file name` -action\_result\.data\.\*\.results\.behavior\.processtree\.\*\.children\.\*\.name | string | -action\_result\.data\.\*\.results\.behavior\.processtree\.\*\.children\.\*\.parent\_id | numeric | -action\_result\.data\.\*\.results\.behavior\.processtree\.\*\.children\.\*\.pid | numeric | -action\_result\.data\.\*\.results\.behavior\.processtree\.\*\.name | string | `file name` -action\_result\.data\.\*\.results\.behavior\.processtree\.\*\.parent\_id | numeric | -action\_result\.data\.\*\.results\.behavior\.processtree\.\*\.pid | numeric | `pid` -action\_result\.data\.\*\.results\.behavior\.summary\.files | string | `file path` `file name` -action\_result\.data\.\*\.results\.behavior\.summary\.keys | string | -action\_result\.data\.\*\.results\.debug\.log | string | -action\_result\.data\.\*\.results\.dropped\.\*\.crc32 | string | -action\_result\.data\.\*\.results\.dropped\.\*\.md5 | string | -action\_result\.data\.\*\.results\.dropped\.\*\.name | string | -action\_result\.data\.\*\.results\.dropped\.\*\.path | string | -action\_result\.data\.\*\.results\.dropped\.\*\.sha1 | string | -action\_result\.data\.\*\.results\.dropped\.\*\.sha256 | string | -action\_result\.data\.\*\.results\.dropped\.\*\.sha512 | string | -action\_result\.data\.\*\.results\.dropped\.\*\.size | numeric | -action\_result\.data\.\*\.results\.dropped\.\*\.ssdeep | string | -action\_result\.data\.\*\.results\.dropped\.\*\.type | string | -action\_result\.data\.\*\.results\.info\.category | string | -action\_result\.data\.\*\.results\.info\.custom | string | -action\_result\.data\.\*\.results\.info\.duration | numeric | -action\_result\.data\.\*\.results\.info\.ended | string | -action\_result\.data\.\*\.results\.info\.id | numeric | -action\_result\.data\.\*\.results\.info\.machine\.id | numeric | -action\_result\.data\.\*\.results\.info\.machine\.label | string | -action\_result\.data\.\*\.results\.info\.machine\.manager | string | -action\_result\.data\.\*\.results\.info\.machine\.name | string | -action\_result\.data\.\*\.results\.info\.machine\.shutdown\_on | string | -action\_result\.data\.\*\.results\.info\.machine\.started\_on | string | -action\_result\.data\.\*\.results\.info\.package | string | -action\_result\.data\.\*\.results\.info\.started | string | -action\_result\.data\.\*\.results\.info\.version | string | -action\_result\.data\.\*\.results\.network\.dns\.\*\.answers\.\*\.data | string | -action\_result\.data\.\*\.results\.network\.dns\.\*\.answers\.\*\.type | string | -action\_result\.data\.\*\.results\.network\.dns\.\*\.request | string | -action\_result\.data\.\*\.results\.network\.dns\.\*\.type | string | -action\_result\.data\.\*\.results\.network\.domains\.\*\.domain | string | -action\_result\.data\.\*\.results\.network\.domains\.\*\.ip | string | -action\_result\.data\.\*\.results\.network\.hosts | string | `ip` -action\_result\.data\.\*\.results\.network\.pcap\_sha256 | string | `sha256` -action\_result\.data\.\*\.results\.network\.sorted\_pcap\_sha256 | string | `sha256` -action\_result\.data\.\*\.results\.network\.tcp\.\*\.dport | numeric | -action\_result\.data\.\*\.results\.network\.tcp\.\*\.dst | string | `ip` -action\_result\.data\.\*\.results\.network\.tcp\.\*\.offset | numeric | -action\_result\.data\.\*\.results\.network\.tcp\.\*\.sport | numeric | -action\_result\.data\.\*\.results\.network\.tcp\.\*\.src | string | `ip` -action\_result\.data\.\*\.results\.network\.tcp\.\*\.time | numeric | -action\_result\.data\.\*\.results\.network\.udp\.\*\.dport | numeric | -action\_result\.data\.\*\.results\.network\.udp\.\*\.dst | string | `ip` -action\_result\.data\.\*\.results\.network\.udp\.\*\.offset | numeric | -action\_result\.data\.\*\.results\.network\.udp\.\*\.sport | numeric | -action\_result\.data\.\*\.results\.network\.udp\.\*\.src | string | `ip` -action\_result\.data\.\*\.results\.network\.udp\.\*\.time | numeric | -action\_result\.data\.\*\.results\.signatures\.\*\.alert | boolean | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.process\.process\_name | string | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.signs\.\*\.type | string | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.signs\.\*\.value\.category | string | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.signs\.\*\.value\.return | string | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.signs\.\*\.value\.status | boolean | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.signs\.\*\.value\.thread\_id | string | -action\_result\.data\.\*\.results\.signatures\.\*\.data\.\*\.signs\.\*\.value\.timestamp | string | -action\_result\.data\.\*\.results\.signatures\.\*\.name | string | -action\_result\.data\.\*\.results\.signatures\.\*\.severity | numeric | -action\_result\.data\.\*\.results\.target\.category | string | -action\_result\.data\.\*\.results\.target\.file\.crc32 | string | -action\_result\.data\.\*\.results\.target\.file\.md5 | string | `md5` -action\_result\.data\.\*\.results\.target\.file\.name | string | -action\_result\.data\.\*\.results\.target\.file\.path | string | -action\_result\.data\.\*\.results\.target\.file\.sha1 | string | `sha1` -action\_result\.data\.\*\.results\.target\.file\.sha256 | string | `sha256` -action\_result\.data\.\*\.results\.target\.file\.sha512 | string | -action\_result\.data\.\*\.results\.target\.file\.size | numeric | -action\_result\.data\.\*\.results\.target\.file\.ssdeep | string | -action\_result\.data\.\*\.results\.target\.file\.type | string | -action\_result\.data\.\*\.results\.target\.url | string | -action\_result\.data\.\*\.screenshots | string | `url` -action\_result\.data\.\*\.success | boolean | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.endpoint | string | `threatstream endpoint report` | /api/v1/submit/141/report/ +action_result.data.\*.pcap | string | `url` | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.results.behavior.anomaly.\*.category | string | | unhook +action_result.data.\*.results.behavior.anomaly.\*.funcname | string | | SetWindowsHookExW +action_result.data.\*.results.behavior.anomaly.\*.message | string | | Function hook was modified! +action_result.data.\*.results.behavior.anomaly.\*.name | string | | iexplore.exe +action_result.data.\*.results.behavior.anomaly.\*.pid | numeric | | 2012 +action_result.data.\*.results.behavior.enhanced.\*.data.classname | string | | Shell_TrayWnd +action_result.data.\*.results.behavior.enhanced.\*.data.content | string | | 0 +action_result.data.\*.results.behavior.enhanced.\*.data.file | string | `file name` `file path` | KERNEL32.DLL +action_result.data.\*.results.behavior.enhanced.\*.data.moduleaddress | string | | +action_result.data.\*.results.behavior.enhanced.\*.data.object | string | | +action_result.data.\*.results.behavior.enhanced.\*.data.pathtofile | string | | +action_result.data.\*.results.behavior.enhanced.\*.data.regkey | string | | DisableUNCCheck +action_result.data.\*.results.behavior.enhanced.\*.data.windowname | string | | +action_result.data.\*.results.behavior.enhanced.\*.eid | numeric | | 1 +action_result.data.\*.results.behavior.enhanced.\*.event | string | | load +action_result.data.\*.results.behavior.enhanced.\*.object | string | | library +action_result.data.\*.results.behavior.enhanced.\*.timestamp | string | | 2018-08-18 00:52:26,968 +action_result.data.\*.results.behavior.processes.\*.calls.\*.api | string | | NtOpenDirectoryObject +action_result.data.\*.results.behavior.processes.\*.calls.\*.arguments.\*.name | string | | DirectoryHandle +action_result.data.\*.results.behavior.processes.\*.calls.\*.arguments.\*.value | string | `file path` `file name` | 0x00000088 +action_result.data.\*.results.behavior.processes.\*.calls.\*.category | string | | filesystem +action_result.data.\*.results.behavior.processes.\*.calls.\*.id | numeric | | 0 +action_result.data.\*.results.behavior.processes.\*.calls.\*.repeated | numeric | | 0 +action_result.data.\*.results.behavior.processes.\*.calls.\*.return | string | | 0x00000000 +action_result.data.\*.results.behavior.processes.\*.calls.\*.status | boolean | | True False +action_result.data.\*.results.behavior.processes.\*.calls.\*.thread_id | string | | 2684 +action_result.data.\*.results.behavior.processes.\*.calls.\*.timestamp | string | | 2018-08-18 00:52:26,936 +action_result.data.\*.results.behavior.processes.\*.first_seen | string | | 2018-08-18 00:52:26,921 +action_result.data.\*.results.behavior.processes.\*.parent_id | numeric | | 2228 +action_result.data.\*.results.behavior.processes.\*.process_id | numeric | | 2680 +action_result.data.\*.results.behavior.processes.\*.process_name | string | `file name` | cmd.exe +action_result.data.\*.results.behavior.processtree.\*.children.\*.name | string | | iexplore.exe +action_result.data.\*.results.behavior.processtree.\*.children.\*.parent_id | numeric | | 1772 +action_result.data.\*.results.behavior.processtree.\*.children.\*.pid | numeric | | 2012 +action_result.data.\*.results.behavior.processtree.\*.name | string | `file name` | cmd.exe +action_result.data.\*.results.behavior.processtree.\*.parent_id | numeric | | 2228 +action_result.data.\*.results.behavior.processtree.\*.pid | numeric | `pid` | 2680 +action_result.data.\*.results.behavior.summary.files | string | `file path` `file name` | C:\\Windows\\system32\\rsaenh.dll +action_result.data.\*.results.behavior.summary.keys | string | | HKEY_LOCAL_MACHINE\\Software\\Classes\\Interface\\{6C72B11B-DBE0-4C87-B1A8-7C8A36BD563D} +action_result.data.\*.results.debug.log | string | | +action_result.data.\*.results.dropped.\*.crc32 | string | | 7CCFDEB6 +action_result.data.\*.results.dropped.\*.md5 | string | | e2817febfede77b8cc498c4833098742 +action_result.data.\*.results.dropped.\*.name | string | | invalidcert[1] +action_result.data.\*.results.dropped.\*.path | string | | /opt/ts_sandbox/cuckoo/storage/analyses/2036/files/9088658753/invalidcert[1] +action_result.data.\*.results.dropped.\*.sha1 | string | | 6ab7cc3e5c14221cd349a932d56c6bd1acefed70 +action_result.data.\*.results.dropped.\*.sha256 | string | | aab4f5b4bdd02b66b46643b0bbd40761c694b14857e6943f3ac03b692fd08047 +action_result.data.\*.results.dropped.\*.sha512 | string | | 10e93a02799d727584621ab0852f864e1e9875e6a68d6dce4eee3f454cc253672a74859dd078c1779b88e26f44bd410a6c173dcd86ec49effb119d56e01bc977 +action_result.data.\*.results.dropped.\*.size | numeric | | 4922 +action_result.data.\*.results.dropped.\*.ssdeep | string | | 96:UUHUD0Ws5PFkiGjUpEajPCMCz27BS4bLAi:3UIWsnkdjoFDd57BS4bMi +action_result.data.\*.results.dropped.\*.type | string | | HTML document, UTF-8 Unicode (with BOM) text, with CRLF line terminators +action_result.data.\*.results.info.category | string | | file +action_result.data.\*.results.info.custom | string | | +action_result.data.\*.results.info.duration | numeric | | 1765 +action_result.data.\*.results.info.ended | string | | 2018-08-17 18:21:40 +action_result.data.\*.results.info.id | numeric | | 189200 +action_result.data.\*.results.info.machine.id | numeric | | 188372 +action_result.data.\*.results.info.machine.label | string | | WINDOWS7_4 +action_result.data.\*.results.info.machine.manager | string | | KVM +action_result.data.\*.results.info.machine.name | string | | WINDOWS7_4 +action_result.data.\*.results.info.machine.shutdown_on | string | | 2018-08-17 18:21:40 +action_result.data.\*.results.info.machine.started_on | string | | 2018-08-17 17:52:15 +action_result.data.\*.results.info.package | string | | +action_result.data.\*.results.info.started | string | | 2018-08-17 17:52:15 +action_result.data.\*.results.info.version | string | | 1.3-dev +action_result.data.\*.results.network.dns.\*.answers.\*.data | string | | 216.58.193.142 +action_result.data.\*.results.network.dns.\*.answers.\*.type | string | | A +action_result.data.\*.results.network.dns.\*.request | string | | test.com +action_result.data.\*.results.network.dns.\*.type | string | | A +action_result.data.\*.results.network.domains.\*.domain | string | | test.com +action_result.data.\*.results.network.domains.\*.ip | string | | 172.217.2.238 +action_result.data.\*.results.network.hosts | string | `ip` | 122.122.122.122 +action_result.data.\*.results.network.pcap_sha256 | string | `sha256` | f6d7241fa1c3c47cec2169d11a7899d642383f15e23e325ade8677b7417a1539 +action_result.data.\*.results.network.sorted_pcap_sha256 | string | `sha256` | 89152c1836bd3444227ad29fafd1c8cb492d2f904966c154cd3dd8497133052e +action_result.data.\*.results.network.tcp.\*.dport | numeric | | 139 +action_result.data.\*.results.network.tcp.\*.dst | string | `ip` | 122.122.122.122 +action_result.data.\*.results.network.tcp.\*.offset | numeric | | 466 +action_result.data.\*.results.network.tcp.\*.sport | numeric | | 1038 +action_result.data.\*.results.network.tcp.\*.src | string | `ip` | 122.122.122.122 +action_result.data.\*.results.network.tcp.\*.time | numeric | | 6.429862976074219 +action_result.data.\*.results.network.udp.\*.dport | numeric | | 137 +action_result.data.\*.results.network.udp.\*.dst | string | `ip` | 122.122.122.122 +action_result.data.\*.results.network.udp.\*.offset | numeric | | 7218 +action_result.data.\*.results.network.udp.\*.sport | numeric | | 137 +action_result.data.\*.results.network.udp.\*.src | string | `ip` | 122.122.122.122 +action_result.data.\*.results.network.udp.\*.time | numeric | | 6.429553985595703 +action_result.data.\*.results.signatures.\*.alert | boolean | | True False +action_result.data.\*.results.signatures.\*.data.\*.process.process_name | string | | test.exe +action_result.data.\*.results.signatures.\*.data.\*.signs.\*.type | string | | api +action_result.data.\*.results.signatures.\*.data.\*.signs.\*.value.category | string | | filesystem +action_result.data.\*.results.signatures.\*.data.\*.signs.\*.value.return | string | | +action_result.data.\*.results.signatures.\*.data.\*.signs.\*.value.status | boolean | | True False +action_result.data.\*.results.signatures.\*.data.\*.signs.\*.value.thread_id | string | | 1840 +action_result.data.\*.results.signatures.\*.data.\*.signs.\*.value.timestamp | string | | 2019-08-19 19:38:38,843 +action_result.data.\*.results.signatures.\*.name | string | | antisandbox_sleep +action_result.data.\*.results.signatures.\*.severity | numeric | | 3 +action_result.data.\*.results.target.category | string | | file +action_result.data.\*.results.target.file.crc32 | string | | 1EC6C6C8 +action_result.data.\*.results.target.file.md5 | string | `md5` | f0216e2697dc24e71777811c6c0c5858 +action_result.data.\*.results.target.file.name | string | | box.png +action_result.data.\*.results.target.file.path | string | | +action_result.data.\*.results.target.file.sha1 | string | `sha1` | 7fa1c75071fcb3efe0089cc1b78cf9a121a313cd +action_result.data.\*.results.target.file.sha256 | string | `sha256` | +action_result.data.\*.results.target.file.sha512 | string | | 99479dda2a5334d3f4894c063d7d0147cc8d3dad1e48f3db1130fabad13b65141cfd54831984143a39840161130884b53260c60360b529afe0a7a4f4f7904882 +action_result.data.\*.results.target.file.size | numeric | | 7707 +action_result.data.\*.results.target.file.ssdeep | string | | +action_result.data.\*.results.target.file.type | string | | PNG image data, 400 x 220, 8-bit gray+alpha, non-interlaced +action_result.data.\*.results.target.url | string | | https://test.com +action_result.data.\*.screenshots | string | `url` | +action_result.data.\*.success | boolean | | True False +action_result.summary | string | | +action_result.message | string | | Successfully retrieved detonation report +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'on poll' -Callback action for the on\_poll ingest functionality +Callback action for the on_poll ingest functionality Type: **ingest** Read only: **True** @@ -2165,11 +2355,11 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**container\_id** | optional | Parameter ignored in this app | numeric | -**start\_time** | optional | Parameter ignored in this app | numeric | -**end\_time** | optional | Parameter ignored in this app | numeric | -**container\_count** | optional | Maximum number of container records \(incidents\) to query for | numeric | -**artifact\_count** | optional | Parameter ignored in this app | numeric | +**container_id** | optional | Parameter ignored in this app | numeric | +**start_time** | optional | Parameter ignored in this app | numeric | +**end_time** | optional | Parameter ignored in this app | numeric | +**container_count** | optional | Maximum number of container records (incidents) to query for | numeric | +**artifact_count** | optional | Parameter ignored in this app | numeric | #### Action Output No Output @@ -2180,86 +2370,86 @@ Run observables query in ThreatStream Type: **investigate** Read only: **True** -For providing the query parameter, please form a valid search string using the Anomali filter language \(as seen on the advanced search page\) and then convert it into a valid JSON string as shown in the example here\. e\.g\. Anomali filter language\-based search string = modifed\_ts\_\_gt=2018\-01\-10&status=active has to be provided in the query parameter as \{ "modifed\_ts\_\_gt"\: "2018\-01\-10", "status"\: "active" \}
If offset is provided in the 'query' parameter, it will be overwritten by the offset value provided in the 'offset' parameter\. +For providing the query parameter, please form a valid search string using the Anomali filter language (as seen on the advanced search page) and then convert it into a valid JSON string as shown in the example here. e.g. Anomali filter language-based search string = modifed_ts__gt=2018-01-10&status=active has to be provided in the query parameter as { "modifed_ts__gt": "2018-01-10", "status": "active" }
If offset is provided in the 'query' parameter, it will be overwritten by the offset value provided in the 'offset' parameter. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**query** | required | Search string in JSON format using the Anomali filter language \(as seen on the advanced search page\) | string | -**order\_by** | optional | Field by which the query results will be ordered | string | -**offset** | optional | Record offset \(used with paging, when returning many results\) | numeric | +**query** | required | Search string in JSON format using the Anomali filter language (as seen on the advanced search page) | string | +**order_by** | optional | Field by which the query results will be ordered | string | +**offset** | optional | Record offset (used with paging, when returning many results) | numeric | **limit** | optional | Record limit | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.offset | numeric | -action\_result\.parameter\.order\_by | string | -action\_result\.parameter\.query | string | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_by | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.import\_source | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.limit | numeric | -action\_result\.data\.\*\.meta\.maltype | string | -action\_result\.data\.\*\.meta\.registrant\_address | string | -action\_result\.data\.\*\.meta\.registrant\_email | string | -action\_result\.data\.\*\.meta\.registrant\_name | string | -action\_result\.data\.\*\.meta\.registrant\_org | string | -action\_result\.data\.\*\.meta\.registrant\_phone | string | -action\_result\.data\.\*\.meta\.registration\_created | string | -action\_result\.data\.\*\.meta\.registration\_updated | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.subtype | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | -action\_result\.summary\.records\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 1000 +action_result.parameter.offset | numeric | | 0 +action_result.parameter.order_by | string | | itype value +action_result.parameter.query | string | | +action_result.data.\*.asn | string | | 11426 +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.confidence | numeric | | 11 +action_result.data.\*.country | string | | US +action_result.data.\*.created_by | string | | +action_result.data.\*.created_ts | string | | 2018-03-29T23:31:34.986Z +action_result.data.\*.description | string | | +action_result.data.\*.expiration_ts | string | | 2018-06-27T23:31:35.004Z +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream intelligence id` | 50630233146 +action_result.data.\*.import_session_id | string | | +action_result.data.\*.import_source | string | | +action_result.data.\*.ip | string | `ip` | 122.122.122.122 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.itype | string | | actor_ip +action_result.data.\*.latitude | string | | 35.293600 +action_result.data.\*.longitude | string | | -80.735000 +action_result.data.\*.meta.detail | string | | smbd +action_result.data.\*.meta.detail2 | string | | imported by user 13487 Confirmed as false positive +action_result.data.\*.meta.limit | numeric | | 25 +action_result.data.\*.meta.maltype | string | | +action_result.data.\*.meta.registrant_address | string | | DomainsByProxy.com|14455 N. Hayden Road, Scottsdale, Arizona, UNITED STATES, 85260 +action_result.data.\*.meta.registrant_email | string | | gfdf.com@domainsbyproxy.com +action_result.data.\*.meta.registrant_name | string | | Registration Private +action_result.data.\*.meta.registrant_org | string | | Domains By Proxy, LLC +action_result.data.\*.meta.registrant_phone | string | | 14806242599 +action_result.data.\*.meta.registration_created | string | | 2004-06-18T18:16:16+00:00 +action_result.data.\*.meta.registration_updated | string | | 2020-11-13T23:57:39+00:00 +action_result.data.\*.meta.severity | string | | low +action_result.data.\*.modified_ts | string | | 2018-03-29T23:31:34.986Z +action_result.data.\*.org | string | | Test org +action_result.data.\*.owner_organization_id | numeric | | 2342 +action_result.data.\*.rdns | string | | user-0c99mbe.test.test.com +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v2/intelligence/50630233146/ +action_result.data.\*.retina_confidence | numeric | | -1 +action_result.data.\*.source | string | | test_source.us +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.source_reported_confidence | numeric | | 50 +action_result.data.\*.status | string | | falsepos +action_result.data.\*.subtype | string | | +action_result.data.\*.tags | string | | +action_result.data.\*.tags.\*.id | string | | tpp +action_result.data.\*.tags.\*.name | string | | smbd +action_result.data.\*.tags.\*.org_id | string | | 67 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.threat_type | string | | p2p +action_result.data.\*.threatscore | numeric | | 3 +action_result.data.\*.tlp | string | | +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.type | string | | ip +action_result.data.\*.update_id | numeric | | 1736852157 +action_result.data.\*.uuid | string | | 094074ec-3acc-4639-8eb9-982eb002a33b +action_result.data.\*.value | string | | 24.148.217.110 +action_result.summary.records_returned | numeric | | 950 +action_result.message | string | | Records returned: 950 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list import sessions' List all the import sessions @@ -2267,101 +2457,101 @@ List all the import sessions Type: **investigate** Read only: **True** -
  • For a Hybrid instance, this action will return both remote and local data based on the input parameters\.
  • The user can use the list imports action to fetch only remote or local data in the response\.
+
  • For a Hybrid instance, this action will return both remote and local data based on the input parameters.
  • The user can use the list imports action to fetch only remote or local data in the response.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**date\_modified\_gte** | optional | Import sessions with greater than or equal to the provided modified date will be returned | string | `threatstream date` +**date_modified_gte** | optional | Import sessions with greater than or equal to the provided modified date will be returned | string | `threatstream date` **limit** | optional | Total number of import sessions to return | numeric | -**offset** | optional | Record offset \(used with paging, when returning many results\) | numeric | -**status\_in** | optional | Status to filter the records | string | +**offset** | optional | Record offset (used with paging, when returning many results) | numeric | +**status_in** | optional | Status to filter the records | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.date\_modified\_gte | string | `threatstream date` -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.offset | numeric | -action\_result\.parameter\.status\_in | string | -action\_result\.data\.\*\.approved\_by\.avatar\_s3\_url | string | -action\_result\.data\.\*\.approved\_by\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.approved\_by\.email | string | `email` -action\_result\.data\.\*\.approved\_by\.id | string | -action\_result\.data\.\*\.approved\_by\.is\_active | boolean | -action\_result\.data\.\*\.approved\_by\.is\_readonly | boolean | -action\_result\.data\.\*\.approved\_by\.must\_change\_password | boolean | -action\_result\.data\.\*\.approved\_by\.name | string | -action\_result\.data\.\*\.approved\_by\.nickname | string | -action\_result\.data\.\*\.approved\_by\.organization\.id | string | -action\_result\.data\.\*\.approved\_by\.organization\.name | string | -action\_result\.data\.\*\.approved\_by\.organization\.resource\_uri | string | -action\_result\.data\.\*\.approved\_by\.resource\_uri | string | -action\_result\.data\.\*\.approved\_by\_id | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.date | string | -action\_result\.data\.\*\.date\_modified | string | -action\_result\.data\.\*\.default\_comment | string | -action\_result\.data\.\*\.email | string | `email` -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.fileName | string | `url` -action\_result\.data\.\*\.fileType | string | -action\_result\.data\.\*\.file\_name\_label | string | -action\_result\.data\.\*\.id | numeric | `threatstream import session id` -action\_result\.data\.\*\.intelligence\_source | string | `url` -action\_result\.data\.\*\.investigations\.\*\.id | string | -action\_result\.data\.\*\.investigations\.\*\.name | string | -action\_result\.data\.\*\.investigations\.\*\.resource\_uri | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.jobID | string | -action\_result\.data\.\*\.messages | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.notes | string | -action\_result\.data\.\*\.numIndicators | numeric | -action\_result\.data\.\*\.numRejected | numeric | -action\_result\.data\.\*\.num\_private | numeric | -action\_result\.data\.\*\.num\_public | numeric | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.orginal\_intelligence | string | -action\_result\.data\.\*\.processed\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.sandbox\_submit | string | -action\_result\.data\.\*\.source\_confidence\_weight | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.anonymous\_sharing | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.can\_override\_confidence | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.description | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.id | numeric | -action\_result\.data\.\*\.trusted\_circles\.\*\.is\_freemium | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.mattermost\_team\_id | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.name | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.openinvite | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.partner | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.premium\_channel | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.public | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.restricted\_publishing | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.subscription\_model | string | -action\_result\.data\.\*\.trusted\_circles\.\*\.use\_chat | boolean | -action\_result\.data\.\*\.trusted\_circles\.\*\.validate\_subscriptions | boolean | -action\_result\.data\.\*\.user\_id | numeric | -action\_result\.data\.\*\.visibleForReview | boolean | -action\_result\.summary\.import\_sessions\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.date_modified_gte | string | `threatstream date` | 2020-11-05T17:30:00.130822 +action_result.parameter.limit | numeric | | 10 +action_result.parameter.offset | numeric | | 0 +action_result.parameter.status_in | string | | approved errors done deleted processing +action_result.data.\*.approved_by.avatar_s3_url | string | | +action_result.data.\*.approved_by.can_share_intelligence | boolean | | True False +action_result.data.\*.approved_by.email | string | `email` | test@test.com +action_result.data.\*.approved_by.id | string | | 142 +action_result.data.\*.approved_by.is_active | boolean | | True False +action_result.data.\*.approved_by.is_readonly | boolean | | True False +action_result.data.\*.approved_by.must_change_password | boolean | | True False +action_result.data.\*.approved_by.name | string | | testname +action_result.data.\*.approved_by.nickname | string | | TestIntegrationLab +action_result.data.\*.approved_by.organization.id | string | | 70 +action_result.data.\*.approved_by.organization.name | string | | test +action_result.data.\*.approved_by.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.approved_by.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.approved_by_id | string | | 142 +action_result.data.\*.confidence | numeric | | 50 +action_result.data.\*.date | string | | 2020-10-08T10:49:07.546945 +action_result.data.\*.date_modified | string | | 2020-10-08T11:38:29.563295 +action_result.data.\*.default_comment | string | | test comment +action_result.data.\*.email | string | `email` | test@test.com +action_result.data.\*.expiration_ts | string | | 2021-01-06T10:41:08.444000 +action_result.data.\*.fileName | string | `url` | https://test.com/https%3A/test.com?Signature=19pJrM2OyY3wqiKi%2FDwPRThLq%2Bs%3D&Expires=1602227603&AWSAccessKeyId=AKIAQYUTUNAKSCAMMFFH +action_result.data.\*.fileType | string | | html +action_result.data.\*.file_name_label | string | | +action_result.data.\*.id | numeric | `threatstream import session id` | 875 +action_result.data.\*.intelligence_source | string | `url` | https://test.com/test +action_result.data.\*.investigations.\*.id | string | | 34 +action_result.data.\*.investigations.\*.name | string | | Test_y +action_result.data.\*.investigations.\*.resource_uri | string | | /api/v1/investigation/34/ +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.jobID | string | | +action_result.data.\*.messages | string | | +action_result.data.\*.name | string | | test +action_result.data.\*.notes | string | | +action_result.data.\*.numIndicators | numeric | | 125 +action_result.data.\*.numRejected | numeric | | 1412 +action_result.data.\*.num_private | numeric | | 125 +action_result.data.\*.num_public | numeric | | 0 +action_result.data.\*.organization.id | string | | 70 +action_result.data.\*.organization.name | string | | test +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.orginal_intelligence | string | | +action_result.data.\*.processed_ts | string | | 2020-10-08T10:54:01.965978 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/importsession/875/ +action_result.data.\*.sandbox_submit | string | | +action_result.data.\*.source_confidence_weight | numeric | | 0 +action_result.data.\*.status | string | | approved +action_result.data.\*.tags.\*.id | string | | tmh +action_result.data.\*.tags.\*.name | string | | test +action_result.data.\*.tags.\*.org_id | numeric | | 70 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.threat_type | string | | malware +action_result.data.\*.tlp | string | | amber +action_result.data.\*.trusted_circles.\*.anonymous_sharing | boolean | | True False +action_result.data.\*.trusted_circles.\*.can_override_confidence | boolean | | True False +action_result.data.\*.trusted_circles.\*.description | string | | Test circle +action_result.data.\*.trusted_circles.\*.id | numeric | | 10017 +action_result.data.\*.trusted_circles.\*.is_freemium | boolean | | True False +action_result.data.\*.trusted_circles.\*.mattermost_team_id | string | | +action_result.data.\*.trusted_circles.\*.name | string | | Test circle +action_result.data.\*.trusted_circles.\*.openinvite | boolean | | True False +action_result.data.\*.trusted_circles.\*.partner | string | | +action_result.data.\*.trusted_circles.\*.premium_channel | string | | +action_result.data.\*.trusted_circles.\*.public | boolean | | True False +action_result.data.\*.trusted_circles.\*.remote_api | boolean | | True False +action_result.data.\*.trusted_circles.\*.restricted_publishing | boolean | | True False +action_result.data.\*.trusted_circles.\*.subscription_model | string | | +action_result.data.\*.trusted_circles.\*.use_chat | boolean | | True False +action_result.data.\*.trusted_circles.\*.validate_subscriptions | boolean | | True False +action_result.data.\*.user_id | numeric | | 142 +action_result.data.\*.visibleForReview | boolean | | True False +action_result.summary.import_sessions_returned | numeric | | 9 +action_result.message | string | | Import sessions returned: 9 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update import session' This action updates the fields of the provided item id @@ -2369,133 +2559,133 @@ This action updates the fields of the provided item id Type: **generic** Read only: **False** -If "null" is provided in the expire time parameter, then expiration time will be set to "9999\-12\-31T00\:00\:00"\. +If "null" is provided in the expire time parameter, then expiration time will be set to "9999-12-31T00:00:00". #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**item\_id** | required | ID of the import session to update | numeric | `threatstream import session id` -**intelligence\_source** | optional | Intelligence Source to update | string | +**item_id** | required | ID of the import session to update | numeric | `threatstream import session id` +**intelligence_source** | optional | Intelligence Source to update | string | **tlp** | optional | Traffic Light Protocol value to update | string | `threatstream tlp` -**tags** | optional | Comma\-separated list of tags to update | string | `threatstream tags` +**tags** | optional | Comma-separated list of tags to update | string | `threatstream tags` **comment** | optional | Comment to update | string | -**expire\_time** | optional | Expiration time to update \(Format \: YYYY\-MM\-DD HH\:MM\[\:ss\[\.uuuuuu\]\]\[TZ\]\) | string | `threatstream date` -**threat\_model\_type** | optional | Comma\-separated list of threat model types to associate | string | -**threat\_model\_to\_associate** | optional | Comma\-separated list of threat model IDs to associate | string | +**expire_time** | optional | Expiration time to update (Format : YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) | string | `threatstream date` +**threat_model_type** | optional | Comma-separated list of threat model types to associate | string | +**threat_model_to_associate** | optional | Comma-separated list of threat model IDs to associate | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.comment | string | -action\_result\.parameter\.expire\_time | string | `threatstream date` -action\_result\.parameter\.intelligence\_source | string | -action\_result\.parameter\.item\_id | numeric | `threatstream import session id` -action\_result\.parameter\.tags | string | `threatstream tags` -action\_result\.parameter\.threat\_model\_to\_associate | string | -action\_result\.parameter\.threat\_model\_type | string | -action\_result\.parameter\.tlp | string | `threatstream tlp` -action\_result\.data\.\*\.approved\_by\.avatar\_s3\_url | string | -action\_result\.data\.\*\.approved\_by\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.approved\_by\.email | string | -action\_result\.data\.\*\.approved\_by\.id | string | -action\_result\.data\.\*\.approved\_by\.is\_active | boolean | -action\_result\.data\.\*\.approved\_by\.is\_readonly | boolean | -action\_result\.data\.\*\.approved\_by\.must\_change\_password | boolean | -action\_result\.data\.\*\.approved\_by\.name | string | -action\_result\.data\.\*\.approved\_by\.nickname | string | -action\_result\.data\.\*\.approved\_by\.organization\.id | string | -action\_result\.data\.\*\.approved\_by\.organization\.name | string | -action\_result\.data\.\*\.approved\_by\.organization\.resource\_uri | string | -action\_result\.data\.\*\.approved\_by\.resource\_uri | string | -action\_result\.data\.\*\.approved\_by\_id | numeric | -action\_result\.data\.\*\.associations\.actors\.\*\.id | string | -action\_result\.data\.\*\.associations\.actors\.\*\.name | string | -action\_result\.data\.\*\.associations\.actors\.\*\.resource\_uri | string | -action\_result\.data\.\*\.associations\.incidents\.\*\.id | string | -action\_result\.data\.\*\.associations\.incidents\.\*\.name | string | -action\_result\.data\.\*\.associations\.incidents\.\*\.resource\_uri | string | -action\_result\.data\.\*\.associations\.malware\.\*\.id | string | -action\_result\.data\.\*\.associations\.malware\.\*\.name | string | -action\_result\.data\.\*\.associations\.malware\.\*\.resource\_uri | string | -action\_result\.data\.\*\.associations\.tip\_reports\.\*\.id | string | -action\_result\.data\.\*\.associations\.tip\_reports\.\*\.name | string | -action\_result\.data\.\*\.associations\.tip\_reports\.\*\.resource\_uri | string | -action\_result\.data\.\*\.associations\.ttps\.\*\.id | string | -action\_result\.data\.\*\.associations\.ttps\.\*\.name | string | -action\_result\.data\.\*\.associations\.ttps\.\*\.resource\_uri | string | -action\_result\.data\.\*\.associations\.vulnerabilities\.\*\.id | string | -action\_result\.data\.\*\.associations\.vulnerabilities\.\*\.name | string | -action\_result\.data\.\*\.associations\.vulnerabilities\.\*\.resource\_uri | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.date | string | -action\_result\.data\.\*\.date\_modified | string | -action\_result\.data\.\*\.default\_comment | string | -action\_result\.data\.\*\.email | string | `email` -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.fileName | string | -action\_result\.data\.\*\.fileType | string | -action\_result\.data\.\*\.file\_name\_label | string | -action\_result\.data\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\_source | string | `url` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.jobID | string | -action\_result\.data\.\*\.messages | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.notes | string | -action\_result\.data\.\*\.numIndicators | numeric | -action\_result\.data\.\*\.numRejected | numeric | -action\_result\.data\.\*\.num\_private | numeric | -action\_result\.data\.\*\.num\_public | numeric | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.orginal\_intelligence | string | -action\_result\.data\.\*\.processed\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.assignee\_user | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.created\_ts | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.end\_date | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.id | numeric | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.is\_public | boolean | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.modified\_ts | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.name | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.publication\_status | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.resource\_uri | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.source\_created | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.source\_modified | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.start\_date | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.status\.display\_name | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.status\.id | numeric | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.status\.resource\_uri | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.tlp | string | -action\_result\.data\.\*\.remote\_associations\.incidents\.\*\.uuid | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.sandbox\_submit | string | -action\_result\.data\.\*\.source\_confidence\_weight | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | `threatstream tlp` -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.user\_id | numeric | -action\_result\.data\.\*\.visibleForReview | boolean | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.comment | string | | +action_result.parameter.expire_time | string | `threatstream date` | 2022-01-03T18:30:00 +action_result.parameter.intelligence_source | string | | https://test.com +action_result.parameter.item_id | numeric | `threatstream import session id` | 869 +action_result.parameter.tags | string | `threatstream tags` | test_tag_4 +action_result.parameter.threat_model_to_associate | string | | +action_result.parameter.threat_model_type | string | | +action_result.parameter.tlp | string | `threatstream tlp` | Green +action_result.data.\*.approved_by.avatar_s3_url | string | | +action_result.data.\*.approved_by.can_share_intelligence | boolean | | True False +action_result.data.\*.approved_by.email | string | | qa+testuser2@test.data.com +action_result.data.\*.approved_by.id | string | | 136 +action_result.data.\*.approved_by.is_active | boolean | | True False +action_result.data.\*.approved_by.is_readonly | boolean | | True False +action_result.data.\*.approved_by.must_change_password | boolean | | True False +action_result.data.\*.approved_by.name | string | | testuser2 +action_result.data.\*.approved_by.nickname | string | | +action_result.data.\*.approved_by.organization.id | string | | 67 +action_result.data.\*.approved_by.organization.name | string | | org.test.com +action_result.data.\*.approved_by.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.approved_by.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.approved_by_id | numeric | | +action_result.data.\*.associations.actors.\*.id | string | | 10909 +action_result.data.\*.associations.actors.\*.name | string | | MANDRA +action_result.data.\*.associations.actors.\*.resource_uri | string | | /api/v1/actor/10909/ +action_result.data.\*.associations.incidents.\*.id | string | | 725 +action_result.data.\*.associations.incidents.\*.name | string | | Incident on Cloud +action_result.data.\*.associations.incidents.\*.resource_uri | string | | /api/v1/incident/725/ +action_result.data.\*.associations.malware.\*.id | string | | 188 +action_result.data.\*.associations.malware.\*.name | string | | TestMal +action_result.data.\*.associations.malware.\*.resource_uri | string | | /api/v1/malware/188/ +action_result.data.\*.associations.tip_reports.\*.id | string | | 9479 +action_result.data.\*.associations.tip_reports.\*.name | string | | Test 103 +action_result.data.\*.associations.tip_reports.\*.resource_uri | string | | /api/v1/tipreport/9479/ +action_result.data.\*.associations.ttps.\*.id | string | | 1573 +action_result.data.\*.associations.ttps.\*.name | string | | TestTTP +action_result.data.\*.associations.ttps.\*.resource_uri | string | | /api/v1/ttp/1573/ +action_result.data.\*.associations.vulnerabilities.\*.id | string | | 15657 +action_result.data.\*.associations.vulnerabilities.\*.name | string | | TestVuln +action_result.data.\*.associations.vulnerabilities.\*.resource_uri | string | | /api/v1/vulnerability/15657/ +action_result.data.\*.confidence | numeric | | 50 +action_result.data.\*.date | string | | 2020-10-06T05:53:45.585213 +action_result.data.\*.date_modified | string | | 2020-10-25T10:08:03.990333 +action_result.data.\*.default_comment | string | | this is a test comment +action_result.data.\*.email | string | `email` | test@test.com +action_result.data.\*.expiration_ts | string | | 2022-01-03T18:30:00 +action_result.data.\*.fileName | string | | +action_result.data.\*.fileType | string | | analyst +action_result.data.\*.file_name_label | string | | +action_result.data.\*.id | numeric | | 869 +action_result.data.\*.intelligence_source | string | `url` | https://test.com +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.jobID | string | | +action_result.data.\*.messages | string | | +action_result.data.\*.name | string | | test +action_result.data.\*.notes | string | | +action_result.data.\*.numIndicators | numeric | | 1 +action_result.data.\*.numRejected | numeric | | 0 +action_result.data.\*.num_private | numeric | | 1 +action_result.data.\*.num_public | numeric | | 0 +action_result.data.\*.organization.id | string | | 70 +action_result.data.\*.organization.name | string | | test +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.orginal_intelligence | string | | ['1000000138'] +action_result.data.\*.processed_ts | string | | 2020-10-06T05:53:45.907751 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.remote_associations.incidents.\*.assignee_user | string | | +action_result.data.\*.remote_associations.incidents.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.remote_associations.incidents.\*.created_ts | string | | 2020-05-25T11:27:38.203866 +action_result.data.\*.remote_associations.incidents.\*.end_date | string | | +action_result.data.\*.remote_associations.incidents.\*.feed_id | numeric | | 0 +action_result.data.\*.remote_associations.incidents.\*.id | numeric | | 730 +action_result.data.\*.remote_associations.incidents.\*.is_anonymous | boolean | | True False +action_result.data.\*.remote_associations.incidents.\*.is_cloneable | string | | yes +action_result.data.\*.remote_associations.incidents.\*.is_public | boolean | | True False +action_result.data.\*.remote_associations.incidents.\*.modified_ts | string | | 2020-05-25T12:10:11.244851 +action_result.data.\*.remote_associations.incidents.\*.name | string | | Incident: public on-prem 2 +action_result.data.\*.remote_associations.incidents.\*.organization_id | numeric | | 67 +action_result.data.\*.remote_associations.incidents.\*.owner_user_id | numeric | | 136 +action_result.data.\*.remote_associations.incidents.\*.publication_status | string | | published +action_result.data.\*.remote_associations.incidents.\*.published_ts | string | | 2020-05-25T12:10:11.129180 +action_result.data.\*.remote_associations.incidents.\*.remote_api | boolean | | True False +action_result.data.\*.remote_associations.incidents.\*.resource_uri | string | | /api/v1/incident/730/?remote_api=true +action_result.data.\*.remote_associations.incidents.\*.source_created | string | | +action_result.data.\*.remote_associations.incidents.\*.source_modified | string | | +action_result.data.\*.remote_associations.incidents.\*.start_date | string | | +action_result.data.\*.remote_associations.incidents.\*.status.display_name | string | | New +action_result.data.\*.remote_associations.incidents.\*.status.id | numeric | | 1 +action_result.data.\*.remote_associations.incidents.\*.status.resource_uri | string | | /api/v1/incidentstatustype/1/ +action_result.data.\*.remote_associations.incidents.\*.tlp | string | | +action_result.data.\*.remote_associations.incidents.\*.uuid | string | | c46abbc8-9645-49ae-8da5-d85d805e0a57 +action_result.data.\*.resource_uri | string | | /api/v1/importsession/869/ +action_result.data.\*.sandbox_submit | string | | +action_result.data.\*.source_confidence_weight | numeric | | 0 +action_result.data.\*.status | string | | done +action_result.data.\*.tags.\*.id | string | | nak +action_result.data.\*.tags.\*.name | string | | test_tag +action_result.data.\*.tags.\*.org_id | numeric | | 70 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | `threatstream tlp` | white +action_result.data.\*.threat_type | string | | malware +action_result.data.\*.tlp | string | | Green +action_result.data.\*.user_id | numeric | | 142 +action_result.data.\*.visibleForReview | boolean | | True False +action_result.summary | string | | +action_result.message | string | | Successfully updated ['expiration_ts', 'tlp', 'intelligence_source']. Successfully updated tags +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list threat models' List all the threat models @@ -2506,65 +2696,65 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**modified\_ts\_\_gte** | optional | Threat models with greater than or equal to the provided modified time stamp will be returned | string | +**modified_ts__gte** | optional | Threat models with greater than or equal to the provided modified time stamp will be returned | string | **limit** | optional | Total number of threat models to return | numeric | -**model\_type** | optional | Model type to filter the records | string | -**tags\_name** | optional | Tag name to filter the records | string | `threatstream tags` -**publication\_status** | optional | Publication status to filter the records | string | +**model_type** | optional | Model type to filter the records | string | +**tags_name** | optional | Tag name to filter the records | string | `threatstream tags` +**publication_status** | optional | Publication status to filter the records | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.model\_type | string | -action\_result\.parameter\.modified\_ts\_\_gte | string | -action\_result\.parameter\.publication\_status | string | -action\_result\.parameter\.tags\_name | string | `threatstream tags` -action\_result\.data\.\*\.aliases | string | -action\_result\.data\.\*\.assignee\_user\.email | string | -action\_result\.data\.\*\.assignee\_user\.id | numeric | -action\_result\.data\.\*\.assignee\_user\.name | string | -action\_result\.data\.\*\.circles\.\*\.id | numeric | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.cvss2\_score | string | -action\_result\.data\.\*\.cvss3\_score | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.data\.\*\.is\_email | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.model\_type | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | `email` -action\_result\.data\.\*\.organization\.id | numeric | -action\_result\.data\.\*\.organization\.title | string | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | numeric | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.sort | numeric | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.summary\.threat\_models\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 681 +action_result.parameter.model_type | string | | tipreport +action_result.parameter.modified_ts__gte | string | | +action_result.parameter.publication_status | string | | new +action_result.parameter.tags_name | string | `threatstream tags` | test_tag +action_result.data.\*.aliases | string | | test +action_result.data.\*.assignee_user.email | string | | gita@verizon2.com +action_result.data.\*.assignee_user.id | numeric | | 12 +action_result.data.\*.assignee_user.name | string | | +action_result.data.\*.circles.\*.id | numeric | | 10017 +action_result.data.\*.circles.\*.name | string | | Test circle +action_result.data.\*.circles.\*.remote_api | boolean | | True False +action_result.data.\*.created_ts | string | | 2020-09-02T07:21:35.440102+00:00 +action_result.data.\*.cvss2_score | string | | +action_result.data.\*.cvss3_score | string | | +action_result.data.\*.end_date | string | | +action_result.data.\*.feed_id | numeric | | 131 +action_result.data.\*.id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 9479 +action_result.data.\*.is_email | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.model_type | string | | tipreport +action_result.data.\*.modified_ts | string | | 2020-10-06T12:06:53.021601+00:00 +action_result.data.\*.name | string | `email` | Test 103 +action_result.data.\*.organization.id | numeric | | 70 +action_result.data.\*.organization.title | string | | test +action_result.data.\*.owner_user.email | string | `email` | test@test.com +action_result.data.\*.owner_user.id | numeric | | 142 +action_result.data.\*.owner_user.name | string | | test +action_result.data.\*.publication_status | string | | published +action_result.data.\*.published_ts | string | | 2020-09-06T10:45:56.790629+00:00 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/tipreport/9479/ +action_result.data.\*.sort | numeric | | 1601966535004 +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.start_date | string | | +action_result.data.\*.status | string | | +action_result.data.\*.tags.\*.id | string | | w4z +action_result.data.\*.tags.\*.name | string | | tip-tag1 +action_result.data.\*.tags.\*.org_id | numeric | | 70 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.tlp | string | | white +action_result.data.\*.type | string | | botnet +action_result.data.\*.uuid | string | | 1f3f4c9e-9fb9-4914-b365-8bf3f17f8f76 +action_result.summary.threat_models_returned | numeric | | 681 +action_result.message | string | | Threat models returned: 681 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create threat bulletin' Create a threat bulletin in ThreatStream @@ -2572,7 +2762,7 @@ Create a threat bulletin in ThreatStream Type: **generic** Read only: **False** -
  • Circles parameter will only be applicable when a threat bulletin will be created on the cloud\.
  • If the body\_content\_type parameter is not provided, then the default value \(markdown\) will be considered as the value of the body\_content\_type parameter\. Once created, body\_content\_type cannot be modified\.
+
  • Circles parameter will only be applicable when a threat bulletin will be created on the cloud.
  • If the body_content_type parameter is not provided, then the default value (markdown) will be considered as the value of the body_content_type parameter. Once created, body_content_type cannot be modified.
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -2580,166 +2770,166 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **name** | required | Name to give the threat bulletin | string | **status** | optional | Status to give the threat bulletin | string | **source** | optional | Source of the threat bulletin | string | -**tags** | optional | Comma\-separated list of tags for the threat bulletin | string | +**tags** | optional | Comma-separated list of tags for the threat bulletin | string | **tlp** | optional | Tlp to give the threat bulletin | string | -**assignee\_user\_id** | optional | Assignee to give the threat bulletin | numeric | +**assignee_user_id** | optional | Assignee to give the threat bulletin | numeric | **body** | optional | Body content to give the threat bulletin | string | -**body\_content\_type** | optional | Body content type to give the threat bulletin \(Once specified, body\_content\_type cannot be modified, Default is 'markdown'\) | string | -**comments** | optional | Comments to give the threat bulletin\(JSON format containing body, title, etc\.\) | string | +**body_content_type** | optional | Body content type to give the threat bulletin (Once specified, body_content_type cannot be modified, Default is 'markdown') | string | +**comments** | optional | Comments to give the threat bulletin(JSON format containing body, title, etc.) | string | **attachments** | optional | Vault id of an attachment to add on the threat bulletin | string | `vault id` `sha1` -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with the threat bulletin \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with the threat bulletin \- Note that this appends | string | `threatstream intelligence id` -**circles** | optional | Comma\-separated list of circles to give the threat bulletin \(Applicable only when a cloud threat bulletin will be created\) | string | -**import\_sessions** | optional | Comma\-separated list of sessions to give the threat bulletin | string | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | -**is\_public** | optional | Classification designation | boolean | -**is\_anonymous** | optional | Whether the threat bulletin user and organization information is anonymized | boolean | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with the threat bulletin - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with the threat bulletin - Note that this appends | string | `threatstream intelligence id` +**circles** | optional | Comma-separated list of circles to give the threat bulletin (Applicable only when a cloud threat bulletin will be created) | string | +**import_sessions** | optional | Comma-separated list of sessions to give the threat bulletin | string | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | +**is_public** | optional | Classification designation | boolean | +**is_anonymous** | optional | Whether the threat bulletin user and organization information is anonymized | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.assignee\_user\_id | numeric | -action\_result\.parameter\.attachments | string | `vault id` `sha1` -action\_result\.parameter\.body | string | -action\_result\.parameter\.body\_content\_type | string | -action\_result\.parameter\.circles | string | -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.comments | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.import\_sessions | string | -action\_result\.parameter\.is\_anonymous | boolean | -action\_result\.parameter\.is\_public | boolean | -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.name | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.status | string | -action\_result\.parameter\.tags | string | -action\_result\.parameter\.tlp | string | -action\_result\.data\.\*\.all\_circles\_visible | boolean | -action\_result\.data\.\*\.assignee\_org | string | -action\_result\.data\.\*\.assignee\_org\_id | string | -action\_result\.data\.\*\.assignee\_org\_name | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.assignee\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.assignee\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.assignee\_user\.email | string | `email` -action\_result\.data\.\*\.assignee\_user\.id | string | -action\_result\.data\.\*\.assignee\_user\.is\_active | boolean | -action\_result\.data\.\*\.assignee\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.assignee\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.assignee\_user\.name | string | -action\_result\.data\.\*\.assignee\_user\.nickname | string | -action\_result\.data\.\*\.assignee\_user\.organization\.id | string | -action\_result\.data\.\*\.assignee\_user\.organization\.name | string | -action\_result\.data\.\*\.assignee\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\_id | numeric | -action\_result\.data\.\*\.assignee\_user\_name | string | -action\_result\.data\.\*\.attachments | string | -action\_result\.data\.\*\.body | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaign | string | -action\_result\.data\.\*\.comments\.body | string | -action\_result\.data\.\*\.comments\.created\_ts | string | -action\_result\.data\.\*\.comments\.id | string | -action\_result\.data\.\*\.comments\.modified\_ts | string | -action\_result\.data\.\*\.comments\.remote\_api | boolean | -action\_result\.data\.\*\.comments\.tip\_report | numeric | -action\_result\.data\.\*\.comments\.title | string | -action\_result\.data\.\*\.comments\.tlp | string | -action\_result\.data\.\*\.comments\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comments\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comments\.user\.email | string | `email` -action\_result\.data\.\*\.comments\.user\.id | string | -action\_result\.data\.\*\.comments\.user\.is\_active | boolean | -action\_result\.data\.\*\.comments\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comments\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comments\.user\.name | string | -action\_result\.data\.\*\.comments\.user\.nickname | string | -action\_result\.data\.\*\.comments\.user\.organization\.id | string | -action\_result\.data\.\*\.comments\.user\.organization\.name | string | -action\_result\.data\.\*\.comments\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comments\.user\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.history\.\*\.action | string | -action\_result\.data\.\*\.history\.\*\.detail | string | -action\_result\.data\.\*\.history\.\*\.id | string | -action\_result\.data\.\*\.history\.\*\.quantity | string | -action\_result\.data\.\*\.history\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.history\.\*\.tip\_report | numeric | -action\_result\.data\.\*\.history\.\*\.ts | string | -action\_result\.data\.\*\.history\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.history\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.history\.\*\.user\.email | string | `email` -action\_result\.data\.\*\.history\.\*\.user\.id | string | -action\_result\.data\.\*\.history\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.history\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.history\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.history\.\*\.user\.name | string | -action\_result\.data\.\*\.history\.\*\.user\.nickname | string | -action\_result\.data\.\*\.history\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.history\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.history\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.history\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.id | string | `threatstream threatbulletin id` -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_email | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.original\_source | string | -action\_result\.data\.\*\.original\_source\_id | string | -action\_result\.data\.\*\.owner\_org\.id | string | -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.owner\_org\_id | numeric | -action\_result\.data\.\*\.owner\_org\_name | string | -action\_result\.data\.\*\.owner\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.owner\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.is\_active | boolean | -action\_result\.data\.\*\.owner\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.owner\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.nickname | string | -action\_result\.data\.\*\.owner\_user\.organization\.id | string | -action\_result\.data\.\*\.owner\_user\.organization\.name | string | -action\_result\.data\.\*\.owner\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.owner\_user\_name | string | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.private\_status\_id | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.threat\_actor | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.assignee_user_id | numeric | | 22 +action_result.parameter.attachments | string | `vault id` `sha1` | b10e56af7aed0446e7c87d495700118787212378 +action_result.parameter.body | string | | test body +action_result.parameter.body_content_type | string | | richtext +action_result.parameter.circles | string | | 10022,10020 +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | 229717444 +action_result.parameter.comments | string | | {"body":"test comment1","title":"test comment2"} +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.import_sessions | string | | 10899,170994 +action_result.parameter.is_anonymous | boolean | | True False +action_result.parameter.is_public | boolean | | True False +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | 1000000298 +action_result.parameter.name | string | | test name +action_result.parameter.source | string | | test source +action_result.parameter.status | string | | new +action_result.parameter.tags | string | | test tag1, test tag2 +action_result.parameter.tlp | string | | amber +action_result.data.\*.all_circles_visible | boolean | | True False +action_result.data.\*.assignee_org | string | | +action_result.data.\*.assignee_org_id | string | | +action_result.data.\*.assignee_org_name | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.assignee_user.avatar_s3_url | string | | +action_result.data.\*.assignee_user.can_share_intelligence | boolean | | True False +action_result.data.\*.assignee_user.email | string | `email` | mark@domaintools.com +action_result.data.\*.assignee_user.id | string | | 22 +action_result.data.\*.assignee_user.is_active | boolean | | True False +action_result.data.\*.assignee_user.is_readonly | boolean | | True False +action_result.data.\*.assignee_user.must_change_password | boolean | | True False +action_result.data.\*.assignee_user.name | string | | +action_result.data.\*.assignee_user.nickname | string | | +action_result.data.\*.assignee_user.organization.id | string | | 11 +action_result.data.\*.assignee_user.organization.name | string | | DomainTools +action_result.data.\*.assignee_user.organization.resource_uri | string | | /api/v1/userorganization/11/ +action_result.data.\*.assignee_user.resource_uri | string | | /api/v1/user/22/ +action_result.data.\*.assignee_user_id | numeric | | 22 +action_result.data.\*.assignee_user_name | string | | +action_result.data.\*.attachments | string | | id +action_result.data.\*.body | string | | test body +action_result.data.\*.body_content_type | string | | richtext +action_result.data.\*.campaign | string | | +action_result.data.\*.comments.body | string | | test comment1 +action_result.data.\*.comments.created_ts | string | | 2021-04-06T08:09:33.924401 +action_result.data.\*.comments.id | string | | 57 +action_result.data.\*.comments.modified_ts | string | | 2021-04-06T08:09:33.924401 +action_result.data.\*.comments.remote_api | boolean | | True False +action_result.data.\*.comments.tip_report | numeric | | 10890 +action_result.data.\*.comments.title | string | | test comment2 +action_result.data.\*.comments.tlp | string | | red +action_result.data.\*.comments.user.avatar_s3_url | string | | +action_result.data.\*.comments.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comments.user.email | string | `email` | test@testuser.com +action_result.data.\*.comments.user.id | string | | 136 +action_result.data.\*.comments.user.is_active | boolean | | True False +action_result.data.\*.comments.user.is_readonly | boolean | | True False +action_result.data.\*.comments.user.must_change_password | boolean | | True False +action_result.data.\*.comments.user.name | string | | testuser2 +action_result.data.\*.comments.user.nickname | string | | +action_result.data.\*.comments.user.organization.id | string | | 67 +action_result.data.\*.comments.user.organization.name | string | | test.org.com +action_result.data.\*.comments.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.comments.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.created_ts | string | | 2021-04-06T08:09:31.778085 +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.history.\*.action | string | | created-report +action_result.data.\*.history.\*.detail | string | | +action_result.data.\*.history.\*.id | string | | 33822 +action_result.data.\*.history.\*.quantity | string | | +action_result.data.\*.history.\*.remote_api | boolean | | True False +action_result.data.\*.history.\*.tip_report | numeric | | 10890 +action_result.data.\*.history.\*.ts | string | | 2021-04-06T08:09:31.778085 +action_result.data.\*.history.\*.user.avatar_s3_url | string | | +action_result.data.\*.history.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.history.\*.user.email | string | `email` | test@testuser.com +action_result.data.\*.history.\*.user.id | string | | 136 +action_result.data.\*.history.\*.user.is_active | boolean | | True False +action_result.data.\*.history.\*.user.is_readonly | boolean | | True False +action_result.data.\*.history.\*.user.must_change_password | boolean | | True False +action_result.data.\*.history.\*.user.name | string | | testuser2 +action_result.data.\*.history.\*.user.nickname | string | | +action_result.data.\*.history.\*.user.organization.id | string | | 67 +action_result.data.\*.history.\*.user.organization.name | string | | test.org.com +action_result.data.\*.history.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.history.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.id | string | `threatstream threatbulletin id` | 10890 +action_result.data.\*.intelligence.\*.id | numeric | | 229717582 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_email | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2021-04-06T08:09:31.801690 +action_result.data.\*.name | string | | test name +action_result.data.\*.original_source | string | | +action_result.data.\*.original_source_id | string | | +action_result.data.\*.owner_org.id | string | | 67 +action_result.data.\*.owner_org.name | string | | test.org.com +action_result.data.\*.owner_org.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_org_id | numeric | | 67 +action_result.data.\*.owner_org_name | string | | test.org.com +action_result.data.\*.owner_user.avatar_s3_url | string | | +action_result.data.\*.owner_user.can_share_intelligence | boolean | | True False +action_result.data.\*.owner_user.email | string | `email` | test@testuser.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.is_active | boolean | | True False +action_result.data.\*.owner_user.is_readonly | boolean | | True False +action_result.data.\*.owner_user.must_change_password | boolean | | True False +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.nickname | string | | +action_result.data.\*.owner_user.organization.id | string | | 67 +action_result.data.\*.owner_user.organization.name | string | | test.org.com +action_result.data.\*.owner_user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.owner_user_name | string | | testuser2 +action_result.data.\*.parent | string | | +action_result.data.\*.private_status_id | string | | +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/tipreport/10890/?remote_api=true +action_result.data.\*.source | string | | test source +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.status | string | | new +action_result.data.\*.threat_actor | string | | +action_result.data.\*.tlp | string | | amber +action_result.data.\*.ttp | string | | +action_result.data.\*.uuid | string | | 3c566c79-e3c5-4c02-bb8c-acff8182b100 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Threat bulletin created successfully. Associated intelligence : 229717582, 229717444, 1000000298, 1000000001 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update threat bulletin' Update a threat bulletin in ThreatStream @@ -2747,7 +2937,7 @@ Update a threat bulletin in ThreatStream Type: **generic** Read only: **False** -Circles parameter will only be applicable when a cloud threat bulletin will be updated\. +Circles parameter will only be applicable when a cloud threat bulletin will be updated. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -2755,230 +2945,230 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **id** | required | ID of the threat bulletin | string | `threatstream threatbulletin id` **status** | optional | Status to give the threat bulletin | string | **source** | optional | Source of the threat bulletin | string | -**tags** | optional | Comma\-separated list of tags for the threat bulletin | string | +**tags** | optional | Comma-separated list of tags for the threat bulletin | string | **tlp** | optional | Tlp to give the threat bulletin | string | -**assignee\_user\_id** | optional | Assignee to give the threat bulletin | numeric | +**assignee_user_id** | optional | Assignee to give the threat bulletin | numeric | **body** | optional | Body content to give the threat bulletin | string | -**comments** | optional | Comments to give the threat bulletin\(JSON format containing body, title, etc\.\) | string | -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with the threat bulletin \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with the threat bulletin \- Note that this appends | string | `threatstream intelligence id` +**comments** | optional | Comments to give the threat bulletin(JSON format containing body, title, etc.) | string | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with the threat bulletin - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with the threat bulletin - Note that this appends | string | `threatstream intelligence id` **attachments** | optional | Vault id of an attachment to add on the threat bulletin | string | `vault id` `sha1` -**circles** | optional | Comma\-separated list of circles to give the threat bulletin \(Applicable only when a cloud threat bulletin will be updated\) | string | -**import\_sessions** | optional | Comma\-separated list of sessions to give the threat bulletin | string | -**is\_public** | optional | Classification designation | boolean | -**is\_anonymous** | optional | Whether the threat bulletin user and organization information is anonymized | boolean | +**circles** | optional | Comma-separated list of circles to give the threat bulletin (Applicable only when a cloud threat bulletin will be updated) | string | +**import_sessions** | optional | Comma-separated list of sessions to give the threat bulletin | string | +**is_public** | optional | Classification designation | boolean | +**is_anonymous** | optional | Whether the threat bulletin user and organization information is anonymized | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.assignee\_user\_id | numeric | -action\_result\.parameter\.attachments | string | `vault id` `sha1` -action\_result\.parameter\.body | string | -action\_result\.parameter\.circles | string | -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.comments | string | -action\_result\.parameter\.id | string | `threatstream threatbulletin id` -action\_result\.parameter\.import\_sessions | string | -action\_result\.parameter\.is\_anonymous | boolean | -action\_result\.parameter\.is\_public | boolean | -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.source | string | -action\_result\.parameter\.status | string | -action\_result\.parameter\.tags | string | -action\_result\.parameter\.tlp | string | -action\_result\.data\.\*\.all\_circles\_visible | boolean | -action\_result\.data\.\*\.assignee\_org | string | -action\_result\.data\.\*\.assignee\_org\_id | string | -action\_result\.data\.\*\.assignee\_org\_name | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.assignee\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.assignee\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.assignee\_user\.email | string | -action\_result\.data\.\*\.assignee\_user\.id | string | -action\_result\.data\.\*\.assignee\_user\.is\_active | boolean | -action\_result\.data\.\*\.assignee\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.assignee\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.assignee\_user\.name | string | -action\_result\.data\.\*\.assignee\_user\.nickname | string | -action\_result\.data\.\*\.assignee\_user\.organization\.id | string | -action\_result\.data\.\*\.assignee\_user\.organization\.name | string | -action\_result\.data\.\*\.assignee\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\_id | string | -action\_result\.data\.\*\.assignee\_user\_name | string | -action\_result\.data\.\*\.attachments\.\*\.content\_type | string | -action\_result\.data\.\*\.attachments\.\*\.created\_ts | string | -action\_result\.data\.\*\.attachments\.\*\.filename | string | -action\_result\.data\.\*\.attachments\.\*\.id | string | -action\_result\.data\.\*\.attachments\.\*\.modified\_ts | string | -action\_result\.data\.\*\.attachments\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.attachments\.\*\.s3\_thumbnail\_url | string | -action\_result\.data\.\*\.attachments\.\*\.s3\_url | string | -action\_result\.data\.\*\.attachments\.\*\.signed\_thumbnail\_url | string | -action\_result\.data\.\*\.attachments\.\*\.signed\_url | string | -action\_result\.data\.\*\.attachments\.\*\.tip\_report | numeric | -action\_result\.data\.\*\.attachments\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.attachments\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.attachments\.\*\.user\.email | string | -action\_result\.data\.\*\.attachments\.\*\.user\.id | string | -action\_result\.data\.\*\.attachments\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.attachments\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.attachments\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.attachments\.\*\.user\.name | string | -action\_result\.data\.\*\.attachments\.\*\.user\.nickname | string | -action\_result\.data\.\*\.attachments\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.attachments\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.attachments\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.content\_type | string | -action\_result\.data\.\*\.attachments\.created\_ts | string | -action\_result\.data\.\*\.attachments\.filename | string | -action\_result\.data\.\*\.attachments\.id | string | -action\_result\.data\.\*\.attachments\.modified\_ts | string | -action\_result\.data\.\*\.attachments\.remote\_api | boolean | -action\_result\.data\.\*\.attachments\.s3\_thumbnail\_url | string | -action\_result\.data\.\*\.attachments\.s3\_url | string | `url` -action\_result\.data\.\*\.attachments\.signed\_thumbnail\_url | string | -action\_result\.data\.\*\.attachments\.signed\_url | string | `url` -action\_result\.data\.\*\.attachments\.tip\_report | numeric | -action\_result\.data\.\*\.attachments\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.attachments\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.attachments\.user\.email | string | `email` -action\_result\.data\.\*\.attachments\.user\.id | string | -action\_result\.data\.\*\.attachments\.user\.is\_active | boolean | -action\_result\.data\.\*\.attachments\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.attachments\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.attachments\.user\.name | string | -action\_result\.data\.\*\.attachments\.user\.nickname | string | -action\_result\.data\.\*\.attachments\.user\.organization\.id | string | -action\_result\.data\.\*\.attachments\.user\.organization\.name | string | -action\_result\.data\.\*\.attachments\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.user\.resource\_uri | string | -action\_result\.data\.\*\.body | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaign | string | -action\_result\.data\.\*\.comments\.\*\.body | string | -action\_result\.data\.\*\.comments\.\*\.created\_ts | string | -action\_result\.data\.\*\.comments\.\*\.id | string | -action\_result\.data\.\*\.comments\.\*\.modified\_ts | string | -action\_result\.data\.\*\.comments\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.comments\.\*\.tip\_report | numeric | -action\_result\.data\.\*\.comments\.\*\.title | string | -action\_result\.data\.\*\.comments\.\*\.tlp | string | -action\_result\.data\.\*\.comments\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comments\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comments\.\*\.user\.email | string | -action\_result\.data\.\*\.comments\.\*\.user\.id | string | -action\_result\.data\.\*\.comments\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.comments\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comments\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comments\.\*\.user\.name | string | -action\_result\.data\.\*\.comments\.\*\.user\.nickname | string | -action\_result\.data\.\*\.comments\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.comments\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.comments\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comments\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.comments\.body | string | -action\_result\.data\.\*\.comments\.created\_ts | string | -action\_result\.data\.\*\.comments\.id | string | -action\_result\.data\.\*\.comments\.modified\_ts | string | -action\_result\.data\.\*\.comments\.remote\_api | boolean | -action\_result\.data\.\*\.comments\.tip\_report | numeric | -action\_result\.data\.\*\.comments\.title | string | -action\_result\.data\.\*\.comments\.tlp | string | -action\_result\.data\.\*\.comments\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comments\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comments\.user\.email | string | `email` -action\_result\.data\.\*\.comments\.user\.id | string | -action\_result\.data\.\*\.comments\.user\.is\_active | boolean | -action\_result\.data\.\*\.comments\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comments\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comments\.user\.name | string | -action\_result\.data\.\*\.comments\.user\.nickname | string | -action\_result\.data\.\*\.comments\.user\.organization\.id | string | -action\_result\.data\.\*\.comments\.user\.organization\.name | string | -action\_result\.data\.\*\.comments\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comments\.user\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.feed\_id | string | -action\_result\.data\.\*\.history\.\*\.action | string | -action\_result\.data\.\*\.history\.\*\.detail | string | -action\_result\.data\.\*\.history\.\*\.id | string | -action\_result\.data\.\*\.history\.\*\.quantity | string | -action\_result\.data\.\*\.history\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.history\.\*\.tip\_report | numeric | -action\_result\.data\.\*\.history\.\*\.ts | string | -action\_result\.data\.\*\.history\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.history\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.history\.\*\.user\.email | string | `email` -action\_result\.data\.\*\.history\.\*\.user\.id | string | -action\_result\.data\.\*\.history\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.history\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.history\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.history\.\*\.user\.name | string | -action\_result\.data\.\*\.history\.\*\.user\.nickname | string | -action\_result\.data\.\*\.history\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.history\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.history\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.history\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.id | string | `threatstream threatbulletin id` -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_email | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.original\_source | string | -action\_result\.data\.\*\.original\_source\_id | string | -action\_result\.data\.\*\.owner\_org\.id | string | -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.owner\_org\_id | numeric | -action\_result\.data\.\*\.owner\_org\_name | string | -action\_result\.data\.\*\.owner\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.owner\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.is\_active | boolean | -action\_result\.data\.\*\.owner\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.owner\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.nickname | string | -action\_result\.data\.\*\.owner\_user\.organization\.id | string | -action\_result\.data\.\*\.owner\_user\.organization\.name | string | -action\_result\.data\.\*\.owner\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.owner\_user\_name | string | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.private\_status\_id | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.threat\_actor | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.assignee_user_id | numeric | | 10 +action_result.parameter.attachments | string | `vault id` `sha1` | b10e56af7aed0446e7c87d495700118787212378 +action_result.parameter.body | string | | test body +action_result.parameter.circles | string | | 10022,10020 +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | 229717444 +action_result.parameter.comments | string | | {"body":"test comment","title":"test comment"} +action_result.parameter.id | string | `threatstream threatbulletin id` | 1000000014 +action_result.parameter.import_sessions | string | | 10899,170994 +action_result.parameter.is_anonymous | boolean | | True False +action_result.parameter.is_public | boolean | | True False +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | 1000000298 +action_result.parameter.source | string | | test source +action_result.parameter.status | string | | published +action_result.parameter.tags | string | | test tag +action_result.parameter.tlp | string | | red +action_result.data.\*.all_circles_visible | boolean | | True False +action_result.data.\*.assignee_org | string | | +action_result.data.\*.assignee_org_id | string | | +action_result.data.\*.assignee_org_name | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.assignee_user.avatar_s3_url | string | | +action_result.data.\*.assignee_user.can_share_intelligence | boolean | | True False +action_result.data.\*.assignee_user.email | string | | admin-idefense@idefense.com +action_result.data.\*.assignee_user.id | string | | 44 +action_result.data.\*.assignee_user.is_active | boolean | | True False +action_result.data.\*.assignee_user.is_readonly | boolean | | True False +action_result.data.\*.assignee_user.must_change_password | boolean | | True False +action_result.data.\*.assignee_user.name | string | | +action_result.data.\*.assignee_user.nickname | string | | +action_result.data.\*.assignee_user.organization.id | string | | 20 +action_result.data.\*.assignee_user.organization.name | string | | iDefense +action_result.data.\*.assignee_user.organization.resource_uri | string | | /api/v1/userorganization/20/ +action_result.data.\*.assignee_user.resource_uri | string | | /api/v1/user/44/ +action_result.data.\*.assignee_user_id | string | | +action_result.data.\*.assignee_user_name | string | | +action_result.data.\*.attachments.\*.content_type | string | | +action_result.data.\*.attachments.\*.created_ts | string | | 2021-03-26T10:31:45.712609 +action_result.data.\*.attachments.\*.filename | string | | abcd.txt +action_result.data.\*.attachments.\*.id | string | | 9001 +action_result.data.\*.attachments.\*.modified_ts | string | | 2021-03-26T10:31:45.712609 +action_result.data.\*.attachments.\*.remote_api | boolean | | True False +action_result.data.\*.attachments.\*.s3_thumbnail_url | string | | +action_result.data.\*.attachments.\*.s3_url | string | | http://ui-threatstream.s3.test.com/userUploads/2021-03-26/20210326_103145_userId-136_abcd.txt +action_result.data.\*.attachments.\*.signed_thumbnail_url | string | | +action_result.data.\*.attachments.\*.signed_url | string | | https://test-optic.s3.ui.com/userUploads/2021-03-26/20210326_103145_userId-136_abcd.txt?Signature=p5I5tJOrB242TAOSA39eYxL7dr4%3D&Expires=1616756070&AWSAccessKeyId=AKIAQYUTUNAKSCAMMFFH +action_result.data.\*.attachments.\*.tip_report | numeric | | 10787 +action_result.data.\*.attachments.\*.user.avatar_s3_url | string | | +action_result.data.\*.attachments.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.attachments.\*.user.email | string | | testuser2@test.user.com +action_result.data.\*.attachments.\*.user.id | string | | 136 +action_result.data.\*.attachments.\*.user.is_active | boolean | | True False +action_result.data.\*.attachments.\*.user.is_readonly | boolean | | True False +action_result.data.\*.attachments.\*.user.must_change_password | boolean | | True False +action_result.data.\*.attachments.\*.user.name | string | | testuser2 +action_result.data.\*.attachments.\*.user.nickname | string | | +action_result.data.\*.attachments.\*.user.organization.id | string | | 67 +action_result.data.\*.attachments.\*.user.organization.name | string | | test.user.com +action_result.data.\*.attachments.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.attachments.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.attachments.content_type | string | | application/octet-stream +action_result.data.\*.attachments.created_ts | string | | 2021-04-06T08:02:48.025223 +action_result.data.\*.attachments.filename | string | | Bien sûr.rtf +action_result.data.\*.attachments.id | string | | 1000000009 +action_result.data.\*.attachments.modified_ts | string | | 2021-04-06T08:02:48.025223 +action_result.data.\*.attachments.remote_api | boolean | | True False +action_result.data.\*.attachments.s3_thumbnail_url | string | | +action_result.data.\*.attachments.s3_url | string | `url` | http://52.52.79.127/ts-optic-appliance/userUploads/2021-04-06/20210406_080247_userId-136_Biensur.rtf +action_result.data.\*.attachments.signed_thumbnail_url | string | | +action_result.data.\*.attachments.signed_url | string | `url` | https://52.52.79.127/ts-optic-appliance/userUploads/2021-04-06/20210406_080247_userId-136_Biensur.rtf?Signature=x8Yz2TkHXGvo616DTDC5ngO%2F740%3D&Expires=1617697068&AWSAccessKeyId=MKL12IRRH2NRCOHN7QB0 +action_result.data.\*.attachments.tip_report | numeric | | 1000000014 +action_result.data.\*.attachments.user.avatar_s3_url | string | | +action_result.data.\*.attachments.user.can_share_intelligence | boolean | | True False +action_result.data.\*.attachments.user.email | string | `email` | test@testuser.com +action_result.data.\*.attachments.user.id | string | | 136 +action_result.data.\*.attachments.user.is_active | boolean | | True False +action_result.data.\*.attachments.user.is_readonly | boolean | | True False +action_result.data.\*.attachments.user.must_change_password | boolean | | True False +action_result.data.\*.attachments.user.name | string | | testuser2 +action_result.data.\*.attachments.user.nickname | string | | +action_result.data.\*.attachments.user.organization.id | string | | 67 +action_result.data.\*.attachments.user.organization.name | string | | test.org.com +action_result.data.\*.attachments.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.attachments.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.body | string | | test body +action_result.data.\*.body_content_type | string | | richtext +action_result.data.\*.campaign | string | | +action_result.data.\*.comments.\*.body | string | | test123 +action_result.data.\*.comments.\*.created_ts | string | | 2021-03-26T10:31:46.122309 +action_result.data.\*.comments.\*.id | string | | 33 +action_result.data.\*.comments.\*.modified_ts | string | | 2021-03-26T10:31:46.173656 +action_result.data.\*.comments.\*.remote_api | boolean | | True False +action_result.data.\*.comments.\*.tip_report | numeric | | 10787 +action_result.data.\*.comments.\*.title | string | | test123 +action_result.data.\*.comments.\*.tlp | string | | +action_result.data.\*.comments.\*.user.avatar_s3_url | string | | +action_result.data.\*.comments.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comments.\*.user.email | string | | testuser2@test.user.com +action_result.data.\*.comments.\*.user.id | string | | 136 +action_result.data.\*.comments.\*.user.is_active | boolean | | True False +action_result.data.\*.comments.\*.user.is_readonly | boolean | | True False +action_result.data.\*.comments.\*.user.must_change_password | boolean | | True False +action_result.data.\*.comments.\*.user.name | string | | testuser2 +action_result.data.\*.comments.\*.user.nickname | string | | +action_result.data.\*.comments.\*.user.organization.id | string | | 67 +action_result.data.\*.comments.\*.user.organization.name | string | | test.user.com +action_result.data.\*.comments.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.comments.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.comments.body | string | | test comment +action_result.data.\*.comments.created_ts | string | | 2021-04-06T08:02:48.184466 +action_result.data.\*.comments.id | string | | 1000000014 +action_result.data.\*.comments.modified_ts | string | | 2021-04-06T08:02:48.184466 +action_result.data.\*.comments.remote_api | boolean | | True False +action_result.data.\*.comments.tip_report | numeric | | 1000000014 +action_result.data.\*.comments.title | string | | test comment +action_result.data.\*.comments.tlp | string | | red +action_result.data.\*.comments.user.avatar_s3_url | string | | +action_result.data.\*.comments.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comments.user.email | string | `email` | test@testuser.com +action_result.data.\*.comments.user.id | string | | 136 +action_result.data.\*.comments.user.is_active | boolean | | True False +action_result.data.\*.comments.user.is_readonly | boolean | | True False +action_result.data.\*.comments.user.must_change_password | boolean | | True False +action_result.data.\*.comments.user.name | string | | testuser2 +action_result.data.\*.comments.user.nickname | string | | +action_result.data.\*.comments.user.organization.id | string | | 67 +action_result.data.\*.comments.user.organization.name | string | | test.org.com +action_result.data.\*.comments.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.comments.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.created_ts | string | | 2021-03-30T06:02:14.276627 +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.feed_id | string | | 0 +action_result.data.\*.history.\*.action | string | | updated-report +action_result.data.\*.history.\*.detail | string | | +action_result.data.\*.history.\*.id | string | | 1000000078 +action_result.data.\*.history.\*.quantity | string | | +action_result.data.\*.history.\*.remote_api | boolean | | True False +action_result.data.\*.history.\*.tip_report | numeric | | 1000000014 +action_result.data.\*.history.\*.ts | string | | 2021-04-06T08:02:47.206202 +action_result.data.\*.history.\*.user.avatar_s3_url | string | | +action_result.data.\*.history.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.history.\*.user.email | string | `email` | test@testuser.com +action_result.data.\*.history.\*.user.id | string | | 136 +action_result.data.\*.history.\*.user.is_active | boolean | | True False +action_result.data.\*.history.\*.user.is_readonly | boolean | | True False +action_result.data.\*.history.\*.user.must_change_password | boolean | | True False +action_result.data.\*.history.\*.user.name | string | | testuser2 +action_result.data.\*.history.\*.user.nickname | string | | +action_result.data.\*.history.\*.user.organization.id | string | | 67 +action_result.data.\*.history.\*.user.organization.name | string | | test.org.com +action_result.data.\*.history.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.history.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.id | string | `threatstream threatbulletin id` | 1000000014 +action_result.data.\*.intelligence.\*.id | numeric | | 1000000001 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_email | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2021-04-06T08:02:47.133081 +action_result.data.\*.name | string | | 1 +action_result.data.\*.original_source | string | | +action_result.data.\*.original_source_id | string | | +action_result.data.\*.owner_org.id | string | | 67 +action_result.data.\*.owner_org.name | string | | test.org.com +action_result.data.\*.owner_org.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_org_id | numeric | | 67 +action_result.data.\*.owner_org_name | string | | test.org.com +action_result.data.\*.owner_user.avatar_s3_url | string | | +action_result.data.\*.owner_user.can_share_intelligence | boolean | | True False +action_result.data.\*.owner_user.email | string | `email` | test@testuser.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.is_active | boolean | | True False +action_result.data.\*.owner_user.is_readonly | boolean | | True False +action_result.data.\*.owner_user.must_change_password | boolean | | True False +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.nickname | string | | +action_result.data.\*.owner_user.organization.id | string | | 67 +action_result.data.\*.owner_user.organization.name | string | | test.org.com +action_result.data.\*.owner_user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.owner_user_name | string | | testuser2 +action_result.data.\*.parent | string | | +action_result.data.\*.private_status_id | string | | +action_result.data.\*.published_ts | string | | 2021-04-06T08:02:47.079317 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/tipreport/1000000014/ +action_result.data.\*.source | string | | test source +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.status | string | | published +action_result.data.\*.threat_actor | string | | +action_result.data.\*.tlp | string | | red +action_result.data.\*.ttp | string | | +action_result.data.\*.uuid | string | | d4027da6-c694-4b22-8396-e43154331eb0 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.message | string | | Successfully updated threat bulletin. Associated intelligence : 1000000298, 1000000001, 229717582, 229717444 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list threat bulletins' List threat bulletins present in ThreatStream @@ -2986,7 +3176,7 @@ List threat bulletins present in ThreatStream Type: **investigate** Read only: **True** -
  • This action will list the threat bulletins in oldest first format\.
  • is\_public parameter will only be applicable as filter when its value will be set to "true" or "false"\. It wont be applied as a filter and will list all the threat bulletins when the value of is\_public parameter is set to "all"\.
+
  • This action will list the threat bulletins in oldest first format.
  • is_public parameter will only be applicable as filter when its value will be set to "true" or "false". It wont be applied as a filter and will list all the threat bulletins when the value of is_public parameter is set to "all".
#### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -2995,208 +3185,208 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **name** | optional | Name to filter the threat bulletins | string | **status** | optional | Status to filter the threat bulletins | string | **source** | optional | Source to filter the threat bulletins | string | -**assignee\_user\_id** | optional | Assignee to filter the threat bulletins | numeric | -**is\_public** | optional | Classification designation | string | +**assignee_user_id** | optional | Assignee to filter the threat bulletins | numeric | +**is_public** | optional | Classification designation | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.assignee\_user\_id | numeric | -action\_result\.parameter\.is\_public | string | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.name | string | -action\_result\.parameter\.source | string | -action\_result\.parameter\.status | string | -action\_result\.data\.\*\.\*\.all\_circles\_visible | boolean | -action\_result\.data\.\*\.\*\.assignee\_org | string | -action\_result\.data\.\*\.\*\.assignee\_org\_id | string | -action\_result\.data\.\*\.\*\.assignee\_org\_name | string | -action\_result\.data\.\*\.\*\.assignee\_user | string | -action\_result\.data\.\*\.\*\.assignee\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.\*\.assignee\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.\*\.assignee\_user\.email | string | -action\_result\.data\.\*\.\*\.assignee\_user\.id | string | -action\_result\.data\.\*\.\*\.assignee\_user\.is\_active | boolean | -action\_result\.data\.\*\.\*\.assignee\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.\*\.assignee\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.\*\.assignee\_user\.name | string | -action\_result\.data\.\*\.\*\.assignee\_user\.nickname | string | -action\_result\.data\.\*\.\*\.assignee\_user\.organization\.id | string | -action\_result\.data\.\*\.\*\.assignee\_user\.organization\.name | string | -action\_result\.data\.\*\.\*\.assignee\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.\*\.assignee\_user\.resource\_uri | string | -action\_result\.data\.\*\.\*\.assignee\_user\_id | numeric | -action\_result\.data\.\*\.\*\.assignee\_user\_name | string | -action\_result\.data\.\*\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.\*\.campaign | string | -action\_result\.data\.\*\.\*\.can\_add\_public\_tags | string | -action\_result\.data\.\*\.\*\.created\_ts | string | -action\_result\.data\.\*\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.\*\.id | string | -action\_result\.data\.\*\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.\*\.is\_email | boolean | -action\_result\.data\.\*\.\*\.is\_public | boolean | -action\_result\.data\.\*\.\*\.modified\_ts | string | -action\_result\.data\.\*\.\*\.name | string | -action\_result\.data\.\*\.\*\.original\_source | string | -action\_result\.data\.\*\.\*\.original\_source\_id | string | -action\_result\.data\.\*\.\*\.owner\_org | string | -action\_result\.data\.\*\.\*\.owner\_org\.id | string | -action\_result\.data\.\*\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.\*\.owner\_org\.title | string | -action\_result\.data\.\*\.\*\.owner\_org\_id | string | -action\_result\.data\.\*\.\*\.owner\_org\_name | string | -action\_result\.data\.\*\.\*\.owner\_user | string | -action\_result\.data\.\*\.\*\.owner\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.\*\.owner\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.\*\.owner\_user\.email | string | -action\_result\.data\.\*\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.\*\.owner\_user\.is\_active | boolean | -action\_result\.data\.\*\.\*\.owner\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.\*\.owner\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.\*\.owner\_user\.nickname | string | -action\_result\.data\.\*\.\*\.owner\_user\.organization\.id | string | -action\_result\.data\.\*\.\*\.owner\_user\.organization\.name | string | -action\_result\.data\.\*\.\*\.owner\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.\*\.owner\_user\_id | string | -action\_result\.data\.\*\.\*\.owner\_user\_name | string | -action\_result\.data\.\*\.\*\.parent | string | -action\_result\.data\.\*\.\*\.published\_ts | string | -action\_result\.data\.\*\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.\*\.resource\_uri | string | -action\_result\.data\.\*\.\*\.source | string | -action\_result\.data\.\*\.\*\.source\_created | string | -action\_result\.data\.\*\.\*\.source\_modified | string | -action\_result\.data\.\*\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.\*\.status | string | -action\_result\.data\.\*\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.\*\.tags\_v2\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.\*\.threat\_actor | string | -action\_result\.data\.\*\.\*\.tlp | string | -action\_result\.data\.\*\.\*\.ttp | string | -action\_result\.data\.\*\.\*\.uuid | string | -action\_result\.data\.\*\.\*\.votes\.me | string | -action\_result\.data\.\*\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.\*\.watched\_total\_count | numeric | -action\_result\.data\.\*\.all\_circles\_visible | boolean | -action\_result\.data\.\*\.assignee\_org | string | -action\_result\.data\.\*\.assignee\_org\_id | string | -action\_result\.data\.\*\.assignee\_org\_name | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.assignee\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.assignee\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.assignee\_user\.email | string | `email` -action\_result\.data\.\*\.assignee\_user\.id | string | -action\_result\.data\.\*\.assignee\_user\.is\_active | boolean | -action\_result\.data\.\*\.assignee\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.assignee\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.assignee\_user\.name | string | -action\_result\.data\.\*\.assignee\_user\.nickname | string | -action\_result\.data\.\*\.assignee\_user\.organization\.id | string | -action\_result\.data\.\*\.assignee\_user\.organization\.name | string | -action\_result\.data\.\*\.assignee\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\_id | numeric | -action\_result\.data\.\*\.assignee\_user\_name | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaign | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.anonymous\_sharing | boolean | -action\_result\.data\.\*\.circles\.\*\.can\_edit | boolean | -action\_result\.data\.\*\.circles\.\*\.can\_invite | boolean | -action\_result\.data\.\*\.circles\.\*\.can\_override\_confidence | boolean | -action\_result\.data\.\*\.circles\.\*\.description | string | -action\_result\.data\.\*\.circles\.\*\.disable\_vendor\_emails | string | -action\_result\.data\.\*\.circles\.\*\.id | numeric | -action\_result\.data\.\*\.circles\.\*\.is\_freemium | boolean | -action\_result\.data\.\*\.circles\.\*\.mattermost\_team\_id | string | -action\_result\.data\.\*\.circles\.\*\.member | boolean | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.num\_administrators | numeric | -action\_result\.data\.\*\.circles\.\*\.num\_members | numeric | -action\_result\.data\.\*\.circles\.\*\.openinvite | boolean | -action\_result\.data\.\*\.circles\.\*\.pending | boolean | -action\_result\.data\.\*\.circles\.\*\.public | boolean | -action\_result\.data\.\*\.circles\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.circles\.\*\.restricted\_publishing | boolean | -action\_result\.data\.\*\.circles\.\*\.subscription\_model | string | -action\_result\.data\.\*\.circles\.\*\.use\_chat | boolean | -action\_result\.data\.\*\.circles\.\*\.validate\_subscriptions | boolean | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | string | `threatstream threatbulletin id` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_email | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.original\_source | string | -action\_result\.data\.\*\.original\_source\_id | string | -action\_result\.data\.\*\.owner\_org | string | -action\_result\.data\.\*\.owner\_org\.id | string | -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.owner\_org\.title | string | -action\_result\.data\.\*\.owner\_org\_id | numeric | -action\_result\.data\.\*\.owner\_org\_name | string | -action\_result\.data\.\*\.owner\_user | string | -action\_result\.data\.\*\.owner\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.owner\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.is\_active | boolean | -action\_result\.data\.\*\.owner\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.owner\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.nickname | string | -action\_result\.data\.\*\.owner\_user\.organization\.id | string | -action\_result\.data\.\*\.owner\_user\.organization\.name | string | -action\_result\.data\.\*\.owner\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.owner\_user\_name | string | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_actor | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttp | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary\.threat\_bulletins\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.assignee_user_id | numeric | | 22 +action_result.parameter.is_public | string | | true false all +action_result.parameter.limit | numeric | | 1000 +action_result.parameter.name | string | | test name +action_result.parameter.source | string | | test source +action_result.parameter.status | string | | new +action_result.data.\*.\*.all_circles_visible | boolean | | True False +action_result.data.\*.\*.assignee_org | string | | +action_result.data.\*.\*.assignee_org_id | string | | +action_result.data.\*.\*.assignee_org_name | string | | +action_result.data.\*.\*.assignee_user | string | | +action_result.data.\*.\*.assignee_user.avatar_s3_url | string | | +action_result.data.\*.\*.assignee_user.can_share_intelligence | boolean | | True False +action_result.data.\*.\*.assignee_user.email | string | | tkng@anomali.com +action_result.data.\*.\*.assignee_user.id | string | | 3 +action_result.data.\*.\*.assignee_user.is_active | boolean | | True False +action_result.data.\*.\*.assignee_user.is_readonly | boolean | | True False +action_result.data.\*.\*.assignee_user.must_change_password | boolean | | True False +action_result.data.\*.\*.assignee_user.name | string | | +action_result.data.\*.\*.assignee_user.nickname | string | | +action_result.data.\*.\*.assignee_user.organization.id | string | | 2 +action_result.data.\*.\*.assignee_user.organization.name | string | | Anomali +action_result.data.\*.\*.assignee_user.organization.resource_uri | string | | /api/v1/userorganization/2/ +action_result.data.\*.\*.assignee_user.resource_uri | string | | /api/v1/user/3/ +action_result.data.\*.\*.assignee_user_id | numeric | | 3 +action_result.data.\*.\*.assignee_user_name | string | | +action_result.data.\*.\*.body_content_type | string | | markdown +action_result.data.\*.\*.campaign | string | | +action_result.data.\*.\*.can_add_public_tags | string | | +action_result.data.\*.\*.created_ts | string | | 2021-03-25T09:05:07.105073 +action_result.data.\*.\*.feed_id | numeric | | 0 +action_result.data.\*.\*.id | string | | 10768 +action_result.data.\*.\*.is_anonymous | boolean | | True False +action_result.data.\*.\*.is_cloneable | string | | yes +action_result.data.\*.\*.is_editable | boolean | | True False +action_result.data.\*.\*.is_email | boolean | | True False +action_result.data.\*.\*.is_public | boolean | | True False +action_result.data.\*.\*.modified_ts | string | | 2021-03-25T09:05:07.110410 +action_result.data.\*.\*.name | string | | tag +action_result.data.\*.\*.original_source | string | | +action_result.data.\*.\*.original_source_id | string | | +action_result.data.\*.\*.owner_org | string | | +action_result.data.\*.\*.owner_org.id | string | | 67 +action_result.data.\*.\*.owner_org.name | string | | test.user.com +action_result.data.\*.\*.owner_org.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.\*.owner_org.title | string | | Analyst +action_result.data.\*.\*.owner_org_id | string | | +action_result.data.\*.\*.owner_org_name | string | | +action_result.data.\*.\*.owner_user | string | | +action_result.data.\*.\*.owner_user.avatar_s3_url | string | | +action_result.data.\*.\*.owner_user.can_share_intelligence | boolean | | True False +action_result.data.\*.\*.owner_user.email | string | | testuser2@qa.test.com +action_result.data.\*.\*.owner_user.id | string | | 136 +action_result.data.\*.\*.owner_user.is_active | boolean | | True False +action_result.data.\*.\*.owner_user.is_readonly | boolean | | True False +action_result.data.\*.\*.owner_user.must_change_password | boolean | | True False +action_result.data.\*.\*.owner_user.name | string | | testuser +action_result.data.\*.\*.owner_user.nickname | string | | +action_result.data.\*.\*.owner_user.organization.id | string | | 67 +action_result.data.\*.\*.owner_user.organization.name | string | | qa.test.com +action_result.data.\*.\*.owner_user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.\*.owner_user_id | string | | +action_result.data.\*.\*.owner_user_name | string | | +action_result.data.\*.\*.parent | string | | +action_result.data.\*.\*.published_ts | string | | +action_result.data.\*.\*.remote_api | boolean | | True False +action_result.data.\*.\*.resource_uri | string | | /api/v1/tipreport/10768/?remote_api=true +action_result.data.\*.\*.source | string | | test +action_result.data.\*.\*.source_created | string | | +action_result.data.\*.\*.source_modified | string | | +action_result.data.\*.\*.starred_by_me | boolean | | True False +action_result.data.\*.\*.starred_total_count | numeric | | 0 +action_result.data.\*.\*.status | string | | new +action_result.data.\*.\*.tags_v2.\*.id | string | | rb6 +action_result.data.\*.\*.tags_v2.\*.name | string | | file +action_result.data.\*.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.\*.tags_v2.\*.remote_api | boolean | | True False +action_result.data.\*.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.\*.threat_actor | string | | +action_result.data.\*.\*.tlp | string | | white +action_result.data.\*.\*.ttp | string | | +action_result.data.\*.\*.uuid | string | | f0ae413e-9967-4b32-bd52-810fbebfb421 +action_result.data.\*.\*.votes.me | string | | +action_result.data.\*.\*.votes.total | numeric | | 0 +action_result.data.\*.\*.watched_by_me | boolean | | True False +action_result.data.\*.\*.watched_total_count | numeric | | 0 +action_result.data.\*.all_circles_visible | boolean | | True False +action_result.data.\*.assignee_org | string | | +action_result.data.\*.assignee_org_id | string | | +action_result.data.\*.assignee_org_name | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.assignee_user.avatar_s3_url | string | | +action_result.data.\*.assignee_user.can_share_intelligence | boolean | | True False +action_result.data.\*.assignee_user.email | string | `email` | mark@domaintools.com +action_result.data.\*.assignee_user.id | string | | 22 +action_result.data.\*.assignee_user.is_active | boolean | | True False +action_result.data.\*.assignee_user.is_readonly | boolean | | True False +action_result.data.\*.assignee_user.must_change_password | boolean | | True False +action_result.data.\*.assignee_user.name | string | | +action_result.data.\*.assignee_user.nickname | string | | +action_result.data.\*.assignee_user.organization.id | string | | 11 +action_result.data.\*.assignee_user.organization.name | string | | DomainTools +action_result.data.\*.assignee_user.organization.resource_uri | string | | /api/v1/userorganization/11/ +action_result.data.\*.assignee_user.resource_uri | string | | /api/v1/user/22/ +action_result.data.\*.assignee_user_id | numeric | | 22 +action_result.data.\*.assignee_user_name | string | | +action_result.data.\*.body_content_type | string | | richtext +action_result.data.\*.campaign | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.anonymous_sharing | boolean | | True False +action_result.data.\*.circles.\*.can_edit | boolean | | True False +action_result.data.\*.circles.\*.can_invite | boolean | | True False +action_result.data.\*.circles.\*.can_override_confidence | boolean | | True False +action_result.data.\*.circles.\*.description | string | | For testing... +action_result.data.\*.circles.\*.disable_vendor_emails | string | | +action_result.data.\*.circles.\*.id | numeric | | 10018 +action_result.data.\*.circles.\*.is_freemium | boolean | | True False +action_result.data.\*.circles.\*.mattermost_team_id | string | | +action_result.data.\*.circles.\*.member | boolean | | True False +action_result.data.\*.circles.\*.name | string | | Test circle 2 +action_result.data.\*.circles.\*.num_administrators | numeric | | 1 +action_result.data.\*.circles.\*.num_members | numeric | | 1 +action_result.data.\*.circles.\*.openinvite | boolean | | True False +action_result.data.\*.circles.\*.pending | boolean | | True False +action_result.data.\*.circles.\*.public | boolean | | True False +action_result.data.\*.circles.\*.remote_api | boolean | | True False +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/basetrustedcircle/10018/?remote_api=true +action_result.data.\*.circles.\*.restricted_publishing | boolean | | True False +action_result.data.\*.circles.\*.subscription_model | string | | +action_result.data.\*.circles.\*.use_chat | boolean | | True False +action_result.data.\*.circles.\*.validate_subscriptions | boolean | | True False +action_result.data.\*.created_ts | string | | 2021-04-06T08:09:31.778085 +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | string | `threatstream threatbulletin id` | 10890 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_email | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.modified_ts | string | | 2021-04-06T08:09:33.982053 +action_result.data.\*.name | string | | test name +action_result.data.\*.original_source | string | | +action_result.data.\*.original_source_id | string | | +action_result.data.\*.owner_org | string | | +action_result.data.\*.owner_org.id | string | | 67 +action_result.data.\*.owner_org.name | string | | test.org.com +action_result.data.\*.owner_org.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_org.title | string | | Analyst +action_result.data.\*.owner_org_id | numeric | | 67 +action_result.data.\*.owner_org_name | string | | test.org.com +action_result.data.\*.owner_user | string | | +action_result.data.\*.owner_user.avatar_s3_url | string | | +action_result.data.\*.owner_user.can_share_intelligence | boolean | | True False +action_result.data.\*.owner_user.email | string | `email` | test@testuser.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.is_active | boolean | | True False +action_result.data.\*.owner_user.is_readonly | boolean | | True False +action_result.data.\*.owner_user.must_change_password | boolean | | True False +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.nickname | string | | +action_result.data.\*.owner_user.organization.id | string | | 67 +action_result.data.\*.owner_user.organization.name | string | | test.org.com +action_result.data.\*.owner_user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.owner_user_name | string | | testuser2 +action_result.data.\*.parent | string | | +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/tipreport/10890/?remote_api=true +action_result.data.\*.source | string | | test source +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.status | string | | new +action_result.data.\*.tags | string | | test tag2 +action_result.data.\*.tags_v2.\*.id | string | | i45 +action_result.data.\*.tags_v2.\*.name | string | | test tag1 +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.remote_api | boolean | | True False +action_result.data.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.threat_actor | string | | +action_result.data.\*.tlp | string | | amber +action_result.data.\*.ttp | string | | +action_result.data.\*.uuid | string | | 3c566c79-e3c5-4c02-bb8c-acff8182b100 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary.threat_bulletins_returned | numeric | | 1 +action_result.message | string | | Threat bulletins returned: 1 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list associations' List associations of an entity present in ThreatStream @@ -3207,174 +3397,174 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**entity\_id** | required | ID of the entity | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` +**entity_id** | required | ID of the entity | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` **limit** | optional | Total number of associations to return | numeric | -**entity\_type** | required | Type of threat model entity to list the associations | string | -**associated\_entity\_type** | required | Type of associations of the enitity to list | string | +**entity_type** | required | Type of threat model entity to list the associations | string | +**associated_entity_type** | required | Type of associations of the enitity to list | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.associated\_entity\_type | string | -action\_result\.parameter\.entity\_id | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.parameter\.entity\_type | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.all\_circles\_visible | boolean | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.assignee\_org | string | -action\_result\.data\.\*\.assignee\_org\_id | string | -action\_result\.data\.\*\.assignee\_org\_name | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.assignee\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.assignee\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.assignee\_user\.email | string | -action\_result\.data\.\*\.assignee\_user\.id | string | -action\_result\.data\.\*\.assignee\_user\.is\_active | boolean | -action\_result\.data\.\*\.assignee\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.assignee\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.assignee\_user\.name | string | -action\_result\.data\.\*\.assignee\_user\.nickname | string | -action\_result\.data\.\*\.assignee\_user\.organization\.id | string | -action\_result\.data\.\*\.assignee\_user\.organization\.name | string | -action\_result\.data\.\*\.assignee\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user\_id | string | -action\_result\.data\.\*\.assignee\_user\_name | string | -action\_result\.data\.\*\.association\_info\.\*\.comment | string | -action\_result\.data\.\*\.association\_info\.\*\.created | string | -action\_result\.data\.\*\.association\_info\.\*\.from\_id | string | -action\_result\.data\.\*\.association\_info\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaign | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.anonymous\_sharing | boolean | -action\_result\.data\.\*\.circles\.\*\.can\_edit | boolean | -action\_result\.data\.\*\.circles\.\*\.can\_invite | boolean | -action\_result\.data\.\*\.circles\.\*\.can\_override\_confidence | boolean | -action\_result\.data\.\*\.circles\.\*\.description | string | -action\_result\.data\.\*\.circles\.\*\.disable\_vendor\_emails | string | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.is\_freemium | boolean | -action\_result\.data\.\*\.circles\.\*\.mattermost\_team\_id | string | -action\_result\.data\.\*\.circles\.\*\.member | boolean | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.num\_administrators | numeric | -action\_result\.data\.\*\.circles\.\*\.num\_members | numeric | -action\_result\.data\.\*\.circles\.\*\.openinvite | boolean | -action\_result\.data\.\*\.circles\.\*\.pending | boolean | -action\_result\.data\.\*\.circles\.\*\.public | boolean | -action\_result\.data\.\*\.circles\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.circles\.\*\.restricted\_publishing | boolean | -action\_result\.data\.\*\.circles\.\*\.subscription\_model | string | -action\_result\.data\.\*\.circles\.\*\.use\_chat | boolean | -action\_result\.data\.\*\.circles\.\*\.validate\_subscriptions | boolean | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_by | string | `email` -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.data\.\*\.import\_session\_id | numeric | -action\_result\.data\.\*\.import\_source | string | -action\_result\.data\.\*\.ip | string | `ip` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_category | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_email | boolean | -action\_result\.data\.\*\.is\_mitre | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_system | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.objective | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.original\_source | string | -action\_result\.data\.\*\.original\_source\_id | string | -action\_result\.data\.\*\.owner\_org\.id | string | -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.owner\_org\_id | numeric | -action\_result\.data\.\*\.owner\_org\_name | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.owner\_user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.owner\_user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.owner\_user\.email | string | -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.is\_active | boolean | -action\_result\.data\.\*\.owner\_user\.is\_readonly | boolean | -action\_result\.data\.\*\.owner\_user\.must\_change\_password | boolean | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.nickname | string | -action\_result\.data\.\*\.owner\_user\.organization\.id | string | -action\_result\.data\.\*\.owner\_user\.organization\.name | string | -action\_result\.data\.\*\.owner\_user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.owner\_user\_name | string | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.s\_type | string | -action\_result\.data\.\*\.sort | string | -action\_result\.data\.\*\.source | string | `email` -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.status\.display\_name | string | -action\_result\.data\.\*\.status\.id | numeric | -action\_result\.data\.\*\.status\.resource\_uri | string | -action\_result\.data\.\*\.subtype | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_actor | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.ttp | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | `email` `ip` `sha256` -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary\.associations\_returned | numeric | -action\_result\.summary\.threat\_bulletin\_observables\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.associated_entity_type | string | | vulnerability +action_result.parameter.entity_id | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 1000000001 +action_result.parameter.entity_type | string | | tipreport +action_result.parameter.limit | numeric | | 2 +action_result.data.\*.all_circles_visible | boolean | | True False +action_result.data.\*.asn | string | | +action_result.data.\*.assignee_org | string | | +action_result.data.\*.assignee_org_id | string | | +action_result.data.\*.assignee_org_name | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.assignee_user.avatar_s3_url | string | | +action_result.data.\*.assignee_user.can_share_intelligence | boolean | | True False +action_result.data.\*.assignee_user.email | string | | gita@verizon2.com +action_result.data.\*.assignee_user.id | string | | 12 +action_result.data.\*.assignee_user.is_active | boolean | | True False +action_result.data.\*.assignee_user.is_readonly | boolean | | True False +action_result.data.\*.assignee_user.must_change_password | boolean | | True False +action_result.data.\*.assignee_user.name | string | | +action_result.data.\*.assignee_user.nickname | string | | +action_result.data.\*.assignee_user.organization.id | string | | 6 +action_result.data.\*.assignee_user.organization.name | string | | Verizon2 +action_result.data.\*.assignee_user.organization.resource_uri | string | | /api/v1/userorganization/6/ +action_result.data.\*.assignee_user.resource_uri | string | | /api/v1/user/12/ +action_result.data.\*.assignee_user_id | string | | +action_result.data.\*.assignee_user_name | string | | +action_result.data.\*.association_info.\*.comment | string | | +action_result.data.\*.association_info.\*.created | string | | 2021-04-09T07:44:13.750043 +action_result.data.\*.association_info.\*.from_id | string | | 10940 +action_result.data.\*.association_info.\*.remote_api | boolean | | True False +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.campaign | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.anonymous_sharing | boolean | | True False +action_result.data.\*.circles.\*.can_edit | boolean | | True False +action_result.data.\*.circles.\*.can_invite | boolean | | True False +action_result.data.\*.circles.\*.can_override_confidence | boolean | | True False +action_result.data.\*.circles.\*.description | string | | For testing... +action_result.data.\*.circles.\*.disable_vendor_emails | string | | +action_result.data.\*.circles.\*.id | string | | 10019 +action_result.data.\*.circles.\*.is_freemium | boolean | | True False +action_result.data.\*.circles.\*.mattermost_team_id | string | | +action_result.data.\*.circles.\*.member | boolean | | True False +action_result.data.\*.circles.\*.name | string | | test circle local +action_result.data.\*.circles.\*.num_administrators | numeric | | 1 +action_result.data.\*.circles.\*.num_members | numeric | | 1 +action_result.data.\*.circles.\*.openinvite | boolean | | True False +action_result.data.\*.circles.\*.pending | boolean | | True False +action_result.data.\*.circles.\*.public | boolean | | True False +action_result.data.\*.circles.\*.remote_api | boolean | | True False +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/trustedcircle/10019/?remote_api=true +action_result.data.\*.circles.\*.restricted_publishing | boolean | | True False +action_result.data.\*.circles.\*.subscription_model | string | | +action_result.data.\*.circles.\*.use_chat | boolean | | True False +action_result.data.\*.circles.\*.validate_subscriptions | boolean | | True False +action_result.data.\*.confidence | numeric | | 70 +action_result.data.\*.country | string | | +action_result.data.\*.created_by | string | `email` | test@testuser.com +action_result.data.\*.created_ts | string | | 2021-04-09T06:45:23.627 2021-04-13T06:44:32.259632 +action_result.data.\*.description | string | | +action_result.data.\*.end_date | string | | +action_result.data.\*.expiration_ts | string | | 2021-06-21T14:30:03.799 +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 27933 +action_result.data.\*.import_session_id | numeric | | 1000000024 +action_result.data.\*.import_source | string | | +action_result.data.\*.ip | string | `ip` | +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_category | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_email | boolean | | True False +action_result.data.\*.is_mitre | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_system | boolean | | True False +action_result.data.\*.itype | string | | mal_email +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail2 | string | | imported by user 136 +action_result.data.\*.meta.severity | string | | low +action_result.data.\*.modified_ts | string | | 2021-04-09T06:45:37.010 +action_result.data.\*.name | string | | xyztest7 +action_result.data.\*.objective | string | | +action_result.data.\*.org | string | | +action_result.data.\*.organization_id | numeric | | 67 +action_result.data.\*.original_source | string | | +action_result.data.\*.original_source_id | string | | +action_result.data.\*.owner_org.id | string | | 67 +action_result.data.\*.owner_org.name | string | | test.qa.com +action_result.data.\*.owner_org.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_org_id | numeric | | 67 +action_result.data.\*.owner_org_name | string | | qa.test.com +action_result.data.\*.owner_organization_id | numeric | | 67 +action_result.data.\*.owner_user.avatar_s3_url | string | | +action_result.data.\*.owner_user.can_share_intelligence | boolean | | True False +action_result.data.\*.owner_user.email | string | | testuser2@qa.user.com +action_result.data.\*.owner_user.id | string | | 136 +action_result.data.\*.owner_user.is_active | boolean | | True False +action_result.data.\*.owner_user.is_readonly | boolean | | True False +action_result.data.\*.owner_user.must_change_password | boolean | | True False +action_result.data.\*.owner_user.name | string | | testuser2 +action_result.data.\*.owner_user.nickname | string | | +action_result.data.\*.owner_user.organization.id | string | | 67 +action_result.data.\*.owner_user.organization.name | string | | qa.user.com +action_result.data.\*.owner_user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.owner_user_id | numeric | | 136 +action_result.data.\*.owner_user_name | string | | testuser2 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | review_requested +action_result.data.\*.published_ts | string | | +action_result.data.\*.rdns | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/vulnerability/27933/?remote_api=true +action_result.data.\*.retina_confidence | numeric | | -1 +action_result.data.\*.s_type | string | | Suricata +action_result.data.\*.sort | string | | 232202446 +action_result.data.\*.source | string | `email` | test@testuser.com +action_result.data.\*.source_created | string | | 2019-04-10T10:10:55 +action_result.data.\*.source_modified | string | | +action_result.data.\*.source_reported_confidence | numeric | | -1 +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.start_date | string | | +action_result.data.\*.status | string | | active +action_result.data.\*.status.display_name | string | | New +action_result.data.\*.status.id | numeric | | 1 +action_result.data.\*.status.resource_uri | string | | /api/v1/incidentstatustype/1/ +action_result.data.\*.subtype | string | | +action_result.data.\*.tags | string | | testing +action_result.data.\*.tags.\*.id | string | | vjw +action_result.data.\*.tags.\*.name | string | | test name +action_result.data.\*.tags.\*.org_id | numeric | | 67 +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.source_user_id | string | | 1234 +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.tags_v2.\*.id | string | | 6pd +action_result.data.\*.tags_v2.\*.name | string | | test +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.remote_api | boolean | | True False +action_result.data.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.threat_actor | string | | +action_result.data.\*.threat_type | string | | malware +action_result.data.\*.threatscore | numeric | | 14 +action_result.data.\*.tlp | string | | white +action_result.data.\*.trusted_circle_ids | string | | +action_result.data.\*.ttp | string | | +action_result.data.\*.type | string | | email +action_result.data.\*.update_id | string | | 335089 +action_result.data.\*.uuid | string | | fb24da3a-429a-49f9-a409-95dcf8752447 +action_result.data.\*.value | string | `email` `ip` `sha256` | mailabc@xyz.com +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary.associations_returned | numeric | | 2 +action_result.summary.threat_bulletin_observables_returned | numeric | | 4 +action_result.message | string | | Associations returned: 4 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create rule' Creates a new rule in Threatstream @@ -3382,92 +3572,92 @@ Creates a new rule in Threatstream Type: **generic** Read only: **False** -
  • In the field param, tags, actors, malware, campaigns, incidents, signature, tips, ttps, vulnerabilities accepts list of IDs as an example\: \{“incidents”\: \[1000000001\], “actors”\: \[1000000001\], “vulnerabilities”\: \[1000000001, 1000000002\], “campaigns”\: \[1000000001\], “signatures”\: \[1000000001\], “tags”\: \[\{“name”\:“test\_tag”,“tlp”\:“white”\}\], “match\_impacts”\: \[ “actor\_ip”, “actor\_ipv6” \]\}
  • In field param, at least one Match Within parameter \(match\_observables, match\_reportedfiles, match\_signatures, match\_tips, or match\_vulnerabilities\) should be true\. Otherwise, the action will pass and a rule will be created but it will throw an error while updating it from the UI\.
  • Do not specify values for both match\_impacts and exclude\_impacts in the same request\. Indicator types specified in match\_impacts are filtered out if also specified in exclude\_impacts\.
  • +
  • In the field param, tags, actors, malware, campaigns, incidents, signature, tips, ttps, vulnerabilities accepts list of IDs as an example: {“incidents”: [1000000001], “actors”: [1000000001], “vulnerabilities”: [1000000001, 1000000002], “campaigns”: [1000000001], “signatures”: [1000000001], “tags”: [{“name”:“test_tag”,“tlp”:“white”}], “match_impacts”: [ “actor_ip”, “actor_ipv6” ]}
  • In field param, at least one Match Within parameter (match_observables, match_reportedfiles, match_signatures, match_tips, or match_vulnerabilities) should be true. Otherwise, the action will pass and a rule will be created but it will throw an error while updating it from the UI.
  • Do not specify values for both match_impacts and exclude_impacts in the same request. Indicator types specified in match_impacts are filtered out if also specified in exclude_impacts.
  • #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **name** | required | Name of the rule | string | -**keywords** | required | List of keywords for which you want the rule to match\. i\.e \["keyword1", "keyword2"\] | string | +**keywords** | required | List of keywords for which you want the rule to match. i.e ["keyword1", "keyword2"] | string | **fields** | optional | JSON formatted string of fields to include with the rule | string | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.keywords | string | -action\_result\.parameter\.name | string | -action\_result\.data\.\*\.actors\.\*\.id | string | `threatstream actor id` -action\_result\.data\.\*\.actors\.\*\.name | string | -action\_result\.data\.\*\.actors\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.actors\.\*\.resource\_uri | string | -action\_result\.data\.\*\.campaigns\.\*\.id | string | `threatstream campaign id` -action\_result\.data\.\*\.campaigns\.\*\.name | string | -action\_result\.data\.\*\.campaigns\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.campaigns\.\*\.resource\_uri | string | -action\_result\.data\.\*\.create\_investigation | boolean | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.exclude\_notify\_org\_whitelisted | boolean | -action\_result\.data\.\*\.exclude\_notify\_owner\_org | boolean | -action\_result\.data\.\*\.id | numeric | `threatstream rule id` -action\_result\.data\.\*\.investigation | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_enabled | boolean | -action\_result\.data\.\*\.keyword | string | -action\_result\.data\.\*\.keywords | string | -action\_result\.data\.\*\.match\_actors | boolean | -action\_result\.data\.\*\.match\_campaigns | boolean | -action\_result\.data\.\*\.match\_impact | string | -action\_result\.data\.\*\.match\_incidents | boolean | -action\_result\.data\.\*\.match\_malware | boolean | -action\_result\.data\.\*\.match\_observables | boolean | -action\_result\.data\.\*\.match\_reportedfiles | boolean | -action\_result\.data\.\*\.match\_signatures | boolean | -action\_result\.data\.\*\.match\_tips | boolean | -action\_result\.data\.\*\.match\_ttps | boolean | -action\_result\.data\.\*\.match\_vulnerabilities | boolean | -action\_result\.data\.\*\.matches | numeric | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.notify\_me | boolean | -action\_result\.data\.\*\.org\_id | numeric | -action\_result\.data\.\*\.org\_shared | boolean | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.user\.email | string | `email` -action\_result\.data\.\*\.user\.id | string | -action\_result\.data\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.user\.name | string | -action\_result\.data\.\*\.user\.nickname | string | -action\_result\.data\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.user\_id | numeric | -action\_result\.data\.\*\.vulnerabilities\.\*\.id | string | `threatstream vulnerability id` -action\_result\.data\.\*\.vulnerabilities\.\*\.name | string | -action\_result\.data\.\*\.vulnerabilities\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.vulnerabilities\.\*\.resource\_uri | string | -action\_result\.summary\.id | numeric | -action\_result\.summary\.message | string | -action\_result\.message | string | -summary\.message | numeric | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.create_on_cloud | boolean | | False True +action_result.parameter.fields | string | | { "actors": [ 1000000001 ], "vulnerabilities": [ 1000000001 ], "campaigns": [ 1000000001 ], "tags": [ "test", "tag1" ], "match_impacts": [ "actor_ip", "actor_ipv6" ] } +action_result.parameter.keywords | string | | key1, testing +action_result.parameter.name | string | | test name +action_result.data.\*.actors.\*.id | string | `threatstream actor id` | 1000000001 +action_result.data.\*.actors.\*.name | string | | local actor01 +action_result.data.\*.actors.\*.remote_api | boolean | | True False +action_result.data.\*.actors.\*.resource_uri | string | | /api/v1/actor/1000000001/ +action_result.data.\*.campaigns.\*.id | string | `threatstream campaign id` | 1000000001 +action_result.data.\*.campaigns.\*.name | string | | testing for common action create campaign on prem +action_result.data.\*.campaigns.\*.remote_api | boolean | | True False +action_result.data.\*.campaigns.\*.resource_uri | string | | /api/v1/campaign/1000000001/ +action_result.data.\*.create_investigation | boolean | | False True +action_result.data.\*.created_ts | string | | 2021-04-01T12:06:14.296703 +action_result.data.\*.exclude_notify_org_whitelisted | boolean | | True False +action_result.data.\*.exclude_notify_owner_org | boolean | | True False +action_result.data.\*.id | numeric | `threatstream rule id` | 1000000026 +action_result.data.\*.investigation | string | | +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_enabled | boolean | | True False +action_result.data.\*.keyword | string | | key1, testing +action_result.data.\*.keywords | string | | testing +action_result.data.\*.match_actors | boolean | | True False +action_result.data.\*.match_campaigns | boolean | | True False +action_result.data.\*.match_impact | string | | actor_ipv6 +action_result.data.\*.match_incidents | boolean | | True False +action_result.data.\*.match_malware | boolean | | True False +action_result.data.\*.match_observables | boolean | | True False +action_result.data.\*.match_reportedfiles | boolean | | True False +action_result.data.\*.match_signatures | boolean | | True False +action_result.data.\*.match_tips | boolean | | True False +action_result.data.\*.match_ttps | boolean | | True False +action_result.data.\*.match_vulnerabilities | boolean | | True False +action_result.data.\*.matches | numeric | | 0 +action_result.data.\*.modified_ts | string | | 2021-04-01T12:06:14.296721 +action_result.data.\*.name | string | | test0 +action_result.data.\*.notify_me | boolean | | True False +action_result.data.\*.org_id | numeric | | 67 +action_result.data.\*.org_shared | boolean | | False True +action_result.data.\*.organization.id | string | | 67 +action_result.data.\*.organization.name | string | | test.org.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/rule/1000000026/ +action_result.data.\*.tags | string | | tag1 +action_result.data.\*.tags.\*.name | string | | test +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | white +action_result.data.\*.user.avatar_s3_url | string | | +action_result.data.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.user.email | string | `email` | test@testuser.com +action_result.data.\*.user.id | string | | 136 +action_result.data.\*.user.is_active | boolean | | True False +action_result.data.\*.user.is_readonly | boolean | | True False +action_result.data.\*.user.must_change_password | boolean | | False True +action_result.data.\*.user.name | string | | testuser2 +action_result.data.\*.user.nickname | string | | +action_result.data.\*.user.organization.id | string | | 67 +action_result.data.\*.user.organization.name | string | | test.org.com +action_result.data.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.user_id | numeric | | 136 +action_result.data.\*.vulnerabilities.\*.id | string | `threatstream vulnerability id` | 1000000001 +action_result.data.\*.vulnerabilities.\*.name | string | | test_vulnerability +action_result.data.\*.vulnerabilities.\*.remote_api | boolean | | True False +action_result.data.\*.vulnerabilities.\*.resource_uri | string | | /api/v1/vulnerability/1000000001/ +action_result.summary.id | numeric | | 1000000026 +action_result.summary.message | string | | Rule is created successfully +action_result.message | string | | Rule is created successfully +summary.message | numeric | | 1 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update rule' Update a rule in ThreatStream by ID number @@ -3479,94 +3669,94 @@ Read only: **False** PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **fields** | required | JSON formatted string of fields to update on the incident | string | -**rule\_id** | required | ID number of rule to update | string | `threatstream rule id` +**rule_id** | required | ID number of rule to update | string | `threatstream rule id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.rule\_id | string | `threatstream rule id` -action\_result\.data\.\*\.actors\.\*\.id | string | `threatstream actor id` -action\_result\.data\.\*\.actors\.\*\.name | string | -action\_result\.data\.\*\.actors\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.actors\.\*\.resource\_uri | string | -action\_result\.data\.\*\.campaigns\.\*\.id | string | `threatstream campaign id` -action\_result\.data\.\*\.campaigns\.\*\.name | string | -action\_result\.data\.\*\.campaigns\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.campaigns\.\*\.resource\_uri | string | -action\_result\.data\.\*\.create\_investigation | boolean | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.exclude\_notify\_org\_whitelisted | boolean | -action\_result\.data\.\*\.exclude\_notify\_owner\_org | boolean | -action\_result\.data\.\*\.id | numeric | `threatstream rule id` -action\_result\.data\.\*\.incidents\.\*\.id | string | `threatstream incident id` -action\_result\.data\.\*\.incidents\.\*\.name | string | -action\_result\.data\.\*\.incidents\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.incidents\.\*\.resource\_uri | string | -action\_result\.data\.\*\.investigation | string | -action\_result\.data\.\*\.investigation\.id | string | -action\_result\.data\.\*\.investigation\.name | string | -action\_result\.data\.\*\.investigation\.resource\_uri | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_enabled | boolean | -action\_result\.data\.\*\.keyword | string | -action\_result\.data\.\*\.keywords | string | -action\_result\.data\.\*\.match\_actors | boolean | -action\_result\.data\.\*\.match\_campaigns | boolean | -action\_result\.data\.\*\.match\_impact | string | -action\_result\.data\.\*\.match\_impacts | string | -action\_result\.data\.\*\.match\_incidents | boolean | -action\_result\.data\.\*\.match\_malware | boolean | -action\_result\.data\.\*\.match\_observables | boolean | -action\_result\.data\.\*\.match\_reportedfiles | boolean | -action\_result\.data\.\*\.match\_signatures | boolean | -action\_result\.data\.\*\.match\_tips | boolean | -action\_result\.data\.\*\.match\_ttps | boolean | -action\_result\.data\.\*\.match\_vulnerabilities | boolean | -action\_result\.data\.\*\.matches | numeric | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.notify\_me | boolean | -action\_result\.data\.\*\.org\_id | numeric | -action\_result\.data\.\*\.org\_shared | boolean | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.ttps\.\*\.id | string | `threatstream ttp id` -action\_result\.data\.\*\.ttps\.\*\.name | string | -action\_result\.data\.\*\.ttps\.\*\.resource\_uri | string | -action\_result\.data\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.user\.email | string | `email` -action\_result\.data\.\*\.user\.id | string | -action\_result\.data\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.user\.name | string | -action\_result\.data\.\*\.user\.nickname | string | -action\_result\.data\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.user\_id | numeric | -action\_result\.data\.\*\.vulnerabilities\.\*\.id | string | `threatstream vulnerability id` -action\_result\.data\.\*\.vulnerabilities\.\*\.name | string | -action\_result\.data\.\*\.vulnerabilities\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.vulnerabilities\.\*\.resource\_uri | string | -action\_result\.summary | string | -action\_result\.summary\.id | numeric | -action\_result\.summary\.message | string | -action\_result\.message | string | -summary\.message | numeric | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.fields | string | | { "actors": [ ], "vulnerabilities": [ ], "match_observables": True, "match_reportedfiles": False, "match_signatures": True, "match_tips": True, "match_vulnerabilities": True, "tags": [ "test", "tag1" ], "create_investigation": True, "match_impacts": [ "actor_ip", "actor_ipv6" ], "exclude_notify_org_whitelisted": True, "exclude_notify_owner_org": True , "incidents": [1000000184], "ttps": [119]} +action_result.parameter.rule_id | string | `threatstream rule id` | 1000000030 +action_result.data.\*.actors.\*.id | string | `threatstream actor id` | 1000000001 +action_result.data.\*.actors.\*.name | string | | local actor01 +action_result.data.\*.actors.\*.remote_api | boolean | | True +action_result.data.\*.actors.\*.resource_uri | string | | /api/v1/actor/1000000001/ +action_result.data.\*.campaigns.\*.id | string | `threatstream campaign id` | 1000000001 +action_result.data.\*.campaigns.\*.name | string | | testing for common action create campaign on prem +action_result.data.\*.campaigns.\*.remote_api | boolean | | True +action_result.data.\*.campaigns.\*.resource_uri | string | | /api/v1/campaign/1000000001/ +action_result.data.\*.create_investigation | boolean | | True False +action_result.data.\*.created_ts | string | | 2021-04-01T12:24:18.067618 +action_result.data.\*.exclude_notify_org_whitelisted | boolean | | True False +action_result.data.\*.exclude_notify_owner_org | boolean | | True False +action_result.data.\*.id | numeric | `threatstream rule id` | 1000000030 +action_result.data.\*.incidents.\*.id | string | `threatstream incident id` | 1000000184 +action_result.data.\*.incidents.\*.name | string | | Test incident name +action_result.data.\*.incidents.\*.remote_api | boolean | | True +action_result.data.\*.incidents.\*.resource_uri | string | | /api/v1/incident/1000000184/ +action_result.data.\*.investigation | string | | +action_result.data.\*.investigation.id | string | | 1000000005 +action_result.data.\*.investigation.name | string | | Matched Rule [key, key1] by test.org.com +action_result.data.\*.investigation.resource_uri | string | | /api/v1/investigation/1000000005/ +action_result.data.\*.is_editable | boolean | | True +action_result.data.\*.is_enabled | boolean | | True +action_result.data.\*.keyword | string | | key1, testing +action_result.data.\*.keywords | string | | testing +action_result.data.\*.match_actors | boolean | | True False +action_result.data.\*.match_campaigns | boolean | | True False +action_result.data.\*.match_impact | string | | actor_ip +action_result.data.\*.match_impacts | string | | actor_ipv6 +action_result.data.\*.match_incidents | boolean | | True False +action_result.data.\*.match_malware | boolean | | False +action_result.data.\*.match_observables | boolean | | True False +action_result.data.\*.match_reportedfiles | boolean | | False True +action_result.data.\*.match_signatures | boolean | | True False +action_result.data.\*.match_tips | boolean | | True False +action_result.data.\*.match_ttps | boolean | | True False +action_result.data.\*.match_vulnerabilities | boolean | | True False +action_result.data.\*.matches | numeric | | 0 +action_result.data.\*.modified_ts | string | | 2021-04-05T08:16:23.916064 +action_result.data.\*.name | string | | test4 +action_result.data.\*.notify_me | boolean | | True +action_result.data.\*.org_id | numeric | | 67 +action_result.data.\*.org_shared | boolean | | False True +action_result.data.\*.organization.id | string | | 67 +action_result.data.\*.organization.name | string | | test.org.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.remote_api | boolean | | True +action_result.data.\*.resource_uri | string | | /api/v1/rule/1000000030/ +action_result.data.\*.tags | string | | tag1 +action_result.data.\*.tags.\*.name | string | | test +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | white +action_result.data.\*.ttps.\*.id | string | `threatstream ttp id` | 119 +action_result.data.\*.ttps.\*.name | string | | Deplete Resources [CAPEC 119] +action_result.data.\*.ttps.\*.resource_uri | string | | /api/v1/ttp/119/ +action_result.data.\*.user.avatar_s3_url | string | | +action_result.data.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.user.email | string | `email` | test@testuser.com +action_result.data.\*.user.id | string | | 136 +action_result.data.\*.user.is_active | boolean | | True False +action_result.data.\*.user.is_readonly | boolean | | False True +action_result.data.\*.user.must_change_password | boolean | | False True +action_result.data.\*.user.name | string | | testuser2 +action_result.data.\*.user.nickname | string | | +action_result.data.\*.user.organization.id | string | | 67 +action_result.data.\*.user.organization.name | string | | test.org.com +action_result.data.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.user_id | numeric | | 136 +action_result.data.\*.vulnerabilities.\*.id | string | `threatstream vulnerability id` | 1000000001 +action_result.data.\*.vulnerabilities.\*.name | string | | test_vulnerability +action_result.data.\*.vulnerabilities.\*.remote_api | boolean | | True +action_result.data.\*.vulnerabilities.\*.resource_uri | string | | /api/v1/vulnerability/1000000001/ +action_result.summary | string | | +action_result.summary.id | numeric | | 1000000033 +action_result.summary.message | string | | Successfully updated rule +action_result.message | string | | Successfully updated rule +summary.message | numeric | | 1 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list rules' List rules present in ThreatStream @@ -3574,7 +3764,7 @@ List rules present in ThreatStream Type: **investigate** Read only: **True** -
    • The rules will be listed in the latest first order on the basis of created\_ts\.
    • If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
    +
    • The rules will be listed in the latest first order on the basis of created_ts.
    • If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
    #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -3582,67 +3772,67 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **limit** | optional | Total number of rules to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.create\_investigation | boolean | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.exclude\_notify\_org\_whitelisted | boolean | -action\_result\.data\.\*\.exclude\_notify\_owner\_org | boolean | -action\_result\.data\.\*\.has\_associations | boolean | -action\_result\.data\.\*\.id | numeric | `threatstream rule id` -action\_result\.data\.\*\.investigation | string | -action\_result\.data\.\*\.investigation\.id | string | -action\_result\.data\.\*\.investigation\.name | string | -action\_result\.data\.\*\.investigation\.resource\_uri | string | -action\_result\.data\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.is\_enabled | boolean | -action\_result\.data\.\*\.keyword | string | -action\_result\.data\.\*\.keywords | string | -action\_result\.data\.\*\.match\_actors | boolean | -action\_result\.data\.\*\.match\_campaigns | boolean | -action\_result\.data\.\*\.match\_incidents | boolean | -action\_result\.data\.\*\.match\_malware | boolean | -action\_result\.data\.\*\.match\_observables | boolean | -action\_result\.data\.\*\.match\_reportedfiles | boolean | -action\_result\.data\.\*\.match\_signatures | boolean | -action\_result\.data\.\*\.match\_tips | boolean | -action\_result\.data\.\*\.match\_ttps | boolean | -action\_result\.data\.\*\.match\_vulnerabilities | boolean | -action\_result\.data\.\*\.matches | numeric | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.notify\_me | boolean | -action\_result\.data\.\*\.org\_id | numeric | -action\_result\.data\.\*\.org\_shared | boolean | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.user\.email | string | `email` -action\_result\.data\.\*\.user\.id | string | -action\_result\.data\.\*\.user\.is\_active | boolean | -action\_result\.data\.\*\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.user\.name | string | -action\_result\.data\.\*\.user\.nickname | string | -action\_result\.data\.\*\.user\.organization\.id | string | -action\_result\.data\.\*\.user\.organization\.name | string | -action\_result\.data\.\*\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.user\.resource\_uri | string | -action\_result\.data\.\*\.user\_id | numeric | -action\_result\.summary\.rules\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 10 1000 +action_result.data.\*.create_investigation | boolean | | False True +action_result.data.\*.created_ts | string | | 2021-04-09T08:27:04.162790 +action_result.data.\*.exclude_notify_org_whitelisted | boolean | | False True +action_result.data.\*.exclude_notify_owner_org | boolean | | False True +action_result.data.\*.has_associations | boolean | | True False +action_result.data.\*.id | numeric | `threatstream rule id` | 1000000036 +action_result.data.\*.investigation | string | | +action_result.data.\*.investigation.id | string | | 1000000005 +action_result.data.\*.investigation.name | string | | Matched Rule [key, key1] by test.org.com +action_result.data.\*.investigation.resource_uri | string | | /api/v1/investigation/1000000005/ +action_result.data.\*.is_editable | boolean | | True False +action_result.data.\*.is_enabled | boolean | | True False +action_result.data.\*.keyword | string | | key5,key6 +action_result.data.\*.keywords | string | | testRule +action_result.data.\*.match_actors | boolean | | True False +action_result.data.\*.match_campaigns | boolean | | True False +action_result.data.\*.match_incidents | boolean | | True False +action_result.data.\*.match_malware | boolean | | False True +action_result.data.\*.match_observables | boolean | | True False +action_result.data.\*.match_reportedfiles | boolean | | False True +action_result.data.\*.match_signatures | boolean | | False True +action_result.data.\*.match_tips | boolean | | False True +action_result.data.\*.match_ttps | boolean | | True False +action_result.data.\*.match_vulnerabilities | boolean | | False True +action_result.data.\*.matches | numeric | | 0 +action_result.data.\*.modified_ts | string | | 2021-04-09T11:19:56.898430 +action_result.data.\*.name | string | | tetsting1 +action_result.data.\*.notify_me | boolean | | True False +action_result.data.\*.org_id | numeric | | 67 +action_result.data.\*.org_shared | boolean | | False True +action_result.data.\*.organization.id | string | | 67 +action_result.data.\*.organization.name | string | | test.org.com +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/rule/1000000036/ +action_result.data.\*.tags | string | | tag1 +action_result.data.\*.tags.\*.name | string | | test +action_result.data.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.tags.\*.tlp | string | | white +action_result.data.\*.user.avatar_s3_url | string | | +action_result.data.\*.user.can_share_intelligence | boolean | | True False +action_result.data.\*.user.email | string | `email` | test@testuser.com +action_result.data.\*.user.id | string | | 136 +action_result.data.\*.user.is_active | boolean | | True False +action_result.data.\*.user.is_readonly | boolean | | False True +action_result.data.\*.user.must_change_password | boolean | | False True +action_result.data.\*.user.name | string | | testuser2 +action_result.data.\*.user.nickname | string | | +action_result.data.\*.user.organization.id | string | | 67 +action_result.data.\*.user.organization.name | string | | test.org.com +action_result.data.\*.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.user_id | numeric | | 136 +action_result.summary.rules_returned | numeric | | 22 +action_result.message | string | | Rules returned: 22 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete rule' Delete rule in ThreatStream by ID number @@ -3653,18 +3843,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**rule\_id** | required | ID number of rule to delete | string | `threatstream rule id` +**rule_id** | required | ID number of rule to delete | string | `threatstream rule id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.rule\_id | string | `threatstream rule id` -action\_result\.data | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.rule_id | string | `threatstream rule id` | 15518 1000000030 +action_result.data | string | | +action_result.summary | string | | +action_result.message | string | | Successfully deleted rule +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'add association' Create associations between threat model entities on the ThreatStream platform @@ -3675,26 +3865,26 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**entity\_type** | required | The type of the threat model entity on which want to add the association | string | -**entity\_id** | required | The ID of the threat model entity on which want to add the association | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -**associated\_entity\_type** | required | The type of threat model entity which will associate the initial entity | string | -**local\_ids** | optional | Comma\-separated list of local entity IDs to associate with the entity \(this will appends on the existing\) | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` -**remote\_ids** | optional | Comma\-separated list of remote enitity IDs to associate with the entity \(this will appends on the existing\) | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` +**entity_type** | required | The type of the threat model entity on which want to add the association | string | +**entity_id** | required | The ID of the threat model entity on which want to add the association | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` +**associated_entity_type** | required | The type of threat model entity which will associate the initial entity | string | +**local_ids** | optional | Comma-separated list of local entity IDs to associate with the entity (this will appends on the existing) | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` +**remote_ids** | optional | Comma-separated list of remote enitity IDs to associate with the entity (this will appends on the existing) | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.associated\_entity\_type | string | -action\_result\.parameter\.entity\_id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.parameter\.entity\_type | string | -action\_result\.parameter\.local\_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` -action\_result\.parameter\.remote\_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` -action\_result\.data\.\* | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.associated_entity_type | string | | actor +action_result.parameter.entity_id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 10911 +action_result.parameter.entity_type | string | | tipreport +action_result.parameter.local_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` | 1000000006 +action_result.parameter.remote_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` | 11783 +action_result.data.\* | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 11783 +action_result.summary | string | | +action_result.message | string | | Successfully updated associations. Modified entities : 10909. Please check for the non-modified ids as they would be already associated or invalid +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'remove association' Remove associations between threat model entities on the ThreatStream platform @@ -3705,26 +3895,26 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**entity\_type** | required | Type of threat model entity from which you are removing the association | string | -**entity\_id** | required | ID of the threat model entity from which you are removing the association | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -**associated\_entity\_type** | required | Type of threat model entity with which you are associating the initial entity | string | -**local\_ids** | optional | Comma\-separated list of local enitity IDs to associate with the entity \- Note that this appends | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` -**remote\_ids** | optional | Comma\-separated list of remote enitity IDs to associate with the entity \- Note that this appends | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` +**entity_type** | required | Type of threat model entity from which you are removing the association | string | +**entity_id** | required | ID of the threat model entity from which you are removing the association | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` +**associated_entity_type** | required | Type of threat model entity with which you are associating the initial entity | string | +**local_ids** | optional | Comma-separated list of local enitity IDs to associate with the entity - Note that this appends | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` +**remote_ids** | optional | Comma-separated list of remote enitity IDs to associate with the entity - Note that this appends | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.associated\_entity\_type | string | -action\_result\.parameter\.entity\_id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.parameter\.entity\_type | string | -action\_result\.parameter\.local\_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` -action\_result\.parameter\.remote\_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` -action\_result\.data\.\* | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.associated_entity_type | string | | actor +action_result.parameter.entity_id | numeric | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 10911 +action_result.parameter.entity_type | string | | tipreport +action_result.parameter.local_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` | 1000000006 +action_result.parameter.remote_ids | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` `threatstream intelligence id` | 11783 +action_result.data.\* | string | `threatstream actor id` `threatstream campaign id` `threatstream incident id` `threatstream vulnerability id` `threatstream ttp id` `threatstream threatbulletin id` `threatstream signature id` | 11783 +action_result.summary | string | | +action_result.message | string | | Successfully updated associations. Modified entities : 10909. Please check for the non-modified ids as they would be already associated or invalid +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list actors' List actors present in ThreatStream @@ -3732,7 +3922,7 @@ List actors present in ThreatStream Type: **investigate** Read only: **True** -
    • The actors will be listed in the latest first order on the basis of created\_ts\.
    • If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
    +
    • The actors will be listed in the latest first order on the basis of created_ts.
    • If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
    #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS @@ -3740,60 +3930,60 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **limit** | optional | Total number of actors to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.aliases\.\*\.name | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | numeric | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.end\_date | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream actor id` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_email | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_team | boolean | -action\_result\.data\.\*\.model\_type | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | numeric | -action\_result\.data\.\*\.organization\.title | string | -action\_result\.data\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | numeric | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.primary\_motivation | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.resource\_level | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.sort | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.summary\.actors\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 1000 1 +action_result.data.\*.aliases.\*.name | string | | testin +action_result.data.\*.assignee_user | string | | +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | numeric | | 10022 +action_result.data.\*.circles.\*.name | string | | test circle 4 +action_result.data.\*.created_ts | string | | 2021-04-08T13:04:00.932459 2021-04-20T08:39:20.368888+00:00 +action_result.data.\*.end_date | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream actor id` | 11795 11930 +action_result.data.\*.is_anonymous | boolean | | False True +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_email | string | | +action_result.data.\*.is_public | boolean | | False True +action_result.data.\*.is_team | boolean | | False True +action_result.data.\*.model_type | string | | actor +action_result.data.\*.modified_ts | string | | 2021-04-23T08:42:51.176628+00:00 +action_result.data.\*.name | string | | actor_test_2 +action_result.data.\*.organization.id | numeric | | 70 +action_result.data.\*.organization.title | string | | test title +action_result.data.\*.organization_id | numeric | | 70 +action_result.data.\*.owner_user.email | string | `email` | useremail@test.com +action_result.data.\*.owner_user.id | numeric | | 142 +action_result.data.\*.owner_user.name | string | | matt +action_result.data.\*.owner_user_id | numeric | | 142 +action_result.data.\*.primary_motivation | string | | +action_result.data.\*.publication_status | string | | new reviewed +action_result.data.\*.published_ts | string | | +action_result.data.\*.resource_level | string | | +action_result.data.\*.resource_uri | string | | /api/v1/actor/11930/ +action_result.data.\*.sort | string | | actor-11930 +action_result.data.\*.source_created | string | | 2019-04-10T10:10:00+00:00 +action_result.data.\*.source_modified | string | | 2019-05-19T10:15:00+00:00 +action_result.data.\*.start_date | string | | 2019-06-05T04:15:00+00:00 +action_result.data.\*.status | string | | +action_result.data.\*.tags | string | | aliases:TA505 (BAE Systems) +action_result.data.\*.tags.\*.id | string | | bwf +action_result.data.\*.tags.\*.name | string | | testing +action_result.data.\*.tags.\*.org_id | numeric | | 70 +action_result.data.\*.tags.\*.tlp | string | | white +action_result.data.\*.tags_v2.\*.id | string | | afk +action_result.data.\*.tags_v2.\*.name | string | | Remote Origin +action_result.data.\*.tags_v2.\*.org_id | numeric | | 70 +action_result.data.\*.tags_v2.\*.tlp | string | | red +action_result.data.\*.tlp | string | | amber +action_result.data.\*.type | string | | competitor +action_result.data.\*.uuid | string | | 4681da86-ac0a-4d21-bd3f-156904886f66 b58939d4-21b0-427b-bb62-6dc42391bef0 +action_result.summary.actors_returned | numeric | | 13 1 +action_result.message | string | | Actors returned: 13 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list imports' List imports present in ThreatStream @@ -3801,55 +3991,55 @@ List imports present in ThreatStream Type: **investigate** Read only: **True** -
    • The imports will be listed in the latest first order on the basis of created\_ts\.
    • If the limit parameter is not provided, then the default value \(1000\) will be considered as the value of the limit parameter\.
    +
    • The imports will be listed in the latest first order on the basis of created_ts.
    • If the limit parameter is not provided, then the default value (1000) will be considered as the value of the limit parameter.
    #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **limit** | optional | Total number of imports to return | numeric | **status** | optional | Status of imports | string | -**list\_from\_remote** | optional | List from remote? \(applicable only for hybrid on\-prem instances\) | boolean | +**list_from_remote** | optional | List from remote? (applicable only for hybrid on-prem instances) | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.parameter\.list\_from\_remote | boolean | -action\_result\.parameter\.status | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.data | string | -action\_result\.data\.\*\.date | string | -action\_result\.data\.\*\.date\_modified | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.fileName | string | `sha1` `url` -action\_result\.data\.\*\.fileType | string | -action\_result\.data\.\*\.file\_name\_label | string | -action\_result\.data\.\*\.id | numeric | `threatstream import session id` -action\_result\.data\.\*\.intelligence\_source | string | `sha1` `url` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.jobID | string | -action\_result\.data\.\*\.messages | string | -action\_result\.data\.\*\.notes | string | -action\_result\.data\.\*\.numIndicators | numeric | -action\_result\.data\.\*\.numRejected | numeric | -action\_result\.data\.\*\.num\_private | numeric | -action\_result\.data\.\*\.num\_public | numeric | -action\_result\.data\.\*\.orginal\_intelligence | string | -action\_result\.data\.\*\.processed\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.source\_confidence\_weight | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.visibleForReview | boolean | -action\_result\.summary\.import\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 100 +action_result.parameter.list_from_remote | boolean | | True False +action_result.parameter.status | string | | +action_result.data.\*.confidence | numeric | | 100 +action_result.data.\*.data | string | | {u'remote_malware': [], u'signatures': [], u'remote_tipreports': [], u'intrusionsets': [], u'classification': u'public', u'comment_ip_addr': u'52.52.79.127', u'infrastructure': [], u'url_mapping': None, u'identities': [], u'datatext': u'4.63.2.45', u'remote_vulnerabilities': [], u'md5_mapping': None, u'malware': [], u'benign_is_public': False, u'tools': [], u'email_mapping': None, u'source': u'Analyst', u'remote_intrusionsets': [], u'actors': [], u'remote_infrastructure': [], u'remote_attackpatterns': [], u'tipreports': [], u'domain_mapping': None, u'circles': [], u'ipv6_mapping': None, u'attackpatterns': [], u'courseofaction': [], u'confidence': u'100', u'ip_mapping': u'mal_ip', u'campaigns': [], u'remote_ttps': [], u'customtms': [], u'reject_benign': True, u'remote_identities': [], u'remote_campaigns': [], u'remote_tools': [], u'ttps': [], u'remote_courseofaction': [], u'incidents': [], u'vulnerabilities': [], u'remote_customtms': [], u'remote_incidents': [], u'remote_signatures': [], u'remote_actors': []} +action_result.data.\*.date | string | | 2021-04-08T10:48:12.610620 +action_result.data.\*.date_modified | string | | 2021-04-08T10:48:12.793995 +action_result.data.\*.expiration_ts | string | | 2021-07-07T10:48:12.609350 +action_result.data.\*.fileName | string | `sha1` `url` | +action_result.data.\*.fileType | string | | analyst +action_result.data.\*.file_name_label | string | | +action_result.data.\*.id | numeric | `threatstream import session id` | 1161 +action_result.data.\*.intelligence_source | string | `sha1` `url` | +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.jobID | string | | +action_result.data.\*.messages | string | | +action_result.data.\*.notes | string | | +action_result.data.\*.numIndicators | numeric | | 1 +action_result.data.\*.numRejected | numeric | | 0 +action_result.data.\*.num_private | numeric | | 0 +action_result.data.\*.num_public | numeric | | 0 +action_result.data.\*.orginal_intelligence | string | | +action_result.data.\*.processed_ts | string | | 2021-04-08T10:48:12.796620 +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/import/1161/?remote_api=true +action_result.data.\*.source_confidence_weight | numeric | | 0 +action_result.data.\*.status | string | | done +action_result.data.\*.tags | string | | +action_result.data.\*.threat_type | string | | +action_result.data.\*.tlp | string | | +action_result.data.\*.visibleForReview | boolean | | True False +action_result.summary.import_returned | numeric | | 100 +action_result.message | string | | Import returned: 100 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create vulnerability' Create a vulnerability in ThreatStream @@ -3857,124 +4047,124 @@ Create a vulnerability in ThreatStream Type: **generic** Read only: **False** -
    • The "is\_public" parameter can not be set as "true" if the "create\_on\_cloud" parameter is "false" for hybride on\-prem instances\.
    +
    • The "is_public" parameter can not be set as "true" if the "create_on_cloud" parameter is "false" for hybride on-prem instances.
    #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **name** | required | Name to give the vulnerability | string | **fields** | optional | JSON formatted string of fields to include with the vulnerability | string | -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with the vulnerability \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with the vulnerability \- Note that this appends | string | `threatstream intelligence id` -**comment** | optional | Comment to give the vulnerability \(JSON format containing body, title, etc\.\) | string | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with the vulnerability - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with the vulnerability - Note that this appends | string | `threatstream intelligence id` +**comment** | optional | Comment to give the vulnerability (JSON format containing body, title, etc.) | string | **attachment** | optional | Vault id of an attachment to add on the vulnerability | string | `vault id` `sha1` -**is\_public** | optional | Classification designation | boolean | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | +**is_public** | optional | Classification designation | boolean | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.attachment | string | `vault id` `sha1` -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.comment | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.is\_public | boolean | -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.name | string | -action\_result\.data\.\*\.aliases | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.attachment | string | -action\_result\.data\.\*\.attachments\.filename | string | -action\_result\.data\.\*\.attachments\.id | numeric | -action\_result\.data\.\*\.attachments\.r\_type | string | -action\_result\.data\.\*\.attachments\.remote\_api | boolean | -action\_result\.data\.\*\.attachments\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.s3\_url | string | -action\_result\.data\.\*\.attachments\.title | string | -action\_result\.data\.\*\.attachments\.url | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaigns\.\*\.id | numeric | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.comment\.\!\@\#$%^ | string | -action\_result\.data\.\*\.comment\.body | string | -action\_result\.data\.\*\.comment\.created\_ts | string | -action\_result\.data\.\*\.comment\.id | numeric | -action\_result\.data\.\*\.comment\.invalid | string | -action\_result\.data\.\*\.comment\.modified\_ts | string | -action\_result\.data\.\*\.comment\.remote\_api | boolean | -action\_result\.data\.\*\.comment\.resource\_uri | string | -action\_result\.data\.\*\.comment\.title | string | -action\_result\.data\.\*\.comment\.tlp | string | -action\_result\.data\.\*\.comment\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comment\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comment\.user\.email | string | `email` -action\_result\.data\.\*\.comment\.user\.id | string | -action\_result\.data\.\*\.comment\.user\.is\_active | boolean | -action\_result\.data\.\*\.comment\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comment\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comment\.user\.name | string | -action\_result\.data\.\*\.comment\.user\.nickname | string | -action\_result\.data\.\*\.comment\.user\.organization\.id | string | -action\_result\.data\.\*\.comment\.user\.organization\.name | string | -action\_result\.data\.\*\.comment\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comment\.user\.resource\_uri | string | -action\_result\.data\.\*\.comments | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.cvss2\_score | string | -action\_result\.data\.\*\.cvss3\_score | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | -action\_result\.data\.\*\.incidents\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_system | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.mitre\_cve\_url | string | `url` -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.signatures\.\*\.id | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttps\.\*\.id | numeric | -action\_result\.data\.\*\.update\_id | string | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.vulnerability\.\*\.id | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.attachment | string | `vault id` `sha1` | b10e56af7aed0446e7c87d495700118787212378 +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | 232202446 +action_result.parameter.comment | string | | {"title": "comment title", "body": "This is a comment."} +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.fields | string | | {'circles': [10025, 10022], 'campaigns': [218680], 'incidents': [171066], 'vulnerability': [29891], 'signatures': [632], 'ttps': [1573], 'description': 'for analysis','comments': ['this', 'is comment'],'is_system': True, 'publication_status': 'reviewed', 'source': 'from action','source_created': '2019-04-10T10:10:55','source_modified': '2019-05-19T10:15:23','tags': ['testing', 'vulnerability'],'tlp': 'amber'} +action_result.parameter.is_public | boolean | | True False +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | +action_result.parameter.name | string | | abc_test_111 +action_result.data.\*.aliases | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.attachment | string | | url +action_result.data.\*.attachments.filename | string | | PDF_All%20valid_invalid.pdf +action_result.data.\*.attachments.id | numeric | | 26649 +action_result.data.\*.attachments.r_type | string | | A +action_result.data.\*.attachments.remote_api | boolean | | True False +action_result.data.\*.attachments.resource_uri | string | | /api/v1/vulnerabilityexternalreference/26649/?remote_api=true +action_result.data.\*.attachments.s3_url | string | | https://test-optic.s3.user.com/userUploads/2021-05-27/20210527_133407_userId-136_69e3a3d6-b499-4ba1-b918-769a4b74463a_PDF_All20valid_invalid.pdf?Signature=uk%2FY5YOrBVwpxv0xs6sKvyXULrg%3D&Expires=1622126047&AWSAccessKeyId=AKIAQYUTUNAKSCAMMFFH +action_result.data.\*.attachments.title | string | | PDF_All%20valid_invalid.pdf +action_result.data.\*.attachments.url | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.campaigns.\*.id | numeric | | 218680 +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | string | | 10022 +action_result.data.\*.circles.\*.name | string | | test circle 4 +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/trustedcircle/10022/ +action_result.data.\*.comment.!@#$%^ | string | | This is a comment. +action_result.data.\*.comment.body | string | | This is a comment. +action_result.data.\*.comment.created_ts | string | | 2021-04-20T09:02:34.945588 +action_result.data.\*.comment.id | numeric | | 18 +action_result.data.\*.comment.invalid | string | | comment title +action_result.data.\*.comment.modified_ts | string | | 2021-04-20T09:02:34.945603 +action_result.data.\*.comment.remote_api | boolean | | True False +action_result.data.\*.comment.resource_uri | string | | /api/v1/vulnerability/30274/comment/18/ +action_result.data.\*.comment.title | string | | comment title +action_result.data.\*.comment.tlp | string | | +action_result.data.\*.comment.user.avatar_s3_url | string | | +action_result.data.\*.comment.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comment.user.email | string | `email` | test@test.com +action_result.data.\*.comment.user.id | string | | 142 +action_result.data.\*.comment.user.is_active | boolean | | True False +action_result.data.\*.comment.user.is_readonly | boolean | | True False +action_result.data.\*.comment.user.must_change_password | boolean | | True False +action_result.data.\*.comment.user.name | string | | test +action_result.data.\*.comment.user.nickname | string | | testnickname +action_result.data.\*.comment.user.organization.id | string | | 70 +action_result.data.\*.comment.user.organization.name | string | | test +action_result.data.\*.comment.user.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.comment.user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.comments | string | | is comment +action_result.data.\*.created_ts | string | | 2021-04-20T09:02:33.703401 +action_result.data.\*.cvss2_score | string | | +action_result.data.\*.cvss3_score | string | | +action_result.data.\*.description | string | | for analysis +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | | 30274 +action_result.data.\*.incidents.\*.id | numeric | | 171066 +action_result.data.\*.intelligence.\*.id | numeric | | 232202446 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_system | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.mitre_cve_url | string | `url` | +action_result.data.\*.modified_ts | string | | 2021-04-20T09:02:33.704376 +action_result.data.\*.name | string | | abc_test_111 +action_result.data.\*.organization.id | string | | 70 +action_result.data.\*.organization.name | string | | test +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.organization_id | numeric | | 70 +action_result.data.\*.owner_user.email | string | `email` | test@test.com +action_result.data.\*.owner_user.id | string | | 142 +action_result.data.\*.owner_user.name | string | | test +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.owner_user_id | numeric | | 142 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | reviewed +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/vulnerability/30274/ +action_result.data.\*.signatures.\*.id | numeric | | 632 +action_result.data.\*.source | string | | from action +action_result.data.\*.source_created | string | | 2019-04-10T10:10:55 +action_result.data.\*.source_modified | string | | 2019-05-19T10:15:23 +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.tlp | string | | amber +action_result.data.\*.ttps.\*.id | numeric | | 1573 +action_result.data.\*.update_id | string | | +action_result.data.\*.uuid | string | | fe06d084-a63b-4536-a748-3232ce650e85 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.vulnerability.\*.id | numeric | | 29891 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Vulnerability created successfully. Associated intelligence : 232202446 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update vulnerability' Update the vulnerability in ThreatStream @@ -3987,163 +4177,163 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **id** | required | ID of the vulnerability | string | `threatstream vulnerability id` **fields** | optional | JSON formatted string of fields to include with the vulnerability | string | -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with the vulnerability \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with the vulnerability \- Note that this appends | string | `threatstream intelligence id` -**comment** | optional | Comment to give the vulnerability \(JSON format containing body, title, etc\.\) | string | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with the vulnerability - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with the vulnerability - Note that this appends | string | `threatstream intelligence id` +**comment** | optional | Comment to give the vulnerability (JSON format containing body, title, etc.) | string | **attachment** | optional | Vault id of an attachment to add on the vulnerability | string | `vault id` `sha1` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.attachment | string | `vault id` `sha1` -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.comment | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.id | string | `threatstream vulnerability id` -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.data\.\*\.aliases | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.attachment | string | -action\_result\.data\.\*\.attachments\.filename | string | -action\_result\.data\.\*\.attachments\.id | numeric | -action\_result\.data\.\*\.attachments\.r\_type | string | -action\_result\.data\.\*\.attachments\.remote\_api | boolean | -action\_result\.data\.\*\.attachments\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.s3\_url | string | -action\_result\.data\.\*\.attachments\.title | string | -action\_result\.data\.\*\.attachments\.url | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaigns\.\*\.id | numeric | -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.comment\.body | string | -action\_result\.data\.\*\.comment\.created\_ts | string | -action\_result\.data\.\*\.comment\.id | numeric | -action\_result\.data\.\*\.comment\.modified\_ts | string | -action\_result\.data\.\*\.comment\.resource\_uri | string | -action\_result\.data\.\*\.comment\.title | string | -action\_result\.data\.\*\.comment\.tlp | string | -action\_result\.data\.\*\.comment\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comment\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comment\.user\.email | string | `email` -action\_result\.data\.\*\.comment\.user\.id | string | -action\_result\.data\.\*\.comment\.user\.is\_active | boolean | -action\_result\.data\.\*\.comment\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comment\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comment\.user\.name | string | -action\_result\.data\.\*\.comment\.user\.nickname | string | -action\_result\.data\.\*\.comment\.user\.organization\.id | string | -action\_result\.data\.\*\.comment\.user\.organization\.name | string | -action\_result\.data\.\*\.comment\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comment\.user\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.cvss2\_score | string | -action\_result\.data\.\*\.cvss3\_score | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.external\_references\.\*\.filename | string | -action\_result\.data\.\*\.external\_references\.\*\.id | numeric | -action\_result\.data\.\*\.external\_references\.\*\.r\_type | string | -action\_result\.data\.\*\.external\_references\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.external\_references\.\*\.resource\_uri | string | -action\_result\.data\.\*\.external\_references\.\*\.s3\_url | string | `url` -action\_result\.data\.\*\.external\_references\.\*\.title | string | -action\_result\.data\.\*\.external\_references\.\*\.url | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | -action\_result\.data\.\*\.incidents\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.asn | string | -action\_result\.data\.\*\.intelligence\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.intelligence\.\*\.confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.country | string | -action\_result\.data\.\*\.intelligence\.\*\.created\_by | string | -action\_result\.data\.\*\.intelligence\.\*\.created\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.description | string | -action\_result\.data\.\*\.intelligence\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.import\_source | string | -action\_result\.data\.\*\.intelligence\.\*\.ip | string | -action\_result\.data\.\*\.intelligence\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.intelligence\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.intelligence\.\*\.is\_public | boolean | -action\_result\.data\.\*\.intelligence\.\*\.itype | string | -action\_result\.data\.\*\.intelligence\.\*\.latitude | string | -action\_result\.data\.\*\.intelligence\.\*\.longitude | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.severity | string | -action\_result\.data\.\*\.intelligence\.\*\.modified\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.org | string | -action\_result\.data\.\*\.intelligence\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.rdns | string | -action\_result\.data\.\*\.intelligence\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.resource\_uri | string | -action\_result\.data\.\*\.intelligence\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.source | string | -action\_result\.data\.\*\.intelligence\.\*\.source\_created | string | -action\_result\.data\.\*\.intelligence\.\*\.source\_modified | string | -action\_result\.data\.\*\.intelligence\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.status | string | -action\_result\.data\.\*\.intelligence\.\*\.subtype | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.intelligence\.\*\.threat\_type | string | -action\_result\.data\.\*\.intelligence\.\*\.threatscore | numeric | -action\_result\.data\.\*\.intelligence\.\*\.tlp | string | -action\_result\.data\.\*\.intelligence\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.intelligence\.\*\.type | string | -action\_result\.data\.\*\.intelligence\.\*\.update\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.uuid | string | -action\_result\.data\.\*\.intelligence\.\*\.value | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_system | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.mitre\_cve\_url | string | `url` -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.signatures\.\*\.id | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttps\.\*\.id | numeric | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.vulnerability\.\*\.id | numeric | -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.attachment | string | `vault id` `sha1` | b10e56af7aed0446e7c87d495700118787212378 +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | +action_result.parameter.comment | string | | {"title": "comment title", "body": "This is a comment."} +action_result.parameter.fields | string | | {'name': 'updated_test_111', 'circles': [10022], 'campaigns': [218680], 'incidents': [171066], 'vulnerability': [29891], 'signatures': [632], 'ttps': [1573], 'description': 'for analysis','is_system': True, 'publication_status': 'reviewed', 'source': 'from action','source_created': '2019-04-10T10:10:55','source_modified': '2019-05-19T10:15:23','tags': ['testing', 'vulnerability'],'tlp': 'red'} +action_result.parameter.id | string | `threatstream vulnerability id` | 30274 +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | +action_result.data.\*.aliases | string | | +action_result.data.\*.assignee_user | string | | +action_result.data.\*.attachment | string | | url +action_result.data.\*.attachments.filename | string | | HTML%20-%20All%20valid_invalid.html +action_result.data.\*.attachments.id | numeric | | 26653 +action_result.data.\*.attachments.r_type | string | | A +action_result.data.\*.attachments.remote_api | boolean | | True False +action_result.data.\*.attachments.resource_uri | string | | /api/v1/vulnerabilityexternalreference/26653/?remote_api=true +action_result.data.\*.attachments.s3_url | string | | https://test-optic.s3.user.com/userUploads/2021-05-27/20210527_133417_userId-136_2b5d20a5-4d12-4ff8-961c-847b5766440c_HTML20-20All20valid_invalid.html?Signature=Ymp0ntZu5HNAuoK9%2FCVPE6x3Dqw%3D&Expires=1622126057&AWSAccessKeyId=AKIAQYUTUNAKSCAMMFFH +action_result.data.\*.attachments.title | string | | HTML%20-%20All%20valid_invalid.html +action_result.data.\*.attachments.url | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.campaigns.\*.id | numeric | | 218680 +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | string | | 10022 +action_result.data.\*.circles.\*.name | string | | test circle 4 +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/trustedcircle/10022/ +action_result.data.\*.comment.body | string | | This is a comment. +action_result.data.\*.comment.created_ts | string | | 2021-04-20T09:04:26.124839 +action_result.data.\*.comment.id | numeric | | 19 +action_result.data.\*.comment.modified_ts | string | | 2021-04-20T09:04:26.124854 +action_result.data.\*.comment.resource_uri | string | | /api/v1/vulnerability/30274/comment/19/ +action_result.data.\*.comment.title | string | | comment title +action_result.data.\*.comment.tlp | string | | +action_result.data.\*.comment.user.avatar_s3_url | string | | +action_result.data.\*.comment.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comment.user.email | string | `email` | test@test.com +action_result.data.\*.comment.user.id | string | | 142 +action_result.data.\*.comment.user.is_active | boolean | | True False +action_result.data.\*.comment.user.is_readonly | boolean | | True False +action_result.data.\*.comment.user.must_change_password | boolean | | True False +action_result.data.\*.comment.user.name | string | | test +action_result.data.\*.comment.user.nickname | string | | testnickname +action_result.data.\*.comment.user.organization.id | string | | 70 +action_result.data.\*.comment.user.organization.name | string | | test +action_result.data.\*.comment.user.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.comment.user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.created_ts | string | | 2021-04-20T09:02:33.703401 +action_result.data.\*.cvss2_score | string | | +action_result.data.\*.cvss3_score | string | | +action_result.data.\*.description | string | | for analysis +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.external_references.\*.filename | string | | Bien sûr.rtf +action_result.data.\*.external_references.\*.id | numeric | | 16545 +action_result.data.\*.external_references.\*.r_type | string | | A +action_result.data.\*.external_references.\*.remote_api | boolean | | True False +action_result.data.\*.external_references.\*.resource_uri | string | | /api/v1/vulnerabilityexternalreference/16545/ +action_result.data.\*.external_references.\*.s3_url | string | `url` | +action_result.data.\*.external_references.\*.title | string | | Bien sûr.rtf +action_result.data.\*.external_references.\*.url | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | | 30274 +action_result.data.\*.incidents.\*.id | numeric | | 171066 +action_result.data.\*.intelligence.\*.asn | string | | +action_result.data.\*.intelligence.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.intelligence.\*.confidence | numeric | | -1 +action_result.data.\*.intelligence.\*.country | string | | +action_result.data.\*.intelligence.\*.created_by | string | | +action_result.data.\*.intelligence.\*.created_ts | string | | 2021-05-27T12:23:59.162Z +action_result.data.\*.intelligence.\*.description | string | | +action_result.data.\*.intelligence.\*.expiration_ts | string | | 2021-08-25T12:23:59.083Z +action_result.data.\*.intelligence.\*.feed_id | numeric | | 0 +action_result.data.\*.intelligence.\*.id | numeric | | 240070494 +action_result.data.\*.intelligence.\*.import_session_id | string | | +action_result.data.\*.intelligence.\*.import_source | string | | +action_result.data.\*.intelligence.\*.ip | string | | +action_result.data.\*.intelligence.\*.is_anonymous | boolean | | True False +action_result.data.\*.intelligence.\*.is_editable | boolean | | True False +action_result.data.\*.intelligence.\*.is_public | boolean | | True False +action_result.data.\*.intelligence.\*.itype | string | | mal_domain +action_result.data.\*.intelligence.\*.latitude | string | | +action_result.data.\*.intelligence.\*.longitude | string | | +action_result.data.\*.intelligence.\*.meta.detail2 | string | | imported by user 136 +action_result.data.\*.intelligence.\*.meta.severity | string | | very-high +action_result.data.\*.intelligence.\*.modified_ts | string | | 2021-05-27T12:24:57.292Z +action_result.data.\*.intelligence.\*.org | string | | +action_result.data.\*.intelligence.\*.owner_organization_id | numeric | | 67 +action_result.data.\*.intelligence.\*.rdns | string | | +action_result.data.\*.intelligence.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.resource_uri | string | | /api/v2/intelligence/240070494/?remote_api=true +action_result.data.\*.intelligence.\*.retina_confidence | numeric | | -1 +action_result.data.\*.intelligence.\*.source | string | | qa.test.com +action_result.data.\*.intelligence.\*.source_created | string | | +action_result.data.\*.intelligence.\*.source_modified | string | | +action_result.data.\*.intelligence.\*.source_reported_confidence | numeric | | -1 +action_result.data.\*.intelligence.\*.status | string | | active +action_result.data.\*.intelligence.\*.subtype | string | | +action_result.data.\*.intelligence.\*.tags.\*.id | string | | pe3 +action_result.data.\*.intelligence.\*.tags.\*.name | string | | test_playbook +action_result.data.\*.intelligence.\*.tags.\*.org_id | string | | 67 +action_result.data.\*.intelligence.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.tags.\*.tlp | string | | red +action_result.data.\*.intelligence.\*.threat_type | string | | malware +action_result.data.\*.intelligence.\*.threatscore | numeric | | 0 +action_result.data.\*.intelligence.\*.tlp | string | | +action_result.data.\*.intelligence.\*.trusted_circle_ids | string | | +action_result.data.\*.intelligence.\*.type | string | | domain +action_result.data.\*.intelligence.\*.update_id | numeric | | 482449579 +action_result.data.\*.intelligence.\*.uuid | string | | 04179036-e714-4525-9ce2-b2b0d234073c +action_result.data.\*.intelligence.\*.value | string | | www.testingtest8093.com +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_system | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.mitre_cve_url | string | `url` | +action_result.data.\*.modified_ts | string | | 2021-04-20T09:04:24.429285 +action_result.data.\*.name | string | | updated_test_111 +action_result.data.\*.organization.id | string | | 70 +action_result.data.\*.organization.name | string | | test +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.organization_id | numeric | | 70 +action_result.data.\*.owner_user.email | string | `email` | test@test.com +action_result.data.\*.owner_user.id | string | | 142 +action_result.data.\*.owner_user.name | string | | test +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.owner_user_id | numeric | | 142 +action_result.data.\*.parent | string | | +action_result.data.\*.publication_status | string | | reviewed +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_uri | string | | /api/v1/vulnerability/30274/ +action_result.data.\*.signatures.\*.id | numeric | | 632 +action_result.data.\*.source | string | | from action +action_result.data.\*.source_created | string | | 2019-04-10T10:10:55 +action_result.data.\*.source_modified | string | | 2019-05-19T10:15:23 +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.tlp | string | | red +action_result.data.\*.ttps.\*.id | numeric | | 1573 +action_result.data.\*.update_id | numeric | | 416539 +action_result.data.\*.uuid | string | | fe06d084-a63b-4536-a748-3232ce650e85 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.vulnerability.\*.id | numeric | | 29891 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.message | string | | Successfully updated vulnerability +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create actor' Create an actor in ThreatStream @@ -4156,137 +4346,137 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **name** | required | Name to give an actor | string | **fields** | optional | JSON formatted string of fields to include with an actor | string | -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with an actor \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with an actor \- Note that this appends | string | `threatstream intelligence id` -**comment** | optional | Comment to give an actor \(JSON format containing body, title, etc\.\) | string | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with an actor - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with an actor - Note that this appends | string | `threatstream intelligence id` +**comment** | optional | Comment to give an actor (JSON format containing body, title, etc.) | string | **attachment** | optional | Vault id of an attachment to add on the actor | string | `vault id` `sha1` -**is\_public** | optional | Classification designation | boolean | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | +**is_public** | optional | Classification designation | boolean | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.attachment | string | `vault id` `sha1` -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.comment | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.is\_public | boolean | -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.name | string | -action\_result\.data\.\*\.aliases\.\*\.id | numeric | -action\_result\.data\.\*\.aliases\.\*\.name | string | -action\_result\.data\.\*\.aliases\.\*\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.attachment | string | -action\_result\.data\.\*\.attachments\.filename | string | -action\_result\.data\.\*\.attachments\.id | numeric | -action\_result\.data\.\*\.attachments\.r\_type | string | -action\_result\.data\.\*\.attachments\.remote\_api | boolean | -action\_result\.data\.\*\.attachments\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.s3\_url | string | -action\_result\.data\.\*\.attachments\.title | string | -action\_result\.data\.\*\.attachments\.url | string | -action\_result\.data\.\*\.avatar\_s3\_url | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaigns\.\*\.id | numeric | `threatstream campaign id` -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.comment\.\!\@\#$%^ | string | -action\_result\.data\.\*\.comment\.body | string | -action\_result\.data\.\*\.comment\.created\_ts | string | -action\_result\.data\.\*\.comment\.id | numeric | -action\_result\.data\.\*\.comment\.invalid | string | -action\_result\.data\.\*\.comment\.modified\_ts | string | -action\_result\.data\.\*\.comment\.remote\_api | boolean | -action\_result\.data\.\*\.comment\.resource\_uri | string | -action\_result\.data\.\*\.comment\.title | string | -action\_result\.data\.\*\.comment\.tlp | string | -action\_result\.data\.\*\.comment\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comment\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comment\.user\.email | string | `email` -action\_result\.data\.\*\.comment\.user\.id | string | -action\_result\.data\.\*\.comment\.user\.is\_active | boolean | -action\_result\.data\.\*\.comment\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comment\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comment\.user\.name | string | -action\_result\.data\.\*\.comment\.user\.nickname | string | -action\_result\.data\.\*\.comment\.user\.organization\.id | string | -action\_result\.data\.\*\.comment\.user\.organization\.name | string | -action\_result\.data\.\*\.comment\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comment\.user\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.goals | string | -action\_result\.data\.\*\.id | numeric | `threatstream actor id` -action\_result\.data\.\*\.incidents\.\*\.id | numeric | `threatstream incident id` -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_team | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.personal\_motivations | string | -action\_result\.data\.\*\.primary\_motivation | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_level | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.roles | string | -action\_result\.data\.\*\.secondary\_motivations | string | -action\_result\.data\.\*\.signatures\.\*\.id | numeric | `threatstream signature id` -action\_result\.data\.\*\.soph\_desc | string | -action\_result\.data\.\*\.soph\_type | string | -action\_result\.data\.\*\.soph\_type | string | -action\_result\.data\.\*\.soph\_type\.display\_name | string | -action\_result\.data\.\*\.soph\_type\.id | numeric | -action\_result\.data\.\*\.soph\_type\.resource\_uri | string | -action\_result\.data\.\*\.soph\_type\.value | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_actor\_types | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttps\.\*\.id | numeric | `threatstream ttp id` -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.victims\.\*\.id | numeric | -action\_result\.data\.\*\.victims\.\*\.name | string | -action\_result\.data\.\*\.victims\.\*\.resource\_uri | string | -action\_result\.data\.\*\.victims\.\*\.value | numeric | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.vulnerability\.\*\.id | numeric | `threatstream vulnerability id` -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary\.created\_on\_cloud | boolean | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.attachment | string | `vault id` `sha1` | b10e56af7aed0446e7c87d495700118787212378 +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | 232202446 +action_result.parameter.comment | string | | {"title": "comment title", "body": "This is a comment."} +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.fields | string | | {"description": "this is for test analysis", "is_team": True, "publication_status": "reviewed", "tags": ["testing", "actor"], "soph_type": 1, "soph_desc": "Testing actor soph desc", "source_created": "2019-04-10T10:10:55"} +action_result.parameter.is_public | boolean | | True False +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | +action_result.parameter.name | string | | actor_test_1 +action_result.data.\*.aliases.\*.id | numeric | | 902 +action_result.data.\*.aliases.\*.name | string | | testing +action_result.data.\*.aliases.\*.resource_uri | string | | /api/v1/actoralias/902/ +action_result.data.\*.assignee_user | string | | +action_result.data.\*.attachment | string | | url +action_result.data.\*.attachments.filename | string | | HTML%20-%20All%20valid_invalid.html +action_result.data.\*.attachments.id | numeric | | 26632 +action_result.data.\*.attachments.r_type | string | | A +action_result.data.\*.attachments.remote_api | boolean | | True False +action_result.data.\*.attachments.resource_uri | string | | /api/v1/actorexternalreference/26632/?remote_api=true +action_result.data.\*.attachments.s3_url | string | | https://test-optic.s3.user.com/userUploads/2021-05-27/20210527_131543_userId-136_c1946412-e29e-49fa-a0ed-3316c20d76af_HTML20-20All20valid_invalid.html?Signature=Q71zTevIhJsdGfPdhKZuHy4bu14%3D&Expires=1622124943&AWSAccessKeyId=AKIAQYUTUNAKSCAMMFFH +action_result.data.\*.attachments.title | string | | HTML%20-%20All%20valid_invalid.html +action_result.data.\*.attachments.url | string | | +action_result.data.\*.avatar_s3_url | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.campaigns.\*.id | numeric | `threatstream campaign id` | 218680 +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | string | | 10022 +action_result.data.\*.circles.\*.name | string | | test circle 4 +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/trustedcircle/10022/ +action_result.data.\*.comment.!@#$%^ | string | | This is a comment. +action_result.data.\*.comment.body | string | | This is a comment. +action_result.data.\*.comment.created_ts | string | | 2021-04-20T08:39:21.756188 +action_result.data.\*.comment.id | numeric | | 15 +action_result.data.\*.comment.invalid | string | | comment title +action_result.data.\*.comment.modified_ts | string | | 2021-04-20T08:39:21.756205 +action_result.data.\*.comment.remote_api | boolean | | True False +action_result.data.\*.comment.resource_uri | string | | /api/v1/actor/11930/comment/15/ +action_result.data.\*.comment.title | string | | comment title +action_result.data.\*.comment.tlp | string | | +action_result.data.\*.comment.user.avatar_s3_url | string | | +action_result.data.\*.comment.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comment.user.email | string | `email` | test@test.com +action_result.data.\*.comment.user.id | string | | 142 +action_result.data.\*.comment.user.is_active | boolean | | True False +action_result.data.\*.comment.user.is_readonly | boolean | | True False +action_result.data.\*.comment.user.must_change_password | boolean | | True False +action_result.data.\*.comment.user.name | string | | test +action_result.data.\*.comment.user.nickname | string | | testnickname +action_result.data.\*.comment.user.organization.id | string | | 70 +action_result.data.\*.comment.user.organization.name | string | | test +action_result.data.\*.comment.user.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.comment.user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.created_ts | string | | 2021-04-20T08:39:20.368888 +action_result.data.\*.description | string | | for analysis +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.goals | string | | +action_result.data.\*.id | numeric | `threatstream actor id` | 11930 +action_result.data.\*.incidents.\*.id | numeric | `threatstream incident id` | 171066 +action_result.data.\*.intelligence.\*.id | numeric | `threatstream intelligence id` | 232202446 +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_team | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2021-04-20T08:39:20.369940 +action_result.data.\*.name | string | | actor_test_1 +action_result.data.\*.organization.id | string | | 70 +action_result.data.\*.organization.name | string | | test +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.organization_id | numeric | | 70 +action_result.data.\*.owner_user.email | string | `email` | test@test.com +action_result.data.\*.owner_user.id | string | | 142 +action_result.data.\*.owner_user.name | string | | test +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.owner_user_id | numeric | | 142 +action_result.data.\*.parent | string | | +action_result.data.\*.personal_motivations | string | | +action_result.data.\*.primary_motivation | string | | +action_result.data.\*.publication_status | string | | reviewed +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_level | string | | +action_result.data.\*.resource_uri | string | | /api/v1/actor/11930/ +action_result.data.\*.roles | string | | +action_result.data.\*.secondary_motivations | string | | +action_result.data.\*.signatures.\*.id | numeric | `threatstream signature id` | 632 +action_result.data.\*.soph_desc | string | | Testing actor soph desc.. +action_result.data.\*.soph_type | string | | +action_result.data.\*.soph_type | string | | +action_result.data.\*.soph_type.display_name | string | | Innovator +action_result.data.\*.soph_type.id | numeric | | 1 +action_result.data.\*.soph_type.resource_uri | string | | /api/v1/actorsophisticationtype/1/ +action_result.data.\*.soph_type.value | string | | I +action_result.data.\*.source_created | string | | 2019-04-10T10:10:55 +action_result.data.\*.source_modified | string | | 2019-05-19T10:15:23 +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.start_date | string | | 2019-06-05T04:15:03 +action_result.data.\*.tags_v2.\*.id | string | | ywr +action_result.data.\*.tags_v2.\*.name | string | | testing +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.threat_actor_types | string | | +action_result.data.\*.tlp | string | | amber +action_result.data.\*.ttps.\*.id | numeric | `threatstream ttp id` | 1573 +action_result.data.\*.uuid | string | | b58939d4-21b0-427b-bb62-6dc42391bef0 +action_result.data.\*.victims.\*.id | numeric | | 13 +action_result.data.\*.victims.\*.name | string | | Health Care +action_result.data.\*.victims.\*.resource_uri | string | | /api/v1/victimtype/13/ +action_result.data.\*.victims.\*.value | numeric | | 12 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.vulnerability.\*.id | numeric | `threatstream vulnerability id` | 29891 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary.created_on_cloud | boolean | | True False +action_result.message | string | | Actor created successfully. Associated intelligence : 232202446 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update actor' Update an actor in ThreatStream @@ -4299,212 +4489,212 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **id** | required | ID of an actor | string | `threatstream actor id` **fields** | optional | JSON formatted string of fields to include with an actor | string | -**local\_intelligence** | optional | Comma\-separated list of local intelligence IDs to associate with an actor \- Note that this appends | string | `threatstream intelligence id` -**cloud\_intelligence** | optional | Comma\-separated list of remote intelligence IDs to associate with an actor \- Note that this appends | string | `threatstream intelligence id` -**comment** | optional | Comment to give an actor \(JSON format containing body, title, etc\.\) | string | +**local_intelligence** | optional | Comma-separated list of local intelligence IDs to associate with an actor - Note that this appends | string | `threatstream intelligence id` +**cloud_intelligence** | optional | Comma-separated list of remote intelligence IDs to associate with an actor - Note that this appends | string | `threatstream intelligence id` +**comment** | optional | Comment to give an actor (JSON format containing body, title, etc.) | string | **attachment** | optional | Vault id of an attachment to add on the actor | string | `vault id` `sha1` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.attachment | string | `vault id` `sha1` -action\_result\.parameter\.cloud\_intelligence | string | `threatstream intelligence id` -action\_result\.parameter\.comment | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.id | string | `threatstream actor id` -action\_result\.parameter\.local\_intelligence | string | `threatstream intelligence id` -action\_result\.data\.\*\.aliases\.\*\.id | numeric | -action\_result\.data\.\*\.aliases\.\*\.name | string | -action\_result\.data\.\*\.aliases\.\*\.resource\_uri | string | -action\_result\.data\.\*\.assignee\_user | string | -action\_result\.data\.\*\.attachment | string | -action\_result\.data\.\*\.attachments\.filename | string | -action\_result\.data\.\*\.attachments\.id | numeric | -action\_result\.data\.\*\.attachments\.r\_type | string | -action\_result\.data\.\*\.attachments\.remote\_api | boolean | -action\_result\.data\.\*\.attachments\.resource\_uri | string | -action\_result\.data\.\*\.attachments\.s3\_url | string | -action\_result\.data\.\*\.attachments\.title | string | -action\_result\.data\.\*\.attachments\.url | string | -action\_result\.data\.\*\.avatar\_s3\_url | string | -action\_result\.data\.\*\.body\_content\_type | string | -action\_result\.data\.\*\.campaigns\.\*\.id | numeric | `threatstream campaign id` -action\_result\.data\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.circles\.\*\.id | string | -action\_result\.data\.\*\.circles\.\*\.name | string | -action\_result\.data\.\*\.circles\.\*\.resource\_uri | string | -action\_result\.data\.\*\.comment\.body | string | -action\_result\.data\.\*\.comment\.created\_ts | string | -action\_result\.data\.\*\.comment\.id | numeric | -action\_result\.data\.\*\.comment\.modified\_ts | string | -action\_result\.data\.\*\.comment\.resource\_uri | string | -action\_result\.data\.\*\.comment\.title | string | -action\_result\.data\.\*\.comment\.tlp | string | -action\_result\.data\.\*\.comment\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comment\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comment\.user\.email | string | `email` -action\_result\.data\.\*\.comment\.user\.id | string | -action\_result\.data\.\*\.comment\.user\.is\_active | boolean | -action\_result\.data\.\*\.comment\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comment\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comment\.user\.name | string | -action\_result\.data\.\*\.comment\.user\.nickname | string | -action\_result\.data\.\*\.comment\.user\.organization\.id | string | -action\_result\.data\.\*\.comment\.user\.organization\.name | string | -action\_result\.data\.\*\.comment\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comment\.user\.resource\_uri | string | -action\_result\.data\.\*\.comments\.\!\@\#$%^&\* | string | -action\_result\.data\.\*\.comments\.body | string | -action\_result\.data\.\*\.comments\.created\_ts | string | -action\_result\.data\.\*\.comments\.id | numeric | -action\_result\.data\.\*\.comments\.incorrect value | string | -action\_result\.data\.\*\.comments\.modified\_ts | string | -action\_result\.data\.\*\.comments\.remote\_api | boolean | -action\_result\.data\.\*\.comments\.resource\_uri | string | -action\_result\.data\.\*\.comments\.title | string | -action\_result\.data\.\*\.comments\.tlp | string | -action\_result\.data\.\*\.comments\.user\.avatar\_s3\_url | string | -action\_result\.data\.\*\.comments\.user\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.comments\.user\.email | string | -action\_result\.data\.\*\.comments\.user\.id | string | -action\_result\.data\.\*\.comments\.user\.is\_active | boolean | -action\_result\.data\.\*\.comments\.user\.is\_readonly | boolean | -action\_result\.data\.\*\.comments\.user\.must\_change\_password | boolean | -action\_result\.data\.\*\.comments\.user\.name | string | -action\_result\.data\.\*\.comments\.user\.nickname | string | -action\_result\.data\.\*\.comments\.user\.organization\.id | string | -action\_result\.data\.\*\.comments\.user\.organization\.name | string | -action\_result\.data\.\*\.comments\.user\.organization\.resource\_uri | string | -action\_result\.data\.\*\.comments\.user\.resource\_uri | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.embedded\_content\_type | string | -action\_result\.data\.\*\.embedded\_content\_url | string | -action\_result\.data\.\*\.external\_references\.\*\.filename | string | -action\_result\.data\.\*\.external\_references\.\*\.id | numeric | -action\_result\.data\.\*\.external\_references\.\*\.r\_type | string | -action\_result\.data\.\*\.external\_references\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.external\_references\.\*\.resource\_uri | string | -action\_result\.data\.\*\.external\_references\.\*\.s3\_url | string | `url` -action\_result\.data\.\*\.external\_references\.\*\.title | string | -action\_result\.data\.\*\.external\_references\.\*\.url | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.goals | string | -action\_result\.data\.\*\.id | numeric | `threatstream actor id` -action\_result\.data\.\*\.incidents\.\*\.id | numeric | `threatstream incident id` -action\_result\.data\.\*\.intelligence\.\*\.asn | string | -action\_result\.data\.\*\.intelligence\.\*\.can\_add\_public\_tags | boolean | -action\_result\.data\.\*\.intelligence\.\*\.confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.country | string | -action\_result\.data\.\*\.intelligence\.\*\.created\_by | string | -action\_result\.data\.\*\.intelligence\.\*\.created\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.description | string | -action\_result\.data\.\*\.intelligence\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.import\_session\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.import\_source | string | -action\_result\.data\.\*\.intelligence\.\*\.ip | string | -action\_result\.data\.\*\.intelligence\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.intelligence\.\*\.is\_editable | boolean | -action\_result\.data\.\*\.intelligence\.\*\.is\_public | boolean | -action\_result\.data\.\*\.intelligence\.\*\.itype | string | -action\_result\.data\.\*\.intelligence\.\*\.latitude | string | -action\_result\.data\.\*\.intelligence\.\*\.longitude | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.intelligence\.\*\.meta\.severity | string | -action\_result\.data\.\*\.intelligence\.\*\.modified\_ts | string | -action\_result\.data\.\*\.intelligence\.\*\.org | string | -action\_result\.data\.\*\.intelligence\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.rdns | string | -action\_result\.data\.\*\.intelligence\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.resource\_uri | string | -action\_result\.data\.\*\.intelligence\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.source | string | -action\_result\.data\.\*\.intelligence\.\*\.source\_created | string | -action\_result\.data\.\*\.intelligence\.\*\.source\_modified | string | -action\_result\.data\.\*\.intelligence\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.intelligence\.\*\.status | string | -action\_result\.data\.\*\.intelligence\.\*\.subtype | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.category | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.org\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.tagger | string | -action\_result\.data\.\*\.intelligence\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.intelligence\.\*\.threat\_type | string | -action\_result\.data\.\*\.intelligence\.\*\.threatscore | numeric | -action\_result\.data\.\*\.intelligence\.\*\.tlp | string | -action\_result\.data\.\*\.intelligence\.\*\.trusted\_circle\_ids | string | -action\_result\.data\.\*\.intelligence\.\*\.type | string | -action\_result\.data\.\*\.intelligence\.\*\.update\_id | numeric | -action\_result\.data\.\*\.intelligence\.\*\.uuid | string | -action\_result\.data\.\*\.intelligence\.\*\.value | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_cloneable | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.is\_team | boolean | -action\_result\.data\.\*\.logo\_s3\_url | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.organization\.id | string | -action\_result\.data\.\*\.organization\.name | string | -action\_result\.data\.\*\.organization\.resource\_uri | string | -action\_result\.data\.\*\.organization\_id | numeric | -action\_result\.data\.\*\.owner\_user\.email | string | `email` -action\_result\.data\.\*\.owner\_user\.id | string | -action\_result\.data\.\*\.owner\_user\.name | string | -action\_result\.data\.\*\.owner\_user\.resource\_uri | string | -action\_result\.data\.\*\.owner\_user\_id | numeric | -action\_result\.data\.\*\.parent | string | -action\_result\.data\.\*\.personal\_motivations | string | -action\_result\.data\.\*\.primary\_motivation | string | -action\_result\.data\.\*\.publication\_status | string | -action\_result\.data\.\*\.published\_ts | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_level | string | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.roles | string | -action\_result\.data\.\*\.secondary\_motivations | string | -action\_result\.data\.\*\.signatures\.\*\.id | numeric | `threatstream signature id` -action\_result\.data\.\*\.soph\_desc | string | -action\_result\.data\.\*\.soph\_type | string | -action\_result\.data\.\*\.soph\_type | string | -action\_result\.data\.\*\.soph\_type\.display\_name | string | -action\_result\.data\.\*\.soph\_type\.id | numeric | -action\_result\.data\.\*\.soph\_type\.resource\_uri | string | -action\_result\.data\.\*\.soph\_type\.value | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.starred\_by\_me | boolean | -action\_result\.data\.\*\.starred\_total\_count | numeric | -action\_result\.data\.\*\.start\_date | string | -action\_result\.data\.\*\.tags\_v2\.\*\.id | string | -action\_result\.data\.\*\.tags\_v2\.\*\.name | string | -action\_result\.data\.\*\.tags\_v2\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\_v2\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_actor\_types | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.ttps\.\*\.id | numeric | `threatstream ttp id` -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.victims\.\*\.id | numeric | -action\_result\.data\.\*\.victims\.\*\.name | string | -action\_result\.data\.\*\.victims\.\*\.resource\_uri | string | -action\_result\.data\.\*\.victims\.\*\.value | numeric | -action\_result\.data\.\*\.votes\.me | string | -action\_result\.data\.\*\.votes\.total | numeric | -action\_result\.data\.\*\.vulnerability\.\*\.id | numeric | `threatstream vulnerability id` -action\_result\.data\.\*\.watched\_by\_me | boolean | -action\_result\.data\.\*\.watched\_total\_count | numeric | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.attachment | string | `vault id` `sha1` | b10e56af7aed0446e7c87d495700118787212378 +action_result.parameter.cloud_intelligence | string | `threatstream intelligence id` | +action_result.parameter.comment | string | | {"title": "comment title", "body": "This is a comment."} +action_result.parameter.fields | string | | {"description": "this is for test analysis", "is_team": True, "publication_status": "reviewed", "tags": ["testing", "actor"], "soph_type": 1, "soph_desc": "Testing actor soph desc", "source_created": "2019-04-10T10:10:55"} +action_result.parameter.id | string | `threatstream actor id` | 11930 +action_result.parameter.local_intelligence | string | `threatstream intelligence id` | +action_result.data.\*.aliases.\*.id | numeric | | 904 +action_result.data.\*.aliases.\*.name | string | | testing +action_result.data.\*.aliases.\*.resource_uri | string | | /api/v1/actoralias/904/ +action_result.data.\*.assignee_user | string | | +action_result.data.\*.attachment | string | | url +action_result.data.\*.attachments.filename | string | | unicode.zip +action_result.data.\*.attachments.id | numeric | | 26641 +action_result.data.\*.attachments.r_type | string | | A +action_result.data.\*.attachments.remote_api | boolean | | True False +action_result.data.\*.attachments.resource_uri | string | | /api/v1/actorexternalreference/26641/?remote_api=true +action_result.data.\*.attachments.s3_url | string | | https://test-optic.s3.user.com/userUploads/2021-05-27/20210527_131611_userId-136_62cde7fc-ce0b-4d74-a159-669769998dc0_unicode.zip?Signature=5e4NsfOOT8GwBc57JeNM9j0a7oU%3D&Expires=1622124971&AWSAccessKeyId=AKIAQYUTUNAKSCAMMFFH +action_result.data.\*.attachments.title | string | | unicode.zip +action_result.data.\*.attachments.url | string | | +action_result.data.\*.avatar_s3_url | string | | +action_result.data.\*.body_content_type | string | | markdown +action_result.data.\*.campaigns.\*.id | numeric | `threatstream campaign id` | 218680 +action_result.data.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.circles.\*.id | string | | 10022 +action_result.data.\*.circles.\*.name | string | | test circle 4 +action_result.data.\*.circles.\*.resource_uri | string | | /api/v1/trustedcircle/10022/ +action_result.data.\*.comment.body | string | | This is a comment. +action_result.data.\*.comment.created_ts | string | | 2021-04-20T08:52:19.742189 +action_result.data.\*.comment.id | numeric | | 16 +action_result.data.\*.comment.modified_ts | string | | 2021-04-20T08:52:19.742205 +action_result.data.\*.comment.resource_uri | string | | /api/v1/actor/11930/comment/16/ +action_result.data.\*.comment.title | string | | comment title +action_result.data.\*.comment.tlp | string | | +action_result.data.\*.comment.user.avatar_s3_url | string | | +action_result.data.\*.comment.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comment.user.email | string | `email` | test@test.com +action_result.data.\*.comment.user.id | string | | 142 +action_result.data.\*.comment.user.is_active | boolean | | True False +action_result.data.\*.comment.user.is_readonly | boolean | | True False +action_result.data.\*.comment.user.must_change_password | boolean | | True False +action_result.data.\*.comment.user.name | string | | test +action_result.data.\*.comment.user.nickname | string | | testnickname +action_result.data.\*.comment.user.organization.id | string | | 70 +action_result.data.\*.comment.user.organization.name | string | | test +action_result.data.\*.comment.user.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.comment.user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.comments.!@#$%^&\* | string | | comment title +action_result.data.\*.comments.body | string | | This is a comment updated by user. +action_result.data.\*.comments.created_ts | string | | 2021-05-27T13:18:34.575822 +action_result.data.\*.comments.id | numeric | | 1000000245 +action_result.data.\*.comments.incorrect value | string | | This is a comment. +action_result.data.\*.comments.modified_ts | string | | 2021-05-27T13:18:34.575846 +action_result.data.\*.comments.remote_api | boolean | | True False +action_result.data.\*.comments.resource_uri | string | | /api/v1/actor/1000001019/comment/1000000245/ +action_result.data.\*.comments.title | string | | updating comment title +action_result.data.\*.comments.tlp | string | | +action_result.data.\*.comments.user.avatar_s3_url | string | | +action_result.data.\*.comments.user.can_share_intelligence | boolean | | True False +action_result.data.\*.comments.user.email | string | | qa+test@qa.user.com +action_result.data.\*.comments.user.id | string | | 136 +action_result.data.\*.comments.user.is_active | boolean | | True False +action_result.data.\*.comments.user.is_readonly | boolean | | True False +action_result.data.\*.comments.user.must_change_password | boolean | | True False +action_result.data.\*.comments.user.name | string | | test +action_result.data.\*.comments.user.nickname | string | | +action_result.data.\*.comments.user.organization.id | string | | 67 +action_result.data.\*.comments.user.organization.name | string | | qa.test.com +action_result.data.\*.comments.user.organization.resource_uri | string | | /api/v1/userorganization/67/ +action_result.data.\*.comments.user.resource_uri | string | | /api/v1/user/136/ +action_result.data.\*.created_ts | string | | 2021-04-20T08:39:20.368888 +action_result.data.\*.description | string | | for analysis +action_result.data.\*.embedded_content_type | string | | +action_result.data.\*.embedded_content_url | string | | +action_result.data.\*.external_references.\*.filename | string | | Bien sûr.rtf +action_result.data.\*.external_references.\*.id | numeric | | 16542 +action_result.data.\*.external_references.\*.r_type | string | | A +action_result.data.\*.external_references.\*.remote_api | boolean | | True False +action_result.data.\*.external_references.\*.resource_uri | string | | /api/v1/actorexternalreference/16542/ +action_result.data.\*.external_references.\*.s3_url | string | `url` | +action_result.data.\*.external_references.\*.title | string | | Bien sûr.rtf +action_result.data.\*.external_references.\*.url | string | | +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.goals | string | | +action_result.data.\*.id | numeric | `threatstream actor id` | 11930 +action_result.data.\*.incidents.\*.id | numeric | `threatstream incident id` | 171066 +action_result.data.\*.intelligence.\*.asn | string | | +action_result.data.\*.intelligence.\*.can_add_public_tags | boolean | | True False +action_result.data.\*.intelligence.\*.confidence | numeric | | 50 +action_result.data.\*.intelligence.\*.country | string | | +action_result.data.\*.intelligence.\*.created_by | string | | qa+test@qa.user.com +action_result.data.\*.intelligence.\*.created_ts | string | | 2019-12-17T06:50:38.403Z +action_result.data.\*.intelligence.\*.description | string | | +action_result.data.\*.intelligence.\*.expiration_ts | string | | 2019-12-18T08:00:00.000Z +action_result.data.\*.intelligence.\*.feed_id | numeric | | 0 +action_result.data.\*.intelligence.\*.id | numeric | | 171989368 +action_result.data.\*.intelligence.\*.id | numeric | | 1000001355 +action_result.data.\*.intelligence.\*.import_session_id | numeric | | 238 +action_result.data.\*.intelligence.\*.import_source | string | | test +action_result.data.\*.intelligence.\*.ip | string | | +action_result.data.\*.intelligence.\*.is_anonymous | boolean | | True False +action_result.data.\*.intelligence.\*.is_editable | boolean | | True False +action_result.data.\*.intelligence.\*.is_public | boolean | | True False +action_result.data.\*.intelligence.\*.itype | string | | mal_email +action_result.data.\*.intelligence.\*.latitude | string | | +action_result.data.\*.intelligence.\*.longitude | string | | +action_result.data.\*.intelligence.\*.meta.detail2 | string | | bifocals_deactivated_on_2019-12-18_08:00:00.243473 +action_result.data.\*.intelligence.\*.meta.severity | string | | low +action_result.data.\*.intelligence.\*.modified_ts | string | | 2021-05-27T12:26:57.714Z +action_result.data.\*.intelligence.\*.org | string | | +action_result.data.\*.intelligence.\*.owner_organization_id | numeric | | 67 +action_result.data.\*.intelligence.\*.rdns | string | | +action_result.data.\*.intelligence.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.resource_uri | string | | /api/v2/intelligence/171989368/?remote_api=true +action_result.data.\*.intelligence.\*.retina_confidence | numeric | | -1 +action_result.data.\*.intelligence.\*.source | string | | qa+testuser2@qa.user.com +action_result.data.\*.intelligence.\*.source_created | string | | +action_result.data.\*.intelligence.\*.source_modified | string | | +action_result.data.\*.intelligence.\*.source_reported_confidence | numeric | | 50 +action_result.data.\*.intelligence.\*.status | string | | inactive +action_result.data.\*.intelligence.\*.subtype | string | | +action_result.data.\*.intelligence.\*.tags.\*.category | string | | user +action_result.data.\*.intelligence.\*.tags.\*.id | string | | g8d +action_result.data.\*.intelligence.\*.tags.\*.name | string | | test_name +action_result.data.\*.intelligence.\*.tags.\*.org_id | string | | 67 +action_result.data.\*.intelligence.\*.tags.\*.remote_api | boolean | | True False +action_result.data.\*.intelligence.\*.tags.\*.source_user | string | | +action_result.data.\*.intelligence.\*.tags.\*.source_user_id | string | | 1234 +action_result.data.\*.intelligence.\*.tags.\*.tagger | string | | user +action_result.data.\*.intelligence.\*.tags.\*.tlp | string | | white +action_result.data.\*.intelligence.\*.threat_type | string | | malware +action_result.data.\*.intelligence.\*.threatscore | numeric | | 10 +action_result.data.\*.intelligence.\*.tlp | string | | green +action_result.data.\*.intelligence.\*.trusted_circle_ids | string | | +action_result.data.\*.intelligence.\*.type | string | | email +action_result.data.\*.intelligence.\*.update_id | numeric | | 482449590 +action_result.data.\*.intelligence.\*.uuid | string | | 628c8970-6297-4747-82fd-5660ac42a6c5 +action_result.data.\*.intelligence.\*.value | string | | test_assoi_cloud@test.com +action_result.data.\*.is_anonymous | boolean | | True False +action_result.data.\*.is_cloneable | string | | yes +action_result.data.\*.is_public | boolean | | True False +action_result.data.\*.is_team | boolean | | True False +action_result.data.\*.logo_s3_url | string | | +action_result.data.\*.modified_ts | string | | 2021-04-20T08:52:18.115817 +action_result.data.\*.name | string | | actor_test_2 +action_result.data.\*.organization.id | string | | 70 +action_result.data.\*.organization.name | string | | test +action_result.data.\*.organization.resource_uri | string | | /api/v1/userorganization/70/ +action_result.data.\*.organization_id | numeric | | 70 +action_result.data.\*.owner_user.email | string | `email` | test@test.com +action_result.data.\*.owner_user.id | string | | 142 +action_result.data.\*.owner_user.name | string | | testuser +action_result.data.\*.owner_user.resource_uri | string | | /api/v1/user/142/ +action_result.data.\*.owner_user_id | numeric | | 142 +action_result.data.\*.parent | string | | +action_result.data.\*.personal_motivations | string | | +action_result.data.\*.primary_motivation | string | | +action_result.data.\*.publication_status | string | | reviewed +action_result.data.\*.published_ts | string | | +action_result.data.\*.remote_api | boolean | | True False +action_result.data.\*.resource_level | string | | +action_result.data.\*.resource_uri | string | | /api/v1/actor/11930/ +action_result.data.\*.roles | string | | +action_result.data.\*.secondary_motivations | string | | +action_result.data.\*.signatures.\*.id | numeric | `threatstream signature id` | 632 +action_result.data.\*.soph_desc | string | | Testing actor soph desc.. +action_result.data.\*.soph_type | string | | +action_result.data.\*.soph_type | string | | +action_result.data.\*.soph_type.display_name | string | | Innovator +action_result.data.\*.soph_type.id | numeric | | 1 +action_result.data.\*.soph_type.resource_uri | string | | /api/v1/actorsophisticationtype/1/ +action_result.data.\*.soph_type.value | string | | I +action_result.data.\*.source_created | string | | 2019-04-10T10:10:55 +action_result.data.\*.source_modified | string | | 2019-05-19T10:15:23 +action_result.data.\*.starred_by_me | boolean | | True False +action_result.data.\*.starred_total_count | numeric | | 0 +action_result.data.\*.start_date | string | | 2019-06-05T04:15:03 +action_result.data.\*.tags_v2.\*.id | string | | 7ms +action_result.data.\*.tags_v2.\*.name | string | | testing +action_result.data.\*.tags_v2.\*.org_id | numeric | | 67 +action_result.data.\*.tags_v2.\*.tlp | string | | white +action_result.data.\*.threat_actor_types | string | | +action_result.data.\*.tlp | string | | amber +action_result.data.\*.ttps.\*.id | numeric | `threatstream ttp id` | 1573 +action_result.data.\*.uuid | string | | b58939d4-21b0-427b-bb62-6dc42391bef0 +action_result.data.\*.victims.\*.id | numeric | | 13 +action_result.data.\*.victims.\*.name | string | | Health Care +action_result.data.\*.victims.\*.resource_uri | string | | /api/v1/victimtype/13/ +action_result.data.\*.victims.\*.value | numeric | | 12 +action_result.data.\*.votes.me | string | | +action_result.data.\*.votes.total | numeric | | 0 +action_result.data.\*.vulnerability.\*.id | numeric | `threatstream vulnerability id` | 29891 +action_result.data.\*.watched_by_me | boolean | | True False +action_result.data.\*.watched_total_count | numeric | | 0 +action_result.summary | string | | +action_result.message | string | | Successfully updated actor +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete threat bulletin' Delete threat bulletin in ThreatStream by ID @@ -4515,18 +4705,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**threat\_bulletin\_id** | required | ID of the threat bulletin to delete | string | `threatstream threatbulletin id` +**threat_bulletin_id** | required | ID of the threat bulletin to delete | string | `threatstream threatbulletin id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.threat\_bulletin\_id | string | `threatstream threatbulletin id` -action\_result\.data\.\* | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.threat_bulletin_id | string | `threatstream threatbulletin id` | 10911 +action_result.data.\* | string | | +action_result.summary | string | | +action_result.message | string | | Successfully deleted threat bulletin +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete vulnerability' Delete vulnerability in ThreatStream by ID @@ -4537,18 +4727,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**vulnerability\_id** | required | ID of the vulnerability to delete | string | `threatstream vulnerability id` +**vulnerability_id** | required | ID of the vulnerability to delete | string | `threatstream vulnerability id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.vulnerability\_id | string | `threatstream vulnerability id` -action\_result\.data\.\* | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.vulnerability_id | string | `threatstream vulnerability id` | 1000000001 +action_result.data.\* | string | | +action_result.summary | string | | +action_result.message | string | | Successfully deleted vulnerability +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete actor' Delete actor in ThreatStream by ID number @@ -4559,18 +4749,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**actor\_id** | required | ID number of actor to delete | string | `threatstream actor id` +**actor_id** | required | ID number of actor to delete | string | `threatstream actor id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.actor\_id | string | `threatstream actor id` -action\_result\.data | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.actor_id | string | `threatstream actor id` | 15518 1000000030 +action_result.data | string | | +action_result.summary | string | | +action_result.message | string | | Successfully deleted actor +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update observable' Update an observable in ThreatStream @@ -4578,83 +4768,83 @@ Update an observable in ThreatStream Type: **generic** Read only: **False** -If any of the indicator\_type, confidence, tlp, severity, status, or expiration\_date parameter is added and is also mentioned in the fields parameter, the value given in the individual parameters is considered\. +If any of the indicator_type, confidence, tlp, severity, status, or expiration_date parameter is added and is also mentioned in the fields parameter, the value given in the individual parameters is considered. #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- **id** | required | ID of the observable | string | `threatstream intelligence id` -**indicator\_type** | optional | Indicator type to give the observable | string | +**indicator_type** | optional | Indicator type to give the observable | string | **confidence** | optional | Confidence to give the observable | numeric | **tlp** | optional | Tlp to give the observable | string | **severity** | optional | Severity to give the observable | string | -**status** | optional | Status to give the observable \(For example, active, inactive, falsepos\) | string | -**expiration\_date** | optional | Expiration timestamp to give the observable \(in UTC format\) | string | +**status** | optional | Status to give the observable (For example, active, inactive, falsepos) | string | +**expiration_date** | optional | Expiration timestamp to give the observable (in UTC format) | string | **fields** | optional | JSON formatted string of fields to include with the observable | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.confidence | numeric | -action\_result\.parameter\.expiration\_date | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.id | string | `threatstream intelligence id` -action\_result\.parameter\.indicator\_type | string | -action\_result\.parameter\.severity | string | -action\_result\.parameter\.status | string | -action\_result\.parameter\.tlp | string | -action\_result\.data\.\*\.asn | string | -action\_result\.data\.\*\.confidence | numeric | -action\_result\.data\.\*\.country | string | -action\_result\.data\.\*\.created\_by | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.expiration\_ts | string | -action\_result\.data\.\*\.feed\_id | numeric | -action\_result\.data\.\*\.id | numeric | `threatstream intelligence id` -action\_result\.data\.\*\.import\_session\_id | string | -action\_result\.data\.\*\.import\_source | string | -action\_result\.data\.\*\.ip | string | -action\_result\.data\.\*\.is\_anonymous | boolean | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.itype | string | -action\_result\.data\.\*\.latitude | string | -action\_result\.data\.\*\.longitude | string | -action\_result\.data\.\*\.meta\.detail2 | string | -action\_result\.data\.\*\.meta\.next | string | -action\_result\.data\.\*\.meta\.previous | string | -action\_result\.data\.\*\.meta\.severity | string | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.org | string | -action\_result\.data\.\*\.owner\_organization\_id | numeric | -action\_result\.data\.\*\.rdns | string | -action\_result\.data\.\*\.remote\_api | boolean | -action\_result\.data\.\*\.resource\_uri | string | -action\_result\.data\.\*\.retina\_confidence | numeric | -action\_result\.data\.\*\.source | string | -action\_result\.data\.\*\.source\_created | string | -action\_result\.data\.\*\.source\_modified | string | -action\_result\.data\.\*\.source\_reported\_confidence | numeric | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.subtype | string | -action\_result\.data\.\*\.tags\.\*\.id | string | -action\_result\.data\.\*\.tags\.\*\.name | string | -action\_result\.data\.\*\.tags\.\*\.org\_id | numeric | -action\_result\.data\.\*\.tags\.\*\.remote\_api | numeric | -action\_result\.data\.\*\.tags\.\*\.source\_user | string | -action\_result\.data\.\*\.tags\.\*\.source\_user\_id | string | -action\_result\.data\.\*\.tags\.\*\.tlp | string | -action\_result\.data\.\*\.threat\_type | string | -action\_result\.data\.\*\.threatscore | numeric | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.type | string | -action\_result\.data\.\*\.update\_id | numeric | -action\_result\.data\.\*\.uuid | string | -action\_result\.data\.\*\.value | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.confidence | numeric | | 43 +action_result.parameter.expiration_date | string | | 2021-11-09T14:55:06.097Z +action_result.parameter.fields | string | | {"confidence": 60} +action_result.parameter.id | string | `threatstream intelligence id` | 263745273 +action_result.parameter.indicator_type | string | | mal_email +action_result.parameter.severity | string | | low +action_result.parameter.status | string | | false positive +action_result.parameter.tlp | string | | red +action_result.data.\*.asn | string | | +action_result.data.\*.confidence | numeric | | 37 +action_result.data.\*.country | string | | +action_result.data.\*.created_by | string | | +action_result.data.\*.created_ts | string | | 2021-08-10T11:48:12.678 +action_result.data.\*.expiration_ts | string | | 2022-11-09T14:55:06.097Z +action_result.data.\*.feed_id | numeric | | 0 +action_result.data.\*.id | numeric | `threatstream intelligence id` | 255050731 +action_result.data.\*.import_session_id | string | | +action_result.data.\*.import_source | string | | +action_result.data.\*.ip | string | | +action_result.data.\*.is_anonymous | boolean | | False +action_result.data.\*.is_public | boolean | | False +action_result.data.\*.itype | string | | apt_email +action_result.data.\*.latitude | string | | +action_result.data.\*.longitude | string | | +action_result.data.\*.meta.detail2 | string | | imported by user 136 +action_result.data.\*.meta.next | string | | +action_result.data.\*.meta.previous | string | | +action_result.data.\*.meta.severity | string | | medium +action_result.data.\*.modified_ts | string | | 2021-08-12T11:02:35.625 +action_result.data.\*.org | string | | +action_result.data.\*.owner_organization_id | numeric | | 67 +action_result.data.\*.rdns | string | | +action_result.data.\*.remote_api | boolean | | True +action_result.data.\*.resource_uri | string | | +action_result.data.\*.retina_confidence | numeric | | -1 +action_result.data.\*.source | string | | test.source.com +action_result.data.\*.source_created | string | | +action_result.data.\*.source_modified | string | | +action_result.data.\*.source_reported_confidence | numeric | | 37 +action_result.data.\*.status | string | | active +action_result.data.\*.subtype | string | | +action_result.data.\*.tags.\*.id | string | | dxd +action_result.data.\*.tags.\*.name | string | | test2 +action_result.data.\*.tags.\*.org_id | numeric | | 67 +action_result.data.\*.tags.\*.remote_api | numeric | | True +action_result.data.\*.tags.\*.source_user | string | | Customer +action_result.data.\*.tags.\*.source_user_id | string | | 1234 +action_result.data.\*.tags.\*.tlp | string | | red +action_result.data.\*.threat_type | string | | apt +action_result.data.\*.threatscore | numeric | | 28 +action_result.data.\*.tlp | string | | green +action_result.data.\*.type | string | | email +action_result.data.\*.update_id | numeric | | 539165917 +action_result.data.\*.uuid | string | | 6ae8e41a-6fa1-43fb-bd08-02c1babf7fa0 +action_result.data.\*.value | string | | 55test@test.com +action_result.summary | string | | +action_result.message | string | | Successfully updated observable +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create investigation' Create an investigation in ThreatStream @@ -4668,61 +4858,61 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **name** | required | Name to give the investigation | string | **priority** | required | Priority assigned to the investigation | string | **fields** | optional | JSON formatted string of fields to include with the investigation | string | -**create\_on\_cloud** | optional | Create on remote \(cloud\)? \(applicable only for hybrid on\-prem instances\) | boolean | +**create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.create\_on\_cloud | boolean | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.name | string | -action\_result\.parameter\.priority | string | -action\_result\.data\.\*\.assignee | string | -action\_result\.data\.\*\.attachments | string | -action\_result\.data\.\*\.candidate\_session | string | -action\_result\.data\.\*\.circles | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.elements | numeric | -action\_result\.data\.\*\.graph\_content | string | -action\_result\.data\.\*\.id | numeric | `threatstream investigation id` -action\_result\.data\.\*\.import\_sessions | string | -action\_result\.data\.\*\.investigation\_attachments | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.owner\_org\.id | string | -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.owner\_org\_id | string | `id` -action\_result\.data\.\*\.priority | string | -action\_result\.data\.\*\.reporter\.avatar\_s3\_url | string | -action\_result\.data\.\*\.reporter\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.reporter\.email | string | `email` -action\_result\.data\.\*\.reporter\.id | string | `id` -action\_result\.data\.\*\.reporter\.is\_active | boolean | -action\_result\.data\.\*\.reporter\.is\_readonly | boolean | -action\_result\.data\.\*\.reporter\.must\_change\_password | boolean | -action\_result\.data\.\*\.reporter\.name | string | -action\_result\.data\.\*\.reporter\.nickname | string | -action\_result\.data\.\*\.reporter\.organization\.id | string | `id` -action\_result\.data\.\*\.reporter\.organization\.name | string | -action\_result\.data\.\*\.reporter\.organization\.resource\_uri | string | `url` -action\_result\.data\.\*\.reporter\.resource\_uri | string | `url` -action\_result\.data\.\*\.reporter\_id | numeric | `id` -action\_result\.data\.\*\.resource\_uri | string | `url` -action\_result\.data\.\*\.source\_type | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tips | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.workgroups | string | -action\_result\.data\.tasks | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.create_on_cloud | boolean | | True False +action_result.parameter.fields | string | | {"tlp": "red"} +action_result.parameter.name | string | | new_investigation +action_result.parameter.priority | string | | low +action_result.data.\*.assignee | string | | +action_result.data.\*.attachments | string | | +action_result.data.\*.candidate_session | string | | +action_result.data.\*.circles | string | | +action_result.data.\*.created_ts | string | | 2020-05-28T00:39:25.453003 +action_result.data.\*.description | string | |

    this is a low priority investigation

    +action_result.data.\*.elements | numeric | | 0 +action_result.data.\*.graph_content | string | | +action_result.data.\*.id | numeric | `threatstream investigation id` | 0 +action_result.data.\*.import_sessions | string | | +action_result.data.\*.investigation_attachments | string | | +action_result.data.\*.is_public | boolean | | False +action_result.data.\*.modified_ts | string | | 2020-05-21T18:53:11.233187 +action_result.data.\*.name | string | | Blank Investigation Two +action_result.data.\*.owner_org.id | string | | 2342 +action_result.data.\*.owner_org.name | string | | test.us +action_result.data.\*.owner_org.resource_uri | string | | /api/v1/userorganization/2342/ +action_result.data.\*.owner_org_id | string | `id` | +action_result.data.\*.priority | string | | low +action_result.data.\*.reporter.avatar_s3_url | string | | +action_result.data.\*.reporter.can_share_intelligence | boolean | | True +action_result.data.\*.reporter.email | string | `email` | user@test.us +action_result.data.\*.reporter.id | string | `id` | 6941 +action_result.data.\*.reporter.is_active | boolean | | True +action_result.data.\*.reporter.is_readonly | boolean | | True +action_result.data.\*.reporter.must_change_password | boolean | | True +action_result.data.\*.reporter.name | string | | +action_result.data.\*.reporter.nickname | string | | EAlezeb +action_result.data.\*.reporter.organization.id | string | `id` | 2324 +action_result.data.\*.reporter.organization.name | string | | test.us +action_result.data.\*.reporter.organization.resource_uri | string | `url` | /api/v1/userorganization/2342/ +action_result.data.\*.reporter.resource_uri | string | `url` | /api/v1/user/6941/ +action_result.data.\*.reporter_id | numeric | `id` | 6941 +action_result.data.\*.resource_uri | string | `url` | /api/v1/investigation/56198/ +action_result.data.\*.source_type | string | | user +action_result.data.\*.status | string | | unassigned +action_result.data.\*.tags | string | | +action_result.data.\*.tips | string | | +action_result.data.\*.tlp | string | | red +action_result.data.\*.workgroups | string | | +action_result.data.tasks | string | | +action_result.summary | string | | +action_result.message | string | | Successfully created investigation +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list investigations' List investigations present in ThreatStream @@ -4736,46 +4926,46 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **limit** | optional | Total number of investigations to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.limit | numeric | -action\_result\.data\.\*\.assignee | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.elements | numeric | -action\_result\.data\.\*\.id | numeric | `investigation id` -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.owner\_org\.id | string | `id` -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | -action\_result\.data\.\*\.owner\_org\_id | string | -action\_result\.data\.\*\.priority | string | -action\_result\.data\.\*\.reporter\.avatar\_s3\_url | string | -action\_result\.data\.\*\.reporter\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.reporter\.email | string | `email` -action\_result\.data\.\*\.reporter\.id | string | `id` -action\_result\.data\.\*\.reporter\.is\_active | boolean | -action\_result\.data\.\*\.reporter\.is\_readonly | boolean | -action\_result\.data\.\*\.reporter\.must\_change\_password | boolean | -action\_result\.data\.\*\.reporter\.name | string | -action\_result\.data\.\*\.reporter\.nickname | string | -action\_result\.data\.\*\.reporter\.organization\.id | string | `id` -action\_result\.data\.\*\.reporter\.organization\.name | string | -action\_result\.data\.\*\.reporter\.organization\.resource\_uri | string | -action\_result\.data\.\*\.reporter\.resource\_uri | string | `url` -action\_result\.data\.\*\.reporter\_id | numeric | `id` -action\_result\.data\.\*\.resource\_uri | string | `url` -action\_result\.data\.\*\.source\_type | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.workgroups | string | -action\_result\.summary\.investigations\_returned | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.limit | numeric | | 1000 +action_result.data.\*.assignee | string | | +action_result.data.\*.created_ts | string | | 2020-05-28T23:47:44.391824 +action_result.data.\*.elements | numeric | | 0 +action_result.data.\*.id | numeric | `investigation id` | 0 +action_result.data.\*.is_public | boolean | | False +action_result.data.\*.modified_ts | string | | 2020-05-28T23:47:44.391824 +action_result.data.\*.name | string | | Blank Investigation Two +action_result.data.\*.owner_org.id | string | `id` | 2342 +action_result.data.\*.owner_org.name | string | | test.us +action_result.data.\*.owner_org.resource_uri | string | | /api/v1/userorganization/2342/ +action_result.data.\*.owner_org_id | string | | +action_result.data.\*.priority | string | | low +action_result.data.\*.reporter.avatar_s3_url | string | | +action_result.data.\*.reporter.can_share_intelligence | boolean | | True +action_result.data.\*.reporter.email | string | `email` | user@test.us +action_result.data.\*.reporter.id | string | `id` | 6941 +action_result.data.\*.reporter.is_active | boolean | | True +action_result.data.\*.reporter.is_readonly | boolean | | True +action_result.data.\*.reporter.must_change_password | boolean | | True +action_result.data.\*.reporter.name | string | | +action_result.data.\*.reporter.nickname | string | | +action_result.data.\*.reporter.organization.id | string | `id` | 2324 +action_result.data.\*.reporter.organization.name | string | | test.us +action_result.data.\*.reporter.organization.resource_uri | string | | /api/v1/userorganization/2342/ +action_result.data.\*.reporter.resource_uri | string | `url` | /api/v1/user/6941/ +action_result.data.\*.reporter_id | numeric | `id` | 6941 +action_result.data.\*.resource_uri | string | `url` | /api/v1/investigation/56953/ +action_result.data.\*.source_type | string | | user +action_result.data.\*.status | string | | unassigned +action_result.data.\*.tags | string | | +action_result.data.\*.tlp | string | | red +action_result.data.\*.workgroups | string | | +action_result.summary.investigations_returned | numeric | | 1000 +action_result.message | string | | Investigations returned: 1000 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get investigation' Retrieve investigation present in Threatstream by ID @@ -4786,58 +4976,58 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**investigation\_id** | required | ID of the investigation to retrieve | numeric | `threatstream investigation id` +**investigation_id** | required | ID of the investigation to retrieve | numeric | `threatstream investigation id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.investigation\_id | numeric | `threatstream investigation id` -action\_result\.data\.\*\.assignee | string | -action\_result\.data\.\*\.attachments | string | -action\_result\.data\.\*\.candidate\_session | string | -action\_result\.data\.\*\.circles | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.elements | numeric | -action\_result\.data\.\*\.graph\_content | string | -action\_result\.data\.\*\.id | numeric | `id` -action\_result\.data\.\*\.import\_sessions | string | -action\_result\.data\.\*\.investigation\_attachments | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.owner\_org\.id | string | `id` -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | `url` -action\_result\.data\.\*\.owner\_org\_id | string | `id` -action\_result\.data\.\*\.priority | string | -action\_result\.data\.\*\.reporter\.avatar\_s3\_url | string | -action\_result\.data\.\*\.reporter\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.reporter\.email | string | `email` -action\_result\.data\.\*\.reporter\.id | string | `id` -action\_result\.data\.\*\.reporter\.is\_active | boolean | -action\_result\.data\.\*\.reporter\.is\_readonly | boolean | -action\_result\.data\.\*\.reporter\.must\_change\_password | boolean | -action\_result\.data\.\*\.reporter\.name | string | -action\_result\.data\.\*\.reporter\.nickname | string | -action\_result\.data\.\*\.reporter\.organization\.id | string | `id` -action\_result\.data\.\*\.reporter\.organization\.name | string | -action\_result\.data\.\*\.reporter\.organization\.resource\_uri | string | -action\_result\.data\.\*\.reporter\.resource\_uri | string | -action\_result\.data\.\*\.reporter\_id | numeric | `id` -action\_result\.data\.\*\.resource\_uri | string | `url` -action\_result\.data\.\*\.source\_type | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tips | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.workgroups | string | -action\_result\.data\.tasks | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.investigation_id | numeric | `threatstream investigation id` | 56198 +action_result.data.\*.assignee | string | | +action_result.data.\*.attachments | string | | +action_result.data.\*.candidate_session | string | | +action_result.data.\*.circles | string | | +action_result.data.\*.created_ts | string | | 2020-05-21T18:53:11.233187 +action_result.data.\*.description | string | |

    this is a low priority investigation

    +action_result.data.\*.elements | numeric | | 0 +action_result.data.\*.graph_content | string | | +action_result.data.\*.id | numeric | `id` | 0 +action_result.data.\*.import_sessions | string | | +action_result.data.\*.investigation_attachments | string | | +action_result.data.\*.is_public | boolean | | False +action_result.data.\*.modified_ts | string | | 2020-05-21T18:53:11.233187 +action_result.data.\*.name | string | | Blank Investigation Two +action_result.data.\*.owner_org.id | string | `id` | 2342 +action_result.data.\*.owner_org.name | string | | test.us +action_result.data.\*.owner_org.resource_uri | string | `url` | /api/v1/userorganization/2342/ +action_result.data.\*.owner_org_id | string | `id` | +action_result.data.\*.priority | string | | low +action_result.data.\*.reporter.avatar_s3_url | string | | +action_result.data.\*.reporter.can_share_intelligence | boolean | | True +action_result.data.\*.reporter.email | string | `email` | user@test.us +action_result.data.\*.reporter.id | string | `id` | 6941 +action_result.data.\*.reporter.is_active | boolean | | True +action_result.data.\*.reporter.is_readonly | boolean | | True +action_result.data.\*.reporter.must_change_password | boolean | | True +action_result.data.\*.reporter.name | string | | +action_result.data.\*.reporter.nickname | string | | EAlezeb +action_result.data.\*.reporter.organization.id | string | `id` | 2324 +action_result.data.\*.reporter.organization.name | string | | test.us +action_result.data.\*.reporter.organization.resource_uri | string | | /api/v1/userorganization/2342/ +action_result.data.\*.reporter.resource_uri | string | | /api/v1/user/6941/ +action_result.data.\*.reporter_id | numeric | `id` | 6941 +action_result.data.\*.resource_uri | string | `url` | /api/v1/investigation/56198/ +action_result.data.\*.source_type | string | | user +action_result.data.\*.status | string | | unassigned +action_result.data.\*.tags | string | | +action_result.data.\*.tips | string | | +action_result.data.\*.tlp | string | | red +action_result.data.\*.workgroups | string | | +action_result.data.tasks | string | | +action_result.summary | string | | +action_result.message | string | | Successfully retrieved investigation +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'update investigation' Update an investigation in ThreatStream @@ -4848,60 +5038,60 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**investigation\_id** | required | ID of the investigation to update | numeric | `threatstream investigation id` +**investigation_id** | required | ID of the investigation to update | numeric | `threatstream investigation id` **fields** | required | JSON formatted string of fields to include with the investigation | string | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.fields | string | -action\_result\.parameter\.investigation\_id | numeric | `threatstream investigation id` -action\_result\.data\.\*\.assignee | string | -action\_result\.data\.\*\.attachments | string | -action\_result\.data\.\*\.candidate\_session | string | -action\_result\.data\.\*\.circles | string | -action\_result\.data\.\*\.created\_ts | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.elements | numeric | -action\_result\.data\.\*\.graph\_content | string | -action\_result\.data\.\*\.id | numeric | `id` -action\_result\.data\.\*\.import\_sessions | string | -action\_result\.data\.\*\.investigation\_attachments | string | -action\_result\.data\.\*\.is\_public | boolean | -action\_result\.data\.\*\.modified\_ts | string | -action\_result\.data\.\*\.name | string | -action\_result\.data\.\*\.owner\_org\.id | string | `id` -action\_result\.data\.\*\.owner\_org\.name | string | -action\_result\.data\.\*\.owner\_org\.resource\_uri | string | `url` -action\_result\.data\.\*\.owner\_org\_id | string | `id` -action\_result\.data\.\*\.priority | string | -action\_result\.data\.\*\.reporter\.avatar\_s3\_url | string | -action\_result\.data\.\*\.reporter\.can\_share\_intelligence | boolean | -action\_result\.data\.\*\.reporter\.email | string | `email` -action\_result\.data\.\*\.reporter\.id | string | `id` -action\_result\.data\.\*\.reporter\.is\_active | boolean | -action\_result\.data\.\*\.reporter\.is\_readonly | boolean | -action\_result\.data\.\*\.reporter\.must\_change\_password | boolean | -action\_result\.data\.\*\.reporter\.name | string | -action\_result\.data\.\*\.reporter\.nickname | string | -action\_result\.data\.\*\.reporter\.organization\.id | string | `id` -action\_result\.data\.\*\.reporter\.organization\.name | string | -action\_result\.data\.\*\.reporter\.organization\.resource\_uri | string | -action\_result\.data\.\*\.reporter\.resource\_uri | string | `url` -action\_result\.data\.\*\.reporter\_id | numeric | `id` -action\_result\.data\.\*\.resource\_uri | string | `url` -action\_result\.data\.\*\.source\_type | string | -action\_result\.data\.\*\.status | string | -action\_result\.data\.\*\.tags | string | -action\_result\.data\.\*\.tips | string | -action\_result\.data\.\*\.tlp | string | -action\_result\.data\.\*\.workgroups | string | -action\_result\.data\.tasks | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.fields | string | | {"tlp": "red"} +action_result.parameter.investigation_id | numeric | `threatstream investigation id` | 56198 +action_result.data.\*.assignee | string | | +action_result.data.\*.attachments | string | | +action_result.data.\*.candidate_session | string | | +action_result.data.\*.circles | string | | +action_result.data.\*.created_ts | string | | 2020-05-28T00:39:25.453003 +action_result.data.\*.description | string | |

    this is a low priority investigation

    +action_result.data.\*.elements | numeric | | 0 +action_result.data.\*.graph_content | string | | +action_result.data.\*.id | numeric | `id` | 0 +action_result.data.\*.import_sessions | string | | +action_result.data.\*.investigation_attachments | string | | +action_result.data.\*.is_public | boolean | | False +action_result.data.\*.modified_ts | string | | 2020-05-21T18:53:11.233187 +action_result.data.\*.name | string | | Blank Investigation Two +action_result.data.\*.owner_org.id | string | `id` | 2342 +action_result.data.\*.owner_org.name | string | | test.us +action_result.data.\*.owner_org.resource_uri | string | `url` | /api/v1/userorganization/2342/ +action_result.data.\*.owner_org_id | string | `id` | +action_result.data.\*.priority | string | | low +action_result.data.\*.reporter.avatar_s3_url | string | | +action_result.data.\*.reporter.can_share_intelligence | boolean | | True +action_result.data.\*.reporter.email | string | `email` | user@test.us +action_result.data.\*.reporter.id | string | `id` | 6941 +action_result.data.\*.reporter.is_active | boolean | | True +action_result.data.\*.reporter.is_readonly | boolean | | True +action_result.data.\*.reporter.must_change_password | boolean | | True +action_result.data.\*.reporter.name | string | | +action_result.data.\*.reporter.nickname | string | | EAlezeb +action_result.data.\*.reporter.organization.id | string | `id` | 2324 +action_result.data.\*.reporter.organization.name | string | | test.us +action_result.data.\*.reporter.organization.resource_uri | string | | /api/v1/userorganization/2342/ +action_result.data.\*.reporter.resource_uri | string | `url` | /api/v1/user/6941/ +action_result.data.\*.reporter_id | numeric | `id` | 6941 +action_result.data.\*.resource_uri | string | `url` | /api/v1/investigation/56198/ +action_result.data.\*.source_type | string | | user +action_result.data.\*.status | string | | unassigned +action_result.data.\*.tags | string | | +action_result.data.\*.tips | string | | +action_result.data.\*.tlp | string | | red +action_result.data.\*.workgroups | string | | +action_result.data.tasks | string | | +action_result.summary | string | | +action_result.message | string | | Successfully updated investigation +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete investigation' Delete investigation in ThreatStream by ID number @@ -4912,15 +5102,15 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**investigation\_id** | required | ID number of investigation to delete | numeric | `threatstream investigation id` +**investigation_id** | required | ID number of investigation to delete | numeric | `threatstream investigation id` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.investigation\_id | numeric | `threatstream investigation id` -action\_result\.data | string | -action\_result\.summary | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | \ No newline at end of file +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.investigation_id | numeric | `threatstream investigation id` | 56911 +action_result.data | string | | +action_result.summary | string | | +action_result.message | string | | Successfully deleted investigation +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 \ No newline at end of file From a0c38f7134117b87781e94a71c00e6fc053d0585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 1 Dec 2023 09:17:06 +0100 Subject: [PATCH 10/34] Updated release notes --- release_notes/unreleased.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/release_notes/unreleased.md b/release_notes/unreleased.md index fbcb2fd..12157d9 100644 --- a/release_notes/unreleased.md +++ b/release_notes/unreleased.md @@ -1 +1,5 @@ **Unreleased** + +* Feature that allows custom Observable Types to be used in import observables action + * Validation for default types has been removed + * Action no longer has dropdown, now information about default types is visible in description From 17bd119f74cd6553108264f0bf053e7af32619b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 1 Dec 2023 09:18:46 +0100 Subject: [PATCH 11/34] formatting fix --- threatstream_connector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threatstream_connector.py b/threatstream_connector.py index 76d58ba..7412093 100644 --- a/threatstream_connector.py +++ b/threatstream_connector.py @@ -131,7 +131,7 @@ def __init__(self): self._is_cloud_instance = None self._first_run_limit = None self._data_dict = {} # Blank dict to contain data from all API calls - + def _save_action_handler_progress(self): self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) From cb65a3e558047dafb57e5137007cb571ba1480ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 1 Dec 2023 12:17:21 +0100 Subject: [PATCH 12/34] Reverted contains values in json --- threatstream.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/threatstream.json b/threatstream.json index ca38461..7fd3ff4 100644 --- a/threatstream.json +++ b/threatstream.json @@ -18,7 +18,7 @@ "product_name": "ThreatStream", "product_version_regex": ".*", "python_version": "3", - "min_phantom_version": "5.3.3", + "min_phantom_version": "5.5.0", "fips_compliant": true, "license": "Copyright (c) 2016-2023 Splunk Inc.", "pip_dependencies": { @@ -8318,11 +8318,6 @@ "description": "Unresolved domains will be imported if set to true", "data_type": "boolean", "order": 6 - }, - "allow_custom_type": { - "description": "Allows upload of custom observable_type", - "data_type": "boolean", - "order": 6 } }, "output": [ From c0a51fe9b8abbed8cde333a829dda8fc5994f5ca Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Fri, 1 Dec 2023 11:17:55 +0000 Subject: [PATCH 13/34] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d99357..100b337 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Connector Version: 3.5.1 Product Vendor: Anomali Product Name: ThreatStream Product Version Supported (regex): ".\*" -Minimum Product Version: 5.3.3 +Minimum Product Version: 5.5.0 Integrates a variety of generic, reputation, and investigative actions from the Anomali ThreatStream threat intelligence platform @@ -1968,7 +1968,6 @@ PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS **create_on_cloud** | optional | Create on remote (cloud)? (applicable only for hybrid on-prem instances) | boolean | **with_approval** | optional | Import the observable with approvals | boolean | **allow_unresolved** | optional | Unresolved domains will be imported if set to true | boolean | -**allow_custom_type** | optional | Allows upload of custom observable_type | boolean | #### Action Output DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES From 7deebacd9e6bedd0b52cc6f4cf1f2fbd616d3124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 1 Dec 2023 12:26:30 +0100 Subject: [PATCH 14/34] removed experimental params --- threatstream.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/threatstream.json b/threatstream.json index 7fd3ff4..4bd287b 100644 --- a/threatstream.json +++ b/threatstream.json @@ -131,22 +131,6 @@ "data_type": "boolean", "order": 4, "description": "Verify server certificate" - }, - "custom_types_str": { - "data_type": "string", - "order": 0, - "description": "Specify additional types" - }, - "custom_types": { - "data_type": "array", - "order": 0, - "items": [ - { - "data_type": "string", - "description": "type" - } - ], - "description": "Specify additional types" } }, "actions": [ From c1ea03e0eedfa572e9e34f0c4060de2655f02654 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Fri, 1 Dec 2023 11:27:06 +0000 Subject: [PATCH 15/34] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 100b337..f4e041c 100644 --- a/README.md +++ b/README.md @@ -306,8 +306,6 @@ VARIABLE | REQUIRED | TYPE | DESCRIPTION **ingest_only_published_incidents** | optional | boolean | Ingest only incidents marked as published **is_cloud_instance** | optional | boolean | Is the provided instance in hostname parameter cloud? **verify_server_cert** | optional | boolean | Verify server certificate -**custom_types_str** | optional | string | Specify additional types -**custom_types** | optional | array | Specify additional types ### Supported Actions [test connectivity](#action-test-connectivity) - Test connectivity to ThreatStream by querying the intelligence endpoint From c4b8528b05ae1a2051129d839816072125b7a9b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Thu, 7 Dec 2023 12:21:00 +0100 Subject: [PATCH 16/34] applied proposed changes --- threatstream.json | 4 ++-- threatstream_connector.py | 2 +- wheels/py3/certifi-2023.11.17-py3-none-any.whl | Bin 0 -> 162530 bytes wheels/py3/soupsieve-2.5-py3-none-any.whl | Bin 0 -> 36131 bytes .../urllib3-1.26.18-py2.py3-none-any.whl | Bin 0 -> 143835 bytes 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 wheels/py3/certifi-2023.11.17-py3-none-any.whl create mode 100644 wheels/py3/soupsieve-2.5-py3-none-any.whl create mode 100644 wheels/shared/urllib3-1.26.18-py2.py3-none-any.whl diff --git a/threatstream.json b/threatstream.json index 4bd287b..f77651c 100644 --- a/threatstream.json +++ b/threatstream.json @@ -5,7 +5,7 @@ "publisher": "Splunk", "type": "threat intel", "main_module": "threatstream_connector.py", - "app_version": "3.5.1", + "app_version": "3.5.0", "latest_tested_versions": [ "On-premise v4.0 RED", "Cloud, 26 September 2022" @@ -8251,7 +8251,7 @@ "read_only": false, "parameters": { "observable_type": { - "description": "Type of observable to import, default types: [ip, domain, url, email, hash]. Custom types can be provided if they are available on ThreatStream instance", + "description": "Type of observable to import, types supported by default: [ip, domain, url, email, hash]. Custom types can also be provided if they are available on ThreatStream instance", "data_type": "string", "order": 0, "required": true diff --git a/threatstream_connector.py b/threatstream_connector.py index 7412093..c85e619 100644 --- a/threatstream_connector.py +++ b/threatstream_connector.py @@ -133,7 +133,7 @@ def __init__(self): self._data_dict = {} # Blank dict to contain data from all API calls def _save_action_handler_progress(self): - self.save_progress("In action handler for: {0}".format(self.get_action_identifier())) + self.save_progress(f"In action handler for: {self.get_action_identifier()}") def initialize(self): config = self.get_config() diff --git a/wheels/py3/certifi-2023.11.17-py3-none-any.whl b/wheels/py3/certifi-2023.11.17-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..de0787f6431bf157c306c086de4e108cbad95bca GIT binary patch literal 162530 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� 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 literal 0 HcmV?d00001 diff --git a/wheels/py3/soupsieve-2.5-py3-none-any.whl b/wheels/py3/soupsieve-2.5-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..e1be1281914864efacd06642fbf27970213ee2b2 GIT binary patch literal 36131 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 R<7=d;_aWlH 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�~Eu-aN|;MRK_Itgl8Ie#jAH|!5l-*cN7;V3W6 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 Date: Thu, 7 Dec 2023 11:21:34 +0000 Subject: [PATCH 17/34] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f4e041c..244f59b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # ThreatStream Publisher: Splunk -Connector Version: 3.5.1 +Connector Version: 3.5.0 Product Vendor: Anomali Product Name: ThreatStream Product Version Supported (regex): ".\*" @@ -1959,7 +1959,7 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**observable_type** | required | Type of observable to import, default types: [ip, domain, url, email, hash]. Custom types can be provided if they are available on ThreatStream instance | string | +**observable_type** | required | Type of observable to import, types supported by default: [ip, domain, url, email, hash]. Custom types can also be provided if they are available on ThreatStream instance | string | **value** | required | Observable value | string | `ip` `domain` `url` `email` `md5` `sha1` `hash` **classification** | required | Designate classification for observable | string | **fields** | optional | JSON formatted string of fields to include with the observable | string | From 02d9230c94e9e995065a53b3c192e106db3dde98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 8 Dec 2023 08:22:54 +0100 Subject: [PATCH 18/34] reverted final new line --- threatstream.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threatstream.json b/threatstream.json index f77651c..a1d760a 100644 --- a/threatstream.json +++ b/threatstream.json @@ -27225,4 +27225,4 @@ } ] } -} \ No newline at end of file +} From 03be5288d5c00b35461534285f67505d6f291f9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 8 Dec 2023 08:25:42 +0100 Subject: [PATCH 19/34] removed indirect requirements, requests package to be used from phantom instance --- requirements.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6a62a0d..9bf9b8d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,5 @@ beautifulsoup4==4.9.1 -dnspython==1.16.0 ipwhois==1.1.0 -python-dateutil==2.8.1 pytz==2021.1 -requests==2.25.0 simplejson==3.17.2 wizard-whois==2.5.9 From 96baf4137fe0f6c43631b5657bdf78b5ce2597f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Fri, 8 Dec 2023 08:28:48 +0100 Subject: [PATCH 20/34] updated min phantom version --- threatstream.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threatstream.json b/threatstream.json index a1d760a..b86cbae 100644 --- a/threatstream.json +++ b/threatstream.json @@ -18,7 +18,7 @@ "product_name": "ThreatStream", "product_version_regex": ".*", "python_version": "3", - "min_phantom_version": "5.5.0", + "min_phantom_version": "6.1.1", "fips_compliant": true, "license": "Copyright (c) 2016-2023 Splunk Inc.", "pip_dependencies": { From e489907495d0fe09d0dac88eb941d3fd893c9c36 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Fri, 8 Dec 2023 07:29:22 +0000 Subject: [PATCH 21/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 244f59b..eca5a41 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Connector Version: 3.5.0 Product Vendor: Anomali Product Name: ThreatStream Product Version Supported (regex): ".\*" -Minimum Product Version: 5.5.0 +Minimum Product Version: 6.1.1 Integrates a variety of generic, reputation, and investigative actions from the Anomali ThreatStream threat intelligence platform From 8ef76c5e179f7ed470f7d28451821190ad2dc953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Wed, 10 Jan 2024 11:58:36 +0100 Subject: [PATCH 22/34] updated licenses --- threatstream.json | 4 ++-- threatstream_connector.py | 2 +- threatstream_consts.py | 2 +- threatstream_view.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/threatstream.json b/threatstream.json index b86cbae..05f1618 100644 --- a/threatstream.json +++ b/threatstream.json @@ -18,9 +18,9 @@ "product_name": "ThreatStream", "product_version_regex": ".*", "python_version": "3", - "min_phantom_version": "6.1.1", + "min_phantom_version": "6.0.0", "fips_compliant": true, - "license": "Copyright (c) 2016-2023 Splunk Inc.", + "license": "Copyright (c) 2016-2024 Splunk Inc.", "pip_dependencies": { "wheel": [ { diff --git a/threatstream_connector.py b/threatstream_connector.py index c85e619..8b96b90 100644 --- a/threatstream_connector.py +++ b/threatstream_connector.py @@ -1,6 +1,6 @@ # File: threatstream_connector.py # -# Copyright (c) 2016-2022 Splunk Inc. +# Copyright (c) 2016-2024 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/threatstream_consts.py b/threatstream_consts.py index 6ea0134..b05beeb 100644 --- a/threatstream_consts.py +++ b/threatstream_consts.py @@ -1,6 +1,6 @@ # File: threatstream_consts.py # -# Copyright (c) 2016-2022 Splunk Inc. +# Copyright (c) 2016-2024 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/threatstream_view.py b/threatstream_view.py index e3e05ed..e0699a8 100644 --- a/threatstream_view.py +++ b/threatstream_view.py @@ -1,6 +1,6 @@ # File: threatstream_view.py # -# Copyright (c) 2016-2022 Splunk Inc. +# Copyright (c) 2016-2024 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From d005f92af2097d8ad224ed833585555ec6ca52d0 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Wed, 10 Jan 2024 10:59:14 +0000 Subject: [PATCH 23/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eca5a41..069075b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Connector Version: 3.5.0 Product Vendor: Anomali Product Name: ThreatStream Product Version Supported (regex): ".\*" -Minimum Product Version: 6.1.1 +Minimum Product Version: 6.0.0 Integrates a variety of generic, reputation, and investigative actions from the Anomali ThreatStream threat intelligence platform From 534fa3022a080b067d89a903bb6582fb520bab3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pos=C5=82uszny?= Date: Wed, 10 Jan 2024 12:00:45 +0100 Subject: [PATCH 24/34] updated min version --- threatstream.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threatstream.json b/threatstream.json index 05f1618..bb533e0 100644 --- a/threatstream.json +++ b/threatstream.json @@ -18,7 +18,7 @@ "product_name": "ThreatStream", "product_version_regex": ".*", "python_version": "3", - "min_phantom_version": "6.0.0", + "min_phantom_version": "6.1.1", "fips_compliant": true, "license": "Copyright (c) 2016-2024 Splunk Inc.", "pip_dependencies": { From b368d1cfb661b56ad7334d28719830e6fea9aa77 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Wed, 10 Jan 2024 11:01:45 +0000 Subject: [PATCH 25/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 069075b..eca5a41 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Connector Version: 3.5.0 Product Vendor: Anomali Product Name: ThreatStream Product Version Supported (regex): ".\*" -Minimum Product Version: 6.0.0 +Minimum Product Version: 6.1.1 Integrates a variety of generic, reputation, and investigative actions from the Anomali ThreatStream threat intelligence platform From b0218992f529fa54a12568e3b574d985e3c0ed9e Mon Sep 17 00:00:00 2001 From: root Date: Thu, 11 Jan 2024 02:17:33 -0800 Subject: [PATCH 26/34] Bumped up the version of threatstream from 3.5.0 to 3.5.1 --- threatstream.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/threatstream.json b/threatstream.json index bb533e0..c401e2a 100644 --- a/threatstream.json +++ b/threatstream.json @@ -5,12 +5,12 @@ "publisher": "Splunk", "type": "threat intel", "main_module": "threatstream_connector.py", - "app_version": "3.5.0", + "app_version": "3.5.1", "latest_tested_versions": [ "On-premise v4.0 RED", "Cloud, 26 September 2022" ], - "utctime_updated": "2022-01-21T10:26:01.000000Z", + "utctime_updated": "2024-01-11T10:17:22.000000Z", "package_name": "phantom_threatstream", "logo": "logo_anomali.svg", "logo_dark": "logo_anomali_dark.svg", @@ -27225,4 +27225,4 @@ } ] } -} +} \ No newline at end of file From 5af4c3b3d74f98360aa4b0d02d24dc80293ba99b Mon Sep 17 00:00:00 2001 From: root Date: Thu, 11 Jan 2024 02:18:10 -0800 Subject: [PATCH 27/34] Release notes for version 3.5.1 --- LICENSE | 2 +- README.md | 2 +- __init__.py | 2 +- release_notes/3.5.1.md | 3 +++ release_notes/unreleased.md | 4 ---- threatstream_detonate_url.html | 2 +- threatstream_display_actor.html | 2 +- threatstream_display_associations.html | 2 +- threatstream_display_rule.html | 2 +- threatstream_display_vulnerability.html | 2 +- threatstream_get_import_session.html | 2 +- threatstream_get_incident.html | 2 +- threatstream_get_observable.html | 2 +- threatstream_get_report.html | 2 +- threatstream_get_vulnerability.html | 2 +- threatstream_list_associations.html | 2 +- threatstream_update_incident.html | 2 +- threatstream_update_threat_bulletin.html | 2 +- 18 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 release_notes/3.5.1.md diff --git a/LICENSE b/LICENSE index e920929..b7b3c69 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright (c) 2016-2022 Splunk Inc. + Copyright (c) 2016-2024 Splunk Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index eca5a41..45a2387 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # ThreatStream Publisher: Splunk -Connector Version: 3.5.0 +Connector Version: 3.5.1 Product Vendor: Anomali Product Name: ThreatStream Product Version Supported (regex): ".\*" diff --git a/__init__.py b/__init__.py index 156a533..d7d82bb 100644 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,6 @@ # File: __init__.py # -# Copyright (c) 2016-2022 Splunk Inc. +# Copyright (c) 2016-2024 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/release_notes/3.5.1.md b/release_notes/3.5.1.md new file mode 100644 index 0000000..ef7d019 --- /dev/null +++ b/release_notes/3.5.1.md @@ -0,0 +1,3 @@ +* Feature that allows custom Observable Types to be used in import observables action + * Validation for default types has been removed + * Action no longer has dropdown, now information about default types is visible in description \ No newline at end of file diff --git a/release_notes/unreleased.md b/release_notes/unreleased.md index 12157d9..fbcb2fd 100644 --- a/release_notes/unreleased.md +++ b/release_notes/unreleased.md @@ -1,5 +1 @@ **Unreleased** - -* Feature that allows custom Observable Types to be used in import observables action - * Validation for default types has been removed - * Action no longer has dropdown, now information about default types is visible in description diff --git a/threatstream_detonate_url.html b/threatstream_detonate_url.html index ea84fda..337f41a 100644 --- a/threatstream_detonate_url.html +++ b/threatstream_detonate_url.html @@ -10,7 +10,7 @@ {% block widget_content %}