OWASP Dependency Check

From OWASP
Revision as of 21:03, 18 June 2013 by Jeremy.long (Talk | contribs)

Jump to: navigation, search

The purpose of dependency-check is to help notify developers and security professionals of the problem discussed by Jeff Williams and Arshan Dabirsiaghi in their talk at AppSec DC 2012 titled "The Unfortunate Reality of Insecure Libraries". The gist of their presentation is that we as a development community include third party libraries in our applications that contain well known published vulnerabilities (such as those at the National Vulnerability Database).

Currently, dependency-check is (java) command line tool that scans directories and files. If it contains an Analyzer that can scan a particular file type then information from the file is collected. This information is then used to identify the Common Platform Enumeration (CPE). If a CPE is identified a listing of associated Common Vulnerability and Exposure (CVE) entries are listed in a report.

Dependency-check automatically updates itself using the NVD Data Feeds hosted by NIST. IMPORTANT NOTE: The initial download of the data may take 5 minutes or more, if you run the tool at least once every 7 days only a small XML file needs to be downloaded to keep the local copy of the data current.

More information about dependency-check can be found on the github dependency-check site.

[edit]

OWASP Project Header.jpg

OWASP Dependency-Check

Dependency-Check is a utility that identifies project dependencies and checks if there are any known, publicly disclosed, vulnerabilities. Currently Java and .NET dependencies are supported; however, support for Node.JS, client side JavaScript libraries, etc. is planned. This tool can be part of the solution to the OWASP Top 10 2013 A9 - Using Components with Known Vulnerabilities.

Introduction

The OWASP Top 10 2013 contains a new entry: A9 - Using Components with Known Vulnerabilities. Dependency-check can currently be used to scan Java applications (and their dependent libraries) to identify any known vulnerable components.

The problem with using known vulnerable components was described very well in a paper by Jeff Williams and Arshan Dabirsiaghi titled, "The Unfortunate Reality of Insecure Libraries". The gist of the paper is that we as a development community include third party libraries in our applications that contain well known published vulnerabilities (such as those at the National Vulnerability Database).

Dependency-check has a command line interface, a Maven plugin, an Ant task, and a Jenkins plugin. The core engine contains a series of analyzers that inspect the project dependencies, collect pieces of information about the dependencies (referred to as evidence within the tool). The evidence is then used to identify the Common Platform Enumeration (CPE) for the given dependency. If a CPE is identified, a listing of associated Common Vulnerability and Exposure (CVE) entries are listed in a report.

Dependency-check automatically updates itself using the NVD Data Feeds hosted by NIST. IMPORTANT NOTE: The initial download of the data may take ten minutes or more, if you run the tool at least once every seven days only a small XML file needs to be downloaded to keep the local copy of the data current.

What is Dependency-Check?

OWASP Dependency-Check provides:

  • Monitoring of project dependencies
  • Library Identification
  • Notification of CVE

Documentation

Mailing List

Presentation

Quick Download

Version 1.1.4

Source Code:

Ohloh

Classifications

Owasp-incubator-trans-85.png Owasp-builders-small.png
Owasp-defenders-small.png
Cc-button-y-sa-small.png
Project Type Files CODE.jpg

Volunteers

Dependency-Check is developed by a team of volunteers. The primary contributors to date have been:

As of May 2014, the top priorities are:

  • Resolving all open github issues/feature requests
  • Improving analysis for .NET Dlls
  • Implementing a JavaScript analyzer to support both Node.js and JavaScript libraries such as jquery

Involvement in the development and promotion of dependency-check is actively encouraged! You do not have to be a security expert in order to contribute. How you can help:

  • Use the tool
  • Provide feedback via the mailing list or by creating github issues (both bugs and feature requests are encouraged)
  • The project source code is hosted on github - if you are so inclined fork it and provide push requests!