I am doing an experiment in my local splunk. I imported some http logs including attack patterns. And I am trying to list all /etc/passwd patterns.
First i tried sourcetype=X IPaddressofrequester | regex http_request="(?:etc\/\W*passwd)"
it gives correct results including the http requests have specific IP address and its /etc/passwd requests
However when i exlude the ip address and convert the search like
sourcetype=X regex http_request="(?:etc\/\W*passwd)"
it gives no result. What is wrong with this search? I am trying to list all the request including /etc/passwd in it. after that i will make table of the IP addresses sending /etc/passwd
Could you please help me on this?
When you ONLY use regex to filter that means the initial search command will need to grab all the matching events from disk and into memory before passing them on to the next command in the search pipeline (regex). This is of course very "expensive" I/O-wise. You should always filter your events as much as possible in the initial search command.
Thanks that worked. This solution come up with a new question 🙂 if i add IPaddress to my search the results shown quickly like 10 seconds. However if use only regex it takes 5 min to show results for custom time search around 30 mins traffic. I know regex is expensive but both searches using same regex. What is the reason of that? is that normal?