Artifact Filter¶
The Artifact Filter is the quality gate between parsing and export. It deduplicates redundant events, optionally enriches artifacts with threat intelligence, and applies predicate-based filter rules before publishing export-ready artifacts.
Pipeline¶
The filter implements a three-stage processing pipeline:
Stage 1: ProtoGraph Deduplication¶
ProtoGraph reduces noise by hashing artifacts using an 11-tuple key. Duplicate artifacts within a configurable sliding window are collapsed into a single event with a count.
| Category | Fields |
|---|---|
| Host | SenderHost |
| Network | ClientIP, ServerIP, ServerPort, Protocol |
| Identity | UserName |
| Content | FileName, StreamName, MessageType, Action |
| Severity | SeverityLabel |
For example, 1000 identical SSH login failure events from the same source within the deduplication window produce a single artifact with a count of 1000.
Tip
High compression ratios (>5x) indicate effective deduplication. For every 8 raw syslog messages, approximately 1 artifact is exported in typical deployments.
Stage 2: STIX Enrichment (Optional)¶
When enabled, the STIX enrichment stage checks artifact fields (IPs, domains, file hashes) against configured threat intelligence feeds. Matched indicators are added as metadata to the artifact before it continues through the pipeline.
Enriched artifacts are published to the artifacts.enriched subject and re-consumed by the filter for predicate processing.
Stage 3: Predicate Filtering¶
Predicate filters apply rule-based inclusion and exclusion logic:
- Field matching — Include or exclude based on specific field values
- Regex patterns — Pattern matching on artifact content
- Severity thresholds — Filter by severity level
- Stream-based rules — Filter specific log sources
When no filter rules are configured, all artifacts pass through to artifacts.final.
Configuration¶
The Artifact Filter is configured via the NATS KV FILTERS bucket. Configuration includes:
- Deduplication window duration (default: 10 minutes)
- STIX enrichment enable/disable and feed URL
- Predicate filter rules
Configuration is managed through the Conductor UI Exporter page (STIX toggle) and directly via the NATS KV bucket for advanced predicate rules.
Metrics¶
| Metric | Description |
|---|---|
pipeline_messages_consumed_total | Artifacts consumed from artifacts.parsed |
pipeline_messages_published_total | Artifacts published to artifacts.final |
pipeline_messages_rejected_total | Artifacts rejected by predicate filters |
pipeline_errors_total | Processing errors |