Splunk Search

What is the issue with my SPL?

ACyber
Engager

Hi, I am a new Splunk user and this is my first post on the community forum.  If I am not following guidelines please let me know.  I am getting an error for the last line of my search, what is the issue? 

index=web
| eval hash=md5(file)
| stats count by file, hash
| sort - count
| eval bad_hash=case((hash==7bd51c850d0aa1df0a4ad7073aeaadf7), "malicious_file")

Labels (1)
0 Karma
1 Solution

bowesmana
SplunkTrust
SplunkTrust

@ACyber 

When posting search fragments, use the code sample button </> 

index=web
| eval hash=md5(file)
| stats count by file, hash
| sort - count
| eval bad_hash=case((hash="7bd51c850d0aa1df0a4ad7073aeaadf7"), "malicious_file")

 You need to wrap your hash in double quotes as you are looking for a string. Without the quotes, Splunk thinks it is a field and because it start with a number, fields containing numbers and odd characters must be wrapped in SINGLE quotes on the right hand side on an eval statement.

So the first one will given an error, the second will compare the hash field against a field called 7bd51c850d0aa1df0a4ad7073aeaadf7 and the last one will compare the hash field against the string 7bd51c850d0aa1df0a4ad7073aeaadf7

| eval bad_hash=case((hash=7bd51c850d0aa1df0a4ad7073aeaadf7), "malicious_file")

| eval bad_hash=case((hash='7bd51c850d0aa1df0a4ad7073aeaadf7'), "malicious_file")

| eval bad_hash=case((hash="7bd51c850d0aa1df0a4ad7073aeaadf7"), "malicious_file")

Note that you do not need double == sign. It's not like a programming language where there is a distinction between equality and assignment.

View solution in original post

bowesmana
SplunkTrust
SplunkTrust

@ACyber 

When posting search fragments, use the code sample button </> 

index=web
| eval hash=md5(file)
| stats count by file, hash
| sort - count
| eval bad_hash=case((hash="7bd51c850d0aa1df0a4ad7073aeaadf7"), "malicious_file")

 You need to wrap your hash in double quotes as you are looking for a string. Without the quotes, Splunk thinks it is a field and because it start with a number, fields containing numbers and odd characters must be wrapped in SINGLE quotes on the right hand side on an eval statement.

So the first one will given an error, the second will compare the hash field against a field called 7bd51c850d0aa1df0a4ad7073aeaadf7 and the last one will compare the hash field against the string 7bd51c850d0aa1df0a4ad7073aeaadf7

| eval bad_hash=case((hash=7bd51c850d0aa1df0a4ad7073aeaadf7), "malicious_file")

| eval bad_hash=case((hash='7bd51c850d0aa1df0a4ad7073aeaadf7'), "malicious_file")

| eval bad_hash=case((hash="7bd51c850d0aa1df0a4ad7073aeaadf7"), "malicious_file")

Note that you do not need double == sign. It's not like a programming language where there is a distinction between equality and assignment.

Get Updates on the Splunk Community!

Enterprise Security Content Update (ESCU) | New Releases

In December, the Splunk Threat Research Team had 1 release of new security content via the Enterprise Security ...

Why am I not seeing the finding in Splunk Enterprise Security Analyst Queue?

(This is the first of a series of 2 blogs). Splunk Enterprise Security is a fantastic tool that offers robust ...

Index This | What are the 12 Days of Splunk-mas?

December 2024 Edition Hayyy Splunk Education Enthusiasts and the Eternally Curious!  We’re back with another ...