Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/BagelHole/DevOps-Security-Agent-Skills --skill container-scanningLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Métiers associés SOC
Basé sur la classification professionnelle SOC
name container-scanning description Scan container images for vulnerabilities using Trivy, Grype, and cloud-native tools. Identify security issues in base images, packages, and configurations. Use when implementing container security, building secure images, or meeting compliance requirements. license MIT metadata {"author":"devops-skills","version":"1.0"}
Container Scanning
Scan container images for vulnerabilities and security misconfigurations.
When to Use This Skill
Use this skill when:
Building container images
Implementing container security gates
Scanning registry images
Meeting compliance requirements
Hardening container deployments
Prerequisites
Container runtime (Docker, Podman)
Container images to scan
Scanning tool installation
Tool Comparison
Tool License Speed Features Trivy OSS Fast Comprehensive, IaC Grype OSS Fast Accurate, SBOM Clair OSS Medium Registry integration
Docker Scout Commercial Fast GitHub integration
Trivy
Installation
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
brew install trivy
docker pull aquasec/trivy
Image Scanning
trivy image myapp:latest
trivy image nginx:1.25
trivy image --format json -o results.json myapp:latest
trivy image --severity HIGH,CRITICAL myapp:latest
trivy image --ignore-unfixed myapp:latest
trivy image --exit-code 1 --severity CRITICAL myapp:latest
Filesystem Scanning
trivy fs /path/to/project
trivy config Dockerfile
trivy config k8s/
Configuration
timeout: 10m
severity:
- HIGH
- CRITICAL
ignore-unfixed: true
exit-code: 1
vulnerability:
type:
- os
- library
scan:
file-patterns:
- "Dockerfile"
- "*.yaml"
CI Integration
name: Container Security
on:
push:
branches: [main ]
pull_request:
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build image
run: docker build -t myapp:${{ github.sha }} .
- name: Run Trivy
uses: aquasecurity/trivy-action@master
with:
image-ref: 'myapp:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'
exit-code: '1'
- name: Upload results
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'
Grype
Installation
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
brew install grype
Usage
grype myapp:latest
grype sbom:./sbom.json
grype myapp:latest -o json > results.json
grype myapp:latest --fail-on high
grype dir :/path/to/project
Configuration
check-for-app-update: false
fail-on-severity: high
output: "json"
scope: "Squashed"
ignore:
- vulnerability: CVE-2023-12345
reason: "False positive"
expires: "2024-12-31"
Docker Scout
Usage
docker scout quickview myapp:latest
docker scout cves myapp:latest
docker scout compare myapp:v1 myapp:v2
docker scout recommendations myapp:latest
CI Integration - name: Docker Scout
uses: docker/scout-action@v1
with:
command: cves
image: ${{ env.IMAGE_NAME }}
sarif-file: scout-results.sarif
summary: true
Registry Integration
Amazon ECR
aws ecr put-image-scanning-configuration \
--repository-name myapp \
--image-scanning-configuration scanOnPush=true
aws ecr describe-image-scan-findings \
--repository-name myapp \
--image-id imageTag=latest
aws ecr start-image-scan \
--repository-name myapp \
--image-id imageTag=latest
Azure ACR
az security pricing create \
--name Containers \
--tier Standard
az acr repository show \
--name myregistry \
--image myapp:latest
Google Artifact Registry
gcloud artifacts repositories update myrepo \
--location=us-central1 \
--enable-vulnerability-scanning
gcloud artifacts docker images describe \
us-central1-docker.pkg.dev/project/myrepo/myapp:latest \
--show-package-vulnerability
Admission Controllers
OPA Gatekeeper apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
name: k8sallowedrepos
spec:
crd:
spec:
names:
kind: K8sAllowedRepos
validation:
openAPIV3Schema:
properties:
repos:
type: array
items:
type: string
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8sallowedrepos
violation[{"msg": msg}] {
container := input.review.object.spec.containers [_ ]
satisfied := [good | repo = input.parameters.repos [_ ]; good = startswith(container.image , repo) ]
not any(satisfied)
msg := sprintf("container <%v> has an invalid image repo <%v>", [container.name, container.image])
}
Kyverno apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-image-scan
spec:
validationFailureAction: enforce
rules:
- name: check-vulnerabilities
match:
resources:
kinds:
- Pod
verifyImages:
- image: "*"
attestations:
- predicateType: cosign.sigstore.dev/attestation/vuln/v1
conditions:
- all:
- key: "{{ scanner.result.summary.criticalCount }} "
operator: Equals
value: "0"
Scanning Policies
Policy Definition
policies:
- name: critical-vulnerabilities
description: Block images with critical CVEs
severity: CRITICAL
action: block
- name: high-vulnerabilities
description: Warn on high severity CVEs
severity: HIGH
action: warn
max_count: 5
- name: age-policy
description: Block images older than 30 days
max_age_days: 30
action: block
- name: base-image
description: Only allow approved base images
allowed_bases:
- alpine:3.18
- ubuntu:22.04
- python:3.11-slim
Common Issues
Issue: False Positives Problem : Scanner reports non-exploitable vulnerabilities
Solution : Use ignore files, validate with context
Issue: Slow Scans Problem : Scanning takes too long
Solution : Use caching, scan incrementally, optimize image layers
Issue: Unfixed Vulnerabilities Problem : No patch available for CVE
Solution : Update base image, implement compensating controls
Best Practices
Scan in CI/CD pipeline
Use minimal base images (Alpine, distroless)
Update base images regularly
Implement admission control
Track vulnerabilities over time
Set severity thresholds
Document accepted risks
Use multi-stage builds
Related Skills