Splunk integration
Noxen's NDJSON export ingests cleanly into Splunk via either the
HTTP Event Collector or a Universal Forwarder file monitor. Each
finding becomes one Splunk event with structured fields ready for
search and dashboards — no props.conf regex wrangling
required.
What gets indexed
One JSON document per LF-delimited line, one finding per line.
Records share a common base (@timestamp,
source, host,
scan_started_at) plus a category field
that's one of cve, open_port,
tls, http_header, or
admin_surface. Sample CVE event:
{"@timestamp":"2026-05-27T03:14:00.123Z","category":"cve","cve_id":"CVE-2024-6387","cvss_score":8.1,"description":"A signal handler race condition in OpenSSH's server (sshd)…","host":"db-01.prod.example","matched_cpe":"cpe:2.3:a:openbsd:openssh:9.6:*:*:*:*:*:*:*","package_name":"openssh-server","package_version":"1:9.6p1-3ubuntu13.5","scan_started_at":"2026-05-27T03:14:00.123Z","severity":"critical","source":"noxen"}
Splunk's automatic JSON KV extraction handles the rest — every
field is searchable as field=value the moment the
event lands. Optional global tags (env,
region, tenant) apply to every record
via Noxen's Settings → SIEM export → Global tags.
Setup — HTTP Event Collector (recommended)
- In Splunk Web: Settings → Data inputs → HTTP Event Collector → New Token. Set
sourcetypetonoxen:findingsand pick an index (e.g.security). Copy the token. - Run a small forwarder on the Mac running Noxen — for example, a launchd job that POSTs each new NDJSON file to the HEC endpoint, one event per line via the
/services/collector/eventpath. (We ship a sample script in the docs.) - Confirm with a search:
index=security sourcetype=noxen:findings | head 10. Events should appear within a few seconds.
Setup — file monitor (Universal Forwarder)
- In Noxen: Settings → SIEM export → Add destination. Choose a folder reachable by the Universal Forwarder — typically a mounted share or a directory replicated to a Splunk-monitored host.
- On the forwarder, add to
inputs.conf:
and to[monitor:///var/log/noxen/*.ndjson] sourcetype = noxen:findings index = securityprops.conf:[noxen:findings] INDEXED_EXTRACTIONS = json KV_MODE = none TIMESTAMP_FIELDS = @timestamp SHOULD_LINEMERGE = false - Restart the forwarder, then search
index=security sourcetype=noxen:findingsto confirm.
Example searches
# Critical CVEs by host, last 7 days
index=security sourcetype=noxen:findings category=cve severity=critical earliest=-7d
| stats count by host, cve_id
| sort - count
# Hosts with exposed admin surfaces
index=security sourcetype=noxen:findings category=admin_surface
| stats values(display_name) as surfaces by host
# Weak TLS findings rolling weekly
index=security sourcetype=noxen:findings category=tls
| timechart span=1d count by severity
Compatibility
The NDJSON format is content-agnostic — it works with Splunk Enterprise, Splunk Cloud, and Splunk Free. HEC is the more elegant path for Splunk Cloud customers who can't run a forwarder on the Noxen host; file monitor is the cleaner path for on-prem clusters with a forwarder fleet already in place.
When events arrive
On scan completion (NDJSON written) plus the HEC POST latency or forwarder tail-and-batch latency — typically a few seconds end to end. Noxen does not retroactively backfill past scans; only scans that complete after the destination is configured emit events.
What it doesn't do
- No Splunk app on Splunkbase yet. Field extractions are automatic via Splunk's JSON support, but there's no first-party Noxen dashboard package — you build dashboards against the structured fields directly.
- No ES (Enterprise Security) notable-event mapping out of the box. You decide which Noxen events promote to notables via your own correlation searches.
- No
nmap-style raw port output. Open-port events carryportand best-effortservicelabels, not a full banner dump.
SIEM export unlocks at the MSP tier ($149/month). If you're running Splunk against multiple client fleets, the MSP page covers the multi-tenant catalog story; otherwise the integrations hub lists every supported destination.