The software contains an account lockout protection mechanism,
but the mechanism is too restrictive and can be triggered too easily. This
allows attackers to deny service to legitimate users by causing their accounts
to be locked out.
Extended Description
Account lockout is a security feature often present in applications as a
countermeasure to the brute force attack on the password based
authentication mechanism of the system. After a certain number of failed
login attempts, the users' account may be disabled for a certain period of
time or until it is unlocked by an administrator. Other security events may
also possibly trigger account lockout. However, an attacker may use this
very security feature to deny service to legitimate system users. It is
therefore important to ensure that the account lockout security mechanism is
not overly restrictive.
Time of Introduction
Architecture and Design
Applicable Platforms
Languages
All
Common Consequences
Scope
Effect
Availability
Users could be locked out of accounts.
Likelihood of Exploit
High
Enabling Factors for Exploitation
The system has an account lockout mechanism.
An attacker must be able to trigger the account lockout mechanism.
The cost to the attacker of triggering the account lockout mechanism
should be less than the cost to re-enable the account.
Observed Examples
Reference
Description
A famous example of this type an attack is the
eBay attack. eBay always displays the user id of the highest bidder. In the
final minutes of the auction, one of the bidders could try to log in as the
highest bidder three times. After three incorrect log in attempts, eBay
password throttling would kick in and lock out the highest bidder's account
for some time. An attacker could then make their own bid and their victim
would not have a chance to place the counter bid because they would be
locked out. Thus an attacker could win the
auction.
Potential Mitigations
Phase
Description
Implement more intelligent password throttling mechanisms such as
those which take IP address into account, in addition to the login name.
Implement a lockout timeout that grows as the number of incorrect
login attempts goes up, eventually resulting in a complete lockout.
Consider alternatives to account lockout that would still be effective
against password brute force attacks, such as presenting the user
machine with a puzzle to solve (makes it do some computation).