Skip to content

API to listen Dependency-Track Outbound Webhook messages and sync CycloneDX results to Fortify SSC platform.

License

Notifications You must be signed in to change notification settings

canerce/dependency-track-ssc-bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SSC-DTrack Bridge

Docker Python Flask License

A modern bridge application that seamlessly integrates Dependency-Track with Fortify Software Security Center (SSC) to enable automated vulnerability management and SBOM synchronization between the two platforms.

πŸš€ Features

  • Automated SBOM Synchronization: Automatically uploads CycloneDX SBOMs from Dependency-Track to Fortify SSC
  • Real-time Webhook Integration: Processes Dependency-Track webhooks for instant synchronization
  • Vulnerability State Management: Syncs vulnerability analysis states between platforms
  • Application Lifecycle Management: Creates and manages Fortify SSC applications automatically
  • Health Monitoring: Built-in health checks and comprehensive logging
  • SSL/TLS Support: Secure communication with nginx reverse proxy
  • Docker Ready: Complete containerized deployment with Docker Compose

πŸ“‹ Prerequisites

  • Docker and Docker Compose
  • Fortify Software Security Center (SSC) instance
  • Dependency-Track instance
  • SSL certificates (for production deployment)

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    Webhook    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    API Calls    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Dependency-Track β”‚ ────────────► β”‚ SSC-DTrack Bridge β”‚ ──────────────► β”‚ Fortify SSC           β”‚
β”‚                  β”‚               β”‚                   β”‚                 β”‚                       β”‚
β”‚ β€’ SBOM Events    β”‚               β”‚ β€’ Flask App       β”‚                 β”‚ β€’ Applications        β”‚
β”‚ β€’ Audit Changes  β”‚               β”‚ β€’ Webhook Handler β”‚                 β”‚ β€’ OSS Vulnerabilities β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

1. Clone the Repository

git clone <repository-url>
cd ssc-dtrack-bridge

2. Configure Environment Variables

Create a .env file in the root directory:

# Fortify SSC Configuration
SSC_URL=https://your-ssc-instance.com
SSC_TOKEN=your_ssc_api_token

# Dependency-Track Configuration
DTRACK_URL=https://your-dtrack-instance.com
DTRACK_TOKEN=your_dtrack_api_key

3. Set Up SSL Certificates

Place your SSL certificates in the certs/ directory:

mkdir -p certs
# Copy your SSL certificates
cp your-certificate.crt certs/server.crt
cp your-private-key.key certs/server.key

4. Deploy with Docker Compose

docker-compose up -d

The bridge will be available at:

  • HTTPS: https://your-domain.com (via nginx)
  • HTTP: http://localhost:8080 (direct access)

βš™οΈ Configuration

Environment Variables

Variable Description Required Default
SSC_URL Fortify SSC instance URL Yes -
SSC_TOKEN Fortify SSC API token Yes -
DTRACK_URL Dependency-Track instance URL Yes -
DTRACK_TOKEN Dependency-Track API key Yes -

Webhook Configuration

Configure Dependency-Track webhooks to point to your bridge:

URL: https://your-domain.com/dtrack
Events: BOM_PROCESSED, PROJECT_AUDIT_CHANGE

πŸ”§ API Endpoints

Health Check

GET /healthz

Returns the health status of the bridge application.

Dependency-Track Webhook

POST /dtrack

Processes webhook events from Dependency-Track.

Supported Events:

  • BOM_PROCESSED: Uploads SBOM to Fortify SSC
  • PROJECT_AUDIT_CHANGE: Syncs vulnerability analysis states

πŸ“Š Monitoring

Health Checks

The application includes built-in health monitoring:

  • Container Health Check: Runs every 30 seconds
  • Application Health Endpoint: /healthz
  • Comprehensive Logging: Structured JSON logging

Logs

View application logs:

docker-compose logs -f dtrack-ssc-bridge

Resource Limits

  • CPU: 2 cores maximum
  • Memory: 4GB maximum
  • Log Rotation: 100KB files, max 3 files

πŸ”’ Security

  • SSL/TLS Encryption: All external communications are encrypted
  • API Token Authentication: Secure authentication with both platforms
  • Container Security: Non-root user execution
  • Network Isolation: Docker network isolation

πŸ› οΈ Development

Local Development Setup

  1. Install Dependencies
cd docker
pip install flask gunicorn requests
  1. Run Locally
python app.py
  1. Environment Setup
export SSC_URL=https://your-ssc-instance.com
export SSC_TOKEN=your_ssc_api_token
export DTRACK_URL=https://your-dtrack-instance.com
export DTRACK_TOKEN=your_dtrack_api_key

Building Custom Image

docker build -t your-registry/ssc-dtrack-bridge:latest ./docker

πŸ“ Troubleshooting

Common Issues

  1. Webhook Not Receiving Events

    • Verify webhook URL is accessible
    • Check SSL certificate validity
    • Ensure proper network connectivity
  2. Authentication Failures

    • Verify API tokens are correct
    • Check token permissions
    • Ensure URLs are accessible
  3. SBOM Upload Failures

    • Verify Fortify SSC permissions
    • Check CycloneDX format compatibility
    • Review application creation permissions

Debug Mode

Enable debug logging by modifying the logging level in app.py:

logging.basicConfig(level=logging.DEBUG, ...)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

For support and questions:

  • Create an issue in the repository
  • Check the troubleshooting section
  • Review the logs for error details

πŸ”„ Version History

  • v0.1: Initial release with basic SBOM synchronization
  • Future versions will include enhanced features and improvements

Note: This bridge is designed for production use but should be thoroughly tested in your environment before deployment.

About

API to listen Dependency-Track Outbound Webhook messages and sync CycloneDX results to Fortify SSC platform.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published