Skip to main content
Elastic Security stores threat indicators in the threat.indicator fields of the Elastic Common Schema (ECS), making them available for correlation rules, timeline investigations, and indicator match rules. You can populate these fields by polling the SOC Defenders REST API with a Python script or custom integration, or — on Pro — by configuring the Threat Intelligence TAXII integration in Elastic Agent to handle polling automatically.

Option 1: REST API with custom ingest

Use a Python script to poll GET /api/v1/iocs on a schedule, map the response fields to ECS, and index the documents into Elasticsearch.

Poll the API and index to Elasticsearch

The following script fetches IPv4 indicators and indexes them into an Elasticsearch index named logs-ti.socdefenders-default. Adjust the IOC_TYPE and INDEX variables to suit your environment.
poll_and_index.py
Run this script on a schedule using cron or a task scheduler. For Free tier accounts, a 15-minute interval keeps you within the rate limit. Pro accounts can reduce the interval to 1 minute.

ECS field mapping

Option 2: TAXII via Elastic Agent (Pro)

Elastic Agent includes a Threat Intelligence integration that supports TAXII 2.1 feeds. Once configured, Elastic Agent polls the SOC Defenders TAXII server on a schedule and indexes STIX 2.1 objects directly into ECS-mapped fields — no custom code required.
The TAXII integration requires a SOC Defenders Pro subscription.
1

Add the Threat Intelligence integration

In Kibana, go to Fleet → Integrations and search for Threat Intelligence. Select the integration and click Add Threat Intelligence.
2

Configure the TAXII source

In the integration settings, choose TAXII as the source type and enter the following:
3

Assign to an agent policy

Assign the integration to an Elastic Agent policy and deploy. Elastic Agent will begin polling and indexing indicators automatically.
4

Verify ingestion

In Kibana Discover, filter on event.category: threat and event.type: indicator to confirm indicators are arriving.

Detection with EQL

Once indicators are indexed, use indicator match rules or the following EQL query to hunt for network connections to known-malicious IPs in your environment.

Correlate network events with ingested IP indicators

For a simpler ad-hoc search using ES|QL: