Repository navigation
Conversation
a2b2382 to
566d6e0
Compare
✅ Elastic Docs Style Checker (Vale)No issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
1b6796f to
06384f6
Compare
🚀 Benchmarks reportTo see the full report comment with |
5568233 to
187dfca
Compare
53ed7d6 to
79181ab
Compare
…metadata allow-list Derive `event.outcome` on the auth, server and xvpn families from the vendor `error` return code (`0` maps to success, other codes to failure). The official field documentation lists exactly these three families for `error`; on vpn logs the same key is a severity level and is left untouched. The vendor documentation pairs `0`-first numeric examples with `Success`-first display labels without stating the convention outright, so the mapping follows the strong implication of the field tables. Map `domain` to `user.domain` and `usergroup` to `user.group.name`, splitting the comma-separated multi-valued form that SNS 5.x emits. On web logs, map `op` to `http.request.method` and `result` to `http.response.status_code`; on other families these keys carry protocol-specific codes (FTP, Modbus) and are not promoted. Map the module name in `service` to `process.name` on the system, sandboxing and routing families only — on pvm logs the same key names the vulnerable product detected on a scanned host. Set `observer.product`. All mappings are copies; the vendor keys remain available under `stormshield.metadata`. Extend the `stormshield.metadata` allow-list with the documented vendor keys that previously leaked as undeclared `stormshield.*` fields: host and IP reputation (`srchostrep`, `dsthostrep`, `srciprep`, `dstiprep`), alarm packet captures (`pktlen`, `pktdump`, `pktdumplen`), Ethernet protocol (`etherproto`), SSO agent (`agentid`), IKE peer name (`peername`), and the industrial-protocol plugin fields (`unitid`/`unit_id`, `cipservicecode`, `cipclassid`, `requestmode`, `responsemode`, `UI`, `error_class`, `error_code`, `format`). The NAT reading of the pipeline was verified against the official field tables while preparing this change: `origdst`/`origdstport` are documented as the destination before translation and map to `destination.ip`/`destination.port`; `dst` is the translated destination and maps to `destination.nat.ip` when it differs. A connection sample with the documented example values now locks this in the pipeline tests, alongside new samples for the alarm reputation and packet-capture fields, a Modbus plugin line (whose `result` stays under metadata and does not produce `http.*`), a server line, a system line, and multi- and single-valued `usergroup` forms.
8eab066 to
5d10b00
Compare
8288545 to
fb93486
Compare
⏳ Build in-progress, with failures
Failed CI StepsHistory
|
fb93486 to
b9fcf25
Compare
Declare typed stormshield.* fields for the documented vendor keys that carry detection value instead of routing them to the flattened metadata object: the alarm context (class, classification, repeat, sensible, target, icmptype, icmpcode) and packet capture (pktlen, pktdumplen, pktdump), the IP and host reputation keys (srciprep, dstiprep, srchostrep, dsthostrep), the IKE negotiation keys of IPsec VPN logs (phase, side, ikev, spi_in, spi_out, cookie_i, cookie_r, localnet, remotenet, remoteid), the authentication keys (method, totp, confid, agentid), the administration session identifier (sessionid), the filter slot (slotlevel, slotname), the Ethernet protocol (etherproto), the industrial and REST protocol identifiers (unitid, cipservicecode, cipclassid, requestmode, responsemode, format, error_class, error_code), the web filtering keys (cat_site, urlruleid, contentpolicy), the antivirus, antispam and sandboxing verdicts (virus, spamlevel, filename, filetype, sandboxing, sandboxinglevel) and the application identification keys (clientappid, serverappid, groupid). Numeric keys are converted to long so they stay aggregatable, the comma-separated IP reputation keys are split into arrays and the curly braces of the vendor cat_site format are removed. spamlevel stays keyword because the documented values include X and ?, and contentpolicy keeps its zero-padded form. The field descriptions follow the wording of the official audit log documentation, cross-checked against the v4 and v5 field tables; the keys that v5 no longer documents are marked as such. The error key stays under stormshield.metadata where the outcome derivation reads it. Most of the moved keys reached the flattened object in the 1.6.0 and 1.7.0 releases, so relocating them now, before those releases see wide adoption, keeps the migration cost minimal. Add pipeline test samples derived from the official documentation examples for ICMP alarms, for the NTP and S7 protocol inspections, and for the antivirus, antispam and sandboxing verdicts on an SMTP flow.
b9fcf25 to
68d774a
Compare
Type the counters of the periodic statistics logs as aggregatable numbers instead of flattened strings. The scalar counters of the filter statistics log (accepted and blocked totals, memory and state gauges) move to long fields under stormshield.filterstat, keeping the names the vendor writes. The CPU counters of the monitor log (time allocated to user processes, kernel time and system disruptions, as the official documentation describes them) move to stormshield.monitor.cpu, and the security level of the monitor log becomes the long field stormshield.security. Counters whose value does not parse as a number fall back to the flattened metadata object unchanged, and the composite in/out pairs stay under metadata where the existing byte extraction reads them. These fields feed appliance health dashboards and alerting on CPU time, memory gauges and blocked packet rates, which the flattened object could not serve. The per-method authentication counters of the authstat log stay under metadata: the official field tables do not document them, and the per-interface structures of the monitor log stay as well, pending a document layout that supports per-interface aggregation.
Add three thematic dashboards keyed on the log families the pipeline now categorizes: Network Traffic (connection/filter events, verdicts, endpoints, rules, byte volumes), Web Activity (domains, HTTP methods and return codes, site categories, volumes) and Users & VPN (authentication, administration sessions and IPsec/SSL VPN events with their outcomes, users, directories, groups and peers). Every dashboard scopes its data with dashboard-level `data_stream.dataset` and `stormshield.logtype` filters, keeps panel queries empty, and drops the log-type control that its own filter would contradict. Add a links panel at the top of the Overview pointing to the four other dashboards, extend it with an appliance health row covering the periodic statistics families (scoped with panel-level queries, since the Overview carries no log-type filter), title its event-count metric panel, and replace the terms aggregation on `event.duration` with a median over time. Fix the dashboard controls, which carried no data view reference and were silently dropped by Kibana at render time. Rename all dashboards to the `[Stormshield SNS]` title prefix so future Stormshield product integrations can share the vendor namespace unambiguously. Replace the outdated Overview screenshot with captures of the five dashboards rendered on a live stack.
68d774a to
badc535
Compare
|
Changelog link mismatch — expected
Tip If expected, add the |
💔 Build Failed
Failed CI StepsHistory
|
|
Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as |
|
Hi! This PR has been stale for a while and we're going to close it as part of our cleanup procedure. We appreciate your contribution and would like to apologize if we have not been able to review it, due to the current heavy load of the team. Feel free to re-open this PR if you think it should stay open and is worth rebasing. Thank you for your contribution! |
Proposed commit message
Add three thematic dashboards keyed on the log families the pipeline now categorizes: Network Traffic (connection/filter events, verdicts, endpoints, rules, byte volumes), Web Activity (domains, HTTP methods and return codes, site categories, volumes) and Users & VPN (authentication, administration sessions and IPsec/SSL VPN events with their outcomes, users, directories, groups and peers). Every dashboard scopes its data with dashboard-level
data_stream.datasetandstormshield.logtypefilters, keeps panel queries empty, and drops the log-type control that its own filter would contradict.Add a links panel at the top of the Overview pointing to the four other dashboards, extend it with an appliance health row covering the periodic statistics families (scoped with panel-level queries, since the Overview carries no log-type filter), title its event-count metric panel, and replace the terms aggregation on
event.durationwith a median over time. Fix the dashboard controls, which carried no data view reference and were silently dropped by Kibana at render time. Rename all dashboards to the[Stormshield SNS]title prefix so future Stormshield product integrations can share the vendor namespace unambiguously. Replace the outdated Overview screenshot with captures of the five dashboards rendered on a live stack.Design notes
^8.19.0 || ^9.1.0, while this package supports^8.11.4. The appliance health row of the Overview is the natural candidate for a collapsed section once the version floor moves.Checklist
changelog.ymlfile.Author's Checklist
elastic-package checkpasses and the package installs into Kibana 9.4.3: all five dashboards import, the Overview resolves its four dashboard links, and rendering shows no dropped-panel warningsHow to test this PR locally
Related issues