RE: Account Lockouts

Patrik Sternudd <[email protected]> Thu, 2 Dec 2004 09:25:06 +0100
Newsgroups gmane.comp.security.programming
Message-ID <[email protected]>
Heya. The question makes perfectly sense. Let's hope my answer
won't cause undue confusion on anyone's part. :)

Hmm, what if, after X failed logons in Y seconds, the system would 
require the user to write a certain text string into another input 
box for that login attempt to be handled? And the extra string 
would be displayed on the login page in a way not easily understood
by an automated script, e.g. in a small image? 

Much like the "human authenticator" I've seen some web based systems 
use (unfortunately, I can't recall exactly where I saw it). I have no 
idea how hard it would be to implement, but it's a thought, at least.

Regarding having the users pick their own names - you didn't say 
where the application is deployed, but if it's an internal one in a 
large organisation, I'd say you'll have a greater administrative 
headache by going away from the standard. Not to mention increased 
complexity if you want SSO sometime in the future. If I further assume 
that the application already exist, you will probably annoy many of 
your existing users if you force them to change usernames (and what's 
to stop them from setting the same name again?)

A timeout on the lockout is perhaps easier. Nothing to stop an attacker 
to run the script continously, but in that case, the perpetrator might 
be traced or blacklisted on IP level. Or, if an internal one, 
administrative action taken.

Also, you'll have do decide whether the login form should say "Account 
locked" or not. Silently ignoring the login might be more secure, but 
will give your support team more work. One could also process the login 
as usual, and log the attempt, just to see if a correct password was
supplied, but skip the last step of authentication (letting the 
user in). This would place extra load on the authentication server (which 
I assume is separated from the web application), but provide extra clues 
on the success of the brute-forcer. This assumes your organisation actively
monitors your logs, else it won't do you any good (obviously). This method 
will also make it harder for a savvy attacker to deduce lockout in progress 
my measuring response times. Of course, if your users already know
that account lockout will occur after X failed logins, then there's no
point.

Best regards,
Patrik Sternudd

-----Original Message-----
From: Harrison Gladden [mailto:[email protected]] 
Sent: Wednesday, December 01, 2004 6:52 PM
To: [email protected]; [email protected]
Subject: Account Lockouts


Hello all, 

My question to the group is about handling account lock outs.  Here's
the situation, assume there is a web interface that lets users log in
and do stuff, but the log-in process is constrained by the network
restrictions as well.. Meaning if a user tries to log in X times in Y
seconds and fails each time, then the account get locked out.

What are successfull techniques that could be used on the web
interface to avoid having a script run against it that would
potentially lock out 15000 user accounts, and create a headache for
the system administrators who have to manually unlock each account?

Also assume the current user account names are known by everyone.  

Possible techniques we've thrown around:
1)  Allow each user to pick their own username instead of using a
standard (i.e. First 3 letters of first name + Full last name)

2) Create a set time-out period  for each account of  X (maybe an hour) 


Hopefully my question makes sense.  

Thanks,
Harrison
-- 
___________________________________
Harrison Gladden <[email protected]>
Computer Engineer & Science Major
~Past experience: He who never makes 
   mistakes, never did anything that's worth.~