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 "OWASP API Security Project"

From OWASP
Jump to: navigation, search
m (OWASP API Security Project)
(Contributors)
 
(66 intermediate revisions by 4 users not shown)
Line 5: Line 5:
 
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
| valign="top"  style="border-right: 1px dotted gray;padding-right:25px;" |
+
| style="border-right: 1px dotted gray;padding-right:25px;" valign="top" |
  
==OWASP API Security Project==
+
==What is API Security?==
  
More organizations than ever are creating and deploying web-based APIs. These APIs are used both for internal tasks, and to interface with third parties. Unfortunately, many APIs do not undergo the rigorous security testing that would render them secure from attack.
+
A foundational element of innovation in today’s app-driven world is the API. From banks, retail and transportation to IoT, autonomous vehicles and smart cities, APIs are a critical part of modern mobile, SaaS and web applications and can be found in customer-facing, partner-facing and internal applications. By nature, APIs expose application logic and sensitive data such as Personally Identifiable Information (PII) and because of this have increasingly become a target for attackers. Without secure APIs, rapid innovation would be impossible.  
  
The OWASP API Security Project seeks to provide value to software developers and security assessors by underscoring the potential risks in insecure APIs and illustrating how these risks may be mitigated. In order to facilitate this goal, the OWASP API Security Project will create and maintain a '''Top 10 API Security Risks''' document, as well as a documentation portal for best practices when creating or assessing APIs.
+
API Security focuses on strategies and solutions to understand and mitigate the unique vulnerabilities and security risks of Application Programming Interfaces (APIs).
  
==Description==
+
==API Security Top 10 is Here!==
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
Here is a sneak peek of the 2019 version:
<span style="color:#ff0000">
 
This section must include a shorter description of what the project is, why the project was started, and what security issue is being helped by the project deliverable. This description will be used to promote the project so make sure the description represents your project in the best way possible.
 
</span>
 
  
By helping developers create verifiably secure APIs, and helping security assessors understand the subtle risks an API may entail, the goal of this project is to bring security to an increasingly programmatic world.
+
{| class="wikitable"
 +
|-
 +
| API1 || Broken Object Level Authorization || APIs tend to expose endpoints that handle object identifiers, creating a wide attack surface Level Access Control issue. Object level authorization checks should be considered in every function that accesses a data source using an input from the user.
 +
|-
 +
| API2 || Broken User Authentication || Authentication mechanisms are often implemented incorrectly, allowing attackers to compromise authentication tokens or to exploit implementation flaws to assume other user's identities temporarily or permanently. Compromising system's ability to identify the client/user, compromises API security overall.
 +
|-
 +
| API3 || Excessive Data Exposure || Looking forward to generic implementations, developers tend to expose all object properties without considering their individual sensitivity, relying on clients to perform the data filtering before displaying it to the user.
 +
|-
 +
| API4 || Lack of Resources & Rate Limiting || Quite often, APIs do not impose any restrictions on the size or number of resources that can be requested by the client/user. Not only can this impact the API server performance, leading to Denial of Service (DoS), but also leaves the door open to authentication flaws such as brute force.
 +
|-
 +
| API5 || Broken Function Level Authorization || Complex access control policies with different hierarchies, groups, and roles, and an unclear separation between administrative and regular functions, tend to lead to authorization flaws. By exploiting these issues, attackers gain access to other users’ resources and/or administrative functions.
 +
|-
 +
| API6 || Mass Assignment || Binding client provided data (e.g., JSON) to data models, without proper properties filtering based on a whitelist, usually lead to Mass Assignment. Either guessing objects properties, exploring other API endpoints, reading the documentation, or providing additional object properties in request payloads, allows attackers to modify object properties they are not supposed to.
 +
|-
 +
| API7 || Security Misconfiguration || Security misconfiguration is commonly a result of unsecure default configurations, incomplete or ad-hoc configurations, open cloud storage, misconfigured HTTP headers, unnecessary HTTP methods, permissive Cross-Origin resource sharing (CORS), and verbose error messages containing sensitive information.
 +
|-
 +
| API8 || Injection || Injection flaws, such as SQL, NoSQL, Command Injection, etc., occur when untrusted data is sent to an interpreter as part of a command or query. The attacker's malicious data can trick the interpreter into executing unintended commands or accessing data without proper authorization.
 +
|-
 +
| API9 || Improper Assets Management || APIs tend to expose more endpoints than traditional web applications, making proper and updated documentation highly important. Proper hosts and deployed API versions inventory also play an important role to mitigate issues such as deprecated API versions and exposed debug endpoints.
 +
|-
 +
| API10 || Insufficient Logging & Monitoring || Insufficient logging and monitoring, coupled with missing or ineffective integration with incident response, allows attackers to further attack systems, maintain persistence, pivot to more systems to tamper with, extract, or destroy data. Most breach studies demonstrate the time to detect a breach is over 200 days, typically detected by external parties rather than internal processes or monitoring.
 +
|}
  
