feat(ci): implement comprehensive security scanning pipeline
🔒 Security Scanning Implementation
This MR adds comprehensive security scanning to the CI/CD pipeline to proactively identify and manage security vulnerabilities.
📋 Changes
Security Scanners Added
-
✅ Dependency Scanning - Scans npm packages for known vulnerabilities -
✅ SAST (Static Application Security Testing) - Analyzes JavaScript code for security issues -
✅ Secret Detection - Detects exposed credentials, API keys, and tokens -
✅ Container Scanning - Scans Docker images for vulnerabilities
Pipeline Configuration
- Created
.gitlab-ci.ymlwith security scanning stages - Configured Docker image build for container scanning
- Set up appropriate exclusion paths for scanners
- Enabled security scanning on main branch and merge requests
🎯 What This Enables
Vulnerability Management
-
Security Dashboard: View all vulnerabilities at
Project → Security & Compliance → Vulnerability Report - MR Security Widget: See new vulnerabilities introduced in each merge request
- Dependency List: Track all project dependencies and their security status
- Pipeline Security Tab: Review security scan results for each pipeline run
Automated Detection
- Dependency vulnerabilities in npm packages (e.g., outdated Express, vulnerable libraries)
- Code security issues (e.g., injection vulnerabilities, insecure patterns)
- Exposed secrets (e.g., API keys, tokens, passwords)
- Container vulnerabilities (e.g., outdated Alpine packages, Node.js CVEs)
🔍 How to Use
After Merge
- Pipeline runs automatically on every push and MR
-
Check Security Dashboard:
Project → Security & Compliance → Vulnerability Report - Review findings in merge request security widget
- Triage vulnerabilities using GitLab's vulnerability management tools
Viewing Results
- In Merge Requests: Security widget shows new vulnerabilities
- In Pipelines: Security tab shows all scan results
- In Security Dashboard: Comprehensive view of all vulnerabilities
- In Dependency List: All dependencies with security status
📊 Scanner Details
| Scanner | Scans | Detects | Runs On |
|---|---|---|---|
| Dependency Scanning | package.json, package-lock.json | npm package vulnerabilities | Every pipeline |
| SAST | JavaScript files | Code security issues | Every pipeline |
| Secret Detection | All repository files | Exposed credentials | Every pipeline |
| Container Scanning | Docker images | Image vulnerabilities | Every pipeline |
⚙️ Configuration
Exclusion Paths
The following paths are excluded from scanning to reduce noise:
-
node_modules/- Third-party dependencies -
public/- Built static files -
docs/- Documentation files
Scan Triggers
Security scans run on:
-
✅ Main branch pushes -
✅ Merge request creation/updates -
✅ Manual pipeline triggers
🚀 Next Steps
After this MR is merged:
- Monitor first scan results in the Security Dashboard
- Review any findings and triage vulnerabilities
- Set up security policies (optional) for automated responses
- Configure notifications for new vulnerabilities (optional)
📚 Documentation
For more information:
✅ Testing
-
Pipeline configuration validated -
Security scanners configured correctly -
Exclusion paths set appropriately -
Docker build configured for container scanning
Note: This requires a GitLab Ultimate license for full vulnerability management features. The scanners will run on Premium/Free tiers, but vulnerability reporting and management tools require Ultimate.