How will i use Splunk to investigate an Excessive Failed login alert and what are things to look for?
Thanks,
Hi gcusello,
It was, I was able to see failed login. sorry to say this, that I'm new to Splunk and I do not know How to investigate failed login attempts so this is the major issue. What and what do i need to look for and how to look for it.
Thanks
Hi @BUSAKIN,
as I said, the first thing is identify failed logins and tag them.
Then you can correlate failed logins to understand if the source or the destination of the brute force are defined sources or destinations so you can blacklist the sources or you can check the destination to understand if the brute force attempt was successful or not.
The way to do this is the correlation search I hinted in my previous answer that you can customize for your needs, e.g. to understand if the destinations are the same you could run something like this:
(index=wineventlog EventCode=4625) OR (index=os sourcetype=linux_secure NOT disconnect "failed password")
| eval user=coalesce(Account_name, user)
| stats values(src_ip) AS src_ip count By host user
| where count>10if instead you are interested to the source, you could run:
(index=wineventlog EventCode=4625) OR (index=os sourcetype=linux_secure NOT disconnect "failed password")
| eval user=coalesce(Account_name, user)
| stats values(host) AS host count BY src_ip user
| where count>10The threeshold depends on the timeframe you used.
As I said, see the Security Essentials App to have a guide to this and other Use Cases.
Ciao.
Giuseppe
Hi @BUSAKIN,
you can find an example about excessive failed logins alert in the Splunk Security Essentials App (https://splunkbase.splunk.com/app/3435/) with many other Security Use Cases.
But in few words, you have to identify the failed login condition forr each kind of system you're monitoring: e.g.:
index=os sourcetype=linux_secure NOT disconnect "failed password",
Then you have to put the conditions in a search:
(index=wineventlog EventCode=4625) OR (index=os sourcetype=linux_secure NOT disconnect "failed password")
| eval user=coalesce(Account_name, user)
| stats count By host user
| where count>10
In this sample I used as threeshold 10.
there a clearer but longer way that I prefer:
Ciao.
Giuseppe