Performing Container Security Scanning with Trivy
Overview
Trivy is an open-source security scanner by Aqua Security that detects vulnerabilities in OS packages and language-specific dependencies, infrastructure-as-code misconfigurations, exposed secrets, and software license issues across container images, filesystems, Git repositories, and Kubernetes clusters. Trivy generates Software Bill of Materials (SBOM) in CycloneDX and SPDX formats for supply chain transparency. This skill covers comprehensive container image scanning, CI/CD pipeline integration, Kubernetes operator deployment, and scan result triage for security operations.
When to Use
Trigger phrases:
"performing container security scanning with trivy"
"Scan container images, filesystems, and Kubernetes manifests for vulnerabilities"
When conducting security assessments that involve performing container security scanning with trivy
When following incident response procedures for related security events
When performing scheduled security testing or auditing activities
When validating security controls through hands-on testing
Prerequisites
- Trivy v0.50+ installed (binary, Docker, or Homebrew)
- Docker daemon access for local image scanning
- Container registry credentials for remote image scanning
- CI/CD platform (GitHub Actions, GitLab CI, Jenkins) for pipeline integration
- Kubernetes cluster for Trivy Operator deployment (optional)
Steps
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Prepare the environment — ensure write-blocker is connected and test workstation is ready
- Document the source — record device serial, model, and pre-acquisition hash
- Acquire the image — use the appropriate tool with hash verification enabled
- Verify integrity — compare source and image hashes; document any discrepancies
- Analyze and report — perform the analysis and document findings with chain of custody
Step 1: Scan Container Images
Run vulnerability and secret scanning against container images from local builds or remote registries. Configure severity thresholds and ignore unfixed vulnerabilities.
Step 2: Generate SBOM
Produce CycloneDX or SPDX SBOM documents from scanned images for supply chain compliance and vulnerability tracking across the software lifecycle.
Step 3: Scan IaC and Kubernetes Manifests
Detect misconfigurations in Dockerfiles, Kubernetes YAML, Terraform, and Helm charts using built-in policy checks aligned with CIS benchmarks.
Step 4: Integrate into CI/CD
Add Trivy scanning as a pipeline gate that blocks builds with critical/high vulnerabilities, generates SARIF reports for GitHub Advanced Security, and produces JUnit XML for test dashboards.
Expected Output
JSON/table report listing CVEs with severity, CVSS scores, fixed versions, affected packages, misconfiguration findings, and exposed secrets with file locations.
When NOT to Use
- You don't have explicit written authorization to test
- Task is about defense/detection, not offense (use detection skills)
- You need to implement security controls (use implementing-* skills)
- Task requires compliance auditing (use auditing-* skills)
- You're investigating an incident (use incident response skills)
- Target is out of scope for your engagement
- Task is about vulnerability scanning only (use scanning tools)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Failing to use write-blockers when acquiring forensic evidence
- Not verifying hash integrity before and after imaging
- Modifying original evidence during analysis
Process
- Reconnaissance — Gather target information, identify attack surface, enumerate services
- Analysis/Exploitation — Execute the technique, analyze results, document findings
- Reporting — Document IOCs, write findings, provide remediation recommendations
Verification
- All steps executed successfully against a test environment before production use
- Output documented with screenshots or logs demonstrating expected behavior
- Hash values computed and verified match between source and image
- Chain of custody log complete with timestamps and examiner names
- Analysis tools and versions documented for reproducibility
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: performing-container-security-scanning-with-trivy3description: Use when scan container images, filesystems, and Kubernetes manifests for vulnerabilities, misconfigurations, exposed secrets, and license compliance issues using Aqua Security Trivy with SBOM generation and CI/CD integration. Use when scaning container images, filesystems, and kubernetes manifests for vulnerabilities, misconfigurations,.4license: Apache-2.05---678# Performing Container Security Scanning with Trivy910## Overview1112Trivy is an open-source security scanner by Aqua Security that detects vulnerabilities in OS packages and language-specific dependencies, infrastructure-as-code misconfigurations, exposed secrets, and software license issues across container images, filesystems, Git repositories, and Kubernetes clusters. Trivy generates Software Bill of Materials (SBOM) in CycloneDX and SPDX formats for supply chain transparency. This skill covers comprehensive container image scanning, CI/CD pipeline integration, Kubernetes operator deployment, and scan result triage for security operations.131415## When to Use16**Trigger phrases:**17- "performing container security scanning with trivy"18- "Scan container images, filesystems, and Kubernetes manifests for vulnerabilities"192021- When conducting security assessments that involve performing container security scanning with trivy22- When following incident response procedures for related security events23- When performing scheduled security testing or auditing activities24- When validating security controls through hands-on testing2526## Prerequisites2728- Trivy v0.50+ installed (binary, Docker, or Homebrew)29- Docker daemon access for local image scanning30- Container registry credentials for remote image scanning31- CI/CD platform (GitHub Actions, GitLab CI, Jenkins) for pipeline integration32- Kubernetes cluster for Trivy Operator deployment (optional)3334## Steps3536```python37# Example: IOC detection38import re3940IOC_PATTERNS = {41 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",42 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",43 "hash_md5": r"\b[a-f0-9]{32}\b",44 "hash_sha256": r"\b[a-f0-9]{64}\b",45}4647def extract_iocs(text: str) -> dict:48 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}49```50511. **Prepare the environment** — ensure write-blocker is connected and test workstation is ready522. **Document the source** — record device serial, model, and pre-acquisition hash533. **Acquire the image** — use the appropriate tool with hash verification enabled544. **Verify integrity** — compare source and image hashes; document any discrepancies555. **Analyze and report** — perform the analysis and document findings with chain of custody56### Step 1: Scan Container Images5758Run vulnerability and secret scanning against container images from local builds or remote registries. Configure severity thresholds and ignore unfixed vulnerabilities.5960### Step 2: Generate SBOM6162Produce CycloneDX or SPDX SBOM documents from scanned images for supply chain compliance and vulnerability tracking across the software lifecycle.6364### Step 3: Scan IaC and Kubernetes Manifests6566Detect misconfigurations in Dockerfiles, Kubernetes YAML, Terraform, and Helm charts using built-in policy checks aligned with CIS benchmarks.6768### Step 4: Integrate into CI/CD6970Add Trivy scanning as a pipeline gate that blocks builds with critical/high vulnerabilities, generates SARIF reports for GitHub Advanced Security, and produces JUnit XML for test dashboards.7172## Expected Output7374JSON/table report listing CVEs with severity, CVSS scores, fixed versions, affected packages, misconfiguration findings, and exposed secrets with file locations.75## When NOT to Use7677- You don't have explicit written authorization to test78- Task is about defense/detection, not offense (use detection skills)79- You need to implement security controls (use implementing-* skills)80- Task requires compliance auditing (use auditing-* skills)81- You're investigating an incident (use incident response skills)82- Target is out of scope for your engagement83- Task is about vulnerability scanning only (use scanning tools)848586## Red Flags8788- Performing actions without explicit written authorization from the asset owner89- Testing against production systems without a defined scope and rules of engagement90- Failing to use write-blockers when acquiring forensic evidence91- Not verifying hash integrity before and after imaging92- Modifying original evidence during analysis9394## Process95961. **Reconnaissance** — Gather target information, identify attack surface, enumerate services971. **Analysis/Exploitation** — Execute the technique, analyze results, document findings981. **Reporting** — Document IOCs, write findings, provide remediation recommendations99100## Verification101102- All steps executed successfully against a test environment before production use103- Output documented with screenshots or logs demonstrating expected behavior104- Hash values computed and verified match between source and image105- Chain of custody log complete with timestamps and examiner names106- Analysis tools and versions documented for reproducibility107108## Anti-Rationalization Table109110| Rationalization | Reality |111|---|---|112| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |113| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |114| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |