Elastic SIEM & OpenCTI Integration

Priority : High
I’m currently working on integrating OpenCTI with Elastic SIEM. But when I look for documents, I get different guidance from OpenCTI and Elsatic(Providing both links below). I'm confused and stuck due to, which is the right way to integrate it exactly. I've applied the configurations, but yet not pulling data into SIEM. Anyone suggest the exact way to integrate the OpenCTI with Elastic SIEM? :disappointed_face:

Specifically, I’m looking to:

  • Pull IOCs (e.g., IPs, domains, hashes) from OpenCTI.
  • Ingest these into Elastic SIEM as enrichment data.
  • Correlate them with logs/events ingested from various sources in the SIEM.
  • Generate alerts when matches are found.

If anyone has experience with this setup or could point me toward best practices for enabling this integration, it would be greatly appreciated.

Thanks in advance for your support!

OpenCTI document link: connectors/stream/elastic/README.md at master · OpenCTI-Platform/connectors · GitHub
Elastic document link: OpenCTI | Elastic integrations

1 Like

I'm not the author of the integration, but from a quick glance over both links the OpenCTI document is quite old.

The Elastic OpenCTI integration is newer and currently supported. Which version of the stack are you using?

Hi Lesio,

Thanks for the response, I'm using the stack version 8.18.0 and OpenCTI version of 6.6.14. Could you help out please.!?

Hello Community,

Just checking in to see if anyone might have insights on this issue. I’m still facing challenges with the OpenCTI and Elastic SIEM integration.

If anyone has experience or suggestions, your support would be greatly appreciated!

Thanks in advance :folded_hands:

Hi Vishag,

I'm not the right person to guide you about it, as I don't have the knowledge. I thought that appropriate team will pick up this thread. I just forwarded link to private channels :crossed_fingers:

1 Like

Hey Lesio,

Thank you for the response and for forwarding the link to the relevant channels — really appreciate your help! :folded_hands:

I'm now in a state where,

I've installed OpenCTI connector agent in the host machine.
The agent looks healthy and receiving agent logs(Attached Screenshot).
But not ingesting any IOCs by the agent,
Is there anything specifically I should configure in Elastic for this ? Like Configuring index for enrichment, as such any ? If so, what are the criteria I need do consider ?

Hi Vishag,

Regarding this:

I've installed OpenCTI connector agent in the host machine.

I don't think this is necessary, the OpenCTI integration makes requests to the GraphQL API directly.

Is there anything specifically I should configure in Elastic for this ? Like Configuring index for enrichment, as such any ? If so, what are the criteria I need do consider ?

No, there is no extra configuration needed.

If the OpenCTI integration looks healthy and you cannot see any ingested data into Elastic, I would start by checking everything around the integration and the agent itself.

  • Config parameters such as the URL and the credentials.

  • Enable the option Enable request tracing in the integration config, and after the integration runs for a while, generate an agent diagnostics. In that diagnostics, you can check the interesting logs in the logs/elastic-agent/cel folder, where it should be a trace with every API request and response and it is very helpful to check if the API is sending valid data to the integration.

  • I'd also check the agent logs in that diagnostics, looking for any error related to the integration.

1 Like

Hi Chemamartinez,

Thank you for the support.

I'm looking on it now. I'm encountering an issue with the OpenCTI connector agent in Elastic.
Screenshot of error(left) with error log(right),

While troubleshooting, I noticed that the GraphQL endpoint (https://opencti-********.com/public/graphql) was temporarily inaccessible but returned to normal after some time (screenshot attached). The connector agent is also experiencing instability in elastic SIEM, occasionally switching to an unhealthy state. Kindly revert back if having any insights on this matter.

Here's the logs from elastic-agent.

The screenshot from Elastic SIEM & OpenCTI Integration - #8 by Vishag_Learning indicates that there is timeout reaching opencti graphql endpoint.
Can you run a curl from your agent 172-31-*-* onto that opencti graphql endpoint and check if you get a response? If there is no response, its likely an network issue that agent is unable to connect to internet.
If you do get successful response, does it take you a long enough time? If so, I suggest increasing HTTP Client Timeout setting in the Advanced Options.

I noticed that the GraphQL endpoint (https://opencti-********.com/public/graphql) was temporarily inaccessible but returned to normal after some time (screenshot attached).

I don't see that endpoint has returned to being accessible (successful response) from your screenshots. I suggest you select Enable request tracing option and collect agent diagnostics Common problems | Elastic Docs which now contains API request and response logs inside logs/elastic-agent*/cel folder. You can check if the response is successful (200 status) from there and also if it sends any data.

@Vishag_Learning, please redact any sensitive content before posting from trace logs. Your API request has Auth Key, so I deleted your comment for now.

So, based on your API response, the error is:

It looks like the Elastic Agent is trying to connect to your openci endpoint, but is either failing to establish connection or waiting for more than 30 seconds before failing.
To verify if it isn't a network issue, were you able to check if your server/instance where you installed Elastic Agent is able to connect to opencti endpoint? Can you check if you get a successful API response using curl?

1 Like

Hello @kcreddy ,

Thanks for the support. And No, Weren't getting response on curl. The issue was related to the network configuration of the EC2 instance where OpenCTI was deployed. It was initially using a NAT gateway for security , which restricted outbound connectivity.

After switching the network type to Internet Gateway, the integration started working as expected, and the IOCs are now being pulled into Elastic SIEM.

Hope this helps anyone facing a similar issue!

Thanks everyone for the support. :folded_hands:

1 Like