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.
- 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
- Docker and Docker Compose
- Fortify Software Security Center (SSC) instance
- Dependency-Track instance
- SSL certificates (for production deployment)
ββββββββββββββββββββ Webhook βββββββββββββββββββββ API Calls βββββββββββββββββββββββββ
β Dependency-Track β βββββββββββββΊ β SSC-DTrack Bridge β βββββββββββββββΊ β Fortify SSC β
β β β β β β
β β’ SBOM Events β β β’ Flask App β β β’ Applications β
β β’ Audit Changes β β β’ Webhook Handler β β β’ OSS Vulnerabilities β
ββββββββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββββββββ
git clone <repository-url>
cd ssc-dtrack-bridgeCreate 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_keyPlace 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.keydocker-compose up -dThe bridge will be available at:
- HTTPS:
https://your-domain.com(via nginx) - HTTP:
http://localhost:8080(direct access)
| 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 | - |
Configure Dependency-Track webhooks to point to your bridge:
URL: https://your-domain.com/dtrack
Events: BOM_PROCESSED, PROJECT_AUDIT_CHANGE
GET /healthzReturns the health status of the bridge application.
POST /dtrackProcesses webhook events from Dependency-Track.
Supported Events:
BOM_PROCESSED: Uploads SBOM to Fortify SSCPROJECT_AUDIT_CHANGE: Syncs vulnerability analysis states
The application includes built-in health monitoring:
- Container Health Check: Runs every 30 seconds
- Application Health Endpoint:
/healthz - Comprehensive Logging: Structured JSON logging
View application logs:
docker-compose logs -f dtrack-ssc-bridge- CPU: 2 cores maximum
- Memory: 4GB maximum
- Log Rotation: 100KB files, max 3 files
- 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
- Install Dependencies
cd docker
pip install flask gunicorn requests- Run Locally
python app.py- 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_keydocker build -t your-registry/ssc-dtrack-bridge:latest ./docker-
Webhook Not Receiving Events
- Verify webhook URL is accessible
- Check SSL certificate validity
- Ensure proper network connectivity
-
Authentication Failures
- Verify API tokens are correct
- Check token permissions
- Ensure URLs are accessible
-
SBOM Upload Failures
- Verify Fortify SSC permissions
- Check CycloneDX format compatibility
- Review application creation permissions
Enable debug logging by modifying the logging level in app.py:
logging.basicConfig(level=logging.DEBUG, ...)- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the troubleshooting section
- Review the logs for error details
- 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.