|
1 | 1 | # CHANGELOG - ZScaler |
2 | 2 |
|
| 3 | +## 2.1.0 / 2026-05-04 |
| 4 | + |
| 5 | +**Added** |
| 6 | + |
| 7 | +* Added OCSF 1.5.0 normalization for every `zscalernss-*` log type. Each |
| 8 | + log routes through exactly one OCSF sub-pipeline based on sourcetype |
| 9 | + (and, for CASB, severity): |
| 10 | + |
| 11 | + * `zscalernss-web` → HTTP Activity [4002] |
| 12 | + * `zscalernss-fw` → Network Activity [4001] |
| 13 | + * `zscalernss-dns` → DNS Activity [4003] |
| 14 | + * `zscalernss-tunnel` → Tunnel Activity [4014] |
| 15 | + * `zscalernss-emaildlp` → Data Security Finding [2006] |
| 16 | + * `zscalernss-endpointdlp` → Data Security Finding [2006] |
| 17 | + * `zscalernss-casb` (with severity) → Data Security Finding [2006] (CASB DLP) |
| 18 | + * `zscalernss-casb` (no severity) → File Hosting Activity [6006] |
| 19 | + * `zscalernss-audit` (`LOGIN` / `AUTH`) → Authentication [3002] |
| 20 | + * `zscalernss-audit` (`USER_MANAGEMENT` / `ROLE_MANAGEMENT`) → Account Change [3001] |
| 21 | + * `zscalernss-audit` (any other category) → API Activity [6003] |
| 22 | + * everything else → Base Event [0] |
| 23 | + |
| 24 | +**Changed** |
| 25 | + |
| 26 | +* Pre-OCSF firewall protocol mapper now reads from both |
| 27 | + `zscaler.proto` (the documented NSS feed field) and |
| 28 | + `zscaler.ipproto`. |
| 29 | + |
| 30 | +* Account Change postaction handling: removed |
| 31 | + `zscaler.resource → ocsf.user.name` (`resource` is the role name for |
| 32 | + `ROLE_MANAGEMENT` events, not a user). Replaced with |
| 33 | + `postaction.name` / `postaction.roleName` and `postaction.email` |
| 34 | + mappings for both `USER_MANAGEMENT` and `ROLE_MANAGEMENT` branches. |
| 35 | + |
| 36 | +* Authentication: `zscaler.recordid` now maps to `ocsf.metadata.uid` |
| 37 | + instead of `ocsf.session.uid` (recordid doesn't persist across a |
| 38 | + login session). |
| 39 | + |
| 40 | +* Endpoint DLP `data_security.detection_system_id` corrected from |
| 41 | + `Endpoint` / `1` (EDR) to `Data Loss Prevention` / `2`. EDR is a |
| 42 | + different OCSF detection system; Endpoint DLP is DLP. |
| 43 | + |
| 44 | +* `zscalernss-fw` Network Activity filter admits |
| 45 | + `ipsrulelabel:None` / `threatname:None` placeholder values — the |
| 46 | + documented Zscaler firewall feed populates these placeholders on |
| 47 | + non-threat policy events too. |
| 48 | + |
| 49 | +* Several existing pre-OCSF `attribute-remapper`s flipped from |
| 50 | + `preserveSource: false` to `preserveSource: true` (e.g. `clt_sip` → |
| 51 | + `network.client.ip`, `srv_dip` → `network.destination.ip`, |
| 52 | + `dns_req` → `dns.question.name`) so the OCSF sub-pipelines can still |
| 53 | + read the original `zscaler.*` fields. No existing attribute paths |
| 54 | + were deleted. |
| 55 | + |
| 56 | +**Removed** |
| 57 | + |
| 58 | +* Previous synthetic `zscalernss-alert` handling: the pre-pipeline that |
| 59 | + fabricated a `sourcetype` from `alertId`, the pre-OCSF `Alert` |
| 60 | + description-grok, and the OCSF "ZIA Alert" sub-pipeline. Real Zscaler |
| 61 | + "alerts" are NSS DLP / CASB logs identified by severity, which now |
| 62 | + route to Data Security Finding [2006]; web / fw traffic stays in |
| 63 | + HTTP Activity [4002] / Network Activity [4001] regardless of |
| 64 | + severity, with no synthetic Detection Finding [2004] sub-pipeline. |
| 65 | + |
3 | 66 | ## 2.0.0 / 2025-08-27 |
4 | 67 |
|
5 | 68 | **Changed**: |
|
0 commit comments