Modern software applications rely on third-party libraries, frameworks, and packages to provide application functionality. These dependencies can introduce security risks when they contain known vulnerabilities, use outdated versions, or have other security-related weaknesses.
OpenProject is an existing open-source project management application that uses software dependencies to support its functionality. The security of these dependencies is an important consideration because vulnerable components may introduce weaknesses into the application.
Traditional vulnerability scanners identify known vulnerabilities by matching installed or declared package versions against available vulnerability databases. Although this process is useful for identifying known issues, organizations may also require a way to prioritize dependency reviews based on the available package information and historical vulnerability records.
In this use case, OpenProject is used as the target application for software dependency risk analysis. The application is deployed within an isolated Ubuntu and Kali Linux laboratory environment. Existing public package metadata and vulnerability records are used as the primary data sources for the machine-learning stage.
The available dataset is inspected to determine whether it contains suitable package attributes and reliable labels for the intended vulnerability-risk classification task. The selected records are processed into numerical features suitable for the LightGBM machine-learning algorithm.
LightGBM is trained to classify dependency records according to the risk categories supported by the selected dataset. The trained model is evaluated using held-out records to measure its classification performance.
Syft is used to generate a Software Bill of Materials (SBOM) from compatible OpenProject artifacts. OSV-Scanner is used to identify known vulnerabilities in supported dependencies, while Grype or Trivy may be used as an additional vulnerability-scanning tool. The scanner findings provide security evidence that can be compared with the machine-learning predictions.
Python integrates package-data processing, model training, risk prediction, evaluation, and dashboard functionality. Streamlit provides an interactive dashboard that displays dependency information, known vulnerability findings, predicted risk categories, and model evaluation results.
The predicted risk is treated as a prioritization aid rather than proof that a package is vulnerable. Known vulnerability findings are independently verified against available security records.
The complete security-validation workflow is:
OpenProject
→
Dependency Collection
→
SBOM Generation
→
Package Metadata Extraction
→
Public Vulnerability Dataset
→
Data Preprocessing
→
Feature Extraction
→
LightGBM Training
→
Dependency Risk Prediction
→
Vulnerability Scanner Validation
→
Risk Prioritization
→
SQLite Storage
→
Streamlit Dashboard
→
Security Review
→
Final Risk Assessment