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 (minor tweak to how it works section)
m (minor text tweaks)
Line 7: Line 7:
 
==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 and optional parameters. 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?==
 
The Attack Surface Detector 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. It also has the capability to calculate the changes in attack surface between two versions of an application.<br><br>
 
The Attack Surface Detector 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. It also has the capability to calculate the changes in attack surface between two versions of an application.<br><br>
The Attack Surface Detector is available as a plugin to both OWASP 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><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><br>
For a quick overview of the Attack Surface Detection tool, see this YouTube video.
+
For a quick overview of the Attack Surface Detection tool, see this YouTube video:
  
 
{{#ev:youtube|jUUJNRcmqwI}}
 
{{#ev:youtube|jUUJNRcmqwI}}
Line 22: Line 22:
 
==How it Works==
 
==How it Works==
 
<span style="color:#000000">
 
<span style="color:#000000">
The Attack Surface Detector performs static code analyses to identify web app endpoints by parsing routes and identifying parameters (with supported languages and frameworks). This data is made available in Burp Suite and OWASP ZAP to help improve testing coverage.</span>
+
The Attack Surface Detector performs static code analyses to identify web app 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>
  
 
==Supported Frameworks==
 
==Supported Frameworks==
Line 53: Line 53:
 
==Acknowledgements==
 
==Acknowledgements==
 
<span style="color:#000000">
 
<span style="color:#000000">
The Attack Surface Detection project is led by [https://securedecisions.com/ Secure Decision] and was developed in collaboration with [https://www.denimgroup.com/ Denim Group] under a research grant sponsored by Department of Homeland Security (DHS) Science and Technology Directorate, Cyber Security Division (DHS S&T/CSD), BAA via contract numbers HHSP233201600058C.
+
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 Department of Homeland Security (DHS) Science and Technology Directorate, Cyber Security Division (DHS S&T/CSD), BAA via contract number HHSP233201600058C.
 
</span>
 
</span>
  

Revision as of 22:08, 9 September 2018

OWASP Project Header.jpg

Asd-logo.png

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 and optional parameters. 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 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. 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 app 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 Frameworks

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

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 Department of Homeland Security (DHS) Science and Technology Directorate, Cyber Security Division (DHS S&T/CSD), BAA via contract number HHSP233201600058C.

Project Resources

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

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