ExtraHop Integration for Elastic

Version 0.5.0 (View all)
Managed integration release status GA
Subscription level
What's this?
Basic
Developed by
What's this?
Elastic
Ingestion method(s) API
Minimum Kibana version(s) 9.1.2
9.0.5
8.19.2
8.18.5
Important - Managed integrations on Elastic Cloud Hosted

You can use this integration as an Elastic Managed integration on Elastic Cloud Hosted deployments running this version or later.

The ExtraHop integration v0.5.0 is in technical preview

To use pre-release integrations, go to the Integrations page in Kibana, scroll down, and toggle on the Display beta integrations option.

ExtraHop delivers complete network visibility through its agentless RevealX NDR platform, empowering security teams to close detection gaps left by EDR, SIEM, and logs. ExtraHop provides the deep intelligence needed to detect threats faster, investigate with greater context, and respond at the speed of modern risk.

The ExtraHop integration for Elastic allows you to collect logs from ExtraHop RevealX 360 API, then visualise the data in Kibana.

The ExtraHop integration is compatible with RevealX 360 version 25.2 and v1 version of ExtraHop RevealX 360 APIs.

This integration periodically queries the ExtraHop RevealX 360 API to retrieve detections and investigation.

This integration collects log messages of the following types:

Integrating ExtraHop with Elastic SIEM provides comprehensive visibility by turning high-fidelity wire-data detections into actionable insights while also capturing investigation data for deeper analysis. This integration strengthens threat hunting, accelerates incident response, and closes visibility gaps across the network. Dedicated Kibana dashboards for detections present detailed breakdowns by type, category, status, resolution, and assignee, supporting efficient triage and response. In parallel, investigation dashboards deliver insights into total investigations, time-based trends, top assignees, and distributions by status and assessment, giving analysts clear context to prioritize and manage cases. Together, these capabilities streamline SOC workflows and improve accountability across detection and investigation processes.

This integration installs Elastic latest transforms. For more details, check the Transform setup and requirements.

To collect data through the ExtraHop APIs, API Access must be enabled. Authentication is handled using a Client ID and Client Secret, which serve as the required credentials. Any requests made without credentials will be rejected by the ExtraHop APIs.

  1. Log in to RevealX 360.
  2. Click the System Settings icon at the top right of the page and then click All Administration.
  3. Click API Access.
  4. In the Manage API Access section, click Enable.
Note

If you disable and then re-enable the REST API, the REST API might be unavailable for approximately 15 minutes due to DNS propagation, even if the Status section indicates that access is enabled. We recommend that you do not disable and re-enable the REST API often.

  1. Log in to RevealX 360.
  2. Click the System Settings icon at the top right of the page and then click All Administration.
  3. Click API Access.
  4. Click Create Credentials.
  5. In the Name field, type a name for the credentials.
  6. In the Privileges field, specify a privilege level for the credentials. For more information about each privilege level, see ExtraHop user account privileges.
  7. In the Packet Access field, specify whether you can retrieve packets and session keys with the credentials.
  8. Click Save.
  9. Copy REST API Credentials.

For more details, check Documentation.

Note

You must have system and access administration privileges.

This integration supports both Elastic Agentless-based and Agent-based installations.

Agentless integrations allow you to collect data without having to manage Elastic Agent in your cloud. They make manual agent deployment unnecessary, so you can focus on your data instead of the agent that collects it. For more information, refer to Agentless integrations and the Agentless integrations FAQ.

Agentless deployments are only supported in Elastic Serverless and Elastic Cloud environments. This functionality is in beta and is subject to change. Beta features are not subject to the support SLA of official GA features.

Elastic Agent must be installed. For more details, check the Elastic Agent installation instructions. You can install only one Elastic Agent per host.

  1. In the top search bar in Kibana, search for Integrations.

  2. In the search bar, type ExtraHop.

  3. Select the ExtraHop integration from the search results.

  4. Select Add ExtraHop to add the integration.

  5. Enable and configure only the collection methods which you will use.

    • To Collect ExtraHop logs via API, you'll need to:

      • Configure URL, Client ID, and Client Secret.
      • Enable/Disable the required datasets.
      • For each dataset, adjust the integration configuration parameters if required, including the Initial Interval, Interval, etc. to enable data collection.
  6. Select Save and continue to save the integration.

  1. In the top search bar in Kibana, search for Dashboards.
  2. In the search bar, type extrahop.
  3. Select a dashboard for the dataset you are collecting, and verify the dashboard information is populated.
  1. In the top search bar in Kibana, search for Transforms.
  2. Select the Data / Transforms from the search results.
  3. In the search bar, type extrahop.
  4. All transforms from the search results should indicate Healthy under the Health column.

For more information on architectures that can be used for scaling this integration, check the Ingest Architectures documentation.

These inputs can be used in this integration:

This integration datasets use the following APIs:

The data streams below collect a full snapshot of ExtraHop investigations on every polling interval, so their backing indices hold one copy of each record per interval. The package-level data stream lifecycle also covers the detection data stream on Serverless, although it collects incrementally.

The package bounds the growth of these source data streams with a retention that depends on the deployment type:

Data stream Self-managed and Elastic Cloud Hosted (ILM policy) Serverless (data stream lifecycle)
logs-extrahop.investigation-* logs-extrahop.investigation-default_policy: roll over after 30d, delete 30d after rollover delete 30d after rollover
logs-extrahop.detection-* none, so the default logs policy applies (no deletion) delete 30d after rollover

On self-managed and Elastic Cloud Hosted deployments the ILM policy applies. The data stream lifecycle shipped with the package is not used there. ILM counts the delete age from the rollover of a backing index, so a document can remain for up to the rollover age plus the delete age. On Serverless, ILM is not available and the data stream lifecycle applies instead. It also works per backing index: Elasticsearch rolls the write index over automatically on age, size, or document count, and deletes a backing index once the retention has passed since it rolled over. A document therefore stays for the retention plus up to one rollover interval. The rollover age is derived from the retention and is an implementation detail that Elasticsearch may change. Where the package installs a transform, the transform's destination indices are not affected by either.

To keep data for a different period:

  • Self-managed and Elastic Cloud Hosted: edit the ILM policy in Kibana under Stack Management → Index Lifecycle Policies, or with PUT _ilm/policy/<policy name>. A package upgrade reinstalls the package's ILM policies, so check your change after upgrading.
  • Self-managed and Elastic Cloud Hosted: no package policy is attached to logs-extrahop.detection-*, so the default logs policy applies. To set a retention, create an ILM policy and add index.lifecycle.name: <policy name> to the logs-extrahop.detection@custom component template. Fleet keeps @custom templates across package upgrades, and the change applies from the next rollover.
  • Serverless: set the retention on the data stream, for example PUT _data_stream/logs-extrahop.investigation-default/_lifecycle with the body {"data_retention": "90d"}. Replace default with your namespace.

This integration includes one or more Kibana dashboards that visualizes the data collected by the integration. The screenshots below illustrate how the ingested data is displayed.