Skip to main content
DFIRLab
ResearchUse CasesCompare
Intel BriefingsThreat Actors
IOC CheckFile AnalyzerPhishing CheckDomain LookupExposure ScannerPrivacy Check
WikiAbout
PlatformNew
DFIRLab

Security research, threat intelligence, and free DFIR tools.

Tools

Phishing CheckerExposure ScannerDomain LookupFile AnalyzerPrivacy Check

Use Cases

SOC Phishing TriageIR IOC EnrichmentMSSP Exposure Monitoringn8n AutomationSee all use cases →

Compare

vs VirusTotalvs Shodanvs TheHiveSee all 8 →

Resources

DFIR WikiIntel BriefingsAboutPlatformAPI Docs

Legal

Privacy PolicyRSS FeedSitemap

© 2026 DFIR Lab. All rights reserved.

PERSONA
Splunk / Detection Engineer
CATEGORY
Integration
ENDPOINTS
3 used
UPDATED
April 2026
USE CASE · SPLUNK / DETECTION ENGINEER

IOC enrichment for Splunk

Splunk is where most SOC teams live, but SPL stops at the data you ingest — nothing in Splunk natively tells you whether an IP in your logs is a botnet node or a benign CDN. DFIR Platform plugs that gap with a custom search command that calls a single enrichment API from inside the search pipeline.
Create a free account (100 credits/mo)
KEY TAKEAWAYS
  1. 01Enrich IPs, domains, URLs and hashes directly from SPL — no tab-switching, no side tools.
  2. 02One API key replaces the 8–12 keys you would otherwise juggle for individual TI sources.
  3. 03Standard Splunk custom search command — installs as a regular app, runs on Splunk 8.x / 9.x and Splunk Cloud.
01·CONTEXT
01
CONTEXT

SPL has no native threat-intel reach

Splunk's detection engine is excellent at pattern-matching the events you already ingested, but enrichment of external indicators is out of scope. Analysts end up exporting IPs into a browser tab, checking VirusTotal, AbuseIPDB, Shodan by hand, and pasting the verdict back into the ticket — every single time.
PAIN POINTS
  1. 01Manual copy-paste between Splunk and 5+ TI tabs for every noteworthy indicator.
  2. 02KV-store threat lists go stale without a pipeline to refresh them; fresh intel rarely lands in dashboards.
  3. 03Each individual TI integration brings its own API key, rate limit, and failure mode to manage.
The reality
“Manual copy-paste between Splunk and 5+ TI tabs for every noteworthy indicator.”
02·CAPABILITIES
02
CAPABILITIES

The endpoints that solve it

DFIR Platform ships an enrichment endpoint designed to be called from inside the SPL pipeline. Package it as a Splunk custom search command and analysts get multi-source reputation data appended to events in-line — available for filtering, stats, dashboards and alerts like any other Splunk field.

Multi-source IOC enrichment

3 credits / IOC
POST /v1/enrichment/lookup

Accepts an indicators[] array of IPs, domains, URLs or hashes. Returns a normalized verdict aggregated across up to 11 integrated sources (VirusTotal, AbuseIPDB, GreyNoise, Shodan, urlscan, OTX, Pulsedive, and more).

Custom search command integration

Streaming custom search command (chunked protocol, python.version = python3) reads a field per event, calls the API, and appends risk_score / verdict / sources_hit fields to each event.

SPL-native output

Enriched events keep flowing through the pipeline — usable in stats, timechart, where, and any downstream alert or dashboard with no schema changes.

03·WORKFLOW
03
WORKFLOW

One line of SPL, one API call

The custom search command reads a field from each event, calls the DFIR Platform enrichment endpoint, and writes the verdict back into the event. Here is the minimal shape — the full walkthrough (app layout, commands.conf, packaging, Splunk Cloud notes) lives in the integration article.
$ dfir-lab run splunk-ioc-enrichment
# In SPL — enrich every src_ip in a firewall search
index=firewall action=blocked
| dfir_enrich type=ip field=src_ip
| where dfir_risk_score > 70
| stats count by src_ip, dfir_verdict, dfir_sources_hit

