Docker Compose is used to define and manage containerized applications through configuration files such as compose.yaml and docker-compose.yml. These files can contain application settings, environment variables, database connection details, and other configuration information required to run containers.
When developers store passwords, API keys, access tokens, or database credentials directly in configuration files, these secrets may become exposed when the files are shared, uploaded to source-control repositories, or included in project archives. Such exposure can increase the risk of unauthorized access to the services that use those credentials.
In this use case, an Ubuntu virtual machine is used as the primary development and security-analysis environment, while Kali Linux provides a separate environment for authorized security testing. Docker and Docker Compose provide the controlled application environment.
Gitleaks is used to scan Docker Compose configuration files for potential hardcoded secrets.
DeepSeek-Coder, running locally through Ollama, assists in explaining detected findings and recommending appropriate remediation changes. Python processes the scan results and AI-generated recommendations, while Streamlit presents the findings and validation status through a dashboard.
Checkov and applicable Trivy checks are used to identify additional supported configuration-security issues and container-image vulnerabilities. Nmap is used only when network-service exposure assessment is required for a running laboratory application.
The project uses publicly available configuration examples and controlled secure and insecure configuration samples. Dummy credentials are used to demonstrate the detection and remediation workflow without exposing real secrets.
The complete security-validation workflow is:
Docker Compose Configuration
→
Hardcoded Secret Identification
→
Gitleaks Scanning
→
Finding Validation
→
DeepSeek-Coder Analysis
→
Remediation Recommendations
→
Configuration Correction
→
Security Re-Scanning
→
Configuration Validation
→
Results Dashboard