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
(ASD-cli-added)
m (Logo update)
 
(32 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>
</span>
 
 
==Introduction==
 
==Introduction==
 
<span style="color:#000000">
 
<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.
+
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>
  
 
==What is the Attack Surface Detector?==
 
==What is the Attack Surface Detector?==
==== Attack Surface Detector ZAP and Burp Plugins====
+
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>
<span style="color:#000000">
+
 
This tool is the Attack Surface Detector, a plugin for OWASP ZAP and PortSwigger Burp Suite. This tool figures out 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. The plugin then imports this data into ZAP or Burp so you view the results, or work with the detected endpoints and parameters from the target site map.<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>
</span>
+
 
 +
For a quick overview of the Attack Surface Detection tool, see this YouTube video:
  
[[File:ASD-Main-BurpA.png|Caption ASD Main Burp Interface]]
+
{{#ev:youtube|jUUJNRcmqwI}}
  
==== Attack Surface Detector Command Line Interface====
+
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:
<span style="color:#000000"> The attack-surface-detector-cli program is a command-line tool that takes in a folder location and outputs the set of endpoints detected within that codebase. It uses the ASTAM Correlator's threadfix-ham module to generate these endpoints. The endpoints are output to the console by default, and can save a JSON version of those endpoints through the -output-file and -json flags. <br>
+
[[File:ASD-Endpoint-Screens.png|none|700px]]
</span>
 
  
 
==How it Works==
 
==How it Works==
 
<span style="color:#000000">
 
<span style="color:#000000">
The Attack Surface Detector uses static code analyses to identify web app endpoints by parsing routes and identifying parameters (with supported languages and frameworks).
+
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>
  
==Supported Frameworks==
+
==Supported Languages and Frameworks==
 
<span style="color:#000000">
 
<span style="color:#000000">
<code>C# / ASP.NET MVC <br>
+
{|
C# / Web Forms <br>
+
|<b>Java:</b>
Java / Spring MVC <br>
+
|JSPs, Servlets, Struts, Spring MVC
Java / Struts <br>
+
|-
Java JSP <br>
+
|<b>C#:</b>
Python / Django <br>
+
|ASP.NET MVC, Web Forms
Ruby / Rails
+
|-
</code>
+
|<b>Ruby:</b>
 +
|Rails
 +
|-
 +
|<b>Python:</b>
 +
| Django
 +
|}
 +
 
 
</span>
 
</span>
 +
 +
==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>
 +
 +
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 [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==
Line 44: Line 60:
 
</span>
 
</span>
  
==Getting Involved==
+
==Acknowledgements==
 
<span style="color:#000000">
 
<span style="color:#000000">
Contributions to the Attack Surface Detector project are encouraged and welcome. Additions of new features and enhancements can be provided through GitHub. We encourage users to assess the technology through individual evaluations, pilots and/or case studies.  
+
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:200px;border-right: 1px dotted gray;padding-right:25px;" valign="top" |
+
| style="padding-left:25px;width:275px;border-right: 1px dotted gray;padding-right:25px;" valign="top" |
</span>
 
  
 
== Project Resources ==
 
== Project Resources ==
<span style="color:#ff0000">
+
<span style="color:#ff0000"></span>
</span>
 
====ASD Plugin for OWASP ZAP:====
 
[https://github.com/secdec/attack-surface-detector-zap/ ASD ZAP Home Page]
 
  
[https://github.com/secdec/attack-surface-detector-zap/wiki ASD ZAP Wiki]
+
The Attack Surface Detector is available in the ZAP Marketplace and PortSwigger BApp Store, and can be installed directly from within those tools.
  
[https://github.com/secdec/attack-surface-detector-zap/wiki/Installation Install Attack Surface Detector]
+
====ASD Plugin for OWASP ZAP:====
 
+
[https://github.com/secdec/attack-surface-detector-zap/releases Download ZAP Plugin]
[https://github.com/secdec/attack-surface-detector-zap/wiki/Source-Code-Configuration Source Code Configuration]
 
  
[https://github.com/secdec/attack-surface-detector-zap/wiki/Target-URL-Configuration Target URL Configuration]
+
[https://github.com/secdec/attack-surface-detector-zap/wiki Documentation]
  
[https://github.com/secdec/attack-surface-detector-zap/wiki/Import-endpoints Import Endpoints]
+
[https://github.com/secdec/attack-surface-detector-zap/issues Submit Feedback]
  
[https://github.com/secdec/attack-surface-detector-zap/issues Issue Tracker]
+
[https://github.com/secdec/attack-surface-detector-zap GitHub Source Code]
  
 
====ASD Plugin for PortSwigger Burp:====
 
====ASD Plugin for PortSwigger Burp:====
[https://github.com/secdec/attack-surface-detector-burp/ ASD Burp Home Page]
+
[https://github.com/secdec/attack-surface-detector-burp/releases Download Burp Suite Plugin]
 
 
[https://github.com/secdec/attack-surface-detector-burp/wiki ASD Burp Wiki]
 
 
 
[https://github.com/secdec/attack-surface-detector-burp/wiki/Installation Install Attack Surface Detector]
 
  
[https://github.com/secdec/attack-surface-detector-burp/wiki/Source-Code-Configuration Source Code Configuration]
+
[https://github.com/secdec/attack-surface-detector-burp/wiki Documentation]
  
[https://github.com/secdec/attack-surface-detector-burp/wiki/Target-URL-Configuration Target URL Configuration]
+
[https://github.com/secdec/attack-surface-detector-burp/issues Submit Feedback]
  
[https://github.com/secdec/attack-surface-detector-burp/wiki/Import-endpoints Import Endpoints]
+
[https://github.com/secdec/attack-surface-detector-burp GitHub Source Code]
  
[https://github.com/secdec/attack-surface-detector-burp/issues Issue Tracker]
+
====ASD Command-Line Tool:====
 +
[https://github.com/secdec/attack-surface-detector-cli/releases Download ASD CLI]
  
[https://www.youtube.com/watch?v=jUUJNRcmqwI ASD for Burp Video]
+
[https://github.com/secdec/attack-surface-detector-cli/wiki Documentation]
  
====ASD command-line tool:====
+
[https://github.com/secdec/attack-surface-detector-cli/issues Submit Feedback]
[https://github.com/secdec/attack-surface-detector-cli/ ASD CLI Home Page]
 
  
[https://github.com/secdec/attack-surface-detector-cli/wiki ASD CLI Wiki]
+
[https://github.com/secdec/attack-surface-detector-cli GitHub Source Code]
  
[https://github.com/secdec/attack-surface-detector-cli/wiki/Building-from-Source Building from Source]
+
== 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!]
  
[https://github.com/secdec/attack-surface-detector-cli/wiki/Usage,-Parameters,-and-Output Usage, Parameters and Output]
+
== Contact Us ==
 +
Project Leader: Ken Prole
  
[https://github.com/secdec/attack-surface-detector-cli/issues Issue Tracker]
+
Email: [mailto:ken.prole@securedecisions.com [email protected]]  
 
 
== Project Leader ==
 
<span style="color:#000000">
 
Ken Prole
 
 
 
Email: [mailto:ken.prole@codedx.com [email protected]]  
 
 
* [mailto:[email protected] Email us]
 
* [mailto:[email protected] Email us]
* [https://github.com/secdec/attack-surface-detector-zap/issues Create an issue]
+
* [https://twitter.com/secdec @SecDec]
* [https://lists.owasp.org/mailman/listinfo/owasp_attack_surface_detector_project OWASP project email List]
 
 
 
</span>
 
  
 
== Related Projects ==
 
== Related Projects ==
<span style="color:#000000">
+
<span style="color:#000000"></span>
</span>
 
 
* [[OWASP Zed Attack Proxy Project]]
 
* [[OWASP Zed Attack Proxy Project]]
 
* [[OWASP Code Pulse Project]]
 
* [[OWASP Code Pulse Project]]
Line 118: Line 120:
 
     {| width="200" cellpadding="2"
 
     {| width="200" cellpadding="2"
 
   |-
 
   |-
   | rowspan="2" align="center" valign="top" width="50%" | [[File:New projects.png|100px|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]
+
   | 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]]
   | 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:Project_Type_Files_TOOL.jpg|link=]]
 
   | colspan="2" align="center" | [[File:Project_Type_Files_TOOL.jpg|link=]]
Line 127: Line 129:
  
 
|}
 
|}
 
 
   
 
   
 
__NOTOC__ <headertabs />  
 
__NOTOC__ <headertabs />  

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