Account Harvesting: The Fail Trifecta of Web Application Vulnerabilities

trifecta.jpg

At our testing practice here at Fortify on Demand we test a lot of web applications. We get them  as standalone web apps and we get them as backends to mobile applications. During the course of this work we (too) often come across a serious issue that we refer to as "Account Harvesting".

 

I call it a vulnerability, but really it’s really an uber-vuln—a brutal combination of three separate issues that are cause for significant concern when present simultaneously on the same app. It’s the fail trifecta of authentication security.

 

The three pillars of Account Harvesting

 

Account Harvesting is made up of the following three issues:

 

1. User Enumeration: The ability to programmatically determine whether a given account is valid on a system—usually without restriction, i.e. without anti-automation getting in your way

 

2. Weak Password Policy: The lack of a policy and/or the presence of a weak policy, e.g. the ability to create extremely short passwords, passwords based on common words, etc.—basically anything that lends itself to being guessed using wordlists

 

3. Lack of Account Lockout: The failure to lock out an account after a certain number (3-5 usually) of failed account login

request.png

By themselves each of these vulnerabilities is serious, but they are nowhere near as bad as when they combine together. If you have user enumeration and weak password policy, but you lock people out after a few attempts, then the opportunity for attack is severely reduced (you basically go with your best list of n-1 passwords and hit each valid account with it).

 

Similarly, if you have user enumeration and a lack of account lockout, but you have a requirement for complex, 10 character passwords, then your opportunity may be reduced as well. You may have issues with how quickly you can query the web server, you may be detected by the target’s security team, etc.

 

But if you have all three, well, you’re about to have logins to the app—it’s that simple. Factor in the reality that some are likely to be higher privilege accounts, and that there’s likely to be password sharing going on, and you see the reason that pulling a list of a few thousand valid accounts off a system is a major score for attackers.

 

Defense

 

Ideally you wouldn’t have any of these issues with your web properties.  If you are in charge of securing your sites you should be particularly keen to avoid having all three of these. Here are a couple of tips:

 

1. Employ anti-automation on user validity checking. Even if you do have a system for checking user account validity, there’s no reason for someone to do so more than a few times. If there is, built a separate service for that and protect it uniquely.

 

2. Remember there’s a reason for your password policy. It’s not just for show, or to check a box. It’s because it actually does make it (somewhat) harder for attackers. And in a game where we’re often just raising the cost of a successful attack against us to compel someone to pass us over—that’s a win.

 

3. Monitor your site for failed application logins. Remember that prevention is ideal, but detection is a must. Someone trying to bang down the front door is something you should know about, as it may mean they’re coming around back next.

 

In sum, Account Harvesting is a seriously nasty “vulnerability”. When evaluating your site’s controls you should naturally be looking for all of its sub-components, but if you see all three you’d do well to take notice.

 

For more information on how to address this or any other application security issue, feel free to reach out to us at Fortify on Demand.

 

::

 

Daniel Miessler is a Principal Security Architect with Fortify on Demand, and can be reached at daniel.miessler@hp.com and on Twitter at @danielmiessler

Comments
Jessica Dodson(anon) | ‎10-23-2013 07:56 AM

"And in a game where we’re often just raising the cost of a successful attack against us to compel someone to pass us over—that’s a win."

 

Great point. Most hackers are looking for the easy win--how can they do the most damage with the least effort? Sometimes making it less worth their while can stop a huge portion of the would-be attacks.

Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the Community Guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
Showing results for 
Search instead for 
Do you mean 
About the Author
http://www.danielmiessler.com/about
Featured


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.