Difference between revisions of "OWASP Internet of Things Top Ten Project"

From OWASP
Jump to: navigation, search
 
(177 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |- | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" |
+
=Main=
 
+
{{Top_10_2013:TopTemplate
+
    |usenext=2013NextLink
+
    |next=A2-{{Top_10_2010:ByTheNumbers
+
              |2
+
              |year=2013
+
              |language=en}}
+
    |useprev=2013PrevLink
+
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
+
    |year=2013
+
    |language=en
+
}}
+
 
+
{{Social Media Links}} 
+
 
+
 
+
='''___________Main___________'''=
+
  
 
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div>
 
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div>
  
 +
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 +
| valign="top"  style="border-right: 1px dotted gray;padding-right:25px;" |
  
{{Top_10:SubsectionTableBeginTemplate|type=headertab}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=IoT|position=firstLeft|title=1|risk=10|year=2013|language=en}}
+
==OWASP Internet of Things Top 10==
 
+
==OWASP Internet of Things Top Ten Project==
+
 
+
Oxford defines the Internet of Things as “a proposed development of the Internet in which everyday objects have network connectivity, allowing them to send and receive data.”
+
 
+
The OWASP Internet of Things (IoT) Top 10 is a project designed to help vendors who are interested in making common appliances and gadgets network/Internet accessible. The project walks through the top ten security problems that are seen with IoT devices, and how to prevent them.
+
 
+
Examples of IoT Devices: Cars, lighting systems, refrigerators, telephones, SCADA systems, traffic control systems, home security systems, TVs, DVRs, etc…
+
 
+
Internet of Things Top 10 (tentative):
+
#Administrative Interface with Weak/Default Credentials
+
#Buffer Overflow of Available Network Service
+
#Lack of Network Encryption
+
#Insecure Software Update System
+
#Denial of Service
+
#Information Disclosure Through Network Services
+
#Insecure Web Interface
+
#Network Attack Magnification
+
#Trivial Physical Security Bypass
+
#Poor Security Management Capabilities
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=IoT|position=right|title=2|risk=1|year=2013|language=en}}
+
 
+
==Introduction==
+
 
+
Write a short introduction
+
 
+
 
+
 
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=left|title=3|risk=1|year=2013|language=en}}
+
 
+
==Description==
+
 
+
Write a description that is just a few paragraphs long
+
 
+
 
+
 
+
 
+
  
 +
Oxford defines the Internet of Things as: “A proposed development of the Internet in which everyday objects have network connectivity, allowing them to send and receive data.”
  
 +
''The OWASP Internet of Things (IoT) Top 10 is a project designed to help manufacturers, developers, and consumers better understand the security issues associated with the Internet of Things, and to enable users in any context to make better security decisions when building, deploying, or assessing IoT technologies''.
  
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=right|title=4|risk=1|year=2013|language=en}}
+
The project defines the top ten security surface areas presented by IoT systems, and provides information on threat agents, attack vectors, vulnerabilities, and impacts associated with each. In addition, the project aims to provide practical security recommendations for builders, breakers, and users of IoT systems.
  
 
==Licensing==
 
==Licensing==
 +
The OWASP Internet of Things Top 10 is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
  
The OWASP Internet of Things Top Ten Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
+
== ==
 +
{{Social Media Links}}
  
 +
| valign="top"  style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
  
 +
== What is the OWASP Internet of Things Top 10? ==
  
 +
The OWASP Internet of Things Top 10 provides:
  
 +
* A list of the 10 Most Significant IoT Security Surface Areas
 +
* A list of basic recommendations for manufacturers, developers, and consumers
  
 +
For each attack surface areas, the following sections are included:
  
 +
* A description of the attack surface
 +
* Threat agents
 +
* Attack vectors
 +
* Security weaknesses
 +
* Technical impacts
 +
* Business impacts
 +
* Example vulnerabilities
 +
* Example attacks
 +
* Guidance on how to avoid the issue
 +
* References to OWASP and other related resources
  
 +
For each role in Manufacturers, Developers, and Consumer, the following recommendations are included:
  
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=left|title=5|risk=1|year=2013|language=en}}
+
* For each I''N'' category, list the top few considerations that should be observed in that context
 
+
== What is the OWASP Internet of Things Top Ten Project? ==
+
 
+
The OWASP Internet of Things Top Ten Project  provides:
+
 
+
* xxx
+
* xxx
+
 
+
 
+
 
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=right|title=6|risk=1|year=2013|language=en}}
+
 
+
== Presentation ==
+
 
+
Link to presentation
+
 
+
 
+
 
+
 
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=left|title=7|risk=1|year=2013|language=en}}
+
  
 
== Project Leaders ==
 
== Project Leaders ==
  
 
* Daniel Miessler
 
* Daniel Miessler
 +
* Craig Smith
 
* Jason Haddix
 
* Jason Haddix
* Craig Smith
 
 
 
 
 
 
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=right|title=8|risk=1|year=2013|language=en}}
 
  
 
== Related Projects ==
 
== Related Projects ==
  
* [[OWASP_CISO_Survey]]
+
* [https://www.owasp.org/index.php/OWASP_Mobile_Security_Project The OWASP Mobile Top 10 Project]
 
+
* [https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project The OWASP Web Top 10 Project]
 
+
 
+
 
+
 
+
 
+
  
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=left|title=9|risk=1|year=2013|language=en}}
+
| valign="top"  style="padding-left:25px;width:200px;" |
  
 
== Quick Download ==
 
== Quick Download ==
 +
[https://drive.google.com/file/d/0B52IUvO0LP6OZEpHalF3cDFlWWs/view?usp=sharing OWASP Internet of Things Top Ten 2014 PDF]
  
* Link to page/download
+
== Email List ==
 
+
[[https://lists.owasp.org/mailman/listinfo/owasp_internet_of_things_top_ten_project Subcribe here]]
 
+
 
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=right|title=10|risk=1|year=2013|language=en}}
+
  
 
== News and Events ==
 
== News and Events ==
* [20 Nov 2013] News 2
+
* IoT day is April 9th!
* [30 Sep 2013] News 1
+
* [February 2015] Added a PDF containing a walk through of the project and the Top Ten.
 
+
 
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=left|title=11|risk=1|year=2013|language=en}}
+
 
+
== In Print ==
+
 
+
This project can be purchased as a print on demand book from Lulu.com
+
 
+
 
+
 
+
 
+
 
+
 
+
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=right|title=12|risk=1|year=2013|language=en}}
+
  
 
==Classifications==
 
==Classifications==
Line 173: Line 83:
 
   |}
 
   |}
  
 +
|}
  
