Learn to use Trivy for container image vulnerability scanning and policy enforcement. Trivy is an essential tool for securing container supply chains in Kubernetes environments.
Quick Setup
Install Trivy locally for demonstration:
# Install Trivy (Linux)curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
# Verify installationtrivy version
Basic Image Scanning
Scan container images for vulnerabilities:
# Scan a basic imagetrivy image nginx:alpine
# Scan with specific severitytrivy image --severity HIGH,CRITICAL nginx:1.20
# Scan and save resultstrivy image --format json --output results.json nginx:alpine
Q1: What information does Trivy provide?
Answer
CVE details: Common Vulnerabilities and Exposures
Severity levels: LOW, MEDIUM, HIGH, CRITICAL
CVSS scores: Industry standard vulnerability scoring
Fixed versions: Which versions resolve the vulnerabilities
Package details: Affected libraries and dependencies
Trivy in Kubernetes
Scan Running Containers
# List running containerskubectl get pods
# Scan a running pod's imagekubectl get pod <pod-name> -o jsonpath='{.spec.containers[0].image}' | xargs trivy image
# Quick cluster scankubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.containers[*].image}' | tr ' ''\n' | sort -u | xargs -I {} trivy image --severity HIGH,CRITICAL {}
# Falco rule to detect vulnerable container starts- rule: Vulnerable Container Starteddesc: Container with known vulnerabilities startedcondition: > container_started and
container.image.repository contains "nginx" and
container.image.tag="1.14"output: "Vulnerable container started (image=%container.image)"priority: WARNING