Giter VIP home page Giter VIP logo

adioss / dependency-track Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dependencytrack/dependency-track

0.0 2.0 0.0 8.77 MB

Dependency-Track is an intelligent Software Composition Analysis (SCA) platform that allows organizations to automatically ingest and identify third-party components and any inherited vulnerabilities from their use.

License: Apache License 2.0

Java 38.62% JavaScript 59.14% CSS 2.24%

dependency-track's Introduction

Build Status Codacy Badge Alpine License Slack Join the chat at https://gitter.im/dependency-track/Lobby Twitter

Dependency-Track

Modern applications leverage the availability of existing components for use as building blocks in application development. By using existing components, organizations can dramatically decrease time-to-market. Reusing existing components however, comes at a cost. Organizations that build on top of existing components assume risk for software they did not create. Vulnerabilities in third-party components are inherited by all applications that use those components. The OWASP Top Ten (2013 and 2017) both recognize the risk of using components with known vulnerabilities.

Dependency-Track is a Software Composition Analysis (SCA) platform that keeps track of all third-party components used in all the applications an organization creates or consumes. It integrates with multiple vulnerability databases including the National Vulnerability Database (NVD), Node Security Platform (NSP), and VulnDB from Risk Based Security. Dependency-Track monitors all applications in its portfolio in order to proactively identify vulnerabilities in components that are placing your applications at risk. Use of Dependency-Track can play a vital role in an overall Supply Chain Risk Management (SCRM) program by providing many of the recommendations outlined in the NIST Cybersecurity Framework.

Dependency-Track is designed to be used in an automated DevOps environment where Dependency-Check results or specific BOM (Bill of Material) formats are automatically ingested during CI/CD. Use of the Dependency-Check Jenkins Plugin is highly recommended for this purpose and is well suited for use in Jenkins Pipeline. In such an environment, Dependency-Track enables your DevOps teams to accelerate while still keeping tabs on component usage and any inherited risk.

Dependency-Track can also be used to monitor vulnerabilities in COTS (commercial off-the-shelf) software.

NOTICE: Dependency-Track is pre-release alpha quality software. It is expected to be feature complete in January 2018 with betas and release candidates available in Q1.

Features

  • Dramatically increases visibility into the use of vulnerable components
  • Supports an unlimited number of projects and components
  • Projects can range from applications, operating systems, firmware, to IoT devices
  • Tracks vulnerabilities across entire project portfolio
  • Tracks vulnerabilities by component
  • Easily identify projects that are potentially vulnerable to newly published vulnerabilities
  • Supports standardized SPDX license ID’s and tracks license use by component
  • Supports CycloneDX and SPDX bill-of-material formats
  • Easy to read metrics for components, projects, and portfolio
  • API-first design facilitates easy integration with other systems
  • API documentation available in Swagger 2.0 (OpenAPI 3 support coming soon)
  • Flexible authentication supports internally managed users, Active Directory/LDAP, and API Keys
  • Simple to install and configure. Get up and running in just a few minutes

Ecosystem Overview

alt tag

  • Dependency-Check results can be published to SonarQube (plugin)
  • Dependency-Check results can be published to ThreadFix (plugin)
  • Dependency-Check results can be published to Dependency-Track
  • Software bill-of-materials can be published to Dependency-Track
  • Dependency-Check can use Dependency-Track as a source of evidence
  • Dependency-Track results can be integrated into ThreadFix

Screenshots

The dashboard: alt text

A list of all projects: alt text

Viewing a list of components that are dependencies of a specific project: alt text

Viewing an individual vulnerable component: alt text

Viewing an individual vulnerability: alt text

Viewing all vulnerabilities in the system: alt text

Viewing an individual license: alt text

Distributions

Ready-to-deploy distributions will be available beginning with 3.0.0-beta-1. Dependency-Track supports the following three deployment options:

  • Executable WAR
  • Conventional WAR
  • Docker container

Deploying the Executable WAR

The easiest way to get Dependency-Track setup is to automatically create and deploy an executable WAR.

mvn clean package -P embedded-jetty
java -jar target/dependency-track-embedded.war

Deploying the Conventional WAR

This is the most difficult to deploy option as it requires an already installed and configured Servlet container such as Apache Tomcat 8.5 and higher, however, it offers the most flexible deployment options.

mvn clean package

Follow the Servlet containers instructions for deploying dependency-track.war.

Deploying With Docker

For users leveraging Docker, the process simply wraps the executable WAR inside a Docker container. Begin by first compiling the software, then by executing Docker-specific commands.

mvn clean package -P embedded-jetty
docker build -f src/main/docker/Dockerfile -t dependency-track .
docker run -p 8080:8080 -t dependency-track

Compiling

To create an executable WAR that is ready to launch (recommended for most users):

mvn clean package -P embedded-jetty

To create a WAR that must be manually deployed to a modern Servlet container (i.e. Tomcat 8.5+):

mvn clean package

Configuration

Configuration is performed by editing application.properties. Among the configuration parameters are:

  • Independently enforce authentication and authorization
  • Active Directory integration (via LDAP)

Usage

Webapp URL: http://$HOSTNAME:$PORT/$CONTEXT

REST API URL: http://$HOSTNAME:$PORT/$CONTEXT/api

Swagger URL: http://$HOSTNAME:$PORT/$CONTEXT/api/swagger.json

Data Directory

Dependency-Track uses ~/.dependency-track on UNIX/Linux systems and .dependency-track in current users home directory on Windows machines. This directory contains the NIST NVD mirror, embedded database files, application and audit logs, as well as keys used during normal operation, such as validating JWT tokens. It is essential that best practices are followed to secure the .dependency-track directory structure.

Community

Gitter: https://gitter.im/dependency-track/Lobby

Google Groups: https://groups.google.com/forum/#!forum/dependency-track

Support

Dependency-Track is an open source project, created by people who believe that the knowledge of using vulnerable components should be accessible to anyone with a desire to know. By supporting this project, you'll allow the team to outsource testing, infrastructure, further research and development efforts, and engage in outreach to various communities that would benefit from this technology.

PayPal

Copyright & License

Dependency-Track is Copyright (c) Steve Springett. All Rights Reserved.

Permission to modify and redistribute is granted under the terms of the Apache License 2.0 license-url

Dependency-Track makes use of several other open source libraries. Please see the [NOTICES.txt] notices file for more information.

dependency-track's People

Contributors

m1a0yu3 avatar michaelgissingnc avatar stevespringett avatar

Watchers

 avatar  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.