{{Top_10:SubsectionTableEndTemplate}} {{Top_10_2013:TopTemplate
+
= OWASP Internet of Things Top 10 for 2014 =
    |headertab=Main
+
    |usenext=2013NextLink
+
    |next=A2-{{Top_10_2010:ByTheNumbers
+
              |2
+
              |year=2013
+
              |language=en}}
+
    |useprev=2013PrevLink
+
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
+
    |year=2013
+
    |language=en
+
}}
+
  
='''___________FAQs___________'''=
+
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div>
  
{{Top_10:SubsectionTableBeginTemplate|type=headertab}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=IoT|position=firstLeft|title=1|risk=10|year=2013|language=en}}
 
  
; Q1
+
The OWASP Internet of Things Top 10 - 2014 is as follows:
: A1
+
  
; Q2
+
* [[Top_10_2014-I1 Insecure Web Interface | I1 Insecure Web Interface]]
: A2
+
* [[Top_10_2014-I2 Insufficient Authentication/Authorization | I2 Insufficient Authentication/Authorization]]
 +
* [[Top_10_2014-I3 Insecure Network Services | I3 Insecure Network Services]]
 +
* [[Top_10_2014-I4 Lack of Transport Encryption | I4 Lack of Transport Encryption]]
 +
* [[Top_10_2014-I5 Privacy Concerns | I5 Privacy Concerns]]
 +
* [[Top_10_2014-I6 Insecure Cloud Interface | I6 Insecure Cloud Interface]]
 +
* [[Top_10_2014-I7 Insecure Mobile Interface | I7 Insecure Mobile Interface]]
 +
* [[Top_10_2014-I8 Insufficient Security Configurability | I8 Insufficient Security Configurability]]
 +
* [[Top_10_2014-I9 Insecure Software/Firmware | I9 Insecure Software/Firmware]]
 +
* [[Top_10_2014-I10 Poor Physical Security | I10 Poor Physical Security]]
  
{{Top_10:SubsectionTableEndTemplate}} {{Top_10_2013:TopTemplate
 
    |headertab=FAQs
 
    |usenext=2013NextLink
 
    |next=A2-{{Top_10_2010:ByTheNumbers
 
              |2
 
              |year=2013
 
              |language=en}}
 
    |useprev=2013PrevLink
 
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
 
    |year=2013
 
    |language=en
 
}}
 
  
='''___________Acknowledgements___________'''=
+
== Introduction ==
  
{{Top_10:SubsectionTableBeginTemplate|type=headertab}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=IoT|position=firstLeft|title=1|risk=10|year=2013|language=en}}
+
Oxford defines the Internet of Things as “a proposed development of the Internet in which everyday objects have network connectivity, allowing them to send and receive data.”
  
==Volunteers==
+
The OWASP Internet of Things (IoT) Top 10 is a project designed to help vendors who are interested in making common appliances and gadgets network/Internet accessible. The project walks through the top ten security problems that are seen with IoT devices, and how to prevent them.
The OWASP Internet of Things Top Ten Project is developed by a worldwide team of volunteers. The primary contributors to date have been:
+
  
* xxx
+
Examples of IoT Devices: Cars, lighting systems, refrigerators, telephones, SCADA systems, traffic control systems, home security systems, TVs, DVRs, etc…
* xxx
+
  
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=TenProjects|position=right|title=2|risk=1|year=2013|language=en}}
 
  
==Others==
 
  
* xxx
+
== Feedback ==
* xxx
+
  
{{Top_10:SubsectionTableEndTemplate}} {{Top_10_2013:TopTemplate
+
Please let us know how your organization is using the Internet of Things Top 10. Include your name, organization's name, and brief description of how you use the list. Thanks for supporting OWASP!
    |headertab=Acknowledgements
+
    |usenext=2013NextLink
+
    |next=A2-{{Top_10_2010:ByTheNumbers
+
              |2
+
              |year=2013
+
              |language=en}}
+
    |useprev=2013PrevLink
+
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
+
    |year=2013
+
    |language=en
+
}}
+
  
='''___________Road Map and Getting Involved___________'''=
+
We hope you find the information in the OWASP Internet of Things Top Ten useful. Please contribute back to the project by sending your comments, questions, and suggestions to Daniel.Miessler@owasp.org or Craig.Smith@owasp.org Thanks!
  
{{Top_10:SubsectionTableBeginTemplate|type=headertab}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=IoT|position=firstLeft|title=1|risk=10|year=2013|language=en}}
 
  
As of January 2014, the priorities are:
+
== Project Sponsors ==
* xxx
+
* xxx
+
* xxx
+
  
