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 Serverless Goat"

From OWASP
Jump to: navigation, search
(Created page with "<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">link=</div> {| style="padding: 0;margin:0;margin-top:10px;text-alig...")
 
m (minor)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
<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:Sgoatbanner.png|center|frameless|1950x1950px]]</div>
 
 
 
{| 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;" |
+
| valign="top" style="border-right: 1px dotted gray;padding-right:25px;" |
  
<span style="color:#ff0000">
+
== Introduction==
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.
+
OWASP ServerlessGoat is a deliberately insecure realistic AWS Lambda serverless application, maintained by OWASP.  
</span>
 
==Project About==
 
<span style="color:#ff0000">
 
{{:Projects/OWASP_Example_Project_About_Page}}
 
  
 +
You can install ServerlessGoat, learn about the vulnerabilities, how to exploit them, and how to remediate each issue. The project also includes documentation explaining the issues and how they should be remediated with best-practices.
  
==OWASP Tool Project Template==
+
As serverless adoption is expected to continue growing and reach new audiences, we see the importance of education on topics such as how to build robust, secure and reliable AWS Lambda serverless applications. This project will expose developers and security practitioners to basic serverless security concepts, risks, attacks and mitigation best-practices.
<span style="color:#ff0000">
+
This section should include an overview of what the project is, why the project was started, and what security issue is being addressed by the project deliverable. Some readers may be discouraged from looking further at the project if they do not understand the significance of the security concern that is being addressed, so provide enough context so the average reader will continue on with reading the description. You shouldn't assume the reader will understand the objective by providing security terminology, e.g. this project builds cryptographic algorithms, but should also endeavor to explain what they are used for.
+
OWASP ServerlessGoat is packaged as an AWS SAM application that's available for deployment through the [https://aws.amazon.com/serverless/serverlessrepo/ AWS Serverless Application Repository] - this provides three important benefits:
</span>
+
* A single click installation process. No compilation, building or packaging required
 +
* The application uses default serverless application repository permissions (SAM policy templates), making it more realistic
 +
* The installation doesn't create custom IAM roles or resource policies on the account in which it is deployed in
  
The OWASP Tool Template Project is a template designed to help Project Leaders create suitable project pages for OWASP Projects.  By following the instructional text in red (and then deleting it) it should be easier to understand what information OWASP and the project users are looking for.  And it's easy to get started by simply creating a new project from the appropriate project template.
+
== Disclaimer ==
 +
OWASP does not take responsibility for the way in which any one uses the ServerlessGoat application. OWASP made the purposes of the application clear and it should not be used maliciously. We have given warnings and taken measures to prevent users from installing ServerlessGoat on production accounts.
  
==Description==
+
== Details==
<span style="color:#ff0000">
+
The application is a service which receives a URL to a Word document (with a .doc extension - Office 97-2004), and will reply with an HTML page containing the extracted text.
This is where you need to add your more robust project description. A project description should outline the purpose of the project, how it is used, 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, so project leaders should ensure that the description is meaningful. 
 
</span>
 
  
The Tool Project Template is simply a sample project that was developed for instructional purposes that can be used to create default project pages for a Tool project.  After copying this template to your new project, all you have to do is follow the instructions in red, replace the sample text with text suited for your project, and then delete the sections in red.  Doing so should make it clearer to both consumers of this project, as well as OWASP reviewers who are trying to determine if the project can be promoted to the next category.  The information requested is also intended to help Project Leaders think about the roadmap and feature priorities, and give guidance to the reviews as a result of that effort.
+
The vulnerabilities that are included are:
 
+
* Event-data injection (SAS-01)
Creating a new set of project pages from scratch can be a challenging task.  By providing a sample layout, with instructional text and examples, the OWASP Tool Project Template makes it easier for Project Leaders to create effective security projects and hence helps promote security.
+
* Insecure Serverless Deployment Configuration (SAS-03)
 
+
* Over-privileged function permissions & roles (SAS-04)
Contextual custom dictionary builder with character substitution and word variations for pen-testers
+
* Inadequate function monitoring and logging (SAS-05)
 +
* Insecure 3rd Party Dependencies (SAS-06)
 +
* Application layer Denial of Service (SAS-08)
 +
* Improper exception handling and verbose error messages (SAS-10)
 +
* Other undisclosed *critical* issues, as a bonus!
  
 
==Licensing==
 
==Licensing==
<span style="color:#ff0000">
 
A project must be licensed under a community friendly or open source license.  For more information on OWASP recommended licenses, please see [https://www.owasp.org/index.php/OWASP_Licenses 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.  This example assumes that you want to use the AGPL 3.0 license.
 
</span>
 
 
This program is free software: you can redistribute it and/or modify it under the terms of the [http://www.gnu.org/licenses/agpl-3.0.html link GNU Affero General Public License 3.0] as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.  OWASP XXX and any contributions are Copyright &copy; by {the Project Leader(s) or OWASP} {Year(s)}. 
 
  
==Roadmap==
+
The OWASP ServerlessGoat project is free for use. You can redistribute it and/or modify it under the terms of the [http://www.gnu.org/licenses/agpl-3.0.html link GNU Affero General Public License 3.0] as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 
<span style="color:#ff0000">
 
As of <strong>November, 2013, the highest priorities for the next 6 months</strong> are:
 
<strong>
 
* Complete the first draft of the Tool Project Template
 
* Get other people to review the Tool Project Template and provide feedback
 
* Incorporate feedback into changes in the Tool Project Template
 
* Finalize the Tool Project template and have it reviewed to be promoted from an Incubator Project to a Lab Project
 
</strong>
 
  
Subsequent Releases will add
+
== Deployment == 
<strong>
 
* Internationalization Support
 
* Additional Unit Tests
 
* Automated Regression tests
 
</strong>
 
  
==Getting Involved==
+
ServerlessGoat is a simple AWS Lambda application, which serves as a MS-Word .doc file to plain text converter service. It receives a URL to a .doc file as input, and will return the text inside the document back to the API caller. ​ The application is packaged and published for deployment through the [https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:761130837472:applications~serverless-goat AWS Serverless Application Repository]. ​ Steps for deployment:
<span style="color:#ff0000">
+
# Make sure you are logged into your AWS account
Involvement in the development and promotion of <strong>Tool Project Template</strong> is actively encouraged!
+
# Click on the following link: AWS Serverless Application Repository
You do not have to be a security expert or a programmer to contribute.
+
# Click 'Deploy'
Some of the ways you can help are as follows:
+
# Click 'Deploy' (again)
 +
# Wait until you see the message 'Your application has been deployed'
 +
# Click on 'View CloudFormation Stack'
 +
# Under 'Outputs' you will find the URL for the application (WebsiteURL) ​
  
| valign="top"  style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
+
You can find a live version of the application hosted by PureSec in the following URL: https://www.serverless-hack.me/
  
== Project Resources ==
+
== Roadmap ==
<span style="color:#ff0000">
+
* '''18-December-2018''': Initial release. Collect feedback from the public ('''done''')
This is where you can link to the key locations for project files, including setup programs, the source code repository, online documentation, a Wiki Home Page, threaded discussions about the project, and Issue Tracking system, etc.  
+
* '''1-January-2019''': Beta release with additional features.  
</span>
+
* '''15-January''': v1.0 official launch
  
[https://github.com/SamanthaGroves Installation Package]
+
== Project Sponsors ==
 +
The project was initially developed by Ory Segal & Yuri Shapira @ [https://www.puresec.io/ PureSec]:
  
[https://github.com/SamanthaGroves Source Code]
+
[[File:PureSec-Logo.png|frameless|link=https://www.puresec.io/]]
  
[https://github.com/SamanthaGroves What's New (Revision History)]
+
== Cheat Sheet ==
  
[https://github.com/SamanthaGroves Documentation]
+
You can find a full walkthrough (with spoilers of course) in the [https://github.com/OWASP/Serverless-Goat/blob/master/LESSONS.md LESSONS.md] file in the Git repo
  
[https://github.com/SamanthaGroves Wiki Home Page]
+
==Getting Involved==
 +
You do not have to be a security expert or a programmer to contribute. Contact the Project Leader(s) to get involved, we welcome any type of suggestions and comments.
  
[https://github.com/SamanthaGroves Issue Tracker]
+
| valign="top" style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |
  
[https://github.com/SamanthaGroves Slide Presentation]
+
== Project Resources ==
 +
'''1-click installation''' on your own AWS account via the [https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:761130837472:applications~serverless-goat AWS Serverless App Repository]
  
[https://github.com/SamanthaGroves Video]
+
A '''live version''' of the application is hosted by PureSec at: https://www.serverless-hack.me/  
  
 
== Project Leader ==
 
== Project Leader ==
<span style="color:#ff0000">
+
[[User:Orysegal|Ory Segal]] , [https://www.puresec.io/ PureSec] ([mailto:ory.segal@owasp.org email])
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.
 
</span>
 
 
 
Ory Segal
 
  
== Related Projects ==
+
== Project Mailing List ==
<span style="color:#ff0000">
+
TBD
This is where you can link to other OWASP Projects that are similar to yours.
+
== Github Repo ==
</span>
+
[https://github.com/OWASP/Serverless-Goat Project GitHub]
* [[OWASP_Code_Project_Template]]
 
* [[OWASP_Documentation_Project_Template]]
 
  
 
==Classifications==
 
==Classifications==
Line 101: Line 84:
 
   {| width="200" cellpadding="2"
 
   {| width="200" cellpadding="2"
 
   |-
 
   |-
   | colspan="2" align="center" | [[File:Project_Type_Files_TOOL.jpg|link=https://www.owasp.org/index.php/Category:OWASP_Tool]]
+
   | colspan="2" align="center" | [[File:Project_Type_Files_TOOL.jpg|link=https://www.owasp.org/index.php/Category:OWASP_Tool]]
 
   |-
 
   |-
   | align="center" valign="top" width="50%" rowspan="2"| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects|Incubator Project]]
+
   | rowspan="2" align="center" valign="top" width="50%" | [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects|Incubator Project]]
   | align="center" valign="top" width="50%"| [[File:Owasp-builders-small.png|link=Builders]]   
+
   | align="center" valign="top" width="50%" | [[File:Owasp-builders-small.png|link=Builders]]   
 
   |-
 
   |-
   | align="center" valign="top" width="50%"| [[File:Owasp-defenders-small.png|link=Defenders]]
+
   | align="center" valign="top" width="50%" | [[File:Owasp-defenders-small.png|link=Defenders]]
 
   |-
 
   |-
   | colspan="2" align="center" | [[File:Agplv3-155x51.png|link=http://www.gnu.org/licenses/agpl-3.0.html|Affero General Public License 3.0]]
+
   | colspan="2" align="center" | [[File:Agplv3-155x51.png|link=http://www.gnu.org/licenses/agpl-3.0.html|Affero General Public License 3.0]]
 
   |}
 
   |}
 
|}
 
|}
Line 114: Line 97:
 
__NOTOC__ <headertabs />  
 
__NOTOC__ <headertabs />  
  
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Tool]]
+
[[Category:OWASP Project]]   
 +
[[Category:OWASP_Builders]]  
 +
[[Category:OWASP_Defenders]]   
 +
[[Category:OWASP_Tool]]

Latest revision as of 06:48, 18 January 2019

Sgoatbanner.png

Introduction

OWASP ServerlessGoat is a deliberately insecure realistic AWS Lambda serverless application, maintained by OWASP.

You can install ServerlessGoat, learn about the vulnerabilities, how to exploit them, and how to remediate each issue. The project also includes documentation explaining the issues and how they should be remediated with best-practices.

As serverless adoption is expected to continue growing and reach new audiences, we see the importance of education on topics such as how to build robust, secure and reliable AWS Lambda serverless applications. This project will expose developers and security practitioners to basic serverless security concepts, risks, attacks and mitigation best-practices.

OWASP ServerlessGoat is packaged as an AWS SAM application that's available for deployment through the AWS Serverless Application Repository - this provides three important benefits:

  • A single click installation process. No compilation, building or packaging required
  • The application uses default serverless application repository permissions (SAM policy templates), making it more realistic
  • The installation doesn't create custom IAM roles or resource policies on the account in which it is deployed in

Disclaimer

OWASP does not take responsibility for the way in which any one uses the ServerlessGoat application. OWASP made the purposes of the application clear and it should not be used maliciously. We have given warnings and taken measures to prevent users from installing ServerlessGoat on production accounts.

Details

The application is a service which receives a URL to a Word document (with a .doc extension - Office 97-2004), and will reply with an HTML page containing the extracted text.

The vulnerabilities that are included are:

  • Event-data injection (SAS-01)
  • Insecure Serverless Deployment Configuration (SAS-03)
  • Over-privileged function permissions & roles (SAS-04)
  • Inadequate function monitoring and logging (SAS-05)
  • Insecure 3rd Party Dependencies (SAS-06)
  • Application layer Denial of Service (SAS-08)
  • Improper exception handling and verbose error messages (SAS-10)
  • Other undisclosed *critical* issues, as a bonus!

Licensing

The OWASP ServerlessGoat project is free for use. You can redistribute it and/or modify it under the terms of the link GNU Affero General Public License 3.0 as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Deployment

ServerlessGoat is a simple AWS Lambda application, which serves as a MS-Word .doc file to plain text converter service. It receives a URL to a .doc file as input, and will return the text inside the document back to the API caller. ​ The application is packaged and published for deployment through the AWS Serverless Application Repository. ​ Steps for deployment:

  1. Make sure you are logged into your AWS account
  2. Click on the following link: AWS Serverless Application Repository
  3. Click 'Deploy'
  4. Click 'Deploy' (again)
  5. Wait until you see the message 'Your application has been deployed'
  6. Click on 'View CloudFormation Stack'
  7. Under 'Outputs' you will find the URL for the application (WebsiteURL) ​

You can find a live version of the application hosted by PureSec in the following URL: https://www.serverless-hack.me/

Roadmap

  • 18-December-2018: Initial release. Collect feedback from the public (done)
  • 1-January-2019: Beta release with additional features.
  • 15-January: v1.0 official launch

Project Sponsors

The project was initially developed by Ory Segal & Yuri Shapira @ PureSec:

PureSec-Logo.png

Cheat Sheet

You can find a full walkthrough (with spoilers of course) in the LESSONS.md file in the Git repo

Getting Involved

You do not have to be a security expert or a programmer to contribute. Contact the Project Leader(s) to get involved, we welcome any type of suggestions and comments.

Project Resources

1-click installation on your own AWS account via the AWS Serverless App Repository

A live version of the application is hosted by PureSec at: https://www.serverless-hack.me/

Project Leader

Ory Segal , PureSec (email)

Project Mailing List

TBD

Github Repo

Project GitHub

Classifications

Project Type Files TOOL.jpg
Incubator Project Owasp-builders-small.png
Owasp-defenders-small.png
Affero General Public License 3.0