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

OWASP SaaS Rest API Secure Guide

From OWASP
Revision as of 02:45, 18 June 2016 by Claudia casanovas (talk | contribs) (The OWASP Security Principles)

Jump to: navigation, search
OWASP Project Header.jpg

Instructions are in RED text and should be removed from your document by deleting the text with the span tags. This document is intended to serve as an example of what is required of an OWASP project wiki page. The text in red serves as instructions, while the text in black serves as an example. Text in black is expected to be replaced entirely with information specific to your OWASP project.

The OWASP Security Principles

This is where you need to add your more robust project description. A project description should outline the purpose of the project, and the value it provides to application security. Ideally, project descriptions should be written in such a way that there is no question what value the project provides to the software security community. This section will be seen and used in various places within the Projects Portal. Poorly written project descriptions therefore detract from a project’s visibility, and project leaders should ensure that the description is meaningful.

The project is to discuss SaaS rest API threats, security design and operation best practices for the following key roles. *1. SaaS API provider: For API builder, the key challenge is to build secure API and ensure the security validation for public API uses *2. App Builder based on SaaS API: App builder needs to securely implement the authorization/authentication to access the SaaS resource. Handling of access token are the key security topic in App builder. 3. SaaS platform service provider: SaaS platform service provider is to ensure the API platform security such as authorization/authentication management, API interaction between app and end user, abnormal API access monitoring, resource access control and so on.

The SaaS API security is an ecosystem. The security practices require not only SaaS provider but also app builder, and end user involvement. For SaaS API builder, he may follow secure coding guide, OWASP Top 10 to deliver the restAPI. For App builder, he needs to handle the access token securely, verify the certificate of target website, redirect user to authentication (JWT, OpenID connect, SAML) and authorization (Oauth2) through secure transmission HTTPS/TLS. Any missing of the security practices will introduce security risks. Then, the SaaS platform provider constantly monitoring and auditing the usage of services, manage accounts/API, hardening platform. Finally, the end user security awareness to identify phishing app/site will complete the whole security cycle.

Table of Contents Key threats 1. Access Token misuses 2. Insecure Transmission 3. 3rd party App insecure implementation 4. End user Awareness


API Provider 1. Authentication (SSO, JWT, SAML, OpenID connect) 2. Authorization (Oauth2.0) 3. Error handling 4. Input Validation 5. Security Token


App Builder security 1. Handling of Access Token 2. Secure Transmission 3. Target SaaS host CA verification 4. Storage of sensitive information 5. Secure rest API implementation 6. App Security Release Review


SaaS platform Operation Security 1. Password Policy 2. Auditing and Logging 3. Access Control 4. API access rate/traffic Management 5. Login and Authentication 6. Session Management 7. Compliance 8. Host/Platform Security



Inevitably applications are designed with security principles architects knew about, security folks included. However, as this project demonstrates there are far more than just a 'few' principles, most of which never make it into the design.

For example, security design happens with perhaps a handful of principles:

  • Least Privilege
  • Perimeter Security
  • Defence in Depth

However, we regularly see designs without separation of privilege!

Think about that, most web applications today have all their eggs in a single basket. The business logic, the identities, passwords, products, policy enforcement, security rules are all found in the same application database that makes up the typical website! It is little wonder then, that attacks on the database have been so completely devastating, since there is no separation of privilege!

The aim of this project, is to identify and describe a minimum functional set of principles that must be present in a secure design.

Description

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.

Although this is a sample template, the project is real! Please contribute to this project.

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.

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.

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.

Licensing

A project must be licensed under a community friendly or open source license.  For more information on OWASP recommended licenses, please see OWASP Licenses. While OWASP does not promote any particular license over another, the vast majority of projects have chosen a Creative Commons license variant for documentation projects, or a GNU General Public License variant for tools and code projects.

The OWASP Security Principles are free to use. In fact it is encouraged!!! Additionally, I also encourage you to contribute back to the project. I have no monopoly on this knowledge; however, we all have pieces of this knowledge from our experience. Let's begin by putting our individual pieces together to make something great. Great things happen when people work together.

The OWASP Security Principles are 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 OWASP Security Principles Project?

Here you should add a short description of what your project actually does. What is the primary goal of your project, and why is it important?

The end goal is to identify, cite, and document the fundamental principles of information security. Once this is well organised, I think it would be great to publish this through the OWASP Press. Of course, it will always remain freely available, and any money collected will go directly into the project to absorb costs with any remaining funds going to the OWASP Foundation.

This document should serve as a guide to technical architects and designers outlining the fundamental principles of security.

Presentation

This is where you can link to slide presentations related to your project.


AppSec USA 2013 [1]

Project Leader

A project leader is the individual who decides to lead the project throughout its lifecycle. The project leader is responsible for communicating the project’s progress to the OWASP Foundation, and he/she is ultimately responsible for the project’s deliverables. The project leader must provide OWASP with his/her real name and contact e-mail address for his/her project application to be accepted, as OWASP prides itself on the openness of its products, operations, and members.


Related Projects

This is where you can link to other OWASP Projects that are similar to yours.

Openhub

Quick Download

This is where you can link to your repository.

The home of the OWASP Security Principles is on GitHub. You are encourged to fork, edit and push your changes back to the project through git or edit the project directly on github.

However, if you like you may also download the master repository from the following links:

News and Events

This is where you can link to press your project has been a part of. Appropriate press includes: Project Leader interviews, articles written about your project, and videos about your project.

  • [20 Nov 2013] News 2
  • [30 Sep 2013] News 1

In Print

This is where you place links to where your project product can be downloaded or purchased, in the case of a book.

This project can be purchased as a print on demand book from Lulu.com

Classifications

Here is where you can let the community know what project stage your project is currently in, whether the project is a builder, breaker, or defender project, and what type of project you are running.

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