Trivy: Container Vulnerability Scanning
Overview
This lab demonstrates how to use Trivy, an open-source vulnerability scanner, to analyze container images for security issues and generate Software Bills of Materials (SBOM) for supply chain security.
Learning Objectives
By the end of this lab, you will be able to:
- Install and configure Trivy
- Scan container images for vulnerabilities
- Filter results by severity levels
- Generate and analyze SBOM files
- Compare security postures between different images
Prerequisites
- Docker installed and running
- Internet connectivity for downloading images
- Basic understanding of container security concepts
Lab Exercises
Exercise 1: Trivy Installation
Trivy can be installed on various Linux distributions. The installation process is automated in the lab script.
Installation Methods
For detailed installation instructions, please refer to the official Trivy installation guide.
Verify Installation:
Exercise 2: Basic Vulnerability Scanning
Scan for Critical Vulnerabilities
Start by scanning an older, vulnerable image for critical security issues:
Scan for High and Critical Vulnerabilities
Expand the scan to include high-severity vulnerabilities:
Expected Output:
- List of vulnerabilities with CVE IDs
- Severity levels and CVSS scores
- Description of security issues
- Fixed versions when available
Exercise 3: SBOM Generation
Software Bill of Materials (SBOM) provides transparency into software components and dependencies.
Generate SBOM for Vulnerable Image
Analyze SBOM with Trivy
Exercise 4: Security Comparison
Compare vulnerability counts between different image versions to demonstrate the importance of keeping images updated.
Scan Secure Alternative Image
Automated Vulnerability Comparison
The lab script includes automated comparison using JSON output:
Exercise 5: Advanced Scanning Options
Scan Specific Vulnerability Types
Output Formats
Key Takeaways
Security Insights
- Image Age Matters: Older images like
nginx:1.19contain significantly more vulnerabilities than recent versions - Base Image Selection: Alpine-based images often have smaller attack surfaces
- Regular Updates: Keeping base images updated is crucial for security
- SBOM Importance: Software Bills of Materials provide transparency for compliance and security reviews
Best Practices
- Automate Scanning: Integrate Trivy into CI/CD pipelines
- Set Thresholds: Fail builds when critical vulnerabilities are detected
- Monitor Regularly: Scan running containers, not just during build time
- Use SBOM: Generate and maintain SBOM files for supply chain transparency
Integration Examples
CI/CD Integration
Kubernetes Integration
Consider using the Trivy Operator for automated scanning of running workloads in Kubernetes clusters. The Trivy Operator continuously scans container images, workloads, and cluster configurations for vulnerabilities and security issues, providing native Kubernetes CRDs for vulnerability reports and compliance results.
Troubleshooting
Common Issues
- Network Connectivity: Ensure internet access for vulnerability database updates
- Storage Space: Trivy downloads vulnerability databases (several GB)
- Rate Limits: Docker Hub rate limits may affect image pulling
Useful Commands
Next Steps
After completing this lab:
- Explore Trivy Operator for Kubernetes integration
- Learn about container image signing with Cosign
- Implement ImagePolicyWebhook for admission control
- Set up automated vulnerability monitoring