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

Difference between revisions of "Top 10 2014-I2 Insufficient Authentication/Authorization"

From OWASP
Jump to: navigation, search
 
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<center>[https://www.owasp.org/index.php/OWASP_Internet_of_Things_Top_Ten_Project#tab=OWASP_Internet_of_Things_Top_10_for_2014 Back To The Internet of Things Top 10]</center>
+
<center>[https://www.owasp.org/index.php/OWASP_Internet_of_Things_Project#tab=Top_10_IoT_Vulnerabilities__282014_29 Back To The Internet of Things Top 10]</center>
  
 
{{Top_10_2010:SummaryTableHeaderBeginTemplate|year=2013|language=en}}
 
{{Top_10_2010:SummaryTableHeaderBeginTemplate|year=2013|language=en}}
{{Top_10:SummaryTableTemplate|exploitability=1|prevalence=2|detectability=2|impact=1|year=2013|language=en}}
+
{{Top_10:SummaryTableTemplate|exploitability=2|prevalence=2|detectability=1|impact=1|year=2013|language=en}}
 
{{Top_10_2010:SummaryTableHeaderEndTemplate|year=2013}}
 
{{Top_10_2010:SummaryTableHeaderEndTemplate|year=2013}}
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Consider anyone who has access to the web interface, mobile interface or cloud interface including external users, internal users, and administrators.
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Consider anyone who has access to the web interface, mobile interface or cloud interface including internal and external users.
  
 
</td>
 
</td>
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>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.
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Attacker uses weak passwords, insecure password recovery mechanisms, poorly protected credentials or lack of granular access control to access a particular interface. Attack could come from external or internal users.
  
 
</td>
 
</td>
     <td colspan=2  {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>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.
+
     <td colspan=2  {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Authentication may not be sufficient when weak passwords are used or are poorly protected. Insufficient authentication/authorization is prevalent as it is assumed that interfaces will only be exposed to users on internal networks and not to external users on other networks. Deficiencies are often found to be present across all interfaces. Many Issues with authentication/authorization are easy to discover when examining the interface manually and can also be discovered via automated testing.
  
 
</td>
 
</td>
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>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.
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>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 and/or user accounts.
  
 
</td>
 
</td>
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>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?
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Consider the business impact of compromised user accounts and possibly devices. All data could be stolen, modified, or deleted.  Could your customers be harmed?
  
 
</td>
 
</td>
Line 22: Line 22:
  
 
{{Top_10:SubsectionTableBeginTemplate|type=main}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=freetext|title=Is My Authentication/Authorization Sufficient?|position=firstLeft|year=2013|language=en}}
 
{{Top_10:SubsectionTableBeginTemplate|type=main}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=freetext|title=Is My Authentication/Authorization Sufficient?|position=firstLeft|year=2013|language=en}}
The simplest way to find out if you have an insecure web interface is to review the initial setup process and determine if the username, password or both can be changed and if the password is required to be long and complex.
 
  
Attempting to set usernames to simple passwords such as "1234" is a fast and easy way to determine the security of the web interface. Manual testing can help a security analyst find instances where weak passwords are allowed, default credentials are not required to be changed or account enumeration is possible. Penetration testers can validate these issues by running enumerating usernames and conducting brute-force attacks against those usernames.
+
Checking for Insufficient Authentication includes:
 +
* Attempting to use simple passwords such as "1234" is a fast and easy way to determine if the password policy is sufficient across all interfaces
 +
* Reviewing network traffic to determine if credentials are being transmitted in clear text
 +
* Reviewing requirements around password controls such as password complexity, password history check, password expiration and forced password reset for new users
 +
* Reviewing whether re-authentication is required for sensitive features
 +
 
 +
Checking for Insufficient Authorization includes:
 +
* Reviewing the various interfaces to determine 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.
 +
* 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.
 
 
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=freetext|title=How Do I Make My Authentication/Authorization Better?|position=right|year=2013|language=en}}
 
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=freetext|title=How Do I Make My Authentication/Authorization Better?|position=right|year=2013|language=en}}
Ensuring a secure web interface requires:
+
Sufficient authentication/authorization requires:
# Default passwords and possibly usernames to be changed during initial setup.
+
# Ensuring that the strong passwords are required
# Ensuring complex password construction.
+
# Ensuring granular access control is in place when necessary
# Ensuring web interface is not susceptible to XSS, SQLi or CSRF.
+
# Ensuring credentials are properly protected
# Ensuring credentials are not exposed in internal or external network traffic.
+
# Implement two factor authentication where possible
 +
# Ensuring that password recovery mechanisms are secure
 +
# Ensuring re-authentication is required for sensitive features
 +
# Ensuring options are available for configuring password controls
 +
# Ensuring credential can be revoked
 +
# The app authentication is required
 +
# The device authentication is required
 +
# The server authentication is required
 +
# Manage authenicated user id(credential info.) and the user's device id, the user's app id mapping table in the authentication server
 +
