Everything Cernity does: the capability catalog

A complete, source-verified list of what Cernity adds on top of Suricata — every detection layer, enrichment, evidence step, and reasoning capability. This is a catalog, not a claim that every path has a captured live deployment: see capability dependencies for what each needs and the evidence section for what has been recorded end to end. Detection, enrichment, and evidence are additive — the originating Suricata event is preserved on the finding, so nothing Suricata observed is lost.

Detection layers

Each row is a distinct finding class produced by a named service in the pipeline.

LayerWhat it findsExample ATT&CKService
Behavioral / statisticalC2 beaconing (interval, jitter, connection count), low-and-slow exfil, nDPI risk promotionT1071, TA0010behavioral-detectors
Encrypted-traffic & protocolJA4/JA3 client & server fingerprint rarity, DoH to non-approved resolver, cloud-staging exfil SNI, self-signed / short-lived TLS cert, domain-fronting / ECH, suspicious tooling user-agent, SSH brute-force, ICMP exfil, app-protocol / port mismatchT1071, T1090.004, T1571, T1110protocol-detectors
DNSDGA-scored domains, NXDOMAIN bursts, DNS tunnelling, domain-level (FQDN) beaconingT1071.004, T1568dns-detector
HTTP request shapesWebshell / backdoor URI, SQL injection, command injection, path traversal / LFI, credentials in URL, risky methods (PUT/PROPFIND)T1190, T1505.003http-detector
East-west / Active DirectoryLateral movement, RDP fan-out, internal scan, kerberoasting, AS-REP roasting, password spraying, LLMNR/mDNS poisoning, DCERPC lateral, ransomware-over-SMB, lateral-exec (named pipe)T1021, T1558.003, T1558.004, T1110.003, T1557.001, T1486east-west-detectors
OT / ICS (Modbus)Unauthorized write/control from a non-authorized master, new master→outstation pairing, function-code / unit-id enumeration, illegal-function bursts, Modbus off-502, program/operating-mode transferT0855, T0831, T0842, T0846, T0885, T0858ot-detectors
File & malwareKnown-bad file hash (MalwareBazaar / EICAR / operator list), risky executable delivery, and YARA content match on carved filesT1105, T1204file-threat, file-yara
Threat intelligenceCurated-feed matches: abuse.ch Feodo C2 IPs, SSLBL certificate SHA-1, SSLBL JA3 (distinct from IP-reputation enrichment)T1071threat-intel
ML behavioralSLIPS behavioral / model verdicts, mapped by provenance to slips_ml / slips_intel / slips_alertslips-adapter (← SLIPS)
Coverage & healthCapture-loss (kernel drops) and app-layer-blind (lossy/half-duplex mirror) — tells the SOC when the sensor is going blindcoverage-detector
Protocol-integrity anomaliesPromotes Suricata evasion-class stream and app-layer anomaliesanomaly-detector
Signature & notice promotionSuricata ET signature alerts and Zeek notices become first-class findings(as tagged)ids-alerts, zeek-notice

Finding lifecycle (what raw Suricata does not do)

CapabilityWhat it gives the analystService
Consolidation & dedupA chatty rule (e.g. 45 alerts) collapses to one stable finding identity with revisions, instead of flooding the SIEMfinding-service
Severity / threat gateLow-value, non-threat findings are suppressed from the analyst plane (kept for correlation/audit) so the SIEM queue is signal, not noisefinding-service
Lifecycle & audit trailExplicit states — CANDIDATE → FINAL, enrichment_state PENDING / TIMEOUT / ENRICHED, delivery state, monotonic revisionsfinding-service
ATT&CK taggingPrecise technique IDs where defensible, category-mapped otherwisefinding-service
Detection math on the findingThe measurements that fired it — e.g. beacon interval, jitter, connection count; enumeration breadth; distinct-account counteach detector

Enrichment — context attached to a finding

Added by finding-service (intel) and GeoIP enrichment. Real values require the corresponding provider/database to be configured.

EnrichmentFieldRequires
GeoIP / ASNintel.geoMaxMind GeoLite2 database
Reverse DNS (PTR)intel.rdnsINTEL_RDNS + a resolver
Domain age / newly-registered-domainintel.domainsINTEL_RDAP
JA3/JA4 → known-tool namingintel.fingerprintsINTEL_FP_MAP (operator map)
GreyNoise reputationintel.reputationGREYNOISE_API_KEY
VirusTotal reputationintel.virustotalVIRUSTOTAL_API_KEY
community_idon every findingSuricata community-id: yes

Evidence — proof on demand, not just an assertion

When a finding is worth proving, Cernity arms a bounded packet capture and deep-parses it — gated by a per-sensor safety budget, no standing full-packet capture.

StepWhat it producesService
On-demand PCAPA bounded packet capture of the flow, stored in object storage; evidence_refs on the findingcapture-agent, capture-orchestrator
Zeek deep-parsesummary (conn/tls/x509/http/ssh/file/smb/kerberos) + iocs (JA3, JA4, JA4S, JA4H, JA4SSH, file hashes, self-signed certs) merged onto the findingzeek-central
File carving + YARACarved files scanned with a maintained YARA ruleset → malware findings with rule/matchfile-yara

Reasoning & entity spine

CapabilityWhat it gives the analystService
Cross-detector correlationLinks related findings on an entity into one kill-chain incident (e.g. scan → beacon → C2), with ML×heuristic corroborationcorrelation-service
Asset resolutionA stable asset_key + role that survives IP / DHCP / NAT change, tying findings to an entityasset-service
Session reconstructionA per-source timeline and entity graph retrievable for investigationreconstruction
Response hand-offFindings drive a playbook and an assertable action record; optional hand-off to a real SOARsoar-forwarder

Provenance — the original Suricata event is preserved

Every finding carries (inline, or linked by community_id) the originating Suricata EVE — its native fields intact (nDPI, JA3/JA4, community_id, protocol block) — so the finding is self-describing and a SOC analyst never loses what Suricata observed. See the record-by-record proof and the detection-coverage captures.

Honest boundaries

  • A capability appearing here is source-verified; whether it is delivered in your deployment depends on collected fields, running services, configuration, and provider credentials — see capability dependencies.
  • Enrichment values (GeoIP, reverse DNS, domain age, reputation) are populated only with the relevant database/API key present.
  • Evidence (PCAP, Zeek, YARA) requires the forensics overlay and a satisfied capture budget.
  • nDPI, JA3/JA4, and community_id are Suricata-native — they appear only if the sensor build and configuration emit them.

← All documentation