-
Version2.4.190 Installation MethodCloud image (Amazon, Azure, Google) Descriptionother (please provide detail below) Installation TypeStandalone Locationcloud Hardware SpecsExceeds minimum requirements CPU16 RAM128GB Storage for /1TB Storage for /nsm1TB Network Traffic Collectiontap Network Traffic Speeds1Gbps to 10Gbps StatusYes, all services on all nodes are running OK Salt StatusNo, there are no failures LogsYes, there are additional clues in /opt/so/log/ (please provide detail below) DetailI am trying to get a detection and alert for if a windows server's time change is greater than 5 minutes Event 4616 logs time changes and I can get a simple alert working on just time change events. I made a custom field that runs a script and compares the currentTime and PreviousTime in the event and outputs the field as time_changed_minutes and in kibana I can query against it and that runtime field works. kibana sees it as time_change_minutes Now when I try to run a detection sigma event it fails and in the logs shows {"_timestamp":"2025-12-09T03:43:51.286364Z","rule.name":"Windows System Time Change Greater Than 5 Minutes V2 -- 12345678-90ab-cdef-1234-567890abcdef","error_type":"runtime_status","error_message":"Error running query: RequestError(400, 'verification_exception', 'Found 1 problem\nline 1:96: Unknown column [winlog.event_data.time_change_minutes]')","detection_type":"sigma","event_module":"soc","event_dataset":"soc.detections","error_analysis":"Unknown"} So sigma is looking for the field winlog.event_data.time_change_minutes, and I don't know how to point it to the field kibana is using. And the sigma rule is: title: Windows System Time Change Greater Than 5 Minutes V2 If I was remove the parts about the runtime field, and just focus on the event 4616 it works without issue. What is the proper way to set this up? I know I can change the ingestion pipeline to insert this value on ingestion. But then I have to reindex the index to update this. I know I will continually be wanting to add more rules and alerts as I go so having to rewrite the ingestions pipeline rules every time I want to do a mutation against the logs does not seem like the best method. What is the recommended approach to this? Thanks community! I will make a detailed answer to this once I solve to to help the community should someone else find themselves in this situation. Guidelines
|
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
|
What is your runtime field(s) you are created to search? |
Beta Was this translation helpful? Give feedback.
-
|
I found that when I create a detection->sigma in the UI it will then write the file as below. I can then see in the file it translates my request for the runtime filed at the root time_change_minutes and translates to winlog.event_data.time_change_minutes. Why I don't know. How to stop this, I don't yet know either. cat /opt/so/rules/elastalert/rules/12345678-90ab-cdef-1234-567890abc123.yml |
Beta Was this translation helpful? Give feedback.
-
|
Apparently I am the only client asking SO how to manipulate ingested logs and alert ( via sigma ) on those manipulations. Runtime fields attached to the index, would appear in KQL, but just did not work no matter how hard I tried to hack it for sigma. i.e. sigma is looking for the field in the wrong location, and I never could find how to adjust that. Here is a solution! I had to create a custom ingestion pipeline, and attach it to the agent policy "system-endpoints" and under the "Security channel" added the custom pipeline as a second pipeline. Then in the custom pipeline and a processor that run the same painless script I was using to create the runtime field. And now my sigma alerts can see the field when created this way! Hope this saves someone else all the time I spent to get this working! I really appreciate everyone who provide feedback. Matt, thank you! |
Beta Was this translation helpful? Give feedback.
Apparently I am the only client asking SO how to manipulate ingested logs and alert ( via sigma ) on those manipulations.
Runtime fields attached to the index, would appear in KQL, but just did not work no matter how hard I tried to hack it for sigma. i.e. sigma is looking for the field in the wrong location, and I never could find how to adjust that.
Here is a solution!
I had to create a custom ingestion pipeline, and attach it to the agent policy "system-endpoints" and under the "Security channel" added the custom pipeline as a second pipeline. Then in the custom pipeline and a processor that run the same painless script I was using to create the runtime field. And now my sigma alerts c…