You are here

README.txt in Username Enumeration Prevention 6

Non-displayable characters.

File

README.txt
View source
  1. What Is Username Enumeration Prevention
  2. By default Drupal is very secure (especially Drupal 7). However, there is a way to exploit
  3. the system by using a technique called username enumeration. Both Drupal 6 and 7 have
  4. this issue, but it is much worse for people using Drupal 6. This is because Drupal 6 does
  5. not have any built in brute force prevention. When an attacker knows a username they can
  6. start a brute force attack to gain access with that user. To help prevent this, it is best
  7. if usernames on the system are not easy to find out.
  8. Attackers can easily find usernames that exist by using the forgot password form and a
  9. technique called “username enumeration”. The attacker can enter a username that does not
  10. exist and they will get a response from Drupal saying so. All the attacker needs to do is
  11. keep trying usernames on this form until they find a valid user.
  12. This module will stop this from happening. When the module is enabled, the error message
  13. will be replaced for the same message as a valid user and they will be redirected back to
  14. the login form. If the user does not exist, no password reset email will be sent, but the
  15. attacker will not know this is the case.
  16. For a demonstration of this, visit the password reset page at zeusarticles.com and try to
  17. enter an invalid username. This will show you the same message as a valid username.
  18. Additional Notes
  19. Enabling this module is one step to preventing the usernames on the system from being found
  20. out but there are other known methods that are just as easy. These are:
  21. 1. If a user belongs to a role that has "access user profiles" granted to it, then that user
  22. can serially visit all integers at the URL http://drupal.org/user/UID and get the username from
  23. the loaded profile pages. With this permission, the user can call the core callback at
  24. http://drupal.org/user/autocomplete/a and get the usernames. Replacing the “a” with each letter
  25. of the alphabet, prints an array of usernames.
  26. 2. If a site has the views module installed then views exposes an autocomlete callback which can be
  27. similarly be enumerated with letters of the alphabet to get all the usernames.
  28. See http://drupal.org/admin/views/ajax/autocomplete/user/a for an example. This callback doesn't have
  29. any access restrictions assigned by the views module.
  30. Installing this module will make the views autocomplete callback require the “access user profiles”
  31. permission. This will prevent anonymous users from accessing the callback as long as the anonymous
  32. user role does not have “access user profiles” enabled.
  33. If any of the two issues above exist then the module will notify the site builder when the module is enabled.
  34. Note: There may be other places where usernames could be exposed that this module may not know about.
  35. Examples are the "submitted by" information on nodes or comments, views, exposed filters or by other
  36. contributed modules. Users looking to hide the usernames from comments and nodes should look at using
  37. realname or some other tool.
  38. Installing Username Enumeration Prevention:
  39. Place the entirety of this directory in sites/all/modules/username_enumeration_prevention
  40. Navigate to administer >> build >> modules. Enable Username Enumeration Prevention.