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-I6 Insecure Cloud Interface"

From OWASP
Jump to: navigation, search
(Created page with "<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> ...")
 
 
(25 intermediate revisions by one other user 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 including external users, internal users, and administrators.
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Consider anyone who has access to the internet.
  
 
</td>
 
</td>
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Attacker uses weak default credentials, captures plain-text credentials or enumerates accounts to access the web interface. Depending on setup, attack could come from external or internal users.
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Attacker uses multiple vectors such as insufficient authentication, lack of transport encryption and account enumeration to access data or controls via the cloud website. Attack will most likely come from the internet.
  
 
</td>
 
</td>
     <td colspan=2  {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>An insecure web interface is present when easy to guess or well known default credentials are used. Insecure web interfaces are prevalent as manufacturers strive to make interfaces easier for users to use and assume these interfaces will not be exposed to external users. They are often found in devices which have features that can only be accessed via the web interface. Issues with the web interface 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}}>An insecure cloud interface is present when easy to guess credentials are used or account enumeration is possible. Insecure cloud interfaces are easy to discover by simply reviewing the connection to the cloud interface and identifying if SSL is in use or by using the password reset mechanism to identify valid accounts which can lead to account enumeration.
  
 
</td>
 
</td>
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Insecure web interfaces can result in data loss or corruption, lack of accountability, or denial of access and can lead to complete device takeover.
+
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>An insecure cloud interface could lead to compromise of user data and control over the device.
  
 
</td>
 
</td>
     <td {{Template:Top 10 2010:SummaryTableRowStyleTemplate|year=2013}}>Consider the business impact of compromised devices 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 an insecure cloud interface. Data could be stolen or modified and control over devices assumed.  Could your customers be harmed? Could your brand be harmed?
  
 
</td>
 
</td>
 
{{Top_10_2010:SummaryTableEndTemplate|year=2013}}
 
{{Top_10_2010:SummaryTableEndTemplate|year=2013}}
  
{{Top_10:SubsectionTableBeginTemplate|type=main}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=vulnerableTo|position=firstLeft|risk=1|year=2013|language=en}}
+
{{Top_10:SubsectionTableBeginTemplate|type=main}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=freetext|title=Is My Cloud Interface Secure?|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.
+
Checking for a Insecure Cloud Interface includes:
 +
* Determining if the default username and password can be changed during initial product setup
 +
* Determining if a specific user account is locked out after 3 - 5 failed login attempts
 +
* Determining if valid accounts can be identified using password recovery mechanisms or new user pages
 +
* Reviewing the interface for issues such as cross-site scripting, cross-site request forgery and sql injection.
 +
* Reviewing all cloud interfaces for vulnerabilities (API interfaces and cloud-based web interfaces)
  
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.
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=freetext|title=How Do I Secure My Cloud Interface?|position=right|year=2013|language=en}}
 +
A secure cloud interface requires:
 +
# Default passwords and ideally default usernames to be changed during initial setup
 +
# Ensuring user accounts can not be enumerated using functionality such as password reset mechanisms
 +
# Ensuring account lockout after 3- 5 failed login attempts
 +
# Ensuring the cloud-based web interface is not susceptible to XSS, SQLi or CSRF
 +
# Ensuring credentials are not exposed over the internet
 +
# Implement two factor authentication if possible
 +
# Detect or block the abnormal reqests/attempts
  
Automated dynamic scanning which exercises the application will provide insight into whether these issues exist as well.
+
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=howPrevent|position=right|risk=1|year=2013|language=en}}
 
Ensuring a secure web interface requires:
 
# Default passwords and possibly usernames to be changed during initial setup.
 
# Ensuring complex password construction.
 
# Ensuring web interface is not susceptible to XSS, SQLi or CSRF.
 
# Ensuring credentials are not exposed in internal or external network traffic.
 
 
{{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:''' Password reset indicates whether account is valid.
  
 
{{Top_10_2010:ExampleBeginTemplate|year=2013}}<span style="color:red;">
 
{{Top_10_2010:ExampleBeginTemplate|year=2013}}<span style="color:red;">
Username = Admin; Password = password
+
Password Reset "That account does not exist."
  
 
</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 S2ZjSDFzYkF4ZzoxMjM0NTY3
...
 
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 determine a valid user account or is able to capture the credentials as they cross the network and decode them since the credentials are only protected using Base64 Encoding.
  
  
Line 53: Line 58:
 
{{Top_10_2010:SubSubsectionOWASPReferencesTemplate}}
 
{{Top_10_2010:SubSubsectionOWASPReferencesTemplate}}
  
 +
* [https://www.owasp.org/index.php/Top_10_2013-A1-Injection Top 10 2013-A1-Injection]
 +
* [https://www.owasp.org/index.php/Top_10_2013-A3-Cross-Site_Scripting_(XSS) Top 10 2013-A3-Cross-Site Scripting]
 +
* [https://www.owasp.org/index.php/Top_10_2013-A8-Cross-Site_Request_Forgery_(CSRF) Top 10 2013-A8-Cross-Site Request Forgery (CSRF)]
 
{{Top_10_2010:SubSubsectionExternalReferencesTemplate}}
 
{{Top_10_2010:SubSubsectionExternalReferencesTemplate}}

Latest revision as of 06:37, 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 internet. Attacker uses multiple vectors such as insufficient authentication, lack of transport encryption and account enumeration to access data or controls via the cloud website. Attack will most likely come from the internet. An insecure cloud interface is present when easy to guess credentials are used or account enumeration is possible. Insecure cloud interfaces are easy to discover by simply reviewing the connection to the cloud interface and identifying if SSL is in use or by using the password reset mechanism to identify valid accounts which can lead to account enumeration. An insecure cloud interface could lead to compromise of user data and control over the device. Consider the business impact of an insecure cloud interface. Data could be stolen or modified and control over devices assumed. Could your customers be harmed? Could your brand be harmed?
Is My Cloud Interface Secure?

Checking for a Insecure Cloud Interface includes:

  • Determining if the default username and password can be changed during initial product setup
  • Determining if a specific user account is locked out after 3 - 5 failed login attempts
  • Determining if valid accounts can be identified using password recovery mechanisms or new user pages
  • Reviewing the interface for issues such as cross-site scripting, cross-site request forgery and sql injection.
  • Reviewing all cloud interfaces for vulnerabilities (API interfaces and cloud-based web interfaces)
How Do I Secure My Cloud Interface?

A secure cloud interface requires:

  1. Default passwords and ideally default usernames to be changed during initial setup
  2. Ensuring user accounts can not be enumerated using functionality such as password reset mechanisms
  3. Ensuring account lockout after 3- 5 failed login attempts
  4. Ensuring the cloud-based web interface is not susceptible to XSS, SQLi or CSRF
  5. Ensuring credentials are not exposed over the internet
  6. Implement two factor authentication if possible
  7. Detect or block the abnormal reqests/attempts

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

Example Attack Scenarios

Scenario #1: Password reset indicates whether account is valid.

Password Reset "That account does not exist."

Scenario #2: Username and password are poorly protected when transmitted over the network.

Authorization: Basic S2ZjSDFzYkF4ZzoxMjM0NTY3

In the cases above, the attacker is able to either determine a valid user account or is able to capture the credentials as they cross the network and decode them since the credentials are only protected using Base64 Encoding.


References

OWASP

External