# Ensuring that the authentication token/session key issuing to client is always different
 +
# Ensuring that the user id, app id, device id is universally unique
 +
 
 +
Please review the following tabs for more detail based on whether you are a [https://www.owasp.org/index.php/OWASP_Internet_of_Things_Top_Ten_Project#tab=Manufacturers Manufacturer], [https://www.owasp.org/index.php/OWASP_Internet_of_Things_Top_Ten_Project#tab=Developers Developer] or [https://www.owasp.org/index.php/OWASP_Internet_of_Things_Top_Ten_Project#tab=Consumers Consumer]
 
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=example|position=left|risk=1|year=2013|language=en}}
 
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=example|position=left|risk=1|year=2013|language=en}}
'''Scenario #1:''' The web interface uses easily guessable default usernames and passwords.
+
'''Scenario #1:''' The interface only requires simple passwords.
  
 
{{Top_10_2010:ExampleBeginTemplate|year=2013}}<span style="color:red;">
 
{{Top_10_2010:ExampleBeginTemplate|year=2013}}<span style="color:red;">
Username = Admin; Password = password
+
Username = Bob; Password = 1234
  
 
</span>{{Top_10_2010:ExampleEndTemplate}}
 
</span>{{Top_10_2010:ExampleEndTemplate}}
'''Scenario #2:''' Username and password in the clear over the network.
+
'''Scenario #2:''' Username and password are poorly protected when transmitted over the network.
 
{{Top_10_2010:ExampleBeginTemplate|year=2013}}<span style="color:red;">
 
{{Top_10_2010:ExampleBeginTemplate|year=2013}}<span style="color:red;">
POST /login.htm HTTP/1.1
+
Authorization: Basic YWRtaW46MTIzNA==
...
 
userid=admin&pass=pass
 
  
 
</span>{{Top_10_2010:ExampleEndTemplate}}
 
</span>{{Top_10_2010:ExampleEndTemplate}}
In the cases above, the attacker is able to either easily guess the username and password or is able to capture the username and password as it crosses the network.
+
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.
  
  
Line 53: Line 69:
 
{{Top_10_2010:SubSubsectionOWASPReferencesTemplate}}
 
{{Top_10_2010:SubSubsectionOWASPReferencesTemplate}}
  
 +
[https://www.owasp.org/index.php/Top_10_2013-A2-Broken_Authentication_and_Session_Management Top 10 2013-A2-Broken Authentication and Session Management]
 
{{Top_10_2010:SubSubsectionExternalReferencesTemplate}}
 
{{Top_10_2010:SubSubsectionExternalReferencesTemplate}}

Latest revision as of 06:58, 5 February 2016

Back To The Internet of Things Top 10
Threat Agents Attack Vectors Security Weakness Technical Impacts Business Impacts
Application Specific Exploitability
AVERAGE
Prevalence
COMMON
Detectability
EASY
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 granular access control to access a particular interface. Attack could come from external or internal users. Authentication may not be sufficient when weak passwords are used or are poorly protected. Insufficient authentication/authorization is prevalent as it is assumed that interfaces will only be exposed to users on internal networks and not to external users on other networks. Deficiencies are often found to be present across all interfaces. Many Issues with authentication/authorization are easy to discover when examining the interface manually and can also be discovered 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 and/or user accounts. Consider the business impact of compromised user accounts and possibly devices. All data could be stolen, modified, or deleted. Could your customers be harmed?
Is My Authentication/Authorization Sufficient?

Checking for Insufficient Authentication includes:

  • Attempting to use simple passwords such as "1234" is a fast and easy way to determine if the password policy is sufficient across all interfaces
  • Reviewing network traffic to determine if credentials are being transmitted in clear text
  • Reviewing requirements around password controls such as password complexity, password history check, password expiration and forced password reset for new users
  • Reviewing whether re-authentication is required for sensitive features

Checking for Insufficient Authorization includes:

  • Reviewing the various interfaces to determine 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.
  • Reviewing access controls and testing for privilege escalation
How Do I Make My Authentication/Authorization Better?

Sufficient authentication/authorization requires:

  1. Ensuring that the strong passwords are required
  2. Ensuring granular access control is in place when necessary
  3. Ensuring credentials are properly protected
  4. Implement two factor authentication where possible
  5. Ensuring that password recovery mechanisms are secure
  6. Ensuring re-authentication is required for sensitive features
  7. Ensuring options are available for configuring password controls
  8. Ensuring credential can be revoked
  9. The app authentication is required
  10. The device authentication is required
  11. The server authentication is required
  12. Manage authenicated user id(credential info.) and the user's device id, the user's app id mapping table in the authentication server
  13. Ensuring that the authentication token/session key issuing to client is always different
  14. Ensuring that the user id, app id, device id is universally unique

Please review the following tabs for more detail based on whether you are a Manufacturer, Developer or Consumer

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

Top 10 2013-A2-Broken Authentication and Session Management

External