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,461 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zero-trust
|
|
3
|
+
description: Implement zero-trust network architecture. Configure identity-based access,
|
|
4
|
+
micro-segmentation, and continuous verification. Use when implementing modern security
|
|
5
|
+
architectures.
|
|
6
|
+
category: security
|
|
7
|
+
risk: critical
|
|
8
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
10
|
+
source_type: community
|
|
11
|
+
date_added: '2026-09-20'
|
|
12
|
+
license: MIT
|
|
13
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
14
|
+
compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
|
|
15
|
+
authorized scope for any active assessment. Docs-only; helper scripts and templates
|
|
16
|
+
not bundled.
|
|
17
|
+
metadata:
|
|
18
|
+
author: devops-skills
|
|
19
|
+
version: '1.0'
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Zero Trust Architecture
|
|
23
|
+
|
|
24
|
+
Implement "never trust, always verify" security model.
|
|
25
|
+
|
|
26
|
+
## When to Use This Skill
|
|
27
|
+
|
|
28
|
+
Use this skill when:
|
|
29
|
+
- Replacing traditional perimeter-based VPN access models
|
|
30
|
+
- Implementing BeyondCorp-style access to internal applications
|
|
31
|
+
- Securing multi-cloud or hybrid-cloud environments
|
|
32
|
+
- Enforcing identity-based access for every service interaction
|
|
33
|
+
- Meeting compliance requirements for continuous verification and least privilege
|
|
34
|
+
- Adopting micro-segmentation for Kubernetes or cloud workloads
|
|
35
|
+
|
|
36
|
+
## Prerequisites
|
|
37
|
+
|
|
38
|
+
- Identity provider (IdP) supporting OIDC/SAML (Okta, Azure AD, Google Workspace)
|
|
39
|
+
- Service mesh or proxy infrastructure (Istio, Envoy, Cloudflare Access)
|
|
40
|
+
- Device management/MDM solution for device posture checks
|
|
41
|
+
- Kubernetes cluster for workload-level examples
|
|
42
|
+
- Understanding of mTLS, RBAC, and network policies
|
|
43
|
+
|
|
44
|
+
## Core Principles
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
zero_trust_principles:
|
|
48
|
+
verify_explicitly:
|
|
49
|
+
description: "Authenticate and authorize every access request"
|
|
50
|
+
controls:
|
|
51
|
+
- Strong multi-factor authentication
|
|
52
|
+
- Identity-aware proxy for all applications
|
|
53
|
+
- Service-to-service mTLS
|
|
54
|
+
- API token validation on every request
|
|
55
|
+
|
|
56
|
+
least_privilege:
|
|
57
|
+
description: "Grant minimum access needed for the task"
|
|
58
|
+
controls:
|
|
59
|
+
- Just-in-time (JIT) access provisioning
|
|
60
|
+
- Time-bounded access grants
|
|
61
|
+
- Role-based access with fine-grained permissions
|
|
62
|
+
- Regular access reviews and certification
|
|
63
|
+
|
|
64
|
+
assume_breach:
|
|
65
|
+
description: "Design systems expecting compromise has occurred"
|
|
66
|
+
controls:
|
|
67
|
+
- Micro-segmentation between all services
|
|
68
|
+
- End-to-end encryption (data in transit and at rest)
|
|
69
|
+
- Continuous monitoring and anomaly detection
|
|
70
|
+
- Blast radius containment
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## BeyondCorp Implementation
|
|
74
|
+
|
|
75
|
+
### Cloudflare Access Configuration
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Create an Access application for an internal service
|
|
79
|
+
curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/access/apps" \
|
|
80
|
+
-H "Authorization: Bearer ${CF_TOKEN}" \
|
|
81
|
+
-H "Content-Type: application/json" \
|
|
82
|
+
-d '{
|
|
83
|
+
"name": "Internal Dashboard",
|
|
84
|
+
"domain": "dashboard.internal.example.com",
|
|
85
|
+
"type": "self_hosted",
|
|
86
|
+
"session_duration": "12h",
|
|
87
|
+
"auto_redirect_to_identity": true,
|
|
88
|
+
"allowed_idps": ["google-workspace-idp-id"]
|
|
89
|
+
}'
|
|
90
|
+
|
|
91
|
+
# Create an Access policy
|
|
92
|
+
curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/access/apps/${APP_ID}/policies" \
|
|
93
|
+
-H "Authorization: Bearer ${CF_TOKEN}" \
|
|
94
|
+
-H "Content-Type: application/json" \
|
|
95
|
+
-d '{
|
|
96
|
+
"name": "Engineering team access",
|
|
97
|
+
"decision": "allow",
|
|
98
|
+
"include": [
|
|
99
|
+
{ "group": { "id": "engineering-group-id" } }
|
|
100
|
+
],
|
|
101
|
+
"require": [
|
|
102
|
+
{ "login_method": { "id": "google-workspace-idp-id" } }
|
|
103
|
+
],
|
|
104
|
+
"exclude": [
|
|
105
|
+
{ "geo": { "country_code": "KP" } }
|
|
106
|
+
]
|
|
107
|
+
}'
|
|
108
|
+
|
|
109
|
+
# Create a device posture rule
|
|
110
|
+
curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/devices/posture" \
|
|
111
|
+
-H "Authorization: Bearer ${CF_TOKEN}" \
|
|
112
|
+
-H "Content-Type: application/json" \
|
|
113
|
+
-d '{
|
|
114
|
+
"name": "Require disk encryption",
|
|
115
|
+
"type": "disk_encryption",
|
|
116
|
+
"match": { "platform": "linux" },
|
|
117
|
+
"schedule": "1h",
|
|
118
|
+
"input": { "requireAll": true }
|
|
119
|
+
}'
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Cloudflare Access Terraform
|
|
123
|
+
|
|
124
|
+
```hcl
|
|
125
|
+
resource "cloudflare_access_application" "dashboard" {
|
|
126
|
+
account_id = var.cloudflare_account_id
|
|
127
|
+
name = "Internal Dashboard"
|
|
128
|
+
domain = "dashboard.internal.example.com"
|
|
129
|
+
type = "self_hosted"
|
|
130
|
+
session_duration = "12h"
|
|
131
|
+
|
|
132
|
+
auto_redirect_to_identity = true
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
resource "cloudflare_access_policy" "engineering" {
|
|
136
|
+
account_id = var.cloudflare_account_id
|
|
137
|
+
application_id = cloudflare_access_application.dashboard.id
|
|
138
|
+
name = "Engineering team"
|
|
139
|
+
precedence = 1
|
|
140
|
+
decision = "allow"
|
|
141
|
+
|
|
142
|
+
include {
|
|
143
|
+
group = [cloudflare_access_group.engineering.id]
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
require {
|
|
147
|
+
login_method = [var.google_idp_id]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
resource "cloudflare_access_group" "engineering" {
|
|
152
|
+
account_id = var.cloudflare_account_id
|
|
153
|
+
name = "Engineering"
|
|
154
|
+
|
|
155
|
+
include {
|
|
156
|
+
email_domain = ["example.com"]
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
require {
|
|
160
|
+
group = ["engineering@example.com"]
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Identity-Aware Proxy with OAuth2 Proxy
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
# oauth2-proxy deployment for protecting internal services
|
|
169
|
+
apiVersion: apps/v1
|
|
170
|
+
kind: Deployment
|
|
171
|
+
metadata:
|
|
172
|
+
name: oauth2-proxy
|
|
173
|
+
namespace: auth
|
|
174
|
+
spec:
|
|
175
|
+
replicas: 2
|
|
176
|
+
selector:
|
|
177
|
+
matchLabels:
|
|
178
|
+
app: oauth2-proxy
|
|
179
|
+
template:
|
|
180
|
+
metadata:
|
|
181
|
+
labels:
|
|
182
|
+
app: oauth2-proxy
|
|
183
|
+
spec:
|
|
184
|
+
containers:
|
|
185
|
+
- name: oauth2-proxy
|
|
186
|
+
image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0
|
|
187
|
+
args:
|
|
188
|
+
- --provider=oidc
|
|
189
|
+
- --oidc-issuer-url=https://accounts.google.com
|
|
190
|
+
- --client-id=$(CLIENT_ID)
|
|
191
|
+
- --client-secret=$(CLIENT_SECRET)
|
|
192
|
+
- --email-domain=example.com
|
|
193
|
+
- --upstream=http://internal-service.default.svc:8080
|
|
194
|
+
- --http-address=0.0.0.0:4180
|
|
195
|
+
- --cookie-secret=$(COOKIE_SECRET)
|
|
196
|
+
- --cookie-secure=true
|
|
197
|
+
- --cookie-httponly=true
|
|
198
|
+
- --cookie-samesite=lax
|
|
199
|
+
- --set-xauthrequest=true
|
|
200
|
+
- --pass-access-token=true
|
|
201
|
+
- --skip-provider-button=true
|
|
202
|
+
- --session-store-type=redis
|
|
203
|
+
- --redis-connection-url=redis://redis.auth.svc:6379
|
|
204
|
+
env:
|
|
205
|
+
- name: CLIENT_ID
|
|
206
|
+
valueFrom:
|
|
207
|
+
secretKeyRef:
|
|
208
|
+
name: oauth2-proxy
|
|
209
|
+
key: client-id
|
|
210
|
+
- name: CLIENT_SECRET
|
|
211
|
+
valueFrom:
|
|
212
|
+
secretKeyRef:
|
|
213
|
+
name: oauth2-proxy
|
|
214
|
+
key: client-secret
|
|
215
|
+
- name: COOKIE_SECRET
|
|
216
|
+
valueFrom:
|
|
217
|
+
secretKeyRef:
|
|
218
|
+
name: oauth2-proxy
|
|
219
|
+
key: cookie-secret
|
|
220
|
+
ports:
|
|
221
|
+
- containerPort: 4180
|
|
222
|
+
---
|
|
223
|
+
# Ingress routing through oauth2-proxy
|
|
224
|
+
apiVersion: networking.k8s.io/v1
|
|
225
|
+
kind: Ingress
|
|
226
|
+
metadata:
|
|
227
|
+
name: internal-service
|
|
228
|
+
annotations:
|
|
229
|
+
nginx.ingress.kubernetes.io/auth-url: "https://auth.example.com/oauth2/auth"
|
|
230
|
+
nginx.ingress.kubernetes.io/auth-signin: "https://auth.example.com/oauth2/start?rd=$scheme://$host$request_uri"
|
|
231
|
+
nginx.ingress.kubernetes.io/auth-response-headers: "X-Auth-Request-User,X-Auth-Request-Email"
|
|
232
|
+
spec:
|
|
233
|
+
rules:
|
|
234
|
+
- host: dashboard.example.com
|
|
235
|
+
http:
|
|
236
|
+
paths:
|
|
237
|
+
- path: /
|
|
238
|
+
pathType: Prefix
|
|
239
|
+
backend:
|
|
240
|
+
service:
|
|
241
|
+
name: internal-service
|
|
242
|
+
port:
|
|
243
|
+
number: 8080
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Service Mesh mTLS (Istio)
|
|
247
|
+
|
|
248
|
+
```yaml
|
|
249
|
+
# Enforce strict mTLS across the mesh
|
|
250
|
+
apiVersion: security.istio.io/v1beta1
|
|
251
|
+
kind: PeerAuthentication
|
|
252
|
+
metadata:
|
|
253
|
+
name: default
|
|
254
|
+
namespace: istio-system
|
|
255
|
+
spec:
|
|
256
|
+
mtls:
|
|
257
|
+
mode: STRICT
|
|
258
|
+
---
|
|
259
|
+
# Authorization policy: frontend can call backend
|
|
260
|
+
apiVersion: security.istio.io/v1beta1
|
|
261
|
+
kind: AuthorizationPolicy
|
|
262
|
+
metadata:
|
|
263
|
+
name: backend-access
|
|
264
|
+
namespace: default
|
|
265
|
+
spec:
|
|
266
|
+
selector:
|
|
267
|
+
matchLabels:
|
|
268
|
+
app: backend
|
|
269
|
+
action: ALLOW
|
|
270
|
+
rules:
|
|
271
|
+
- from:
|
|
272
|
+
- source:
|
|
273
|
+
principals: ["cluster.local/ns/default/sa/frontend"]
|
|
274
|
+
to:
|
|
275
|
+
- operation:
|
|
276
|
+
methods: ["GET", "POST"]
|
|
277
|
+
paths: ["/api/*"]
|
|
278
|
+
---
|
|
279
|
+
# Default deny all in namespace
|
|
280
|
+
apiVersion: security.istio.io/v1beta1
|
|
281
|
+
kind: AuthorizationPolicy
|
|
282
|
+
metadata:
|
|
283
|
+
name: deny-all
|
|
284
|
+
namespace: production
|
|
285
|
+
spec: {}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Micro-Segmentation with Kubernetes Network Policies
|
|
289
|
+
|
|
290
|
+
```yaml
|
|
291
|
+
# Default deny all traffic in namespace
|
|
292
|
+
apiVersion: networking.k8s.io/v1
|
|
293
|
+
kind: NetworkPolicy
|
|
294
|
+
metadata:
|
|
295
|
+
name: default-deny-all
|
|
296
|
+
namespace: production
|
|
297
|
+
spec:
|
|
298
|
+
podSelector: {}
|
|
299
|
+
policyTypes:
|
|
300
|
+
- Ingress
|
|
301
|
+
- Egress
|
|
302
|
+
---
|
|
303
|
+
# Allow DNS resolution for all pods
|
|
304
|
+
apiVersion: networking.k8s.io/v1
|
|
305
|
+
kind: NetworkPolicy
|
|
306
|
+
metadata:
|
|
307
|
+
name: allow-dns
|
|
308
|
+
namespace: production
|
|
309
|
+
spec:
|
|
310
|
+
podSelector: {}
|
|
311
|
+
policyTypes:
|
|
312
|
+
- Egress
|
|
313
|
+
egress:
|
|
314
|
+
- to: []
|
|
315
|
+
ports:
|
|
316
|
+
- protocol: UDP
|
|
317
|
+
port: 53
|
|
318
|
+
- protocol: TCP
|
|
319
|
+
port: 53
|
|
320
|
+
---
|
|
321
|
+
# Frontend: allow ingress from ingress controller, egress to backend
|
|
322
|
+
apiVersion: networking.k8s.io/v1
|
|
323
|
+
kind: NetworkPolicy
|
|
324
|
+
metadata:
|
|
325
|
+
name: frontend-policy
|
|
326
|
+
namespace: production
|
|
327
|
+
spec:
|
|
328
|
+
podSelector:
|
|
329
|
+
matchLabels:
|
|
330
|
+
app: frontend
|
|
331
|
+
policyTypes:
|
|
332
|
+
- Ingress
|
|
333
|
+
- Egress
|
|
334
|
+
ingress:
|
|
335
|
+
- from:
|
|
336
|
+
- namespaceSelector:
|
|
337
|
+
matchLabels:
|
|
338
|
+
name: ingress-nginx
|
|
339
|
+
ports:
|
|
340
|
+
- protocol: TCP
|
|
341
|
+
port: 8080
|
|
342
|
+
egress:
|
|
343
|
+
- to:
|
|
344
|
+
- podSelector:
|
|
345
|
+
matchLabels:
|
|
346
|
+
app: backend
|
|
347
|
+
ports:
|
|
348
|
+
- protocol: TCP
|
|
349
|
+
port: 8080
|
|
350
|
+
---
|
|
351
|
+
# Database: allow from backend only, no egress
|
|
352
|
+
apiVersion: networking.k8s.io/v1
|
|
353
|
+
kind: NetworkPolicy
|
|
354
|
+
metadata:
|
|
355
|
+
name: database-policy
|
|
356
|
+
namespace: production
|
|
357
|
+
spec:
|
|
358
|
+
podSelector:
|
|
359
|
+
matchLabels:
|
|
360
|
+
app: database
|
|
361
|
+
policyTypes:
|
|
362
|
+
- Ingress
|
|
363
|
+
- Egress
|
|
364
|
+
ingress:
|
|
365
|
+
- from:
|
|
366
|
+
- podSelector:
|
|
367
|
+
matchLabels:
|
|
368
|
+
app: backend
|
|
369
|
+
ports:
|
|
370
|
+
- protocol: TCP
|
|
371
|
+
port: 5432
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## OPA Policy for Access Decisions
|
|
375
|
+
|
|
376
|
+
```rego
|
|
377
|
+
# policy.rego - Zero trust access decision
|
|
378
|
+
package zerotrust.access
|
|
379
|
+
|
|
380
|
+
import rego.v1
|
|
381
|
+
|
|
382
|
+
default allow := false
|
|
383
|
+
|
|
384
|
+
allow if {
|
|
385
|
+
identity_verified
|
|
386
|
+
device_compliant
|
|
387
|
+
authorized_for_resource
|
|
388
|
+
risk_acceptable
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
identity_verified if {
|
|
392
|
+
input.identity.authenticated == true
|
|
393
|
+
input.identity.mfa_verified == true
|
|
394
|
+
time.now_ns() < input.identity.session_expires_ns
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
device_compliant if {
|
|
398
|
+
input.device.encryption_enabled == true
|
|
399
|
+
input.device.os_updated == true
|
|
400
|
+
input.device.firewall_enabled == true
|
|
401
|
+
input.device.certificate_valid == true
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
authorized_for_resource if {
|
|
405
|
+
some role in input.identity.roles
|
|
406
|
+
some permission in data.role_permissions[role]
|
|
407
|
+
permission == input.resource.required_permission
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
risk_acceptable if {
|
|
411
|
+
input.risk.score < 70
|
|
412
|
+
not input.risk.active_threat
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
step_up_required if {
|
|
416
|
+
input.risk.score >= 50
|
|
417
|
+
input.risk.score < 70
|
|
418
|
+
not input.identity.recent_mfa
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
## Implementation Steps
|
|
423
|
+
|
|
424
|
+
1. **Inventory assets and data flows** - Map every application, service, and data store
|
|
425
|
+
2. **Deploy identity provider** - Centralize authentication with SSO and MFA
|
|
426
|
+
3. **Implement identity-aware proxy** - Route all access through authentication layer
|
|
427
|
+
4. **Enable mTLS for service mesh** - Encrypt and authenticate all service communication
|
|
428
|
+
5. **Apply network policies** - Default deny with explicit allow rules
|
|
429
|
+
6. **Add device posture checks** - Verify device compliance before granting access
|
|
430
|
+
7. **Deploy continuous monitoring** - Log and analyze all access decisions
|
|
431
|
+
8. **Iterate and refine** - Review policies based on monitoring data
|
|
432
|
+
|
|
433
|
+
## Troubleshooting
|
|
434
|
+
|
|
435
|
+
| Problem | Cause | Solution |
|
|
436
|
+
|---------|-------|----------|
|
|
437
|
+
| Users cannot access internal apps | Identity provider misconfigured | Verify OIDC/SAML settings; check redirect URIs |
|
|
438
|
+
| mTLS connections failing | Certificate expired or wrong CA | Check cert expiry with `istioctl proxy-config secret`; verify CA chain |
|
|
439
|
+
| Network policy blocking legitimate traffic | Missing egress or ingress rule | Use `kubectl describe networkpolicy`; verify pod labels match selectors |
|
|
440
|
+
| Device posture check fails | MDM agent not reporting | Verify device agent is running; check compliance dashboard |
|
|
441
|
+
| OAuth2 proxy returns 403 | User email domain not in allow-list | Add domain to `--email-domain` flag or update group membership |
|
|
442
|
+
|
|
443
|
+
## Related Skills
|
|
444
|
+
|
|
445
|
+
- service-mesh (`service-mesh`) - mTLS implementation
|
|
446
|
+
- kubernetes-hardening (`kubernetes-hardening`) - K8s security
|
|
447
|
+
- vpn-setup (`vpn-setup`) - Traditional VPN (contrast with zero trust)
|
|
448
|
+
|
|
449
|
+
## Limitations
|
|
450
|
+
|
|
451
|
+
- Apply guidance only within authorized scope; test destructive steps in non-production first.
|
|
452
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
453
|
+
|
|
454
|
+
### Example
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
# Read-only first: inventory before any active step.
|
|
458
|
+
which <tool> && <tool> --help | head -n 20
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
> 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.
|
package/package.json
CHANGED