This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Top 10 2014-I2 Insufficient Authentication/Authorization
Threat Agents | Attack Vectors | Security Weakness | Technical Impacts | Business Impacts | |
---|---|---|---|---|---|
Application Specific | Exploitability EASY |
Prevalence COMMON |
Detectability AVERAGE |
Impact SEVERE |
Application / Business Specific |
Consider anyone who has access to the web interface, mobile interface or cloud interface including internal and external users. | Attacker uses weak passwords, insecure password recovery mechanisms, poorly protected credentials or lack of role/discretionary based access control to access a particular interface. Depending on setup, attack could come from external or internal users. | Authentication/Authorization may not be sufficient when weak passwords are used or are poorly protected. Insufficient authentication/authorization is prevalent as manufacturers strive to make interfaces easier for users to use and assume these interfaces will not be exposed to external users. Deficiencies are often found to be present across all interfaces as vendors strive to make credentials match across varying interfaces. Many Issues with authentication/authorization are easy to discover when examining the interface manually and frequently easy to discover via automated testing. | Insufficient authentication/authorization can result in data loss or corruption, lack of accountability, or denial of access and can lead to complete compromise of the device or user accounts. | Consider the business impact of compromised devices and accounts and in turn compromised customers. All data could be stolen, modified, or deleted. Could your users be harmed? |
Is My Authentication/Authorization Sufficient?
The simplest way to find out if you have insufficient authorization/authentication is to review the password policy for the various interfaces and to review whether the interfaces allow for separation of roles. For example, all features will be accessible to administrators, but users will have a more limited set of features available. Attempting to set usernames to simple passwords such as "1234" is a fast and easy way to determine if authentication/authorization is sufficient. Manual testing can help a security analyst find instances where weak passwords are allowed, access control is not limited by roles or credentials are poorly protected. Penetration testers can validate these issues by conducting brute-force attacks against usernames, reviewing access controls and testing for privilege escalation. Automated dynamic scanning which exercises the application will provide insight into whether these issues exist as well. |
How Do I Make My Authentication/Authorization Better?
Ensuring sufficient authentication/authorization requires:
|
Example Attack Scenarios
Scenario #1: The interface only requires simple passwords. Username = Bob; Password = 1234 Scenario #2: Username and password are poorly protected when transmitted over the network. Authorization: Basic YWRtaW46MTIzNA== In the cases above, the attacker is able to either easily guess the password or is able to capture the credentials as they cross the network and decode it since the credentials are only protected using Base64 Encoding.
|
References
OWASP External |