Splunk Search

problem with join

Mahmoud
Engager

this is the query, so i'm still a baby in this world (so I'm sorry if there is a dummy mistakes that might drive you crazy when you read this query). However, I'm trying to Join the Source Process Id (from event code 10) with the Process Id ( from event code 1) and then print the command line, I tried to use `type=inner` but it gave me nothing which is wired, because when I look for the first query there is result and the same for the inner query.  


 

index="main" sourcetype="WinEventLog:Sysmon" EventCode=10 lsass SourceImage="C:\\Windows\\system32\\rundll32.exe"
| join left=L right=R type=left where L.SourceProcessId=R.ProcessId
[search EventCode=1 lsass "C:\\Windows\\system32\\rundll32.exe"]
| table L.TargetImage, R.ProcessId, R.commandLine

 




Labels (1)
0 Karma
1 Solution

gcusello
SplunkTrust
SplunkTrust

Hi @Mahmoud,

Don't use join: Splunk isn't a relational Database, it's a search engine, use stats BY the common key, something like this:

index="main" sourcetype="WinEventLog:Sysmon" lsass SourceImage="C:\\Windows\\system32\\rundll32.exe" EventCode IN (10,1)
| eval ProcessId=coalesce(SourceProcessId,ProcessId)
| stats 
   values(TargetImage) AS TargetImage
   values(commandLine) AS commandLine
   BY ProcessId

if you want to add an additional condition, e.g. only the ProcessId present in both the EventCodes, you can ann an additional final constrain.

index="main" sourcetype="WinEventLog:Sysmon" lsass SourceImage="C:\\Windows\\system32\\rundll32.exe" EventCode IN (10,1)
| eval ProcessId=coalesce(SourceProcessId,ProcessId)
| stats 
   values(TargetImage) AS TargetImage
   values(commandLine) AS commandLine
   dc(EventCode) AS EventCode_count
   BY ProcessId
| where EventCode_count=2
| fields - EventCode_count

Ciao.

Giuseppe

View solution in original post

gcusello
SplunkTrust
SplunkTrust

Hi @Mahmoud,

Don't use join: Splunk isn't a relational Database, it's a search engine, use stats BY the common key, something like this:

index="main" sourcetype="WinEventLog:Sysmon" lsass SourceImage="C:\\Windows\\system32\\rundll32.exe" EventCode IN (10,1)
| eval ProcessId=coalesce(SourceProcessId,ProcessId)
| stats 
   values(TargetImage) AS TargetImage
   values(commandLine) AS commandLine
   BY ProcessId

if you want to add an additional condition, e.g. only the ProcessId present in both the EventCodes, you can ann an additional final constrain.

index="main" sourcetype="WinEventLog:Sysmon" lsass SourceImage="C:\\Windows\\system32\\rundll32.exe" EventCode IN (10,1)
| eval ProcessId=coalesce(SourceProcessId,ProcessId)
| stats 
   values(TargetImage) AS TargetImage
   values(commandLine) AS commandLine
   dc(EventCode) AS EventCode_count
   BY ProcessId
| where EventCode_count=2
| fields - EventCode_count

Ciao.

Giuseppe

Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

All Work and No Play? Not at .conf26! Unwind at These Evening Events

Between hands-on technical sessions, keynote reveals, and diving into live architectures, .conf26 is packed ...

Join the Hackathon at .conf26 and build a No-Code AI agent

Join us for the AI Agent Buildathon, an in-person, three-hour hands-on Hackathon where you’ll use Splunk Agent ...

Level Up Your Workflow: Mastering Splunk Cloud Management via Terraform

Tech Talk Recap   From Chaos to Control: Scaling Splunk Cloud with Infrastructure as Code Managing apps in ...