Reducing the Risk of Brute Force attacks used to reveal Firebird User Passwords
-------------------------------------------------------------------------------

                 Key: CORE-5789
                 URL: http://tracker.firebirdsql.org/browse/CORE-5789
             Project: Firebird Core
          Issue Type: Improvement
          Components: Security
    Affects Versions: 3.0.3
         Environment: All
            Reporter: Tony Whyman


User authentication mechanisms such as SRP are already resistant to brute force 
attacks where an attacker cycles through many different passwords in an attempt 
to login to a user account. However, a brute force attack will always succeed 
given a long enough period in which to sustain the attack. It is thus important 
that attackers are given limited windows of opportunity in which to conduct a 
brute force attack.

At present, it appears that Firebird allows a user an unlimited number of 
failed login attempts and without reporting a possible brute force attack. The 
only mitigation to brute force attacks appears to be an eight second delay 
inserted after every fourth failed login (see src/remote/server/server.cpp in 
the Firebird source tree). This still allows an attacker to cycle through 60/8 
* 4 * 60 * 24 = 43200 failed logins per day. That is after only four days or so 
an attacker could cycle through all 171,476 words in the Oxford English 
Dictionary.

Given that Firebird does not enforce any rules for password selection, the 
tendency for users to select common passwords, the availability of dictionaries 
of well used passwords and the lack of any alert sent to a DBA to warn about an 
attack, it probably will not take many days to break a Firebird user's password 
and without anyone being aware that this has been done.
There is a need both to log failed login attempts, so that a System 
Administrator is aware of a possible attack, and to rate limit login attempts 
in order to frustrate the attacker. 

http://tracker.firebirdsql.org/browse/CORE-5786 has reported the need to record 
failed login attempts in a suitable log file.

Additionally, Firebird should also implement some form of advanced rate 
limiting to restrict the rate of failed login attempts for a given user. This 
might be by:

* Inserting a delay time between receiving a failed login request and reporting 
the failure to the client.

* An exponential increase in the delay time for each successive failed login 
between receiving a failed login request for a given user and reporting the 
failure to the client.

* Rate limiting the total number of failed login attempts for each user from a 
given remote system during a given period to a configurable number.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to