Giter Site home page Giter Site logo

cu-0xff / benchmarkutils Goto Github PK

View Code? Open in Web Editor NEW

This project forked from owasp-benchmark/benchmarkutils

0.0 0.0 0.0 740 KB

OWASP Benchmark Project Utilities - Provides scorecard generation and crawling tools for Benchmark style test suites.

Home Page: https://owasp.org/www-project-benchmark/

License: GNU General Public License v3.0

Shell 0.14% JavaScript 0.05% Java 96.47% HTML 3.17% Batchfile 0.05% HCL 0.11%

benchmarkutils's Introduction

OWASP Benchmark Utilities

This project provides utility functions for the OWASP Benchmark project.

OWASP Benchmark applications are test suites designed to verify the speed and accuracy of vulnerability detection tools. Each is a fully runnable open source (usually web) application that can be analyzed by any type of Application Security Testing (AST) tool, including SAST, DAST (like OWASP ZAP), and IAST tools. The intent is that all the vulnerabilities deliberately included in and scored by the Benchmark are actually exploitable so its a fair test for any kind of application vulnerability detection tool. The BenchmarkUtils project includes scorecard generators for numerous open source and commercial AST tools, and the set of supported tools is growing all the time. The currently released OWASP Benchmark is written in Java, but efforts are underway to develop versions in other languages.

Public documentation for the Benchmark is on the OWASP site at OWASP Benchmark as well as the github repo at: OWASP Benchmark GitHub. Please refer to these sites for details on how to build and run the Benchmark, how to scan it with various AST tools, and how to then score those tools against the Benchmark using the scorecard utilities provided by BenchmarkUtils.

This project provides a Maven plugin for OWASP Benchmark that currently has the following capabilities:

  1. Scorecard Generator - when invoked, it analyzes all the tool scan results in the /results folder as compared to the expected results file for that test suite, and generates a scorecard for all those tools in the /scorecard folder. Scorecard generation can be invoked like so:

mvn org.owasp:benchmarkutils-maven-plugin:create-scorecard -DconfigFile=config/YOURCUSTOMconfig.yaml

Common Scorecard Generator Scripts:

Scripts like these are typically created, and included with each Benchmark test suite so scorecards can be generated against that test suite using the scorecard generation capabilities of BenchmarkUtils:

  • createScorecards.sh - create scorecards for all the tools whose results are in the /results folder.
  • createAnonScorecards.sh - create scorecards, but anonymize all the commercial tools scored

The CUSTOMconfig.yaml file primarily needs to specify the version of the expectedresults-##.csv file. That's typically all that's needed.

  1. Crawler - used to invoke every HTTP endpoint in a Benchmark test suite. Typically used to exercise the entire test suite so IAST and other code execution monitoring tools can identify vulnerabilities in the test suite. The Crawler can be invoked like so:

mvn -Djava.awt.headless=true org.owasp:benchmarkutils-maven-plugin:run-crawler -DcrawlerFile=data/TESTSUITENAME-crawler-http.xml

Note that the TESTSUITENAME-crawler-http.xml is generated as part of the generation of the test suite itself, so you simply need to point to the crawlerFile for that test suite.

  1. Verify presence of this Maven plugin. A script is usually provided with each test suite to verify this BenchmarkUtils maven plugin has been installed locally, and if it hasn't, it tells you where to get it and how to install it (which is really easy). You'll see the following line as the 1st line of most scripts that invoke this plugin:

source "scripts/verifyBenchmarkPluginAvailable.sh"

USAGE:

All use of these utilities should be through scripts already rovided with each Benchmark style test suite. To use this, simply clone this project, cd to BenchmarkUtils, and then run: mvn install. Periodically, you should run: git pull, then: mvn install, to download any updates and build/install the latest version.

EXAMPLES: Some example invocation scripts and scoring configuration .yaml files are provided in examplescripts_configfiles/

benchmarkutils's People

Contributors

davewichers avatar darkspirit510 avatar arunmuthu255 avatar frankfischermt avatar nunoocx avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.