Automated scanning for default accounts.
What gives it awayGeneric usernames from many different source addresses. Continuous and untargeted.
ATT&CK T1110.001Nothing matches that yet. Tell us what you were looking for and it goes on the list.
OpenSSH · Event Invalid user
Someone tried to sign in with a username the system has never heard of. It is the clearest possible signal of untargeted scanning, because the usernames come straight from public wordlists rather than from anything about your organisation.
Also written as Invalid usersshd invalid userssh invalid user log
Someone tried to log in with a username that does not exist on your machine. Automated scanning does this constantly to anything reachable from the internet.
The usernames themselves are the interesting part. Generic wordlist entries mean untargeted scanning. Real employee names, or accounts specific to your applications, mean someone has done reconnaissance — and that is a materially different situation.
Sanitised. Addresses come from the RFC 5737 documentation ranges.
Aug 28 09:41:15 web-01 sshd[24817]: Invalid user admin from 198.51.100.77 port 49820
Aug 28 09:41:15 web-01 sshd[24817]: pam_unix(sshd:auth): check pass; user unknown
Aug 28 09:41:17 web-01 sshd[24817]: Failed password for invalid user admin from 198.51.100.77 port 49820 ssh2 Everything else in the log line is context.
admin, test, oracle, ubuntu, pi, guestStandard wordlist entries. Untargeted. A real employee name or an application accountSuggests reconnaissance. This is the case worth investigating. Most of the time it is one of these.
What gives it awayGeneric usernames from many different source addresses. Continuous and untargeted.
ATT&CK T1110.001What gives it awayUsernames matching real employees or your naming convention, which cannot come from a public wordlist.
ATT&CK T1589.002What gives it awayUsernames matching software you actually run, suggesting the attacker knows what is on the host.
ATT&CK T1087grep 'Invalid user' /var/log/auth.log | grep -oP 'Invalid user \K\S+' | sort | uniq -c | sort -rn | head -30 grep 'Invalid user' /var/log/auth.log | grep -oP 'from \K[\d.]+' | sort | uniq -c | sort -rn | head -20 index=linux sourcetype=linux_secure "Invalid user" | stats dc(user) as users count by src_ip | sort -count Someone tried to log in with a username that does not exist on the system. On any internet-facing server this happens continuously as automated scanners work through lists of common account names — it means you are reachable, not that you are targeted.
Blocking individual addresses achieves very little, because scanning comes from a constantly changing pool. Rate-limiting with something like fail2ban keeps the log volume down, but the durable fix is to disable password authentication so the guessing cannot succeed regardless of who is doing it.
When the usernames stop being generic. 'admin' and 'test' come from public wordlists. Real employee names, or accounts specific to the software you run, cannot — those indicate someone has looked at your organisation, which is a different problem from background scanning.
Last reviewed 28 August 2026