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 Attack Surface Detector Project"

From OWASP
Jump to: navigation, search
m (description changes)
m (Logo update)
 
(62 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
<div style="width:100%;height:120px;border:0,margin:0;overflow: hidden;">[[File:ASD-banner.png|link=]]</div>
 
<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;" |-
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 
| style="border-right: 1px dotted gray;padding-right:25px;" valign="top" |
 
| style="border-right: 1px dotted gray;padding-right:25px;" valign="top" |
<span style="color:#ff0000">
+
<span style="color:#ff0000"></span>
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.
+
==Introduction==
 +
<span style="color:#000000">
 +
During web application penetration testing, it is important to enumerate your application's attack surface. While Dynamic Application Security Testing (DAST) tools (such as [https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project OWASP ZAP] and [https://portswigger.net/ PortSwigger Burp Suite]) are good at spidering to identify application attack surfaces, they will often fail to identify unlinked endpoints, optional parameters, and parameter datatypes and name. These endpoints and parameters not found often go untested, which can leave your application open to an attacker.
 
</span>
 
</span>
==Project About==
 
<span style="color:#ff0000">
 
{{:Projects/OWASP_Example_Project_About_Page|Name=Attack Surface Detector|Project Leader(s)=Ken Prole}}
 
  
 +
==What is the Attack Surface Detector?==
 +
The Attack Surface Detector tool uncovers the endpoints of a web application, the parameters these endpoints accept, and the data type of those parameters. This includes the unlinked endpoints a spider won't find in client-side code, or optional parameters totally unused in client-side code. It also has the capability to calculate the changes in attack surface between two versions of an application.<br>
 +
 +
The Attack Surface Detector is available as a plugin to both ZAP and Burp Suite, and a Command Line Interface (CLI) tool is also available. The CLI tool exports the attack surface as a JSON output, which can then be used by the ZAP and Burp Suite plugin. This is helpful for cases where the source code is not provided to the penetration tester directly. The CLI tool can also be used for other custom integration where you want to discover an application attack surface or changes in the attack surface.<br>
 +
 +
For a quick overview of the Attack Surface Detection tool, see this YouTube video:
  
==OWASP Tool Project Template==
+
{{#ev:youtube|jUUJNRcmqwI}}
<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.
+
Below is a screenshot of the Burp Suite Attack Surface Detector plugin where you can see a list of endpoints, endpoint details, and their corresponding requests:
 +
[[File:ASD-Endpoint-Screens.png|none|700px]]
 +
 
 +
==How it Works==
 +
<span style="color:#000000">
 +
The Attack Surface Detector performs static code analyses to identify web application endpoints by parsing routes and identifying parameters (with supported languages and frameworks). This data is made available in ZAP and Burp Suite to help improve testing coverage.
 
</span>
 
</span>
  
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.
+
==Supported Languages and Frameworks==
 +
<span style="color:#000000">
 +
{|
 +
|<b>Java:</b>
 +
|JSPs, Servlets, Struts, Spring MVC
 +
|-
 +
|<b>C#:</b>
 +
|ASP.NET MVC, Web Forms
 +
|-
 +
|<b>Ruby:</b>
 +
|Rails
 +
|-
 +
|<b>Python:</b>
 +
| Django
 +
|}
  
==Description==
 
<span style="color:#000000">
 
During web application penetration testing, it is important to enumerate your application's attack surface. While Dynamic Application Security Testing (DAST) tools (such as Burp Suite and ZAP) are good at spidering to identify application attack surfaces, they will often fail to identify unlinked endpoints and optional parameters. These endpoints and parameters not found often go untested, which can leave your application open to an attacker.
 
 
</span>
 
</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.
+
==Roadmap==
 +
We continue to improve the attack surface detection accuracy for existing supported languages and frameworks, and we are looking to add additional language support, particularly for PHP and Python. If there are any PHP or Python developers that are looking to contribute, [mailto:[email protected] please let us know].<br>
 +
 
 +
We are also looking to extend ASD for use in automated headless usage of ZAP and Burp and move the ASD ZAP plugin out of alpha classification, which requires [https://github.com/zaproxy/zap-extensions/wiki/AddOnsBeta internationalization]. If anyone can help, we would love your contributions.<br>
  
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.
+
Finally, we are really interested in what the community thinks will help improve ASD and we will adjust our roadmap based on that feedback.
  
Contextual custom dictionary builder with character substitution and word variations for pen-testers
+
==Getting Involved==
 +
Contributions to the Attack Surface Detector project are encouraged and welcome. Additions of new features and enhancements can be provided through [https://github.com/secdec/ GitHub]. We are eager to get user feedback, so please [mailto:[email protected] reach out to us] or fill out this [https://www.surveymonkey.com/r/D2N87GB ASD survey].
  
 
==Licensing==
 
==Licensing==
<span style="color:#ff0000">
+
<span style="color:#000000">
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.
+
The Attack Surface Detector plugin is free to use. It is licensed under the [https://www.mozilla.org/en-US/MPL/2.0/ link Mozilla Public License 2.0].  
 
</span>
 
</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)}. 
+
==Acknowledgements==
 +
<span style="color:#000000">
 +
The Attack Surface Detection project is led by [https://securedecisions.com/ Secure Decisions] and was developed in collaboration with [https://www.denimgroup.com/ Denim Group] under a research grant sponsored by the Department of Homeland Security (DHS) Science and Technology Directorate, Cyber Security Division (DHS S&T/CSD), BAA via contract number HHSP233201600058C.
 +
</span>
 +
 
 +
| style="padding-left:25px;width:275px;border-right: 1px dotted gray;padding-right:25px;" valign="top" |
 +
 
 +
== Project Resources ==
 +
<span style="color:#ff0000"></span>
  
==Roadmap==
+
The Attack Surface Detector is available in the ZAP Marketplace and PortSwigger BApp Store, and can be installed directly from within those tools.
<span style="color:#ff0000">
+
 
As of <strong>November, 2013, the highest priorities for the next 6 months</strong> are:
+
====ASD Plugin for OWASP ZAP:====
<strong>
+
[https://github.com/secdec/attack-surface-detector-zap/releases Download ZAP Plugin]
* 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
+
[https://github.com/secdec/attack-surface-detector-zap/wiki Documentation]
<strong>
 
* Internationalization Support
 
* Additional Unit Tests
 
* Automated Regression tests
 
</strong>
 
  
==Getting Involved==
+
[https://github.com/secdec/attack-surface-detector-zap/issues Submit Feedback]
<span style="color:#ff0000">
 
Involvement in the development and promotion of <strong>Tool Project Template</strong> is actively encouraged!
 
You do not have to be a security expert or a programmer to contribute.
 
Some of the ways you can help are as follows:
 
  
| style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" valign="top" |
+
[https://github.com/secdec/attack-surface-detector-zap GitHub Source Code]
  
== Project Resources ==
+
====ASD Plugin for PortSwigger Burp:====
<span style="color:#ff0000">
+
[https://github.com/secdec/attack-surface-detector-burp/releases Download Burp Suite Plugin]
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.  
 
</span>
 
  
[https://github.com/SamanthaGroves Installation Package]
+
[https://github.com/secdec/attack-surface-detector-burp/wiki Documentation]
  
[https://github.com/SamanthaGroves Source Code]
+
[https://github.com/secdec/attack-surface-detector-burp/issues Submit Feedback]
  
[https://github.com/SamanthaGroves What's New (Revision History)]
+
[https://github.com/secdec/attack-surface-detector-burp GitHub Source Code]
  
[https://github.com/SamanthaGroves Documentation]
+
====ASD Command-Line Tool:====
 +
[https://github.com/secdec/attack-surface-detector-cli/releases Download ASD CLI]
  
[https://github.com/SamanthaGroves Wiki Home Page]
+
[https://github.com/secdec/attack-surface-detector-cli/wiki Documentation]
  
[https://github.com/SamanthaGroves Issue Tracker]
+
[https://github.com/secdec/attack-surface-detector-cli/issues Submit Feedback]
  
[https://github.com/SamanthaGroves Slide Presentation]
+
[https://github.com/secdec/attack-surface-detector-cli GitHub Source Code]
  
[https://github.com/SamanthaGroves Video]
+
== News and Events ==
 +
* <span style="background: #66CCFF; font-size:85%;padding:2px;">24 Aug 2018</span> [https://github.com/secdec/attack-surface-detector-zap/releases Version 1.1.2 of the ASD ZAP plugin is out!]
 +
* <span style="background: #66CCFF; font-size:85%;padding:2px;">23 Aug 2018</span> [https://github.com/secdec/attack-surface-detector-burp/releases Version 1.1.2 of the ASD Burp Suite plugin is out!]
 +
* <span style="background: #66CCFF; font-size:85%;padding:2px;">20 Jul 2018</span> [https://github.com/secdec/attack-surface-detector-cli/releases Version 1.2.16 of the ASD CLI is out!]
  
== Project Leader ==
+
== Contact Us ==
<span style="color:#ff0000">
+
Project Leader: Ken Prole
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>
 
  
Ken Prole
+
 +
* [mailto:[email protected] Email us]
 +
* [https://twitter.com/secdec @SecDec]
  
 
== Related Projects ==
 
== Related Projects ==
<span style="color:#ff0000">
+
<span style="color:#000000"></span>
This is where you can link to other OWASP Projects that are similar to yours.
+
* [[OWASP Zed Attack Proxy Project]]
</span>
+
* [[OWASP Code Pulse Project]]
* [[OWASP_Code_Project_Template]]
 
* [[OWASP_Documentation_Project_Template]]
 
  
 
==Classifications==
 
==Classifications==
  
  {| 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]]
+
   | rowspan="2" width="50%" valign="top" align="center" | [[File:New projects.png|100px|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]
 +
  | width="50%" valign="top" align="center" | [[File:Owasp-breakers-small.png|link=]]
 
   |-
 
   |-
  | rowspan="2" width="50%" valign="top" align="center" | [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects|Incubator Project]]
+
   | width="50%" valign="top" align="center" | [[File:Owasp-defenders-small.png|link=]]
   | width="50%" valign="top" align="center" | [[File:Owasp-breakers-small.png|link=Breakers]]
 
 
   |-
 
   |-
   | 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:Project_Type_Files_TOOL.jpg|link=]]
 
   |}
 
   |}
 +
 
|}
 
|}
 
   
 
   

Latest revision as of 14:31, 8 October 2018

ASD-banner.png
OWASP Project Header.jpg

Introduction

During web application penetration testing, it is important to enumerate your application's attack surface. While Dynamic Application Security Testing (DAST) tools (such as OWASP ZAP and PortSwigger Burp Suite) are good at spidering to identify application attack surfaces, they will often fail to identify unlinked endpoints, optional parameters, and parameter datatypes and name. These endpoints and parameters not found often go untested, which can leave your application open to an attacker.

What is the Attack Surface Detector?

The Attack Surface Detector tool uncovers the endpoints of a web application, the parameters these endpoints accept, and the data type of those parameters. This includes the unlinked endpoints a spider won't find in client-side code, or optional parameters totally unused in client-side code. It also has the capability to calculate the changes in attack surface between two versions of an application.

The Attack Surface Detector is available as a plugin to both ZAP and Burp Suite, and a Command Line Interface (CLI) tool is also available. The CLI tool exports the attack surface as a JSON output, which can then be used by the ZAP and Burp Suite plugin. This is helpful for cases where the source code is not provided to the penetration tester directly. The CLI tool can also be used for other custom integration where you want to discover an application attack surface or changes in the attack surface.

For a quick overview of the Attack Surface Detection tool, see this YouTube video:

Below is a screenshot of the Burp Suite Attack Surface Detector plugin where you can see a list of endpoints, endpoint details, and their corresponding requests:

ASD-Endpoint-Screens.png

How it Works

The Attack Surface Detector performs static code analyses to identify web application endpoints by parsing routes and identifying parameters (with supported languages and frameworks). This data is made available in ZAP and Burp Suite to help improve testing coverage.

Supported Languages and Frameworks

Java: JSPs, Servlets, Struts, Spring MVC
C#: ASP.NET MVC, Web Forms
Ruby: Rails
Python: Django

Roadmap

We continue to improve the attack surface detection accuracy for existing supported languages and frameworks, and we are looking to add additional language support, particularly for PHP and Python. If there are any PHP or Python developers that are looking to contribute, please let us know.

We are also looking to extend ASD for use in automated headless usage of ZAP and Burp and move the ASD ZAP plugin out of alpha classification, which requires internationalization. If anyone can help, we would love your contributions.

Finally, we are really interested in what the community thinks will help improve ASD and we will adjust our roadmap based on that feedback.

Getting Involved

Contributions to the Attack Surface Detector project are encouraged and welcome. Additions of new features and enhancements can be provided through GitHub. We are eager to get user feedback, so please reach out to us or fill out this ASD survey.

Licensing

The Attack Surface Detector plugin is free to use. It is licensed under the link Mozilla Public License 2.0.

Acknowledgements

The Attack Surface Detection project is led by Secure Decisions and was developed in collaboration with Denim Group under a research grant sponsored by the Department of Homeland Security (DHS) Science and Technology Directorate, Cyber Security Division (DHS S&T/CSD), BAA via contract number HHSP233201600058C.

Project Resources

The Attack Surface Detector is available in the ZAP Marketplace and PortSwigger BApp Store, and can be installed directly from within those tools.

ASD Plugin for OWASP ZAP:

Download ZAP Plugin

Documentation

Submit Feedback

GitHub Source Code

ASD Plugin for PortSwigger Burp:

Download Burp Suite Plugin

Documentation

Submit Feedback

GitHub Source Code

ASD Command-Line Tool:

Download ASD CLI

Documentation

Submit Feedback

GitHub Source Code

News and Events

Contact Us

Project Leader: Ken Prole

Email: [email protected]

Related Projects

Classifications

New projects.png Owasp-breakers-small.png
Owasp-defenders-small.png
Project Type Files TOOL.jpg