Rules (XQL)
[INGEST:vendor="beyondtrust", product="passwordsafe", target_dataset="beyondtrust_passwordsafe_raw", no_hit=keep]
/* This filter supports events which include a LogTime/ChangeDt or CreatedDate timestamp fields,
for PBPS (PowerBroker Password Safe) agent events & AppAudit agent events, respectively.
The supported timestamp format for these if events is %m/%d/%Y %I:%M:%S %p.
Examples: ChangeDt: "1/15/2024 11:00:00 AM", LogTime: "12/30/2023 10:42:22 PM", "CreateDate: 1/22/2024 5:32:19 PM". */
filter _raw_log ~= "(?:LogTime|ChangeDt|CreateDate):\s\"?\d{1,2}\/\d{1,2}\/\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}\s(?:A|P)M"
| alter tmp_raw_timestamp = arrayindex(regextract(_raw_log, "(?:LogTime|ChangeDt|CreateDate):\s\"?(\w.*?)\"?(?:,|\s{4}|\t)") , 0)
| alter _time = parse_timestamp("%m/%d/%Y %I:%M:%S %p", tmp_raw_timestamp)
| fields - tmp*;
/* This filter is provided as a fallback for events that do not include LogTime/ChangeDt/CreateDate fields.
It Supports RFC 5424 compatible syslog header timestamps (RFC3339 format).
Examples: "2024-22-20T11:18:59.123Z", "2024-22-20T11:18:59Z", "2024-02-22T11:18:59.152+03:00". */
filter _raw_log !~= "LogTime|ChangeDt|CreateDate" and _raw_log ~= "\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[+-]\d{2}:\d{2}|Z)"
| alter tmp_raw_timestamp = arrayindex(regextract(_raw_log, "\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}\S+"), 0)
| alter tmp_timestamp = replace(to_string(tmp_raw_timestamp), "Z", "+00:00")
| alter _time = parse_timestamp("%FT%H:%M:%E*S%Ez", tmp_timestamp)
| fields - tmp*;