'''Although this is a sample template, the project is real! [http://owasp.github.io/Security-Principles Please contribute to this project.]
+
==Licensing==
'''
 
  
Over the course of my career, I have come across and collected a number of security ''aphorisms.'' These aphorisms constitute the fundamental principles of information security.
+
'''The OWASP API Security Project documents are free to use!'''
  
None of the ideas or truths are mine, and unfortunately, I did not collect the citations. Initially, I would like to identify the correct citations for each aphorism.
+
The OWASP API Security Project 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.
  
Additionally, many are re-statements of the same idea; thus, the 'collection of ideas' defines a fundamental principle. As such, I would also like to reverse engineer the principles from the aphorisms where appropriate, as well.
+
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE --><!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 +
| style="padding-left:25px;width:200px;" valign="top" |
  
==Licensing==
+
== Project Leaders ==
  
'''The OWASP API Security Project documents are free to use!
+
* [[User:ErezYalon|Erez Yalon]]
 +
* [[User:Inon|Inon Shkedy]]
 +
'''Main Collaborator'''
 +
* [[User:PauloASilva|Paulo Silva]]
  
The OWASP API Security Project 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.
+
== Quick Links ==
  
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
+
[https://groups.google.com/a/owasp.org/d/forum/api-security-project Google Group]
| valign="top"  style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
 
  
== What is OWASP API Security Project? ==
+
[https://github.com/OWASP/API-Security GitHub]
  
The OWASP API Security Project seeks to deliver actionable documentation on creating and deploying verifiably secure web APIs, as well as illustrating the major risks and shortfalls that APIs may encounter. By helping developers create resilient software, and helping assessors understand the subtle risks an API may entail, the goal of this project is to bring security to an increasingly programmatic world.
+
[https://github.com/OWASP/API-Security/raw/master/2019/en/dist/owasp-api-security-top-10.pdf API Security Top 10 2019 (PDF)]
  
== Presentation ==
+
== News ==
  
The OWASP API Security Project will be presented in 2016.
+
=== Dec 26, 2019 ===
  
== Project Leader ==
+
OWASP API Security Top 10 2019 stable version release.
  
* [https://www.owasp.org/index.php/User:David_Shaw David Shaw]
+
=== Sep 30, 2019 ===
  
== Related Projects ==
+
The RC of API Security Top-10 List was published during [https://ams.globalappsec.org/ OWASP Global AppSec Amsterdam]
  
* [[REST_Security_Cheat_Sheet]]
+
[[File:API Security Top 10 RC - Global AppSec AMS.pdf|thumb|Presentation - API Security Top 10 RC - Global AppSec AMS]]
* [https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API Enterprise Security API]
 
  
== Quick Download ==
+
=== Sep 13, 2019 ===
  
Once API Security documents are created, they will be available for direct download here.
+
The RC of API Security Top-10 List was published during [https://dc.globalappsec.org/ OWASP Global AppSec DC]
  
== News and Events ==
+
[[File:API Security Top 10 RC.pdf|thumb|Presentation - API Security Top 10 RC]]
  
There has not yet been press coverage of this project.
+
=== May 30, 2019 ===
  
== In Print ==
+
The API Security Project was Kicked-Off during [https://telaviv.appsecglobal.org/ OWASP Global AppSec Tel Aviv]
  
There are no current print materials for this project.
+
[[File:OWASP APIs Security Project Kick Off.pdf]]
  
 
==Classifications==
 
==Classifications==
Line 73: Line 92:
 
   {| width="200" cellpadding="2"
 
   {| width="200" cellpadding="2"
 
   |-
 
   |-
   | align="center" valign="top" width="50%" rowspan="3"| [[File:New projects.png|100px|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]
+
   | rowspan="3" width="50%" valign="top" align="center" | [[File:New projects.png|100px|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]
   | align="center" valign="top" width="50%"| [[File:Owasp-builders-small.png|link=]]   
+
   | width="50%" valign="top" align="center" | [[File:Owasp-builders-small.png|link=]]   
 
   |-
 
   |-
   | align="center" valign="top" width="50%"| [[File:Owasp-breakers-small.png|link=]]
+
   | width="50%" valign="top" align="center" | [[File:Owasp-breakers-small.png|link=]]
 
   |-
 
   |-
   | align="center" valign="top" width="50%"| [[File:Owasp-defenders-small.png|link=]]
+
   | width="50%" valign="top" align="center" | [[File:Owasp-defenders-small.png|link=]]
 
   |-
 
   |-
   | colspan="2" align="center" | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]  
+
   | colspan="2" align="center" | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]  
 
   |-
 
   |-
   | colspan="2" align="center" | [[File:Project_Type_Files_DOC.jpg|link=]]   
+
   | colspan="2" align="center" | [[File:Project_Type_Files_DOC.jpg|link=]]   
 
   |}
 
   |}
  
 
|}
 
|}
  
=FAQs=
+
= Acknowledgments =
 
 
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
 
<span style="color:#ff0000">
 
Many projects have "Frequently Asked Questions" documents or pages. However, the point of such a document is not the questions. ''The point of a document like this are the '''answers'''''. The document contains the answers that people would otherwise find themselves giving over and over again. The idea is that rather than laboriously compose and post the same answers repeatedly, people can refer to this page with pre-prepared answers. Use this space to communicate your projects 'Frequent Answers.'
 
</span>
 
  
 +
==Founders==
 +
* Erez Yalon
 +
* Inon Shkedy
  
==How can I participate in your project?==
+
==Sponsors==
All you have to do is make the Project Leader's aware of your available time to contribute to the project. It is also important to let the Leader's know how you would like to contribute and pitch in to help the project meet it's goals and milestones. There are many different ways you can contribute to an OWASP Project, but communication with the leads is key.  
+
[[File:Checkmarx-Logo-Horizontal-black-512px.png|left|Checkmarx Logo]]
 +
[[File:SALT Logo.jpg|512px|none|left|SALT Logo]]
  
==If I am not a programmer can I participate in your project?==
+
==Main Maintainer==
Yes, you can certainly participate in the project if you are not a programmer or technical. The project needs different skills and expertise and different times during its development. Currently, we are looking for researchers, writers, graphic designers, and a project administrator.
+
* Paulo Silva
 
 
= Acknowledgements =
 
  
 
==Contributors==
 
==Contributors==
 +
007divyachawla, Abid Khan, Adam Fisher, anotherik, bkimminich, caseysoftware, Chris Westphal, dsopas, DSotnikov, emilva, ErezYalon, flascelles, Guillaume Benats, IgorSasovets, Inonshk, JonnySchnittger, jmanico, jmdx, Keith Casey, kozmic, LauraRosePorter, Matthieu Estrade, nathanawmk, PauloASilva, pentagramz, philippederyck, pleothaud, r00ter, Raj kumar, Sagar Popat, Stephen Gates, thomaskonrad, xycloops123
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
= Join =
<span style="color:#ff0000">
 
The success of OWASP is due to a community of enthusiasts and contributors that work to make our projects great. This is also true for the success of your project.
 
Be sure to give credit where credit is due, no matter how small! This should be a brief list of the most amazing people involved in your project.
 
Be sure to provide a link to a complete list of all the amazing people in your project's community as well.
 
</span>
 
 
 
The OWASP Security Principles project is developed by a worldwide team of volunteers. A live update of project  [https://github.com/OWASP/Security-Principles/graphs/contributors contributors is found here].
 
 
 
The first contributors to the project were:
 
 
 
* [https://www.owasp.org/index.php/User:Dennis_Groves Dennis Groves]
 
* [https://github.com/sublimino Andrew Martin]
 
* [https://github.com/Lambdanaut Josh Thomas]
 
* '''YOUR NAME BELONGS HERE'''
 
 
 
= Road Map and Getting Involved =
 
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
== Google Group ==
<span style="color:#ff0000">
+
Join the discussion on the [https://groups.google.com/a/owasp.org/d/forum/api-security-project OWASP API Security Project Google group].
A project roadmap is the envisioned plan for the project. The purpose of the roadmap is to help others understand where the project is going. It gives the community a chance to understand the context and the vision for the goal of the project. Additionally, if a project becomes inactive, or if the project is abandoned, a roadmap can help ensure a project can be adopted and continued under new leadership.
 
</span> 
 
  
The roadmap for this project is straightforward: we'll begin by conducting research and seeking feedback from developers and security auditors on the problems they most frequently encounter via web-based APIs. We'll create, from this research, the OWASP Top Ten API Risks, a sub-project of the API Security Project. Once this document is created (and maintained), we will also create guidelines in order to demonstrate each of the risks (as well as other, non-top-ten risks) and illustrate how to prevent them.
+
This is the best place to introduce yourself, ask questions, suggest and discuss any topic that is relevant to the project.
  
<span style="color:#ff0000">
+
== GitHub ==
Roadmaps vary in detail from a broad outline to a fully detailed project charter. Generally speaking, projects with detailed roadmaps have tended to develop into successful projects. Some details that leaders may consider placing in the roadmap include: envisioned milestones, planned feature enhancements, essential conditions, project assumptions, development timelines, etc. You are required to have at least 4 milestones for every year the project is active.  
+
The project is maintained in the [https://github.com/OWASP/API-Security OWASP API Security Project repo].
</span>
 
  
As of October 2013, the priorities are:
+
'''The latest changes are under the [https://github.com/OWASP/API-Security/tree/develop develop branch].'''
* Finish the referencing for each principle.
 
* Update the Project Template.
 
* Use the OWASP Press to develop a book.
 
* Finish and publish the book on Lulu.
 
  
Involvement in the development and promotion of the OWASP Security Principles Project is actively encouraged!
+
Feel free to open or solve an [https://github.com/OWASP/API-Security/issues issue].
You do not have to be a security expert in order to contribute.
 
Some of the ways you can help:
 
* Helping find references to some of the principles.
 
* Project administration support.
 
* Wiki editing support.
 
* Writing support for the book.
 
  
=Project About=
+
Ready to contribute directly into the repo? Great! Just make you you read the [https://github.com/OWASP/API-Security/blob/master/CONTRIBUTING.md How to Contribute guide].
  
<!-- Instructions are in RED and should be removed from your document by deleting the text with the span tags.-->
+
= Road Map =
<span style="color:#ff0000">
 
This page is where you need to place your legacy project template page if your project was created before October 2013. To edit this page you will need to edit your project information template. You can typically find this page by following this address and substituting your project name where it says "OWASP_Example_Project". When in doubt, ask the OWASP Projects Manager.
 
Example template page: https://www.owasp.org/index.php/Projects/OWASP_Example_Project
 
</span>
 
  
{{:Projects/OWASP_Example_Project_About_Page}}
+
==Planned Projects==
 +
* API Security Top 10
 +
* API Security Cheat Sheet
 +
* crAPI ('''C'''ompletely '''R'''idiculous '''API''' - an intentionally vulnerable API project)
  
 +
==Road Map==
 +
[[File:Roadmap.png|left|Roadmap]]
  
 
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 
<!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE -->
 
__NOTOC__ <headertabs />  
 
__NOTOC__ <headertabs />  
  
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]
+
[[Category:OWASP Project]]   
 +
[[Category:OWASP_Builders]]  
 +
[[Category:OWASP_Breakers]]
 +
[[Category:OWASP_Defenders]]   
 +
[[Category:OWASP_Document]]

Latest revision as of 10:39, 6 January 2020

OWASP Project Header.jpg

What is API Security?

A foundational element of innovation in today’s app-driven world is the API. From banks, retail and transportation to IoT, autonomous vehicles and smart cities, APIs are a critical part of modern mobile, SaaS and web applications and can be found in customer-facing, partner-facing and internal applications. By nature, APIs expose application logic and sensitive data such as Personally Identifiable Information (PII) and because of this have increasingly become a target for attackers. Without secure APIs, rapid innovation would be impossible.

API Security focuses on strategies and solutions to understand and mitigate the unique vulnerabilities and security risks of Application Programming Interfaces (APIs).

API Security Top 10 is Here!

Here is a sneak peek of the 2019 version:

API1 Broken Object Level Authorization APIs tend to expose endpoints that handle object identifiers, creating a wide attack surface Level Access Control issue. Object level authorization checks should be considered in every function that accesses a data source using an input from the user.
API2 Broken User Authentication Authentication mechanisms are often implemented incorrectly, allowing attackers to compromise authentication tokens or to exploit implementation flaws to assume other user's identities temporarily or permanently. Compromising system's ability to identify the client/user, compromises API security overall.
API3 Excessive Data Exposure Looking forward to generic implementations, developers tend to expose all object properties without considering their individual sensitivity, relying on clients to perform the data filtering before displaying it to the user.
API4 Lack of Resources & Rate Limiting Quite often, APIs do not impose any restrictions on the size or number of resources that can be requested by the client/user. Not only can this impact the API server performance, leading to Denial of Service (DoS), but also leaves the door open to authentication flaws such as brute force.
API5 Broken Function Level Authorization Complex access control policies with different hierarchies, groups, and roles, and an unclear separation between administrative and regular functions, tend to lead to authorization flaws. By exploiting these issues, attackers gain access to other users’ resources and/or administrative functions.
API6 Mass Assignment Binding client provided data (e.g., JSON) to data models, without proper properties filtering based on a whitelist, usually lead to Mass Assignment. Either guessing objects properties, exploring other API endpoints, reading the documentation, or providing additional object properties in request payloads, allows attackers to modify object properties they are not supposed to.
API7 Security Misconfiguration Security misconfiguration is commonly a result of unsecure default configurations, incomplete or ad-hoc configurations, open cloud storage, misconfigured HTTP headers, unnecessary HTTP methods, permissive Cross-Origin resource sharing (CORS), and verbose error messages containing sensitive information.
API8 Injection Injection flaws, such as SQL, NoSQL, Command Injection, etc., occur when untrusted data is sent to an interpreter as part of a command or query. The attacker's malicious data can trick the interpreter into executing unintended commands or accessing data without proper authorization.
API9 Improper Assets Management APIs tend to expose more endpoints than traditional web applications, making proper and updated documentation highly important. Proper hosts and deployed API versions inventory also play an important role to mitigate issues such as deprecated API versions and exposed debug endpoints.
API10 Insufficient Logging & Monitoring Insufficient logging and monitoring, coupled with missing or ineffective integration with incident response, allows attackers to further attack systems, maintain persistence, pivot to more systems to tamper with, extract, or destroy data. Most breach studies demonstrate the time to detect a breach is over 200 days, typically detected by external parties rather than internal processes or monitoring.

Licensing

The OWASP API Security Project documents are free to use!

The OWASP API Security Project 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.

Project Leaders

Main Collaborator

Quick Links

Google Group

GitHub

API Security Top 10 2019 (PDF)

News

Dec 26, 2019

OWASP API Security Top 10 2019 stable version release.

Sep 30, 2019

The RC of API Security Top-10 List was published during OWASP Global AppSec Amsterdam

File:API Security Top 10 RC - Global AppSec AMS.pdf

Sep 13, 2019

The RC of API Security Top-10 List was published during OWASP Global AppSec DC

File:API Security Top 10 RC.pdf

May 30, 2019

The API Security Project was Kicked-Off during OWASP Global AppSec Tel Aviv

File:OWASP APIs Security Project Kick Off.pdf

Classifications

New projects.png Owasp-builders-small.png
Owasp-breakers-small.png
Owasp-defenders-small.png
Cc-button-y-sa-small.png
Project Type Files DOC.jpg