opencode-skills-collection 4.0.68 → 4.0.70
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 +304 -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/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -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/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/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -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-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -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/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -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/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -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/gpt-taste/SKILL.md +8 -1
- 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/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -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/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-social/SKILL.md +182 -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/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/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -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/meeting-distiller-pro/SKILL.md +120 -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/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -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/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/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/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -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-pricing-strategist/SKILL.md +169 -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/score-eval/SKILL.md +35 -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/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/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/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/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gcp-audit-logs
|
|
3
|
+
description: Configure GCP Cloud Audit Logs for compliance. Set up log routing and
|
|
4
|
+
BigQuery analysis. Use when auditing GCP activity.
|
|
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: Checklist and framework guidance; no privileged tooling required. Apply
|
|
14
|
+
controls through your own change process.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# GCP Audit Logs
|
|
21
|
+
|
|
22
|
+
Audit GCP activity with Cloud Audit Logs for compliance, security investigation, and operational monitoring.
|
|
23
|
+
|
|
24
|
+
## Audit Log Types
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
log_types:
|
|
28
|
+
admin_activity:
|
|
29
|
+
description: API calls that modify resource configuration or metadata
|
|
30
|
+
enabled: Always (cannot be disabled)
|
|
31
|
+
retention: 400 days (default)
|
|
32
|
+
cost: No charge
|
|
33
|
+
examples:
|
|
34
|
+
- Creating or deleting VM instances
|
|
35
|
+
- Changing IAM policies
|
|
36
|
+
- Modifying firewall rules
|
|
37
|
+
|
|
38
|
+
data_access:
|
|
39
|
+
description: API calls that read resource configuration, metadata, or user data
|
|
40
|
+
enabled: Must be explicitly enabled (except BigQuery)
|
|
41
|
+
retention: 30 days (default)
|
|
42
|
+
cost: Can be significant at high volume
|
|
43
|
+
subtypes:
|
|
44
|
+
ADMIN_READ: Read resource configuration/metadata
|
|
45
|
+
DATA_READ: Read user-provided data
|
|
46
|
+
DATA_WRITE: Write user-provided data
|
|
47
|
+
|
|
48
|
+
system_event:
|
|
49
|
+
description: Actions performed by GCP systems on behalf of resources
|
|
50
|
+
enabled: Always (cannot be disabled)
|
|
51
|
+
retention: 400 days (default)
|
|
52
|
+
cost: No charge
|
|
53
|
+
examples:
|
|
54
|
+
- Live migration of VM instances
|
|
55
|
+
- Automatic scaling events
|
|
56
|
+
|
|
57
|
+
policy_denied:
|
|
58
|
+
description: Actions denied by VPC Service Controls or organization policies
|
|
59
|
+
enabled: Always (cannot be disabled)
|
|
60
|
+
retention: 400 days (default)
|
|
61
|
+
cost: No charge
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Enable Data Access Logs for an Organization
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Get current org IAM policy
|
|
68
|
+
gcloud organizations get-iam-policy ORG_ID --format=json > org-policy.json
|
|
69
|
+
|
|
70
|
+
# Add audit config to org-policy.json:
|
|
71
|
+
# {
|
|
72
|
+
# "auditConfigs": [
|
|
73
|
+
# {
|
|
74
|
+
# "service": "allServices",
|
|
75
|
+
# "auditLogConfigs": [
|
|
76
|
+
# {"logType": "ADMIN_READ"},
|
|
77
|
+
# {"logType": "DATA_READ"},
|
|
78
|
+
# {"logType": "DATA_WRITE"}
|
|
79
|
+
# ]
|
|
80
|
+
# }
|
|
81
|
+
# ],
|
|
82
|
+
# ...existing bindings...
|
|
83
|
+
# }
|
|
84
|
+
|
|
85
|
+
# Apply the updated policy
|
|
86
|
+
gcloud organizations set-iam-policy ORG_ID org-policy.json
|
|
87
|
+
|
|
88
|
+
# Enable data access logs for specific services at project level
|
|
89
|
+
gcloud projects get-iam-policy PROJECT_ID --format=json > project-policy.json
|
|
90
|
+
|
|
91
|
+
# Example: enable only for Cloud Storage and BigQuery
|
|
92
|
+
# {
|
|
93
|
+
# "auditConfigs": [
|
|
94
|
+
# {
|
|
95
|
+
# "service": "storage.googleapis.com",
|
|
96
|
+
# "auditLogConfigs": [
|
|
97
|
+
# {"logType": "DATA_READ"},
|
|
98
|
+
# {"logType": "DATA_WRITE"}
|
|
99
|
+
# ]
|
|
100
|
+
# },
|
|
101
|
+
# {
|
|
102
|
+
# "service": "bigquery.googleapis.com",
|
|
103
|
+
# "auditLogConfigs": [
|
|
104
|
+
# {"logType": "DATA_READ"},
|
|
105
|
+
# {"logType": "DATA_WRITE"}
|
|
106
|
+
# ]
|
|
107
|
+
# }
|
|
108
|
+
# ]
|
|
109
|
+
# }
|
|
110
|
+
|
|
111
|
+
gcloud projects set-iam-policy PROJECT_ID project-policy.json
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Configure Log Sinks for Export
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Create BigQuery dataset for audit log export
|
|
118
|
+
bq mk --dataset \
|
|
119
|
+
--description "Audit log export" \
|
|
120
|
+
--default_table_expiration 0 \
|
|
121
|
+
--location US \
|
|
122
|
+
PROJECT_ID:audit_logs
|
|
123
|
+
|
|
124
|
+
# Create organization-level log sink to BigQuery
|
|
125
|
+
gcloud logging sinks create org-audit-bigquery \
|
|
126
|
+
bigquery.googleapis.com/projects/PROJECT_ID/datasets/audit_logs \
|
|
127
|
+
--organization=ORG_ID \
|
|
128
|
+
--include-children \
|
|
129
|
+
--log-filter='logName:"cloudaudit.googleapis.com"'
|
|
130
|
+
|
|
131
|
+
# Get the sink writer identity and grant BigQuery access
|
|
132
|
+
SINK_SA=$(gcloud logging sinks describe org-audit-bigquery \
|
|
133
|
+
--organization=ORG_ID --format='value(writerIdentity)')
|
|
134
|
+
|
|
135
|
+
bq add-iam-policy-binding \
|
|
136
|
+
--member="$SINK_SA" \
|
|
137
|
+
--role="roles/bigquery.dataEditor" \
|
|
138
|
+
PROJECT_ID:audit_logs
|
|
139
|
+
|
|
140
|
+
# Create Cloud Storage sink for long-term archive
|
|
141
|
+
gsutil mb -l US -b on gs://org-audit-logs-archive
|
|
142
|
+
gsutil retention set 7y gs://org-audit-logs-archive
|
|
143
|
+
|
|
144
|
+
gcloud logging sinks create org-audit-storage \
|
|
145
|
+
storage.googleapis.com/org-audit-logs-archive \
|
|
146
|
+
--organization=ORG_ID \
|
|
147
|
+
--include-children \
|
|
148
|
+
--log-filter='logName:"cloudaudit.googleapis.com"'
|
|
149
|
+
|
|
150
|
+
STORAGE_SA=$(gcloud logging sinks describe org-audit-storage \
|
|
151
|
+
--organization=ORG_ID --format='value(writerIdentity)')
|
|
152
|
+
|
|
153
|
+
gsutil iam ch "$STORAGE_SA:objectCreator" gs://org-audit-logs-archive
|
|
154
|
+
|
|
155
|
+
# Create Pub/Sub sink for real-time streaming to SIEM
|
|
156
|
+
gcloud pubsub topics create audit-log-stream
|
|
157
|
+
|
|
158
|
+
gcloud logging sinks create org-audit-pubsub \
|
|
159
|
+
pubsub.googleapis.com/projects/PROJECT_ID/topics/audit-log-stream \
|
|
160
|
+
--organization=ORG_ID \
|
|
161
|
+
--include-children \
|
|
162
|
+
--log-filter='logName:"cloudaudit.googleapis.com" AND (protoPayload.methodName:"delete" OR protoPayload.methodName:"setIamPolicy" OR severity>=WARNING)'
|
|
163
|
+
|
|
164
|
+
PUBSUB_SA=$(gcloud logging sinks describe org-audit-pubsub \
|
|
165
|
+
--organization=ORG_ID --format='value(writerIdentity)')
|
|
166
|
+
|
|
167
|
+
gcloud pubsub topics add-iam-policy-binding audit-log-stream \
|
|
168
|
+
--member="$PUBSUB_SA" \
|
|
169
|
+
--role="roles/pubsub.publisher"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Logging Queries (Cloud Logging Explorer)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# View admin activity logs for the last 24 hours
|
|
176
|
+
gcloud logging read 'logName:"cloudaudit.googleapis.com/activity"
|
|
177
|
+
AND timestamp>="2024-01-01T00:00:00Z"' \
|
|
178
|
+
--project=PROJECT_ID \
|
|
179
|
+
--format=json \
|
|
180
|
+
--limit=100
|
|
181
|
+
|
|
182
|
+
# Find IAM policy changes
|
|
183
|
+
gcloud logging read 'logName:"cloudaudit.googleapis.com/activity"
|
|
184
|
+
AND protoPayload.methodName="SetIamPolicy"' \
|
|
185
|
+
--project=PROJECT_ID \
|
|
186
|
+
--freshness=7d
|
|
187
|
+
|
|
188
|
+
# Find resource deletions
|
|
189
|
+
gcloud logging read 'logName:"cloudaudit.googleapis.com/activity"
|
|
190
|
+
AND protoPayload.methodName=~"delete"
|
|
191
|
+
AND severity>=NOTICE' \
|
|
192
|
+
--project=PROJECT_ID \
|
|
193
|
+
--freshness=7d
|
|
194
|
+
|
|
195
|
+
# Data access audit log entries
|
|
196
|
+
gcloud logging read 'logName:"cloudaudit.googleapis.com/data_access"
|
|
197
|
+
AND protoPayload.serviceName="storage.googleapis.com"
|
|
198
|
+
AND protoPayload.methodName="storage.objects.get"' \
|
|
199
|
+
--project=PROJECT_ID \
|
|
200
|
+
--freshness=24h
|
|
201
|
+
|
|
202
|
+
# Failed authorization attempts
|
|
203
|
+
gcloud logging read 'logName:"cloudaudit.googleapis.com/policy"' \
|
|
204
|
+
--project=PROJECT_ID \
|
|
205
|
+
--freshness=7d
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## BigQuery Analysis Queries
|
|
209
|
+
|
|
210
|
+
```sql
|
|
211
|
+
-- All destructive operations in the last 30 days
|
|
212
|
+
SELECT
|
|
213
|
+
timestamp,
|
|
214
|
+
protopayload_auditlog.authenticationInfo.principalEmail AS principal,
|
|
215
|
+
protopayload_auditlog.methodName AS method,
|
|
216
|
+
protopayload_auditlog.resourceName AS resource,
|
|
217
|
+
resource.labels.project_id AS project,
|
|
218
|
+
protopayload_auditlog.status.code AS status_code,
|
|
219
|
+
protopayload_auditlog.status.message AS status_message
|
|
220
|
+
FROM `project.audit_logs.cloudaudit_googleapis_com_activity_*`
|
|
221
|
+
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))
|
|
222
|
+
AND protopayload_auditlog.methodName LIKE '%delete%'
|
|
223
|
+
ORDER BY timestamp DESC
|
|
224
|
+
LIMIT 500;
|
|
225
|
+
|
|
226
|
+
-- IAM policy changes across the organization
|
|
227
|
+
SELECT
|
|
228
|
+
timestamp,
|
|
229
|
+
protopayload_auditlog.authenticationInfo.principalEmail AS changed_by,
|
|
230
|
+
resource.labels.project_id AS project,
|
|
231
|
+
protopayload_auditlog.resourceName AS resource,
|
|
232
|
+
protopayload_auditlog.servicedata_v1_iam.policyDelta.bindingDeltas
|
|
233
|
+
FROM `project.audit_logs.cloudaudit_googleapis_com_activity_*`
|
|
234
|
+
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))
|
|
235
|
+
AND protopayload_auditlog.methodName = 'SetIamPolicy'
|
|
236
|
+
ORDER BY timestamp DESC;
|
|
237
|
+
|
|
238
|
+
-- Activity per principal (detect anomalous usage)
|
|
239
|
+
SELECT
|
|
240
|
+
protopayload_auditlog.authenticationInfo.principalEmail AS principal,
|
|
241
|
+
COUNT(*) AS action_count,
|
|
242
|
+
COUNT(DISTINCT protopayload_auditlog.methodName) AS unique_methods,
|
|
243
|
+
COUNT(DISTINCT protopayload_auditlog.requestMetadata.callerIp) AS unique_ips,
|
|
244
|
+
MIN(timestamp) AS first_activity,
|
|
245
|
+
MAX(timestamp) AS last_activity
|
|
246
|
+
FROM `project.audit_logs.cloudaudit_googleapis_com_activity_*`
|
|
247
|
+
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
|
|
248
|
+
GROUP BY principal
|
|
249
|
+
ORDER BY action_count DESC
|
|
250
|
+
LIMIT 50;
|
|
251
|
+
|
|
252
|
+
-- Service account key creation events (security risk indicator)
|
|
253
|
+
SELECT
|
|
254
|
+
timestamp,
|
|
255
|
+
protopayload_auditlog.authenticationInfo.principalEmail AS created_by,
|
|
256
|
+
protopayload_auditlog.resourceName AS service_account,
|
|
257
|
+
protopayload_auditlog.requestMetadata.callerIp AS source_ip
|
|
258
|
+
FROM `project.audit_logs.cloudaudit_googleapis_com_activity_*`
|
|
259
|
+
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY))
|
|
260
|
+
AND protopayload_auditlog.methodName = 'google.iam.admin.v1.CreateServiceAccountKey'
|
|
261
|
+
ORDER BY timestamp DESC;
|
|
262
|
+
|
|
263
|
+
-- Data access patterns for sensitive Cloud Storage buckets
|
|
264
|
+
SELECT
|
|
265
|
+
timestamp,
|
|
266
|
+
protopayload_auditlog.authenticationInfo.principalEmail AS accessor,
|
|
267
|
+
protopayload_auditlog.resourceName AS object_path,
|
|
268
|
+
protopayload_auditlog.methodName AS access_type,
|
|
269
|
+
protopayload_auditlog.requestMetadata.callerIp AS source_ip
|
|
270
|
+
FROM `project.audit_logs.cloudaudit_googleapis_com_data_access_*`
|
|
271
|
+
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
|
|
272
|
+
AND protopayload_auditlog.resourceName LIKE '%sensitive-bucket%'
|
|
273
|
+
ORDER BY timestamp DESC
|
|
274
|
+
LIMIT 1000;
|
|
275
|
+
|
|
276
|
+
-- Failed operations indicating permission issues
|
|
277
|
+
SELECT
|
|
278
|
+
timestamp,
|
|
279
|
+
protopayload_auditlog.authenticationInfo.principalEmail AS principal,
|
|
280
|
+
protopayload_auditlog.methodName AS method,
|
|
281
|
+
protopayload_auditlog.status.code AS error_code,
|
|
282
|
+
protopayload_auditlog.status.message AS error_message,
|
|
283
|
+
protopayload_auditlog.requestMetadata.callerIp AS source_ip
|
|
284
|
+
FROM `project.audit_logs.cloudaudit_googleapis_com_activity_*`
|
|
285
|
+
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
|
|
286
|
+
AND protopayload_auditlog.status.code != 0
|
|
287
|
+
ORDER BY timestamp DESC
|
|
288
|
+
LIMIT 500;
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
## Alerting Policies
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# Alert on service account key creation
|
|
295
|
+
gcloud alpha monitoring policies create \
|
|
296
|
+
--display-name="SA Key Created" \
|
|
297
|
+
--condition-display-name="Service Account Key Creation" \
|
|
298
|
+
--condition-filter='resource.type="audited_resource" AND protoPayload.methodName="google.iam.admin.v1.CreateServiceAccountKey"' \
|
|
299
|
+
--condition-threshold-value=0 \
|
|
300
|
+
--condition-threshold-comparison=COMPARISON_GT \
|
|
301
|
+
--condition-threshold-duration=0s \
|
|
302
|
+
--notification-channels=projects/PROJECT_ID/notificationChannels/CHANNEL_ID \
|
|
303
|
+
--combiner=OR
|
|
304
|
+
|
|
305
|
+
# Create a log-based metric for IAM changes
|
|
306
|
+
gcloud logging metrics create iam-policy-changes \
|
|
307
|
+
--description="Count of IAM policy changes" \
|
|
308
|
+
--log-filter='logName:"cloudaudit.googleapis.com/activity" AND protoPayload.methodName="SetIamPolicy"'
|
|
309
|
+
|
|
310
|
+
# Create alerting policy using the log-based metric
|
|
311
|
+
gcloud alpha monitoring policies create \
|
|
312
|
+
--display-name="IAM Policy Changes" \
|
|
313
|
+
--condition-display-name="IAM Changes Detected" \
|
|
314
|
+
--condition-filter='metric.type="logging.googleapis.com/user/iam-policy-changes"' \
|
|
315
|
+
--condition-threshold-value=0 \
|
|
316
|
+
--condition-threshold-comparison=COMPARISON_GT \
|
|
317
|
+
--condition-threshold-duration=0s \
|
|
318
|
+
--notification-channels=projects/PROJECT_ID/notificationChannels/CHANNEL_ID
|
|
319
|
+
|
|
320
|
+
# Create log-based metric for firewall changes
|
|
321
|
+
gcloud logging metrics create firewall-rule-changes \
|
|
322
|
+
--description="Count of firewall rule changes" \
|
|
323
|
+
--log-filter='logName:"cloudaudit.googleapis.com/activity"
|
|
324
|
+
AND (protoPayload.methodName="v1.compute.firewalls.insert"
|
|
325
|
+
OR protoPayload.methodName="v1.compute.firewalls.delete"
|
|
326
|
+
OR protoPayload.methodName="v1.compute.firewalls.patch")'
|
|
327
|
+
|
|
328
|
+
# Create log-based metric for VPC network changes
|
|
329
|
+
gcloud logging metrics create vpc-network-changes \
|
|
330
|
+
--description="Count of VPC network changes" \
|
|
331
|
+
--log-filter='logName:"cloudaudit.googleapis.com/activity"
|
|
332
|
+
AND resource.type="gce_network"
|
|
333
|
+
AND (protoPayload.methodName=~"insert$" OR protoPayload.methodName=~"delete$")'
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## Terraform Configuration
|
|
337
|
+
|
|
338
|
+
```hcl
|
|
339
|
+
# Organization-level audit log sink to BigQuery
|
|
340
|
+
resource "google_logging_organization_sink" "audit_bigquery" {
|
|
341
|
+
name = "org-audit-bigquery"
|
|
342
|
+
org_id = var.org_id
|
|
343
|
+
destination = "bigquery.googleapis.com/projects/${var.project_id}/datasets/${google_bigquery_dataset.audit_logs.dataset_id}"
|
|
344
|
+
filter = "logName:\"cloudaudit.googleapis.com\""
|
|
345
|
+
include_children = true
|
|
346
|
+
|
|
347
|
+
bigquery_options {
|
|
348
|
+
use_partitioned_tables = true
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
resource "google_bigquery_dataset" "audit_logs" {
|
|
353
|
+
dataset_id = "audit_logs"
|
|
354
|
+
project = var.project_id
|
|
355
|
+
location = "US"
|
|
356
|
+
description = "Organization audit log export"
|
|
357
|
+
|
|
358
|
+
default_table_expiration_ms = null # No auto-expiry
|
|
359
|
+
|
|
360
|
+
access {
|
|
361
|
+
role = "WRITER"
|
|
362
|
+
user_by_email = google_logging_organization_sink.audit_bigquery.writer_identity
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
access {
|
|
366
|
+
role = "READER"
|
|
367
|
+
group_by_email = "security-auditors@example.com"
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
# Retention bucket with bucket lock
|
|
372
|
+
resource "google_storage_bucket" "audit_archive" {
|
|
373
|
+
name = "org-audit-logs-archive"
|
|
374
|
+
location = "US"
|
|
375
|
+
force_destroy = false
|
|
376
|
+
project = var.project_id
|
|
377
|
+
|
|
378
|
+
uniform_bucket_level_access = true
|
|
379
|
+
|
|
380
|
+
retention_policy {
|
|
381
|
+
is_locked = true
|
|
382
|
+
retention_period = 220752000 # 7 years in seconds
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
lifecycle_rule {
|
|
386
|
+
condition {
|
|
387
|
+
age = 90
|
|
388
|
+
}
|
|
389
|
+
action {
|
|
390
|
+
type = "SetStorageClass"
|
|
391
|
+
storage_class = "COLDLINE"
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
# Log-based alerting
|
|
397
|
+
resource "google_logging_metric" "iam_changes" {
|
|
398
|
+
name = "iam-policy-changes"
|
|
399
|
+
project = var.project_id
|
|
400
|
+
filter = "logName:\"cloudaudit.googleapis.com/activity\" AND protoPayload.methodName=\"SetIamPolicy\""
|
|
401
|
+
|
|
402
|
+
metric_descriptor {
|
|
403
|
+
metric_kind = "DELTA"
|
|
404
|
+
value_type = "INT64"
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
resource "google_monitoring_alert_policy" "iam_changes" {
|
|
409
|
+
display_name = "IAM Policy Changes Detected"
|
|
410
|
+
project = var.project_id
|
|
411
|
+
combiner = "OR"
|
|
412
|
+
|
|
413
|
+
conditions {
|
|
414
|
+
display_name = "IAM policy change count"
|
|
415
|
+
condition_threshold {
|
|
416
|
+
filter = "metric.type=\"logging.googleapis.com/user/iam-policy-changes\" AND resource.type=\"global\""
|
|
417
|
+
comparison = "COMPARISON_GT"
|
|
418
|
+
threshold_value = 0
|
|
419
|
+
duration = "0s"
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
notification_channels = [var.notification_channel_id]
|
|
424
|
+
}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
## Contents
|
|
429
|
+
|
|
430
|
+
- [Setup Checklist](references/details.md)
|
|
431
|
+
- [Best Practices](references/details.md)
|
|
432
|
+
|
|
433
|
+
## When to Use
|
|
434
|
+
|
|
435
|
+
- Enabling organization-wide audit logging across GCP projects
|
|
436
|
+
- Meeting compliance requirements for SOC 2, HIPAA, PCI DSS, or FedRAMP
|
|
437
|
+
- Investigating unauthorized access or suspicious API activity
|
|
438
|
+
- Setting up alerting on administrative and data access events
|
|
439
|
+
- Exporting logs to BigQuery for long-term analysis and reporting
|
|
440
|
+
|
|
441
|
+
## Limitations
|
|
442
|
+
|
|
443
|
+
- Guidance and checklists only; not legal advice and not a substitute for a qualified auditor.
|
|
444
|
+
- Docs-only import: upstream templates and scripts not bundled.
|
|
445
|
+
|
|
446
|
+
### Example
|
|
447
|
+
|
|
448
|
+
```markdown
|
|
449
|
+
Map this skill's control checklist to our current evidence and list gaps.
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
> 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.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Details (moved from SKILL.md)
|
|
2
|
+
|
|
3
|
+
> Extended reference content for `gcp-audit-logs`, kept under `references/` so the entrypoint stays within the audit budget.
|
|
4
|
+
|
|
5
|
+
## Setup Checklist
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
gcp_audit_logs_checklist:
|
|
9
|
+
log_enablement:
|
|
10
|
+
- [ ] Admin activity logs verified active (always on)
|
|
11
|
+
- [ ] Data access logs enabled for sensitive services
|
|
12
|
+
- [ ] Data access exemptions configured to exclude high-volume, low-risk operations
|
|
13
|
+
- [ ] System event logs verified active (always on)
|
|
14
|
+
|
|
15
|
+
log_routing:
|
|
16
|
+
- [ ] Organization-level sink to BigQuery for analysis
|
|
17
|
+
- [ ] Organization-level sink to Cloud Storage for long-term archive
|
|
18
|
+
- [ ] Pub/Sub sink for real-time SIEM streaming (high severity events)
|
|
19
|
+
- [ ] Sink writer identities granted appropriate destination permissions
|
|
20
|
+
- [ ] Inclusion filters verified to capture all audit log types
|
|
21
|
+
|
|
22
|
+
storage_and_retention:
|
|
23
|
+
- [ ] BigQuery dataset created with appropriate access controls
|
|
24
|
+
- [ ] Cloud Storage bucket with retention policy and bucket lock
|
|
25
|
+
- [ ] Storage class lifecycle rules configured (Standard to Coldline)
|
|
26
|
+
- [ ] Default log retention in Cloud Logging extended if needed
|
|
27
|
+
|
|
28
|
+
alerting:
|
|
29
|
+
- [ ] Notification channels configured (email, PagerDuty, Slack)
|
|
30
|
+
- [ ] Log-based metric for IAM policy changes
|
|
31
|
+
- [ ] Log-based metric for firewall rule changes
|
|
32
|
+
- [ ] Log-based metric for service account key creation
|
|
33
|
+
- [ ] Alert policy for each critical metric
|
|
34
|
+
- [ ] Alert notification tested end-to-end
|
|
35
|
+
|
|
36
|
+
access_control:
|
|
37
|
+
- [ ] Logging Admin role restricted to security team
|
|
38
|
+
- [ ] BigQuery dataset read access granted to auditors only
|
|
39
|
+
- [ ] Storage bucket access restricted with IAM
|
|
40
|
+
- [ ] Sink configuration changes monitored via admin activity logs
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Best Practices
|
|
45
|
+
|
|
46
|
+
- Enable data access logs selectively on sensitive services to control cost and volume
|
|
47
|
+
- Use organization-level sinks with include-children to capture all projects automatically
|
|
48
|
+
- Export to BigQuery with partitioned tables for efficient querying over large time ranges
|
|
49
|
+
- Archive to Cloud Storage with bucket lock and retention policies for immutable long-term storage
|
|
50
|
+
- Create log-based metrics and alerting policies for high-severity events
|
|
51
|
+
- Stream critical audit events via Pub/Sub to SIEM for real-time correlation
|
|
52
|
+
- Apply exemptions to exclude high-volume read-only service accounts from data access logs
|
|
53
|
+
- Restrict access to audit log sinks and destinations with least-privilege IAM bindings
|
|
54
|
+
- Regularly run BigQuery analysis queries to detect anomalous patterns and generate compliance reports
|
|
55
|
+
- Monitor log sink health and delivery latency to ensure continuous audit coverage
|
|
56
|
+
|