ThreatDown OneView API
Malwarebytes Connector
The ThreatDown OneView API connector facilitates automated interactions with ThreatDown's threat intelligence services, enabling efficient threat detection and management.
ThreatDown OneView API serves as a comprehensive threat detection and management tool, offering a robust API for exporting, searching, and managing detection data. By integrating with Swimlane Turbine, security teams can automate the extraction of detailed detection information, manage false positive reporting, and perform advanced searches with fine-grained filters. This connector streamlines the process of threat detection analysis and response, enhancing the efficiency and effectiveness of security operations.
Limitations
OAuth2 client credentials authentication provides application-level access to Malwarebytes resources without user context. This form of authentication allows an application to make API requests on its own behalf using the client credentials flow.
With OAuth2 client credentials authentication, you can perform actions such as:
- Export detection data synchronously and asynchronously
- Search detections with advanced filtering and grouping
- Retrieve detailed detection information by ID
- Submit false positive requests with evidence
- Access comprehensive threat intelligence data
Supported Version
The Malwarebytes connector supports the following versions of the Malwarebytes API:
OAuth 2.0 Client Credentials in Malwarebytes v1:
- Fully supported for application-only authentication
- Used for requests where user authentication is not required (accessing detection data and threat intelligence)
Configuration
Prerequisites
To effectively utilize the ThreatDown OneView API connector with Swimlane Turbine, ensure you have the following prerequisites:
- OAuth2 client credentials authentication with the following parameters:
- URL: Endpoint for ThreatDown OneView API access
- Client ID: Unique identifier for OAuth2 authentication
- Client Secret: Confidential key for OAuth2 authentication
- Token URL: Endpoint to obtain OAuth2 tokens
- Account ID: Identifier for the user's account in ThreatDown OneView
Authentication Methods
OAuth 2.0 Client Credentials Authentication
Setup Instructions:
You will need to sign up for a Malwarebytes Nebula account and generate client credentials. Once you have those, you'll also need to obtain your account ID. Follow the steps below:
- Log into your Malwarebytes Nebula account
- Navigate to the Integrate section
- Generate your client credentials (client_id and client_secret)
- Note your Account ID (UUID format) from your account settings
You can find the Account ID in your Malwarebytes Nebula account settings or API configuration page.
Document References:
Troubleshoot Tips
Note that client credentials are application-specific and should be kept secure. The access token obtained through the client credentials flow is valid for a limited time and will be automatically refreshed by the connector.
Capabilities
- Export Detections
- Export Detections Asynchronously
- Get Detection by ID
- Search Detections
- Search Detections GroupBy
- Submit False Positive Request
Export Detections
The export detections endpoint returns detection data in various formats (CSV, XLSX, HTML, ODS, TXT, RTF, JSON) with configurable field selection and filtering options. This endpoint allows for comprehensive data export with flexible query groups and field mapping.
More details can be found here.
Export Detections Asynchronously
The asynchronous export endpoint provides the same functionality as the synchronous export but processes large datasets in the background, returning an export job ID for tracking progress and download completion.
More details can be found here.
Get Detection by ID
The get detection by ID endpoint returns detailed information about a specific detection, including remediation status, related detections, and comprehensive metadata.
More details can be found here.
Search Detections
The search detections endpoint provides comprehensive search capabilities across detection events with advanced filtering, sorting, and pagination options. Supports extensive filtering by endpoint information, plugin data, threat characteristics, and temporal ranges.
More details can be found here.
Search Detections GroupBy
The search detections groupby endpoint enables analytics and grouping of detection data across various dimensions, providing aggregated insights and summary statistics for threat analysis and reporting.
More details can be found here.
Submit False Positive Request
The submit false positive request endpoint allows security teams to report legitimate files or applications that have been incorrectly flagged as threats, facilitating continuous improvement of detection accuracy.
More details can be found here.
Configurations
ThreatDown OneView API Authentication
Authentication configuration for ThreatDown OneView API using OAuth2 client credentials
Configuration Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
url | A URL to the target host. | string | Required |
token_url | ο»Ώ | string | Required |
client_id | The client ID | string | Required |
client_secret | The client secret. | string | Required |
accountid | Your Nebula account ID (UUID format) | string | Required |
scope | Permission scopes for this action. | array | Optional |
verify_ssl | Verify SSL certificate | boolean | Optional |
http_proxy | A proxy to route requests through. | string | Optional |
Actions
Export Detections
Exports a list of detections from ThreatDown OneView API in the specified format, with options to select fields and filter by groups.
Endpoint
- URL: oneview/v1/detections/export
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
format | string | Optional | The output file format |
download | boolean | Optional | Whether to instruct the client to download the response as a file |
type | string | Optional | The encoding of the output |
select | array | Optional | Which fields to select from the response |
select.newField | string | Optional | The new value |
select.field | string | Required | The response field to map to a new value |
groups | array | Optional | List of queries for filtering detections |
groups.name | string | Optional | Name of the query group |
groups.account_ids | array | Required | List of account IDs to filter detections by |
Input Example
{"format":"string","download":true,"type":"string","select":[{"newField":"string","field":"string"}],"groups":[{"name":"Example Name","account_ids":["string"]}]}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":{}}
Export Detections Asynchronously
Initiates an asynchronous export of detection data from ThreatDown OneView API in the specified format, with options to select fields and filter by groups.
Endpoint
- URL: nebula/v1/detections/export/async
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
format | string | Optional | The output file format |
download | boolean | Optional | Whether to instruct the client to download the response as a file |
type | string | Optional | The encoding of the output |
select | array | Optional | Which fields to select from the response |
select.newField | string | Optional | The new value |
select.field | string | Required | The response field to map to a new value |
groups | array | Optional | List of queries for filtering detections |
groups.name | string | Optional | Name of the query group |
groups.account_ids | array | Required | List of account IDs to filter detections by |
Input Example
{"format":"string","download":true,"type":"string","select":[{"newField":"string","field":"string"}],"groups":[{"name":"Example Name","account_ids":["string"]}]}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":{}}
Get Detection by ID
Retrieve detailed information for a specific detection using its unique ID from ThreatDown OneView API.
Endpoint
- URL: nebula/v1/detections/{{id}}
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
path_parameters.id | string | Required | The unique identifier of the detection to retrieve |
Input Example
{"path_parameters":{"id":"12345678-1234-1234-1234-123456789abc"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":{}}
Search Detections
Retrieve filtered detection results from ThreatDown OneView API using specified criteria in the request body.
Endpoint
- URL: nebula/v1/detections
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
protection_status | string | Optional | Protection status of the endpoint(s) |
scan_type | string | Optional | Type of the scan |
schedule_id | string | Optional | ID of the schedule |
schedule_etag | string | Optional | ETAG of the schedule |
job_id | string | Optional | ID of the job originating this detection |
domain_name | string | Optional | Filter the search to the endpoints with specified domain name |
engine_version | string | Optional | Filter the search to the endpoints with specified engine version |
last_user | string | Optional | Last user that logged into the machine |
last_user.keyword | string | Optional | Last user that logged into the machine (exact match) |
plugins.siem.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by the SIEM plugin |
plugins.siem.plugin_version | string | Optional | Filter the search to the endpoints with specified SIEM plugin version |
plugins.browser_phishing_protection.plugin_version | string | Optional | Filter the search to the endpoints with specified Browser Phishing Protection plugin version |
plugins.incident_response.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by IR plugin |
plugins.incident_response.plugin_version | string | Optional | Filter the search to the endpoints with specified IR plugin version |
plugins.endpoint_detection_response.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by EDR plugin |
plugins.endpoint_detection_response.plugin_version | string | Optional | Filter the search to the endpoints with specified EDR plugin version |
plugins.endpoint_protection.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by EP plugin |
plugins.endpoint_protection.update_package_version | string | Optional | Filter the search to the endpoints with specified EP update package version |
plugins.endpoint_protection.component_package_version | string | Optional | Filter the search to the endpoints with specified EP component package version |
plugins.endpoint_protection.sdk_version | string | Optional | Filter the search to the endpoints with specified EP SDK version |
plugins.endpoint_protection.plugin_version | string | Optional | Filter the search to the endpoints with specified EP plugin version |
plugins.asset_manager.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by asset manager plugin |
plugins.asset_manager.plugin_version | string | Optional | Filter the search to the endpoints with specified asset manager plugin version |
fully_qualified_host_name | string | Optional | Filter the search to the endpoints with specified, fully qualified host name |
host_name | string | Optional | Filter the search to the endpoints with specified host name |
Input Example
{"protection_status":"active","scan_type":"string","schedule_id":"string","schedule_etag":"string","job_id":"string","domain_name":"Example Name","engine_version":"string","last_user":"string","last_user.keyword":"string","plugins.siem.reboot_reason":"string","plugins.siem.plugin_version":"string","plugins.browser_phishing_protection.plugin_version":"string","plugins.incident_response.reboot_reason":"string","plugins.incident_response.plugin_version":"string","plugins.endpoint_detection_response.reboot_reason":"string","plugins.endpoint_detection_response.plugin_version":"string","plugins.endpoint_protection.reboot_reason":"string","plugins.endpoint_protection.update_package_version":"string","plugins.endpoint_protection.component_package_version":"string","plugins.endpoint_protection.sdk_version":"string","plugins.endpoint_protection.plugin_version":"string","plugins.asset_manager.reboot_reason":"string","plugins.asset_manager.plugin_version":"string","fully_qualified_host_name":"Example Name","host_name":"Example Name","os_info.os_release_name":"Example Name","os_info.os_architecture":"string","os_info.os_platform":"string","os_info.os_version":"string","os_info.os_type":"string","nics.description":"string","nics.mac_address":"string","nics.ips":"string","host_name.keyword":"Example Name","fully_qualified_host_name.keyword":"Example Name","engine_version.keyword":"string","domain_name.keyword":"Example Name","at_after":"string","at_before":"string","machine_name.keyword":"Example Name","machine_name":"Example Name","process_name.keyword":"Example Name","process_name":"Example Name","affected_application.keyword":"string","affected_application":"string","category":"string","not.category":"string","md5":"string","sha256":"string","path.keyword":"string"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
detections | array | Output field: detections |
detections.id | string | Unique identifier |
detections.type | array | Type of the resource |
detections.status | string | Status value |
detections.path | string | Output field: detections.path |
detections.group_id | string | Unique identifier |
detections.group | object | Output field: detections.group |
detections.is_root_detection | boolean | Output field: detections.is_root_detection |
detections.machine_id | string | Unique identifier |
detections.account_id | string | Unique identifier |
detections.detection_id | string | Unique identifier |
detections.scanned_at | string | Output field: detections.scanned_at |
detections.scanned_at_offset_seconds | number | Output field: detections.scanned_at_offset_seconds |
detections.reported_at | string | Output field: detections.reported_at |
detections.resource_created_at | string | Output field: detections.resource_created_at |
detections.resource_modified_at | string | Output field: detections.resource_modified_at |
detections.threat_name | string | Name of the resource |
detections.category | string | Output field: detections.category |
detections.action_taken | string | Output field: detections.action_taken |
detections.is_rtp_stream_event | boolean | Output field: detections.is_rtp_stream_event |
detections.process_name | string | Name of the resource |
detections.cleaned_at | string | Output field: detections.cleaned_at |
detections.machine_name | string | Name of the resource |
Output Example
{"status_code":200,"reason":"OK","json_body":{"detections":[{}],"aggregations":{},"total_count":0,"next_cursor":"eyJzdGFydF9pbmRleCI6MTAwfQ=="}}
Search Detections GroupBy
Performs a search for grouped detections in ThreatDown OneView API, with options to specify grouping and page size.
Endpoint
- URL: nebula/v1/detections/search-groupby
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
group_by | string | Optional | The group by field Schema |
page_size | number | Optional | The size of the page |
next_cursor | string | Optional | Pagination cursor for next set of results |
protection_status | string | Optional | Protection status of the endpoint(s) |
scan_type | string | Optional | Type of the scan |
schedule_id | string | Optional | ID of the schedule |
schedule_etag | string | Optional | ETAG of the schedule |
job_id | string | Optional | ID of the job originating this detection |
domain_name | string | Optional | Filter the search to the endpoints with specified domain name |
engine_version | string | Optional | Filter the search to the endpoints with specified engine version |
last_user | string | Optional | Last user that logged into the machine |
last_user.keyword | string | Optional | Last user that logged into the machine (exact match) |
plugins.siem.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by the SIEM plugin |
plugins.siem.plugin_version | string | Optional | Filter the search to the endpoints with specified SIEM plugin version |
plugins.browser_phishing_protection.plugin_version | string | Optional | Filter the search to the endpoints with specified Browser Phishing Protection plugin version |
plugins.incident_response.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by IR plugin |
plugins.incident_response.plugin_version | string | Optional | Filter the search to the endpoints with specified IR plugin version |
plugins.endpoint_detection_response.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by EDR plugin |
plugins.endpoint_detection_response.plugin_version | string | Optional | Filter the search to the endpoints with specified EDR plugin version |
plugins.endpoint_protection.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by EP plugin |
plugins.endpoint_protection.update_package_version | string | Optional | Filter the search to the endpoints with specified EP update package version |
plugins.endpoint_protection.component_package_version | string | Optional | Filter the search to the endpoints with specified EP component package version |
plugins.endpoint_protection.sdk_version | string | Optional | Filter the search to the endpoints with specified EP SDK version |
plugins.endpoint_protection.plugin_version | string | Optional | Filter the search to the endpoints with specified EP plugin version |
plugins.asset_manager.reboot_reason | string | Optional | Filter the search to the endpoints with specified reboot reason, as reported by asset manager plugin |
Input Example
{"group_by":"string","page_size":123,"next_cursor":"string","protection_status":"active","scan_type":"string","schedule_id":"string","schedule_etag":"string","job_id":"string","domain_name":"Example Name","engine_version":"string","last_user":"string","last_user.keyword":"string","plugins.siem.reboot_reason":"string","plugins.siem.plugin_version":"string","plugins.browser_phishing_protection.plugin_version":"string","plugins.incident_response.reboot_reason":"string","plugins.incident_response.plugin_version":"string","plugins.endpoint_detection_response.reboot_reason":"string","plugins.endpoint_detection_response.plugin_version":"string","plugins.endpoint_protection.reboot_reason":"string","plugins.endpoint_protection.update_package_version":"string","plugins.endpoint_protection.component_package_version":"string","plugins.endpoint_protection.sdk_version":"string","plugins.endpoint_protection.plugin_version":"string","plugins.asset_manager.reboot_reason":"string","plugins.asset_manager.plugin_version":"string","fully_qualified_host_name":"Example Name","host_name":"Example Name","os_info.os_release_name":"Example Name","os_info.os_architecture":"string","os_info.os_platform":"string","os_info.os_version":"string","os_info.os_type":"string","nics.description":"string","nics.mac_address":"string","nics.ips":"string","host_name.keyword":"Example Name","fully_qualified_host_name.keyword":"Example Name","engine_version.keyword":"string","domain_name.keyword":"Example Name","at_after":"string","at_before":"string","machine_name.keyword":"Example Name","machine_name":"Example Name","process_name.keyword":"Example Name","process_name":"Example Name","affected_application.keyword":"string","affected_application":"string","category":"string","not.category":"string"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
results | array | Result of the operation |
results.file_name | string | Name of the resource |
results.file | string | Result of the operation |
next_cursor | string | Output field: next_cursor |
Output Example
{"status_code":200,"reason":"OK","json_body":{"results":[],"next_cursor":"string"}}
Submit False Positive Request
Submits a false positive request to ThreatDown OneView API using detection IDs provided in the JSON body.
Endpoint
- URL: nebula/v1/detections/submit-fp
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
ids | array | Optional | Array of detection IDs to mark as false positive |
additional_info | string | Optional | Additional information about the false positive |
start_date | string | Optional | The start date of the detection |
end_date | string | Optional | The end date of the detection |
Input Example
{"ids":["string"],"additional_info":"string","start_date":"string","end_date":"string"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":{}}
Response Headers
Header | Description | Example |
|---|---|---|
Content-Type | The media type of the resource | application/json |
Date | The date and time at which the message was originated | Thu, 01 Jan 2024 00:00:00 GMT |