Hi @gabriel.marchi,
Yes, this is expected behavior in Google SecOps Detection Engine under specific conditions, and it is generally not a bug.
Here is why this happens when you update a detection rule:
1. Late-Ingested Events (Ingestion Delay vs. Event Timestamp)
Google SecOps evaluates events based on their Event Timestamp (metadata.event_timestamp), whereas execution is bound to when the logs arrive in the system. If an event occurred two days ago but was only ingested recently (due to forwarder lag, network outages, or batch uploads), updating or saving a rule forces the Detection Engine to process all newly available/unprocessed events in that pipeline window.
2. Rule Saving / Enabling Triggers Back-Evaluation
When you update and save a YARA-L rule:
-
The engine re-initializes execution state for the rule.
-
If the event was ingested within the system's retroactive lookback window (or while the rule was previously disabled/modified), the newly saved rule logic will evaluate those late-arrived logs.
How to Verify
Check the event's metadata in your UDM Search:
-
metadata.event_timestamp: When the activity actually occurred (e.g., 2 days ago).
-
metadata.ingested_timestamp: When Chronicle actually received the log.
If ingested_timestamp is recent (or right around when you saved the rule), the alert was rightfully triggered by the late ingestion pipeline rather than a full system backtest replay.
Hope this clarifies how the rule engine handles delayed logs!