Involvement in the development and promotion of the OWASP Internet of Things Top Ten Project is actively encouraged!
+
* [http://www8.hp.com/us/en/software-solutions/fortify-on-demand-application-security/ HP Fortify on Demand]
You do not have to be a security expert in order to contribute.
+
* Contribute and add your name here!
Some of the ways you can help:
+
* xxx
+
* xxx
+
  
{{Top_10:SubsectionTableEndTemplate}} {{Top_10_2013:TopTemplate
+
<!-- ==== Project Identification ====
    |headertab=Road Map and Getting Involved
+
{{Template:OWASP OWASP_Top10 Project}} -->
    |usenext=2013NextLink
+
    |next=A2-{{Top_10_2010:ByTheNumbers
+
              |2
+
              |year=2013
+
              |language=en}}
+
    |useprev=2013PrevLink
+
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
+
    |year=2013
+
    |language=en
+
}}
+
  
  
='''___________Project About___________'''=
+
= Talks =
  
{{Top_10:SubsectionTableBeginTemplate|type=headertab}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=IoT|position=firstLeft|title=1|risk=10|year=2013|language=en}}
+
RSA Conference San Francisco <br>
{{:Projects/OWASP_Internet_of_Things_Top_Ten_Project}}
+
[http://www.rsaconference.com/speakers/daniel-miessler Securing the Internet of Things: Mapping IoT Attack Surface Areas with the OWASP IoT Top 10 Project] <br>
 +
Daniel Miessler, Practice Principal <br>
 +
April 21, 2015
  
{{Top_10:SubsectionTableEndTemplate}} {{Top_10_2013:TopTemplate
+
= In the News =
    |headertab=Project About
+
    |usenext=2013NextLink
+
* [http://www.forbes.com/sites/joemckendrick/2015/03/25/is-the-internet-of-things-heralding-the-next-great-economic-shift/ "Why the Internet of Things Heralds the Next Great Economic Disruption"] ''Forbes.'' Forbes 25 March 2015
    |next=A2-{{Top_10_2010:ByTheNumbers
+
* [http://www.fastcompany.com/3044046/tech-forecast/welcome-to-privacy-hell-otherwise-known-as-the-internet-of-things "Welcome to Privacy Hell, Also Known As the Internet of Things"] ''FastCompany.'' FastCompany 23 March 2015
              |2
+
* [http://www.nextgov.com/emerging-tech/2015/03/senate-passes-resolution-national-strategy-internet-things/108358/ "Senate Passes Resolution for National Strategy on Internet of Things"] ''Nextgov.'' Nextgov 25 March 2015
              |year=2013
+
* [http://www.techhive.com/article/2901042/ftc-wants-to-keep-closer-watch-on-the-internet-of-things.html "FTC wants to keep closer watch on the Internet of Things"] ''TechHive.'' TechHive 24 March 2015
              |language=en}}
+
* [http://www.esecurityplanet.com/network-security/6-tips-for-developing-secure-iot-apps.html "6 Tips for Developing Secure IoT Apps"] ''eSecurity Planet.'' eSecurity Planet 26 February 2015
    |useprev=2013PrevLink
+
* [http://www.cmswire.com/cms/internet-of-things/6-reasons-hackers-love-the-internet-of-things-028074.php "6 Reasons Hackers Love the Internet of Things"] ''CMS Wire.'' CMS Wire 13 February 2015
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
+
* [http://www.zdnet.com/article/frankenbeast-thats-hps-considered-view-of-the-lack-of-security-of-the-internet-of-things "Fighting the Frankenbeast: How to stop security fears slowing the Internet of Things"] ''ZDNET.'' ZDNET 12 February 2015
    |year=2013
+
* [http://mobileenterprise.edgl.com/news/IoT-Security-is-Not-One-Dimensional97740 "IoT Security is Not One-Dimensional"] ''Mobile Enterprise.'' Mobile Enterprise 27 January 2015
    |language=en
+
* [http://www.choice.com.au/media-and-news/consumer-news/news/smart-home-security-threats-151214.aspx "Smart Santa a security nightmare"] ''Choice.'' Choice 15 December 2014
}}
+
* [http://www.zdnet.com/article/internet-of-things-rich-with-folly-ripe-with-concerns "Internet of Things rich with folly, ripe with concerns"] ''ZDNET.'' ZDNET 12 November 2014
 +
* [https://devcentral.f5.com/articles/internet-of-things-owasp-top-10 "Internet of Things OWASP Top 10"] ''F5 DevCentral.'' F5 DevCentral, 30 July 2014
 +
* [http://resources.infosecinstitute.com/test-security-iot-smart-devices/ "Testing the Security of Smart Devices with the OWASP Top Ten"] ''Infosec Institute.'' Infosec Institute 10 November 2014
 +
* [https://www.virtual.com/blog/detail/internet-of-things-iot-security-resource-owasp-top-10/269 "Internet of Things (IoT) Security Resource: OWASP Top 10"] ''Advanced Systems Group.'' Advanced Systems Group 28 August 2014
  
  
 +
= IoT Conferences - March 2015=
  
='''A1-Injection'''=
+
* [https://iotcon.de/2015se/ Internet of Things Conference - Spring 2015] Munchen, Germany March 23 - 26
 +
* [http://ants-webs.inf.um.es/conferences/pitsac/ Pervasive Internet of Things and Smart Cities] Kwangju, South Korea March 24 - 27
 +
* [https://open.sap.com/courses/iot1 How the Internet of Things and Smart Services will Change Society] Walldorf, Germany March 25 - May 05
 +
* [http://www.arrow.com/iotimmersions/ Internet of Things Immersions] Boston, MA March 26
  
 +
= Community =
  
='''A2-Broken Authentication and Session Management'''=
+
[https://www.iamthecavalry.org/ I Am The Cavalry]
  
 +
A global grassroots organization that is focused on issues where computer security intersects public safety and human life.
  
 +
Their areas of focus include:
 +
* Medical devices
 +
* Automobiles
 +
* Home Electronics
 +
* Public Infrastructure
 +
== ==
 +
[https://ifttt.com/ If This Then That (IFTTT)]
  
 +
A service that lets you create powerful connections with one simple statement.
  
='''A3-Cross-Site Scripting (XSS)'''=
+
Channels are the basic building blocks of IFTTT. Channels include:
 +
* Triggers - The ''this'' part of a Recipe
 +
* Actions - The ''that'' part of a Recipe
 +
== ==
 +
[http://builditsecure.ly BuildItSecure.ly]
  
 +
A project focused on helping small business connect with security researchers to aid in securing their IoT-based products before going market.
  
 +
Their goals include:
 +
* Focus effort towards small business
 +
* Build partnerships
 +
* Coordinate efforts
 +
* Curate informational resources
 +
* Present research
  
='''A4-Insecure Direct Object References'''=
+
= Manufacturers =
  
 +
== Manufacturer IoT Security Guidance ==
  
 +
(DRAFT)
  
 +
The goal of this page is help manufacturers build more secure products in the Internet of Things space. The guidance below is at a basic level, giving builders of products a basic set of guidelines to consider from their perspective. This is not a comprehensive list of considerations, and should not be treated as such, but ensuring that these fundamentals are covered will greatly improve the security of any IoT product.
  
='''A5-Security Misconfiguration'''=
+
{| border="1" class="wikitable" style="text-align: left"
 +
! Category
 +
! IoT Security Consideration
 +
|-
 +
| '''I1: Insecure Web Interface'''
 +
|
 +
* Ensure that any web interface in the product disallows weak passwords
 +
* Ensure that any web interface in the product has an account lockout mechanism
 +
* Ensure that any web interface in the product has been tested for XSS, SQLi and CSRF vulnerabilities
 +
* Ensure that any web interface has the ability to use HTTPS to protect transmitted information
 +
* Include web application firewalls to protect any web interfaces
 +
* Ensure that any web interface allows the owner to change the default username and password
 +
|-  
 +
| '''I2: Insufficient Authentication/Authorization'''
 +
|
 +
* Ensure that any access requiring authentication requires strong passwords
 +
* Ensure that user roles can be properly segregated in multi-user environments
 +
* Implement two-factor authentication where possible
 +
* Ensure password recovery mechanisms are secure
 +
* Ensure that users have the option to require strong passwords
 +
* Ensure that users have the option to force password expiration after a specific period
 +
* Ensure that users have the option to change the default username and password
 +
|-
 +
| '''I3: Insecure Network Services'''
 +
|
 +
* Ensure all devices operate with a minimal number of network ports active
 +
* Ensure all devices do not make network ports and/or services available to the internet via UPnP for example
 +
* Review all required network services for vulnerabilities such as buffer overflows or denial of service
 +
|-
 +
| '''I4: Lack of Transport Encryption'''
 +
|
 +
* Ensure all communication between system components is encrypted as well as encrypting traffic between the system or device and the internet
 +
* Use recommended and accepted encryption practices and avoid proprietary protocols
 +
* Ensure SSL/TLS implementations are up to date and properly configured
 +
* Consider making a firewall option available for the product
 +
|-
 +
| '''I5: Privacy Concerns'''
 +
|
 +
* Ensure only the minimal amount of personal information is collected from consumers
 +
* Ensure all collected personal data is properly protected using encryption at rest and in transit
 +
* Ensure only authorized individuals have access to collected personal information
 +
|-
 +
| '''I6: Insecure Cloud Interface'''
 +
|
 +
* Ensure all cloud interfaces are reviewed for security vulnerabilities (e.g. API interfaces and cloud-based web interfaces)
 +
* Ensure that any cloud-based web interface disallows weak passwords
 +
* Ensure that any cloud-based web interface has an account lockout mechanism
 +
* Implement two-factor authentication for cloud-based web interfaces
 +
* Ensure that all cloud interfaces use transport encryption
 +
* Ensure that any cloud-based web interface has been tested for XSS, SQLi and CSRF vulnerabilities
 +
* Ensure that users have the option to require strong passwords
 +
* Ensure that users have the option to force password expiration after a specific period
 +
* Ensure that users have the option to change the default username and password
 +
|-
 +
| '''I7: Insecure Mobile Interface'''
 +
|
 +
* Ensure that any mobile application disallows weak passwords
 +
* Ensure that any mobile application has an account lockout mechanism
 +
* Implement two-factor authentication for mobile applications (e.g Apple's Touch ID)
 +
* Ensure that any mobile application uses transport encryption
 +
* Ensure that users have the option to require strong passwords
 +
* Ensure that users have the option to force password expiration after a specific period
 +
* Ensure that users have the option to change the default username and password
 +
|-
 +
| '''I8: Insufficient Security Configurability'''
 +
|
 +
* Ensure password security options are made available (e.g. Enabling 20 character passwords or enabling two-factor authentication)
 +
* Ensure encryption options are made available (e.g. Enabling AES-256 where AES-128 is the default setting)
 +
* Ensure secure logging is available for security events
 +
* Ensure alerts and notifications are available to the user for security events
 +
|-
 +
| '''I9: Insecure Software/Firmware'''
 +
|
 +
* Ensure all system devices have update capability and can be updated quickly when vulnerabilities are discovered
 +
* Ensure update files are encrypted and that the files are also transmitted using encryption
 +
* Ensure that update files are signed and then validated by the device before installing
 +
* Ensure update servers are secure
 +
* Ensure the product has the ability to implement scheduled updates
 +
|-
 +
| '''I10: Poor Physical Security'''
 +
|
 +
* Ensure the device is produced with a minimal number of physical external ports (e.g. USB ports)
 +
* Ensure the firmware of Operating System can not be accessed via unintended methods such as through an unnecessary USB port
 +
* Ensure the product is tamper resistant
 +
* Ensure the product has the ability to limit administrative capabilities in some fashion, possibly by only connecting locally for admin functions
 +
* Ensure the product has the ability to disable external ports such as USB
 +
|}
  
 +
===General Recommendations===
  
='''A6-Sensitive Data Exposure'''=
+
Consider the following recommendation for all Internet of Things products:
 +
* Avoid the potential for persistent vulnerabilities in devices that have no update capability by ensuring that all devices and systems are built with the ability to be updated when vulnerabilities are discovered
 +
* Rebranded devices used as part of a system should be properly configured so that unnecessary or unintended services do not remain active after the rebranding
  
 +
[ NOTE: Given the fact that each deployment and every environment is different, it is important to weigh the pros and cons of implementing the advice above before taking each step. ]
  
  
 +
= Developers =
  
='''A7-Missing Function Level Access Control'''=
+
== Developer IoT Security Guidance ==
  
 +
(DRAFT)
  
 +
The goal of this page is help developers build more secure applications in the Internet of Things space. The guidance below is at a basic level, giving developers of applications a basic set of guidelines to consider from their perspective. This is not a comprehensive list of considerations, and should not be treated as such, but ensuring that these fundamentals are covered will greatly improve the security of any IoT product.
  
 +
{| border="1" class="wikitable" style="text-align: left"
 +
! Category
 +
! IoT Security Consideration
 +
|-
 +
| '''I1: Insecure Web Interface'''
 +
|
 +
* Ensure that any web interface coding is written to prevent the use of weak passwords
 +
* Ensure that any web interface coding is written to include an account lockout mechanism
 +
* Ensure that any web interface coding has been tested for XSS, SQLi and CSRF vulnerabilities
 +
* Ensure that any web interface has the ability to use HTTPS to protect transmitted information
 +
* Ensure that any web interface coding is written to allow the owner to change the username and password
 +
* Consider the use of web application firewalls to protect any web interfaces
 +
|-
 +
| '''I2: Insufficient Authentication/Authorization'''
 +
|
 +
* Ensure that applications are written to require strong passwords where authentication is needed
 +
* Ensure the application takes into account multi-user environments and includes functionality for role separation
 +
* Implement two-factor authentication where possible
 +
* Ensure password recovery mechanisms are written to function in a secure manner
 +
* Ensure that applications are written to include the option to require strong passwords
 +
* Ensure that applications are written to include the option to force password expiration after a specific period
 +
* Ensure that applications are written to include the option to change the default username and password
 +
|-
 +
| '''I3: Insecure Network Services'''
 +
|
 +
* Ensure applications that use network services don't respond poorly to buffer overflow, fuzzing or denial of service attacks
 +
* Ensure applications test ports are taken out of service before going to production
 +
|-
 +
| '''I4: Lack of Transport Encryption'''
 +
|
 +
* Ensure all applications are written to make use of encrypted communication between devices and between devices and the internet
 +
* Use recommended and accepted encryption practices and avoid proprietary protocols
 +
* Consider making a firewall option available for the application
 +
|-
 +
| '''I5: Privacy Concerns'''
 +
|
 +
* Ensure only the minimal amount of personal information is collected from consumers
 +
* Ensure all collected personal data is properly protected using encryption at rest and in transit
 +
|-
 +
| '''I6: Insecure Cloud Interface'''
 +
|
 +
* Ensure all cloud interfaces are reviewed for security vulnerabilities (e.g. API interfaces and cloud-based web interfaces)
 +
* Ensure that any cloud-based web interface coding is written to disallows weak passwords
 +
* Ensure that any cloud-based web interface coding is written to include an account lockout mechanism
 +
* Implement two-factor authentication for cloud-based web interfaces
 +
* Ensure that any cloud interface coding has been tested for XSS, SQLi and CSRF vulnerabilities
 +
* Ensure that all cloud interfaces use transport encryption
 +
* Ensure that any cloud interface coding is written to allow the owner to change the username and password
 +
* Ensure that cloud interfaces are written to include the option to require strong passwords
 +
* Ensure that cloud interfaces are written to include the option to force password expiration after a specific period
 +
* Ensure that cloud interfaces are written to include the option to change the default username and password
 +
|-
 +
| '''I7: Insecure Mobile Interface'''
 +
|
 +
* Ensure that any mobile application coding is written to disallows weak passwords
 +
* Ensure that any mobile application coding is written to include an account lockout mechanism
 +
* Implement two-factor authentication for mobile applications (e.g Apple's Touch ID)
 +
* Ensure that any mobile application uses transport encryption
 +
* Ensure that mobile interfaces are written to include the option to require strong passwords
 +
* Ensure that mobile interfaces are written to include the option to force password expiration after a specific period
 +
* Ensure that mobile interfaces are written to include the option to change the default username and password
 +
* Ensure that mobile interfaces only collect the minimum amount of personal information needed
 +
|-
 +
| '''I8: Insufficient Security Configurability'''
 +
|
 +
* Ensure applications are written to include password security options (e.g. Enabling 20 character passwords or enabling two-factor authentication)
 +
* Ensure applications are written to include encryption options (e.g. Enabling AES-256 where AES-128 is the default setting)
 +
* Ensure all applications are written to produce logs for security events
 +
* Ensure all applications are written to produce alerts and notifications to the user for security events
 +
|-
 +
| '''I9: Insecure Software/Firmware'''
 +
|
 +
* Ensure all applications are written to include update capability and can be updated quickly when vulnerabilities are discovered
 +
* Ensure all applications are written to process encrypted update files and that the files are transmitted using encryption
 +
* Ensure all applications are written to process signed files and then validate that file before installation
  
='''A8-Cross-Site Request Forgery (CSRF)'''=
+
|-
 +
| '''I10: Poor Physical Security'''
 +
|
 +
* Ensure applications are written to utilize a minimal number of physical external ports (e.g. USB ports) on the device
 +
* Ensure all applications can not be accessed via unintended methods such as through an unnecessary USB port
 +
* Ensure all applications are written to allow for disabling of unused physical ports such as USB
 +
* Consider writing applications to limit administrative capabilities to a local interface only
 +
|}
  
 +
===General Recommendations===
  
 +
Consider the following recommendations for all user interfaces (local device, cloud-based and mobile):
 +
* Avoid potential Account Harvesting issues by:
 +
** Ensuring valid user accounts can't be identified by interface error messages
 +
** Ensuring strong passwords are required by users
 +
** Implementing account lockout after 3 - 5 failed login attempts
  
 +
[ NOTE: Given the fact that each deployment and every environment is different, it is important to weigh the pros and cons of implementing the advice above before taking each step. ]
  
='''A9-Using Components with Known Vulnerabilities'''=
+
= Consumers =
  
 +
== Consumer IoT Security Guidance ==
  
 +
(DRAFT)
  
 +
The goal of this page is help consumers purchase secure products in the Internet of Things space. The guidance below is at a basic level, giving consumers a basic set of guidelines to consider from their perspective. This is not a comprehensive list of considerations, and should not be treated as such, but ensuring that these fundamentals are covered will greatly aid the consumer in purchasing a secure IoT product.
  
='''A10-Unvalidated Redirects and Forwards'''=
+
{| border="1" class="wikitable" style="text-align: left"
 +
! Category
 +
! IoT Security Consideration
 +
|-
 +
| '''I1: Insecure Web Interface'''
 +
|
 +
* If your system has the option to use HTTPS, ensure it is enabled
 +
* If your system has a two factor authentication option, ensure that it is enabled
 +
* If your system has web application firewall option, ensure that it is enabled
 +
* If your system has a local or cloud-based web application, ensure that you change the default password to a strong one and if possible change the default username as well
 +
* If the system has account lockout functionality, ensure that it is enabled
 +
* Consider employing network segmentation technologies such as firewalls to isolate IoT systems from critical IT systems
 +
|-
 +
| '''I2: Insufficient Authentication/Authorization'''
 +
|
 +
* If your system has a local or cloud-based web application, ensure that you change the default password to a strong one and if possible change the default username as well
 +
* If the system has account lockout functionality, ensure that it is enabled
 +
* If the system has the option to require strong passwords, ensure that is enabled
 +
* If the system has the option to require new passwords after 90 days for example, ensure that is enabled
 +
* If your system has a two factor authentication option, ensure that it is enabled
 +
* If your system has the option to set user privileges, consider setting user privileges to the minimal needed for operation
 +
* Consider employing network segmentation technologies such as firewalls to isolate IoT systems from critical IT systems
 +
|-
 +
| '''I3: Insecure Network Services'''
 +
|
 +
* If your system has a firewall option available, enable it and ensure that it can only be accessed from your client systems
 +
* Consider employing network segmentation technologies such as firewalls to isolate IoT systems from critical IT systems
 +
|-
 +
| '''I4: Lack of Transport Encryption'''
 +
|
 +
* If your system has the option to use HTTPS, ensure it is enabled
 +
|-
 +
| '''I5: Privacy Concerns'''
 +
|
 +
* Do not enter sensitive information into the system that is not absolutely required, e.g. address, DOB, CC, etc.
 +
|-
 +
| '''I6: Insecure Cloud Interface'''
 +
|
 +
* If your system has the option to use HTTPS, ensure it is enabled
 +
* If your system has a two factor authentication option, ensure that it is enabled
 +
* If your system has web application firewall option, ensure that it is enabled
 +
* If your system has a local or cloud-based web application, ensure that you change the default password to a strong one and if possible change the default username as well
 +
* If the system has account lockout functionality, ensure that it is enabled
 +
* If the system has the option to require strong passwords, ensure that is enabled
 +
* If the system has the option to require new passwords after 90 days for example, ensure that is enabled
 +
|-
 +
| '''I7: Insecure Mobile Interface'''
 +
|
 +
* If the mobile application has the option to require a PIN or password, consider using it for extra security (on client and server)
 +
* If the mobile application has the option to use two factory authentication such as Apple's Touch ID, ensure it is enabled
 +
* If the system has account lockout functionality, ensure that it is enabled
 +
* If the system has the option to require strong passwords, ensure that is enabled
 +
* If the system has the option to require new passwords after 90 days for example, ensure that is enabled
 +
* Do not enter sensitive information into the mobile application that is not absolutely required, e.g. address, DOB, CC, etc.
 +
|-
 +
| '''I8: Insufficient Security Configurability'''
 +
|
 +
* If your system has the option, enable any logging functionality for security-related events
 +
* If your system has the option, enable any alert and notification functionality for security-related events
 +
* If your system has security options for passwords, ensure they are enabled for strong passwords
 +
* If your system has security options for encryption, ensure they are set for an accepted standard such as AES-256
 +
|-
 +
| '''I9: Insecure Software/Firmware'''
 +
|
 +
* If your system has the option to verify updates, ensure it is enabled
 +
* If your system has the option to download updates securely, ensure it is enabled
 +
* If your system has the ability to schedule updates on a regular cadence, consider enabling it
 +
|-
 +
| '''I10: Poor Physical Security'''
 +
|
 +
* If your system has the ability to limit administrative capabilities possible by connecting locally, consider enabling that feature
 +
* Disable any unused physical ports through the administrative interface
 +
|}
  
 +
===General Recommendations===
  
 +
If you are looking to purchase a device or system, consider the following recommendations:
 +
* Include security in feature considerations when evaluating a product
 +
* Place Internet of Things devices on a separate network if possible using a firewall
  
 +
[ NOTE: Given the fact that each deployment and every environment is different, it is important to weigh the pros and cons of implementing the advice above before taking each step. ]
  
<headertabs />
+
= Project Details =
  
{{Top_10_2013:BottomAdvancedTemplate
+
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div>
    |type={{Top_10_2010:StyleTemplate}}
+
    |usenext=2013NextLink
+
    |next=A2-{{Top_10_2010:ByTheNumbers
+
              |2
+
              |year=2013
+
              |language=en}}
+
    |useprev=2013PrevLink
+
    |prev={{Top_10:LanguageFile|text=top10|year=2013|language=en}}
+
    |year=2013
+
    |language=en
+
}} 
+
  
|}
 
  
[[Category:OWASP Project]] [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]] [[Category:OWASP_Document]]
+
{{:Projects/OWASP_Internet_of_Things_Top_Ten_Project}}
 +
 
 +
 
 +
__NOTOC__ <headertabs />
 +
 
 +
[[Category:OWASP_Project]] [[Category:OWASP_Document]] [[Category:OWASP_Download]] [[Category:OWASP_Release_Quality_Document]]

Latest revision as of 10:57, 26 March 2015

[edit]

OWASP Project Header.jpg

OWASP Internet of Things Top 10

Oxford defines the Internet of Things as: “A proposed development of the Internet in which everyday objects have network connectivity, allowing them to send and receive data.”

The OWASP Internet of Things (IoT) Top 10 is a project designed to help manufacturers, developers, and consumers better understand the security issues associated with the Internet of Things, and to enable users in any context to make better security decisions when building, deploying, or assessing IoT technologies.

The project defines the top ten security surface areas presented by IoT systems, and provides information on threat agents, attack vectors, vulnerabilities, and impacts associated with each. In addition, the project aims to provide practical security recommendations for builders, breakers, and users of IoT systems.

Licensing

The OWASP Internet of Things Top 10 is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.


What is the OWASP Internet of Things Top 10?

The OWASP Internet of Things Top 10 provides:

  • A list of the 10 Most Significant IoT Security Surface Areas
  • A list of basic recommendations for manufacturers, developers, and consumers

For each attack surface areas, the following sections are included:

  • A description of the attack surface
  • Threat agents
  • Attack vectors
  • Security weaknesses
  • Technical impacts
  • Business impacts
  • Example vulnerabilities
  • Example attacks
  • Guidance on how to avoid the issue
  • References to OWASP and other related resources

For each role in Manufacturers, Developers, and Consumer, the following recommendations are included:

  • For each IN category, list the top few considerations that should be observed in that context

Project Leaders

  • Daniel Miessler
  • Craig Smith
  • Jason Haddix

Related Projects

Quick Download

OWASP Internet of Things Top Ten 2014 PDF

Email List

[Subcribe here]

News and Events

  • IoT day is April 9th!
  • [February 2015] Added a PDF containing a walk through of the project and the Top Ten.

Classifications

Owasp-incubator-trans-85.png Owasp-builders-small.png
Owasp-defenders-small.png
Cc-button-y-sa-small.png
Project Type Files DOC.jpg

OWASP Project Header.jpg


The OWASP Internet of Things Top 10 - 2014 is as follows:


Introduction

Oxford defines the Internet of Things as “a proposed development of the Internet in which everyday objects have network connectivity, allowing them to send and receive data.”

The OWASP Internet of Things (IoT) Top 10 is a project designed to help vendors who are interested in making common appliances and gadgets network/Internet accessible. The project walks through the top ten security problems that are seen with IoT devices, and how to prevent them.

Examples of IoT Devices: Cars, lighting systems, refrigerators, telephones, SCADA systems, traffic control systems, home security systems, TVs, DVRs, etc…


Feedback

Please let us know how your organization is using the Internet of Things Top 10. Include your name, organization's name, and brief description of how you use the list. Thanks for supporting OWASP!

We hope you find the information in the OWASP Internet of Things Top Ten useful. Please contribute back to the project by sending your comments, questions, and suggestions to Daniel.Miessler@owasp.org or Craig.Smith@owasp.org Thanks!


Project Sponsors


RSA Conference San Francisco
Securing the Internet of Things: Mapping IoT Attack Surface Areas with the OWASP IoT Top 10 Project
Daniel Miessler, Practice Principal
April 21, 2015


I Am The Cavalry

A global grassroots organization that is focused on issues where computer security intersects public safety and human life.

Their areas of focus include:

  • Medical devices
  • Automobiles
  • Home Electronics
  • Public Infrastructure

If This Then That (IFTTT)

A service that lets you create powerful connections with one simple statement.

Channels are the basic building blocks of IFTTT. Channels include:

  • Triggers - The this part of a Recipe
  • Actions - The that part of a Recipe

BuildItSecure.ly

A project focused on helping small business connect with security researchers to aid in securing their IoT-based products before going market.

Their goals include:

  • Focus effort towards small business
  • Build partnerships
  • Coordinate efforts
  • Curate informational resources
  • Present research

Manufacturer IoT Security Guidance

(DRAFT)

The goal of this page is help manufacturers build more secure products in the Internet of Things space. The guidance below is at a basic level, giving builders of products a basic set of guidelines to consider from their perspective. This is not a comprehensive list of considerations, and should not be treated as such, but ensuring that these fundamentals are covered will greatly improve the security of any IoT product.

Category IoT Security Consideration
I1: Insecure Web Interface
  • Ensure that any web interface in the product disallows weak passwords
  • Ensure that any web interface in the product has an account lockout mechanism
  • Ensure that any web interface in the product has been tested for XSS, SQLi and CSRF vulnerabilities
  • Ensure that any web interface has the ability to use HTTPS to protect transmitted information
  • Include web application firewalls to protect any web interfaces
  • Ensure that any web interface allows the owner to change the default username and password
I2: Insufficient Authentication/Authorization
  • Ensure that any access requiring authentication requires strong passwords
  • Ensure that user roles can be properly segregated in multi-user environments
  • Implement two-factor authentication where possible
  • Ensure password recovery mechanisms are secure
  • Ensure that users have the option to require strong passwords
  • Ensure that users have the option to force password expiration after a specific period
  • Ensure that users have the option to change the default username and password
I3: Insecure Network Services
  • Ensure all devices operate with a minimal number of network ports active
  • Ensure all devices do not make network ports and/or services available to the internet via UPnP for example
  • Review all required network services for vulnerabilities such as buffer overflows or denial of service
I4: Lack of Transport Encryption
  • Ensure all communication between system components is encrypted as well as encrypting traffic between the system or device and the internet
  • Use recommended and accepted encryption practices and avoid proprietary protocols
  • Ensure SSL/TLS implementations are up to date and properly configured
  • Consider making a firewall option available for the product
I5: Privacy Concerns
  • Ensure only the minimal amount of personal information is collected from consumers
  • Ensure all collected personal data is properly protected using encryption at rest and in transit
  • Ensure only authorized individuals have access to collected personal information
I6: Insecure Cloud Interface
  • Ensure all cloud interfaces are reviewed for security vulnerabilities (e.g. API interfaces and cloud-based web interfaces)
  • Ensure that any cloud-based web interface disallows weak passwords
  • Ensure that any cloud-based web interface has an account lockout mechanism
  • Implement two-factor authentication for cloud-based web interfaces
  • Ensure that all cloud interfaces use transport encryption
  • Ensure that any cloud-based web interface has been tested for XSS, SQLi and CSRF vulnerabilities
  • Ensure that users have the option to require strong passwords
  • Ensure that users have the option to force password expiration after a specific period
  • Ensure that users have the option to change the default username and password
I7: Insecure Mobile Interface
  • Ensure that any mobile application disallows weak passwords
  • Ensure that any mobile application has an account lockout mechanism
  • Implement two-factor authentication for mobile applications (e.g Apple's Touch ID)
  • Ensure that any mobile application uses transport encryption
  • Ensure that users have the option to require strong passwords
  • Ensure that users have the option to force password expiration after a specific period
  • Ensure that users have the option to change the default username and password
I8: Insufficient Security Configurability
  • Ensure password security options are made available (e.g. Enabling 20 character passwords or enabling two-factor authentication)
  • Ensure encryption options are made available (e.g. Enabling AES-256 where AES-128 is the default setting)
  • Ensure secure logging is available for security events
  • Ensure alerts and notifications are available to the user for security events
I9: Insecure Software/Firmware
  • Ensure all system devices have update capability and can be updated quickly when vulnerabilities are discovered
  • Ensure update files are encrypted and that the files are also transmitted using encryption
  • Ensure that update files are signed and then validated by the device before installing
  • Ensure update servers are secure
  • Ensure the product has the ability to implement scheduled updates
I10: Poor Physical Security
  • Ensure the device is produced with a minimal number of physical external ports (e.g. USB ports)
  • Ensure the firmware of Operating System can not be accessed via unintended methods such as through an unnecessary USB port
  • Ensure the product is tamper resistant
  • Ensure the product has the ability to limit administrative capabilities in some fashion, possibly by only connecting locally for admin functions
  • Ensure the product has the ability to disable external ports such as USB

General Recommendations

Consider the following recommendation for all Internet of Things products:

  • Avoid the potential for persistent vulnerabilities in devices that have no update capability by ensuring that all devices and systems are built with the ability to be updated when vulnerabilities are discovered
  • Rebranded devices used as part of a system should be properly configured so that unnecessary or unintended services do not remain active after the rebranding

[ NOTE: Given the fact that each deployment and every environment is different, it is important to weigh the pros and cons of implementing the advice above before taking each step. ]


Developer IoT Security Guidance

(DRAFT)

The goal of this page is help developers build more secure applications in the Internet of Things space. The guidance below is at a basic level, giving developers of applications a basic set of guidelines to consider from their perspective. This is not a comprehensive list of considerations, and should not be treated as such, but ensuring that these fundamentals are covered will greatly improve the security of any IoT product.

Category IoT Security Consideration
I1: Insecure Web Interface
  • Ensure that any web interface coding is written to prevent the use of weak passwords
  • Ensure that any web interface coding is written to include an account lockout mechanism
  • Ensure that any web interface coding has been tested for XSS, SQLi and CSRF vulnerabilities
  • Ensure that any web interface has the ability to use HTTPS to protect transmitted information
  • Ensure that any web interface coding is written to allow the owner to change the username and password
  • Consider the use of web application firewalls to protect any web interfaces
I2: Insufficient Authentication/Authorization
  • Ensure that applications are written to require strong passwords where authentication is needed
  • Ensure the application takes into account multi-user environments and includes functionality for role separation
  • Implement two-factor authentication where possible
  • Ensure password recovery mechanisms are written to function in a secure manner
  • Ensure that applications are written to include the option to require strong passwords
  • Ensure that applications are written to include the option to force password expiration after a specific period
  • Ensure that applications are written to include the option to change the default username and password
I3: Insecure Network Services
  • Ensure applications that use network services don't respond poorly to buffer overflow, fuzzing or denial of service attacks
  • Ensure applications test ports are taken out of service before going to production
I4: Lack of Transport Encryption
  • Ensure all applications are written to make use of encrypted communication between devices and between devices and the internet
  • Use recommended and accepted encryption practices and avoid proprietary protocols
  • Consider making a firewall option available for the application
I5: Privacy Concerns
  • Ensure only the minimal amount of personal information is collected from consumers
  • Ensure all collected personal data is properly protected using encryption at rest and in transit
I6: Insecure Cloud Interface
  • Ensure all cloud interfaces are reviewed for security vulnerabilities (e.g. API interfaces and cloud-based web interfaces)
  • Ensure that any cloud-based web interface coding is written to disallows weak passwords
  • Ensure that any cloud-based web interface coding is written to include an account lockout mechanism
  • Implement two-factor authentication for cloud-based web interfaces
  • Ensure that any cloud interface coding has been tested for XSS, SQLi and CSRF vulnerabilities
  • Ensure that all cloud interfaces use transport encryption
  • Ensure that any cloud interface coding is written to allow the owner to change the username and password
  • Ensure that cloud interfaces are written to include the option to require strong passwords
  • Ensure that cloud interfaces are written to include the option to force password expiration after a specific period
  • Ensure that cloud interfaces are written to include the option to change the default username and password
I7: Insecure Mobile Interface
  • Ensure that any mobile application coding is written to disallows weak passwords
  • Ensure that any mobile application coding is written to include an account lockout mechanism
  • Implement two-factor authentication for mobile applications (e.g Apple's Touch ID)
  • Ensure that any mobile application uses transport encryption
  • Ensure that mobile interfaces are written to include the option to require strong passwords
  • Ensure that mobile interfaces are written to include the option to force password expiration after a specific period
  • Ensure that mobile interfaces are written to include the option to change the default username and password
  • Ensure that mobile interfaces only collect the minimum amount of personal information needed
I8: Insufficient Security Configurability
  • Ensure applications are written to include password security options (e.g. Enabling 20 character passwords or enabling two-factor authentication)
  • Ensure applications are written to include encryption options (e.g. Enabling AES-256 where AES-128 is the default setting)
  • Ensure all applications are written to produce logs for security events
  • Ensure all applications are written to produce alerts and notifications to the user for security events
I9: Insecure Software/Firmware
  • Ensure all applications are written to include update capability and can be updated quickly when vulnerabilities are discovered
  • Ensure all applications are written to process encrypted update files and that the files are transmitted using encryption
  • Ensure all applications are written to process signed files and then validate that file before installation
I10: Poor Physical Security
  • Ensure applications are written to utilize a minimal number of physical external ports (e.g. USB ports) on the device
  • Ensure all applications can not be accessed via unintended methods such as through an unnecessary USB port
  • Ensure all applications are written to allow for disabling of unused physical ports such as USB
  • Consider writing applications to limit administrative capabilities to a local interface only

General Recommendations

Consider the following recommendations for all user interfaces (local device, cloud-based and mobile):

  • Avoid potential Account Harvesting issues by:
    • Ensuring valid user accounts can't be identified by interface error messages
    • Ensuring strong passwords are required by users
    • Implementing account lockout after 3 - 5 failed login attempts

[ NOTE: Given the fact that each deployment and every environment is different, it is important to weigh the pros and cons of implementing the advice above before taking each step. ]

Consumer IoT Security Guidance

(DRAFT)

The goal of this page is help consumers purchase secure products in the Internet of Things space. The guidance below is at a basic level, giving consumers a basic set of guidelines to consider from their perspective. This is not a comprehensive list of considerations, and should not be treated as such, but ensuring that these fundamentals are covered will greatly aid the consumer in purchasing a secure IoT product.

Category IoT Security Consideration
I1: Insecure Web Interface
  • If your system has the option to use HTTPS, ensure it is enabled
  • If your system has a two factor authentication option, ensure that it is enabled
  • If your system has web application firewall option, ensure that it is enabled
  • If your system has a local or cloud-based web application, ensure that you change the default password to a strong one and if possible change the default username as well
  • If the system has account lockout functionality, ensure that it is enabled
  • Consider employing network segmentation technologies such as firewalls to isolate IoT systems from critical IT systems
I2: Insufficient Authentication/Authorization
  • If your system has a local or cloud-based web application, ensure that you change the default password to a strong one and if possible change the default username as well
  • If the system has account lockout functionality, ensure that it is enabled
  • If the system has the option to require strong passwords, ensure that is enabled
  • If the system has the option to require new passwords after 90 days for example, ensure that is enabled
  • If your system has a two factor authentication option, ensure that it is enabled
  • If your system has the option to set user privileges, consider setting user privileges to the minimal needed for operation
  • Consider employing network segmentation technologies such as firewalls to isolate IoT systems from critical IT systems
I3: Insecure Network Services
  • If your system has a firewall option available, enable it and ensure that it can only be accessed from your client systems
  • Consider employing network segmentation technologies such as firewalls to isolate IoT systems from critical IT systems
I4: Lack of Transport Encryption
  • If your system has the option to use HTTPS, ensure it is enabled
I5: Privacy Concerns
  • Do not enter sensitive information into the system that is not absolutely required, e.g. address, DOB, CC, etc.
I6: Insecure Cloud Interface
  • If your system has the option to use HTTPS, ensure it is enabled
  • If your system has a two factor authentication option, ensure that it is enabled
  • If your system has web application firewall option, ensure that it is enabled
  • If your system has a local or cloud-based web application, ensure that you change the default password to a strong one and if possible change the default username as well
  • If the system has account lockout functionality, ensure that it is enabled
  • If the system has the option to require strong passwords, ensure that is enabled
  • If the system has the option to require new passwords after 90 days for example, ensure that is enabled
I7: Insecure Mobile Interface
  • If the mobile application has the option to require a PIN or password, consider using it for extra security (on client and server)
  • If the mobile application has the option to use two factory authentication such as Apple's Touch ID, ensure it is enabled
  • If the system has account lockout functionality, ensure that it is enabled
  • If the system has the option to require strong passwords, ensure that is enabled
  • If the system has the option to require new passwords after 90 days for example, ensure that is enabled
  • Do not enter sensitive information into the mobile application that is not absolutely required, e.g. address, DOB, CC, etc.
I8: Insufficient Security Configurability
  • If your system has the option, enable any logging functionality for security-related events
  • If your system has the option, enable any alert and notification functionality for security-related events
  • If your system has security options for passwords, ensure they are enabled for strong passwords
  • If your system has security options for encryption, ensure they are set for an accepted standard such as AES-256
I9: Insecure Software/Firmware
  • If your system has the option to verify updates, ensure it is enabled
  • If your system has the option to download updates securely, ensure it is enabled
  • If your system has the ability to schedule updates on a regular cadence, consider enabling it
I10: Poor Physical Security
  • If your system has the ability to limit administrative capabilities possible by connecting locally, consider enabling that feature
  • Disable any unused physical ports through the administrative interface

General Recommendations

If you are looking to purchase a device or system, consider the following recommendations:

  • Include security in feature considerations when evaluating a product
  • Place Internet of Things devices on a separate network if possible using a firewall

[ NOTE: Given the fact that each deployment and every environment is different, it is important to weigh the pros and cons of implementing the advice above before taking each step. ]

OWASP Project Header.jpg


PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP Internet of Things Top Ten Project (home page)
Purpose: Oxford defines the Internet of Things as “a proposed development of the Internet in which everyday objects have network connectivity, allowing them to send and receive data.”

The OWASP Internet of Things (IoT) Top 10 is a project designed to help vendors who are interested in making common appliances and gadgets network/Internet accessible. The project walks through the top ten security problems that are seen with IoT devices, and how to prevent them.

License: Creative Commons Attribution Share Alike 3.0
who is working on this project?
Project Leader(s):
  • Daniel Miessler @
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: View
Key Contacts
  • Contact Daniel Miessler @ to contribute to this project
  • Contact Daniel Miessler @ to review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.
current release
Not Yet Published
last reviewed release
Not Yet Reviewed


other releases