# The command itself POSTs each indicator to:
#   https://api.dfir-lab.ch/v1/enrichment/lookup
#   Authorization: Bearer <api_key>
SPL teaser — full commands.conf + Python implementation in the article.
  1. 01
    Step 01

    Package as a Splunk app

    Standard app layout with commands.conf (chunked = true, python.version = python3) registering a streaming custom search command that shells out to the enrichment API.

  2. 02
    Step 02

    Invoke from any search

    `| dfir_enrich type=ip field=src_ip` — runs per event, appends verdict fields, works inside scheduled searches, notable-event rules, and dashboards alike.

Full integration guide

Step-by-step walkthrough with configuration, error handling, and deployment notes.

Read the Splunk integration guide
04·PRICING
04
PRICING

Pricing that tracks your workload

Splunk enriches at pipeline volume — every scheduled search that touches an IP or domain can fan out dozens of lookups. Professional (2,500 credits/mo) is the realistic starting tier; start on Starter only if you are gating enrichment to a small set of high-value searches.
Recommended tier
Professional
2,500 credits / month
Entry price
$99/mo
  1. 01

    Light usage — 50 enriched IOCs/day in hand-run searches

    50 × 30 × 3 credits = 4,500 credits/month
    Professional (2,500) + a small top-up, or move to Enterprise if analyst volume grows.
  2. 02

    Scheduled dashboards — 20 IOCs/hour from a saved search

    20 × 24 × 30 × 3 credits = 43,200 credits/month
    Enterprise. Alternatively, cache enrichments with | lookup and only hit the API on new indicators.
  3. 03

    Evaluation — one dashboard, a few dozen IOCs/day

    30 × 30 × 3 credits = 2,700 credits/month
    Professional ($99, 2,500 credits) with a modest overage, or Starter ($29, 500) for truly light evaluation.
05·GET STARTED
05
GET STARTED

Three ways to evaluate

Pick the path that matches your stage. No sales call, no credit card required.

Create a free account (100 credits/mo)

Full API access, dashboard, and your own credits. Includes everything the free tier offers.

Sign up

API reference

Full schema, error codes, rate limits, and copy-ready code snippets for every endpoint referenced above.

Read docs
06·FAQ
06
FAQ

Frequently asked

Q / 01
Does this work on Splunk Cloud?
Yes, if your Splunk Cloud stack has private app installation enabled. The app is a standard custom search command with no native binaries — it ships Python only, so it passes app inspection.
Q / 02
Streaming or generating command?
Streaming. It reads a field from each event, enriches it, and appends fields. A generating variant (one-shot lookup without an upstream search) is a trivial modification — see the article for both.
Q / 03
How do I keep credit usage predictable at search-time?
Dedup before enrichment — `| dedup src_ip | dfir_enrich ...` — and/or cache results in a KV-store lookup keyed by indicator with a TTL. Most teams only need fresh enrichment per indicator once or twice a day.
Q / 04
Can I enrich hashes and URLs the same way?
Yes. The endpoint handles ip, domain, url, and hash types. Pass `type=url` or `type=hash` to the same command against the appropriate field.
RELATED · INDEX

Other teams solving adjacent problems

01
ADJACENT USE CASE

DFIR Platform as a TheHive Cortex Analyzer

TheHive / SOC Engineer
02
ADJACENT USE CASE

Alert Enrichment for Wazuh

Wazuh / SOC Engineer
03
ADJACENT USE CASE

Automated Phishing Triage for SOC Teams

SOC Analyst
Ready when you are

Stop triaging by hand.

Create a free account — 100 credits per month, no credit card. Or keep browsing to find the use case that matches your workflow.

Browse all use casesCreate free account