ATTACKING AUTHENTICATION

Preview:

DESCRIPTION

ATTACKING AUTHENTICATION. The Web Application Hacker’s Handbook, Ch. 6 Presenter: Jie Huang 10/31/2012. Authentication is Everywhere . Probably the simplest security mechanisms within web applications Front line of defense against malicious attack - PowerPoint PPT Presentation

Citation preview

ATTACKING AUTHENTICATIONThe Web Application Hacker’s Handbook, Ch. 6

Presenter: Jie Huang10/31/2012

Authentication is Everywhere • Probably the simplest security mechanisms within web applications

• Front line of defense against malicious attack• Widely used technology: HTML forms-based authentication

• You might use it every day! (username + password)

Other Authentication Technologies• Multi-factor mechanisms• Client SSL certificates and/or smartcards• HTTP basic and digest authentication• Windows-integrated authentication • Authentication services

It Could Be the Achilles’ Heel As Well• You think your password is strong enough?• You think using https to transmit your login information is secure enough?

• Probably NOT!• Authentication might be the weakest link within the whole application

Two Major Flaws in Authentication• Design flaws

• Authentication functionality is subject to more design weakness than any other security mechanism employed in web applications

• Implementation flaws• Even a well-designed authentication mechanism

may be highly insecure due to mistakes made in its implementation

Design Flaws• Something you did not think it can be a vulnerability• Verbose Failure Messages - gives attackers lots of

information to collect• Vulnerable Transmission of Credentials • Password Change Functionality• Forgotten Password Functionality• Incomplete Validation of Credentials

Verbose Failure Messages• Error messages can have much information for attackers to harvest

Verbose Failure Messages • This vulnerability can be in more subtle ways

• Error messages might be the same for both valid and invalid usernames, but there might be some differences hidden in HTML source (comments or layout differences, etc.)

Verbose Failure Messages • What if the sources are also the same?

• Potential vulnerabilities are still there - difference in responding time for valid and invalid credentials

Vulnerable Transmission of Credentials

• We all know HTTPS should be used. But from which stage should it be used?• When the login information needs to be submitted?• Or when the login page is loaded?

• You can’t trust the login page if it is loaded as HTTP since you can’t tell its authenticity

Password Change Functionality• This function is needed for users to periodically change the password

• Still, it is vulnerable by design • It might provide a verbose error message indicating

whether the requested username is valid• It might allow unrestricted guesses of the “existing

password” field

Forgotten Password Functionality• Similar to change password function, this function is needed

• However, it might be the weakest link at which to attack the overall authentication logic!

Forgotten Password Functionality• Users are inclined to set extremely insecure challenges with the false assumption that only they will be presented with them• Example: “Do I own a boat?”• Now the attacker has 50% chance of guessing it

correctly (only two possible answers: yes or no)• Some applications disclose the existing, forgotten password to the user after successful completion of challengs

Forgotten Password Functionality• Some applications immediately drop the user into an authenticated session after successful completion of challenges

• Some apps send a unique recovery URL to the email address specified by the user at the time the challenge is completed

• Some apps allow users(attackers) to reset password directly after successful completion of challenge, without sending a notification to the real user

Incomplete Validation of Credentials• Believe it or not, some applications truncate passwords and so only validate the first characters

• Some apps strip out unusual characters• Some apps perform a case-insensitive check of passwords

• Each of the above reduces by an order of magnitude the number of available passwords in the pool of possible passwords!

Implementation Flaws• Even if the design is perfectly secure, hackers still get some chances• Defects in multistage login mechanisms

Defects in Multistage Login Mechanisms

• Multistage mechanisms often have logic flaws• They often make unsafe assumptions

• It may assume that a user who accessed stage three must have cleared stages one and two

• It may trust some of the data being processed at stage two because it was validated at stage one

Defects in Multistage Login Mechanisms

• Some apps employ a randomly varying question at one of the stages of the login process

• This functionality can be broken in some cases• The app may store the details of the challenge

question within a hidden HTML form or cookie, rather than on the server. Attackers can capture user’s input and reuse it later

• The app may ask the user a fresh question when the user tries to login again after a failed attempt

Securing Authentication• Use strong credentials• Handle credentials secretively• Validate credentials properly• Prevent information leakage• Prevent brute-force attack• Prevent misuse of password change function• Prevent misuse of account recovery function• Log, monitor, and notify

THANK YOU!