opencode-skills-collection 4.0.67 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +281 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/artifact-yylo/SKILL.md +122 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/google-no-code/SKILL.md +136 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/wiki-yylo/SKILL.md +114 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: container-scanning
|
|
3
|
+
description: Scan container images for vulnerabilities using Trivy, Grype, and cloud-native
|
|
4
|
+
tools.
|
|
5
|
+
category: security
|
|
6
|
+
risk: safe
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
|
|
14
|
+
authorized scope for any active assessment. Docs-only; helper scripts and templates
|
|
15
|
+
not bundled.
|
|
16
|
+
metadata:
|
|
17
|
+
author: devops-skills
|
|
18
|
+
version: '1.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Container Scanning
|
|
22
|
+
|
|
23
|
+
Scan container images for vulnerabilities and security misconfigurations.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
Use this skill when:
|
|
28
|
+
- Building container images
|
|
29
|
+
- Implementing container security gates
|
|
30
|
+
- Scanning registry images
|
|
31
|
+
- Meeting compliance requirements
|
|
32
|
+
- Hardening container deployments
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- Container runtime (Docker, Podman)
|
|
37
|
+
- Container images to scan
|
|
38
|
+
- Scanning tool installation
|
|
39
|
+
|
|
40
|
+
## Tool Comparison
|
|
41
|
+
|
|
42
|
+
| Tool | License | Speed | Features |
|
|
43
|
+
|------|---------|-------|----------|
|
|
44
|
+
| Trivy | OSS | Fast | Comprehensive, IaC |
|
|
45
|
+
| Grype | OSS | Fast | Accurate, SBOM |
|
|
46
|
+
| Clair | OSS | Medium | Registry integration |
|
|
47
|
+
| Snyk Container | Commercial | Fast | Fix suggestions |
|
|
48
|
+
| Docker Scout | Commercial | Fast | GitHub integration |
|
|
49
|
+
|
|
50
|
+
## Trivy
|
|
51
|
+
|
|
52
|
+
### Installation
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Linux
|
|
56
|
+
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh -o /tmp/install-trivy.sh && sh /tmp/install-trivy.sh && rm /tmp/install-trivy.sh -s -- -b /usr/local/bin
|
|
57
|
+
|
|
58
|
+
# macOS
|
|
59
|
+
brew install trivy
|
|
60
|
+
|
|
61
|
+
# Docker
|
|
62
|
+
docker pull aquasec/trivy
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Image Scanning
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Scan local image
|
|
69
|
+
trivy image myapp:latest
|
|
70
|
+
|
|
71
|
+
# Scan remote image
|
|
72
|
+
trivy image nginx:1.25
|
|
73
|
+
|
|
74
|
+
# JSON output
|
|
75
|
+
trivy image --format json -o results.json myapp:latest
|
|
76
|
+
|
|
77
|
+
# Filter by severity
|
|
78
|
+
trivy image --severity HIGH,CRITICAL myapp:latest
|
|
79
|
+
|
|
80
|
+
# Ignore unfixed vulnerabilities
|
|
81
|
+
trivy image --ignore-unfixed myapp:latest
|
|
82
|
+
|
|
83
|
+
# Exit code on vulnerability
|
|
84
|
+
trivy image --exit-code 1 --severity CRITICAL myapp:latest
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Filesystem Scanning
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Scan project directory
|
|
91
|
+
trivy fs /path/to/project
|
|
92
|
+
|
|
93
|
+
# Scan Dockerfile
|
|
94
|
+
trivy config Dockerfile
|
|
95
|
+
|
|
96
|
+
# Scan Kubernetes manifests
|
|
97
|
+
trivy config k8s/
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Configuration
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
# trivy.yaml
|
|
104
|
+
timeout: 10m
|
|
105
|
+
severity:
|
|
106
|
+
- HIGH
|
|
107
|
+
- CRITICAL
|
|
108
|
+
ignore-unfixed: true
|
|
109
|
+
exit-code: 1
|
|
110
|
+
|
|
111
|
+
vulnerability:
|
|
112
|
+
type:
|
|
113
|
+
- os
|
|
114
|
+
- library
|
|
115
|
+
|
|
116
|
+
scan:
|
|
117
|
+
file-patterns:
|
|
118
|
+
- "Dockerfile"
|
|
119
|
+
- "*.yaml"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### CI Integration
|
|
123
|
+
|
|
124
|
+
```yaml
|
|
125
|
+
# GitHub Actions
|
|
126
|
+
name: Container Security
|
|
127
|
+
|
|
128
|
+
on:
|
|
129
|
+
push:
|
|
130
|
+
branches: [main]
|
|
131
|
+
pull_request:
|
|
132
|
+
|
|
133
|
+
jobs:
|
|
134
|
+
scan:
|
|
135
|
+
runs-on: ubuntu-latest
|
|
136
|
+
steps:
|
|
137
|
+
- uses: actions/checkout@v4
|
|
138
|
+
|
|
139
|
+
- name: Build image
|
|
140
|
+
run: docker build -t myapp:${{ github.sha }} .
|
|
141
|
+
|
|
142
|
+
- name: Run Trivy
|
|
143
|
+
uses: aquasecurity/trivy-action@master
|
|
144
|
+
with:
|
|
145
|
+
image-ref: 'myapp:${{ github.sha }}'
|
|
146
|
+
format: 'sarif'
|
|
147
|
+
output: 'trivy-results.sarif'
|
|
148
|
+
severity: 'CRITICAL,HIGH'
|
|
149
|
+
exit-code: '1'
|
|
150
|
+
|
|
151
|
+
- name: Upload results
|
|
152
|
+
uses: github/codeql-action/upload-sarif@v3
|
|
153
|
+
with:
|
|
154
|
+
sarif_file: 'trivy-results.sarif'
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Grype
|
|
158
|
+
|
|
159
|
+
### Installation
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Linux/macOS
|
|
163
|
+
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh -o /tmp/install-grype.sh && sh /tmp/install-grype.sh && rm /tmp/install-grype.sh -s -- -b /usr/local/bin
|
|
164
|
+
|
|
165
|
+
# Homebrew
|
|
166
|
+
brew install grype
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Usage
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Scan image
|
|
173
|
+
grype myapp:latest
|
|
174
|
+
|
|
175
|
+
# Scan from SBOM
|
|
176
|
+
grype sbom:./sbom.json
|
|
177
|
+
|
|
178
|
+
# JSON output
|
|
179
|
+
grype myapp:latest -o json > results.json
|
|
180
|
+
|
|
181
|
+
# Filter severity
|
|
182
|
+
grype myapp:latest --fail-on high
|
|
183
|
+
|
|
184
|
+
# Scan directory
|
|
185
|
+
grype dir:/path/to/project
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Configuration
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
# .grype.yaml
|
|
192
|
+
check-for-app-update: false
|
|
193
|
+
fail-on-severity: high
|
|
194
|
+
output: "json"
|
|
195
|
+
scope: "Squashed"
|
|
196
|
+
|
|
197
|
+
ignore:
|
|
198
|
+
- vulnerability: CVE-2023-12345
|
|
199
|
+
reason: "False positive"
|
|
200
|
+
expires: "2024-12-31"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Docker Scout
|
|
204
|
+
|
|
205
|
+
### Usage
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Enable Docker Scout
|
|
209
|
+
docker scout quickview myapp:latest
|
|
210
|
+
|
|
211
|
+
# Full CVE report
|
|
212
|
+
docker scout cves myapp:latest
|
|
213
|
+
|
|
214
|
+
# Compare images
|
|
215
|
+
docker scout compare myapp:v1 myapp:v2
|
|
216
|
+
|
|
217
|
+
# Recommendations
|
|
218
|
+
docker scout recommendations myapp:latest
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### CI Integration
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
- name: Docker Scout
|
|
225
|
+
uses: docker/scout-action@v1
|
|
226
|
+
with:
|
|
227
|
+
command: cves
|
|
228
|
+
image: ${{ env.IMAGE_NAME }}
|
|
229
|
+
sarif-file: scout-results.sarif
|
|
230
|
+
summary: true
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Registry Integration
|
|
234
|
+
|
|
235
|
+
### Amazon ECR
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Enable scan on push
|
|
239
|
+
aws ecr put-image-scanning-configuration \
|
|
240
|
+
--repository-name myapp \
|
|
241
|
+
--image-scanning-configuration scanOnPush=true
|
|
242
|
+
|
|
243
|
+
# Get scan findings
|
|
244
|
+
aws ecr describe-image-scan-findings \
|
|
245
|
+
--repository-name myapp \
|
|
246
|
+
--image-id imageTag=latest
|
|
247
|
+
|
|
248
|
+
# Start manual scan
|
|
249
|
+
aws ecr start-image-scan \
|
|
250
|
+
--repository-name myapp \
|
|
251
|
+
--image-id imageTag=latest
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Azure ACR
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Enable Defender for Containers
|
|
258
|
+
az security pricing create \
|
|
259
|
+
--name Containers \
|
|
260
|
+
--tier Standard
|
|
261
|
+
|
|
262
|
+
# View scan results in Azure Portal or:
|
|
263
|
+
az acr repository show \
|
|
264
|
+
--name myregistry \
|
|
265
|
+
--image myapp:latest
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Google Artifact Registry
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Enable vulnerability scanning
|
|
272
|
+
gcloud artifacts repositories update myrepo \
|
|
273
|
+
--location=us-central1 \
|
|
274
|
+
--enable-vulnerability-scanning
|
|
275
|
+
|
|
276
|
+
# View vulnerabilities
|
|
277
|
+
gcloud artifacts docker images describe \
|
|
278
|
+
us-central1-docker.pkg.dev/project/myrepo/myapp:latest \
|
|
279
|
+
--show-package-vulnerability
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Admission Controllers
|
|
283
|
+
|
|
284
|
+
### OPA Gatekeeper
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
apiVersion: templates.gatekeeper.sh/v1beta1
|
|
288
|
+
kind: ConstraintTemplate
|
|
289
|
+
metadata:
|
|
290
|
+
name: k8sallowedrepos
|
|
291
|
+
spec:
|
|
292
|
+
crd:
|
|
293
|
+
spec:
|
|
294
|
+
names:
|
|
295
|
+
kind: K8sAllowedRepos
|
|
296
|
+
validation:
|
|
297
|
+
openAPIV3Schema:
|
|
298
|
+
properties:
|
|
299
|
+
repos:
|
|
300
|
+
type: array
|
|
301
|
+
items:
|
|
302
|
+
type: string
|
|
303
|
+
targets:
|
|
304
|
+
- target: admission.k8s.gatekeeper.sh
|
|
305
|
+
rego: |
|
|
306
|
+
package k8sallowedrepos
|
|
307
|
+
|
|
308
|
+
violation[{"msg": msg}] {
|
|
309
|
+
container := input.review.object.spec.containers[_]
|
|
310
|
+
satisfied := [good | repo = input.parameters.repos[_]; good = startswith(container.image, repo)]
|
|
311
|
+
not any(satisfied)
|
|
312
|
+
msg := sprintf("container <%v> has an invalid image repo <%v>", [container.name, container.image])
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Kyverno
|
|
317
|
+
|
|
318
|
+
```yaml
|
|
319
|
+
apiVersion: kyverno.io/v1
|
|
320
|
+
kind: ClusterPolicy
|
|
321
|
+
metadata:
|
|
322
|
+
name: require-image-scan
|
|
323
|
+
spec:
|
|
324
|
+
validationFailureAction: enforce
|
|
325
|
+
rules:
|
|
326
|
+
- name: check-vulnerabilities
|
|
327
|
+
match:
|
|
328
|
+
resources:
|
|
329
|
+
kinds:
|
|
330
|
+
- Pod
|
|
331
|
+
verifyImages:
|
|
332
|
+
- image: "*"
|
|
333
|
+
attestations:
|
|
334
|
+
- predicateType: cosign.sigstore.dev/attestation/vuln/v1
|
|
335
|
+
conditions:
|
|
336
|
+
- all:
|
|
337
|
+
- key: "{{ scanner.result.summary.criticalCount }}"
|
|
338
|
+
operator: Equals
|
|
339
|
+
value: "0"
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
## Scanning Policies
|
|
343
|
+
|
|
344
|
+
### Policy Definition
|
|
345
|
+
|
|
346
|
+
```yaml
|
|
347
|
+
# scan-policy.yaml
|
|
348
|
+
policies:
|
|
349
|
+
- name: critical-vulnerabilities
|
|
350
|
+
description: Block images with critical CVEs
|
|
351
|
+
severity: CRITICAL
|
|
352
|
+
action: block
|
|
353
|
+
|
|
354
|
+
- name: high-vulnerabilities
|
|
355
|
+
description: Warn on high severity CVEs
|
|
356
|
+
severity: HIGH
|
|
357
|
+
action: warn
|
|
358
|
+
max_count: 5
|
|
359
|
+
|
|
360
|
+
- name: age-policy
|
|
361
|
+
description: Block images older than 30 days
|
|
362
|
+
max_age_days: 30
|
|
363
|
+
action: block
|
|
364
|
+
|
|
365
|
+
- name: base-image
|
|
366
|
+
description: Only allow approved base images
|
|
367
|
+
allowed_bases:
|
|
368
|
+
- alpine:3.18
|
|
369
|
+
- ubuntu:22.04
|
|
370
|
+
- python:3.11-slim
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## Common Issues
|
|
374
|
+
|
|
375
|
+
### Issue: False Positives
|
|
376
|
+
**Problem**: Scanner reports non-exploitable vulnerabilities
|
|
377
|
+
**Solution**: Use ignore files, validate with context
|
|
378
|
+
|
|
379
|
+
### Issue: Slow Scans
|
|
380
|
+
**Problem**: Scanning takes too long
|
|
381
|
+
**Solution**: Use caching, scan incrementally, optimize image layers
|
|
382
|
+
|
|
383
|
+
### Issue: Unfixed Vulnerabilities
|
|
384
|
+
**Problem**: No patch available for CVE
|
|
385
|
+
**Solution**: Update base image, implement compensating controls
|
|
386
|
+
|
|
387
|
+
## Best Practices
|
|
388
|
+
|
|
389
|
+
- Scan in CI/CD pipeline
|
|
390
|
+
- Use minimal base images (Alpine, distroless)
|
|
391
|
+
- Update base images regularly
|
|
392
|
+
- Implement admission control
|
|
393
|
+
- Track vulnerabilities over time
|
|
394
|
+
- Set severity thresholds
|
|
395
|
+
- Document accepted risks
|
|
396
|
+
- Use multi-stage builds
|
|
397
|
+
|
|
398
|
+
## Related Skills
|
|
399
|
+
|
|
400
|
+
- docker-management (`docker-management`) - Container basics
|
|
401
|
+
- container-hardening (`container-hardening`) - Security hardening
|
|
402
|
+
- kubernetes-hardening (`kubernetes-hardening`) - K8s security
|
|
403
|
+
|
|
404
|
+
## Limitations
|
|
405
|
+
|
|
406
|
+
- Apply guidance only within authorized scope; test destructive steps in non-production first.
|
|
407
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
408
|
+
|
|
409
|
+
### Example
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
# Read-only first: inventory before any active step.
|
|
413
|
+
which <tool> && <tool> --help | head -n 20
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|