opencode-skills-collection 4.0.68 → 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.
Files changed (309) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +266 -1
  2. package/bundled-skills/access-review/SKILL.md +394 -0
  3. package/bundled-skills/access-review/references/details.md +121 -0
  4. package/bundled-skills/agent-evals/SKILL.md +420 -0
  5. package/bundled-skills/agent-observability/SKILL.md +346 -0
  6. package/bundled-skills/agent-observability/references/details.md +786 -0
  7. package/bundled-skills/ai-agent-security/SKILL.md +393 -0
  8. package/bundled-skills/ai-agent-security/references/details.md +912 -0
  9. package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
  10. package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
  11. package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
  12. package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
  13. package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
  14. package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
  15. package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
  16. package/bundled-skills/alerting-oncall/SKILL.md +458 -0
  17. package/bundled-skills/alerting-oncall/references/details.md +84 -0
  18. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  19. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  20. package/bundled-skills/arm-templates/SKILL.md +438 -0
  21. package/bundled-skills/arm-templates/references/details.md +64 -0
  22. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  23. package/bundled-skills/asset-inventory/references/details.md +127 -0
  24. package/bundled-skills/audit-logging/SKILL.md +476 -0
  25. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  26. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  27. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  28. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  29. package/bundled-skills/aws-iam/SKILL.md +463 -0
  30. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  31. package/bundled-skills/aws-rds/SKILL.md +380 -0
  32. package/bundled-skills/aws-s3/SKILL.md +434 -0
  33. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  34. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  35. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  36. package/bundled-skills/azure-aks/SKILL.md +423 -0
  37. package/bundled-skills/azure-devops/SKILL.md +457 -0
  38. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  39. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  40. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  41. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  42. package/bundled-skills/azure-networking/SKILL.md +448 -0
  43. package/bundled-skills/azure-networking/references/details.md +135 -0
  44. package/bundled-skills/azure-sql/SKILL.md +413 -0
  45. package/bundled-skills/azure-sql/references/details.md +113 -0
  46. package/bundled-skills/azure-vms/SKILL.md +402 -0
  47. package/bundled-skills/azure-vms/references/details.md +134 -0
  48. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  49. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  50. package/bundled-skills/bb-methodology/references/details.md +120 -0
  51. package/bundled-skills/block-storage/SKILL.md +371 -0
  52. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  53. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  54. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  55. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  56. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  57. package/bundled-skills/business-continuity/SKILL.md +463 -0
  58. package/bundled-skills/career-ops/SKILL.md +186 -0
  59. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  60. package/bundled-skills/change-management/SKILL.md +438 -0
  61. package/bundled-skills/change-management/references/details.md +105 -0
  62. package/bundled-skills/circleci/SKILL.md +475 -0
  63. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  64. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  65. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  66. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  67. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  68. package/bundled-skills/cloudformation/SKILL.md +461 -0
  69. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  70. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  71. package/bundled-skills/container-hardening/SKILL.md +126 -0
  72. package/bundled-skills/container-registries/SKILL.md +435 -0
  73. package/bundled-skills/container-scanning/SKILL.md +416 -0
  74. package/bundled-skills/convex-backend/SKILL.md +338 -0
  75. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  76. package/bundled-skills/database-backups/SKILL.md +425 -0
  77. package/bundled-skills/datadog/SKILL.md +487 -0
  78. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  79. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  80. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  81. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  82. package/bundled-skills/dns-management/SKILL.md +375 -0
  83. package/bundled-skills/docker-compose/SKILL.md +482 -0
  84. package/bundled-skills/docker-management/SKILL.md +426 -0
  85. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  86. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  87. package/bundled-skills/elk-stack/SKILL.md +487 -0
  88. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  89. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  90. package/bundled-skills/feature-flags/SKILL.md +426 -0
  91. package/bundled-skills/feature-flags/references/details.md +86 -0
  92. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  93. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  94. package/bundled-skills/firewall-config/SKILL.md +479 -0
  95. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  96. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  97. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  98. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  99. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  100. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  101. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  102. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  103. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  104. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  105. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  106. package/bundled-skills/geo-audit/SKILL.md +368 -0
  107. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  108. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  109. package/bundled-skills/geo-citability/SKILL.md +350 -0
  110. package/bundled-skills/geo-compare/SKILL.md +340 -0
  111. package/bundled-skills/geo-content/SKILL.md +383 -0
  112. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  113. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  114. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  115. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  116. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  117. package/bundled-skills/geo-report/SKILL.md +436 -0
  118. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  119. package/bundled-skills/geo-schema/SKILL.md +408 -0
  120. package/bundled-skills/geo-technical/SKILL.md +78 -0
  121. package/bundled-skills/geo-technical/references/details.md +543 -0
  122. package/bundled-skills/git-workflow/SKILL.md +460 -0
  123. package/bundled-skills/github-actions/SKILL.md +368 -0
  124. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  125. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  126. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  127. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  128. package/bundled-skills/helm-charts/SKILL.md +469 -0
  129. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  130. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  131. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  132. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  133. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  134. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  135. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  136. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  137. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  138. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  139. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  140. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  141. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  142. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  143. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  144. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  145. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  146. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  147. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  148. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  149. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  150. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  151. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  152. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  153. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  154. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  155. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  156. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  157. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  158. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  159. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  160. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  161. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  162. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  163. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  164. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  165. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  166. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  167. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  168. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  169. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  170. package/bundled-skills/hunt-rce/references/details.md +110 -0
  171. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  172. package/bundled-skills/hunt-session/SKILL.md +342 -0
  173. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  174. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  175. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  176. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  177. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  178. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  179. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  180. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  181. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  182. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  183. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  184. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  185. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  186. package/bundled-skills/identity-access-management/references/details.md +524 -0
  187. package/bundled-skills/incident-management/SKILL.md +484 -0
  188. package/bundled-skills/incident-response/SKILL.md +448 -0
  189. package/bundled-skills/incident-response/references/details.md +113 -0
  190. package/bundled-skills/interview-me/SKILL.md +248 -0
  191. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  192. package/bundled-skills/jenkins/SKILL.md +462 -0
  193. package/bundled-skills/jev-use/SKILL.md +158 -0
  194. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  195. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  196. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  197. package/bundled-skills/kustomize/SKILL.md +478 -0
  198. package/bundled-skills/linux-administration/SKILL.md +367 -0
  199. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  200. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  201. package/bundled-skills/llm-app-security/references/details.md +674 -0
  202. package/bundled-skills/llm-caching/SKILL.md +334 -0
  203. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  204. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  205. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  206. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  207. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  208. package/bundled-skills/load-balancing/SKILL.md +403 -0
  209. package/bundled-skills/loki-logging/SKILL.md +479 -0
  210. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  211. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  212. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  213. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  214. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  215. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  216. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  217. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  218. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  219. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  220. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  221. package/bundled-skills/mongodb/SKILL.md +436 -0
  222. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  223. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  224. package/bundled-skills/mysql/SKILL.md +390 -0
  225. package/bundled-skills/new-relic/SKILL.md +472 -0
  226. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  227. package/bundled-skills/object-storage/SKILL.md +378 -0
  228. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  229. package/bundled-skills/okta-attack/SKILL.md +436 -0
  230. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  231. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  232. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  233. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  234. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  235. package/bundled-skills/openshift/SKILL.md +485 -0
  236. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  237. package/bundled-skills/opentelemetry/references/details.md +78 -0
  238. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  239. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  240. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  241. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  242. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  243. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  244. package/bundled-skills/planetscale/SKILL.md +297 -0
  245. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  246. package/bundled-skills/platform-engineering/references/details.md +944 -0
  247. package/bundled-skills/podman/SKILL.md +405 -0
  248. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  249. package/bundled-skills/policy-as-code/references/details.md +204 -0
  250. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  251. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  252. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  253. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  254. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  255. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  256. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  257. package/bundled-skills/redis/SKILL.md +421 -0
  258. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  259. package/bundled-skills/report-writing/SKILL.md +426 -0
  260. package/bundled-skills/report-writing/references/details.md +187 -0
  261. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  262. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  263. package/bundled-skills/runbook-creation/references/details.md +71 -0
  264. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  265. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  266. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  267. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  268. package/bundled-skills/security-arsenal/references/details.md +540 -0
  269. package/bundled-skills/security-automation/SKILL.md +146 -0
  270. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  271. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  272. package/bundled-skills/service-mesh/SKILL.md +422 -0
  273. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  274. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  275. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  276. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  277. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  278. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  279. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  280. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  281. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  282. package/bundled-skills/systemd-services/SKILL.md +379 -0
  283. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  284. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  285. package/bundled-skills/terraform-azure/references/details.md +231 -0
  286. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  287. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  288. package/bundled-skills/user-management/SKILL.md +383 -0
  289. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  290. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  291. package/bundled-skills/vendor-management/SKILL.md +439 -0
  292. package/bundled-skills/vendor-management/references/details.md +109 -0
  293. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  294. package/bundled-skills/vllm-server/SKILL.md +236 -0
  295. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  296. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  297. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  298. package/bundled-skills/waf-setup/SKILL.md +354 -0
  299. package/bundled-skills/waf-setup/references/details.md +211 -0
  300. package/bundled-skills/web2-recon/SKILL.md +440 -0
  301. package/bundled-skills/web2-recon/references/details.md +319 -0
  302. package/bundled-skills/web3-audit/SKILL.md +445 -0
  303. package/bundled-skills/web3-audit/references/details.md +224 -0
  304. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  305. package/bundled-skills/windows-hardening/references/details.md +204 -0
  306. package/bundled-skills/windows-server/SKILL.md +318 -0
  307. package/bundled-skills/zero-trust/SKILL.md +461 -0
  308. package/package.json +1 -1
  309. package/skills_index.json +6943 -323
@@ -0,0 +1,444 @@
1
+ ---
2
+ name: sast-scanning
3
+ description: Perform static application security testing with tools like Semgrep,
4
+ CodeQL, and SonarQube.
5
+ category: security
6
+ risk: safe
7
+ source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
8
+ source_repo: BagelHole/DevOps-Security-Agent-Skills
9
+ source_type: community
10
+ date_added: '2026-09-20'
11
+ license: MIT
12
+ license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
13
+ compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
14
+ authorized scope for any active assessment. Docs-only; helper scripts and templates
15
+ not bundled.
16
+ metadata:
17
+ author: devops-skills
18
+ version: '1.0'
19
+ ---
20
+
21
+ # SAST Scanning
22
+
23
+ Identify security vulnerabilities in source code through static analysis.
24
+
25
+ ## When to Use This Skill
26
+
27
+ Use this skill when:
28
+ - Implementing secure SDLC practices
29
+ - Adding security gates to CI/CD
30
+ - Automating code security reviews
31
+ - Finding vulnerabilities before deployment
32
+ - Meeting compliance requirements
33
+
34
+ ## Prerequisites
35
+
36
+ - Source code access
37
+ - CI/CD pipeline
38
+ - SAST tool installation
39
+
40
+ ## Tool Comparison
41
+
42
+ | Tool | License | Languages | Best For |
43
+ |------|---------|-----------|----------|
44
+ | Semgrep | OSS/Commercial | 30+ | Custom rules, speed |
45
+ | CodeQL | Free (GitHub) | 10+ | Deep analysis |
46
+ | SonarQube | OSS/Commercial | 25+ | Quality + Security |
47
+ | Bandit | OSS | Python | Python projects |
48
+ | Brakeman | OSS | Ruby | Rails apps |
49
+
50
+ ## Semgrep
51
+
52
+ ### Installation
53
+
54
+ ```bash
55
+ # Install via pip
56
+ pip install semgrep
57
+
58
+ # Or via Homebrew
59
+ brew install semgrep
60
+ ```
61
+
62
+ ### Basic Usage
63
+
64
+ ```bash
65
+ # Run with default rules
66
+ semgrep --config auto .
67
+
68
+ # Run specific rulesets
69
+ semgrep --config p/security-audit .
70
+ semgrep --config p/owasp-top-ten .
71
+ semgrep --config p/ci .
72
+
73
+ # Scan specific languages
74
+ semgrep --config p/python .
75
+ semgrep --config p/javascript .
76
+
77
+ # Output formats
78
+ semgrep --config auto --json -o results.json .
79
+ semgrep --config auto --sarif -o results.sarif .
80
+ ```
81
+
82
+ ### Custom Rules
83
+
84
+ ```yaml
85
+ # .semgrep/custom-rules.yaml
86
+ rules:
87
+ - id: hardcoded-password
88
+ patterns:
89
+ - pattern-either:
90
+ - pattern: password = "..."
91
+ - pattern: PASSWORD = "..."
92
+ - pattern: passwd = "..."
93
+ message: Hardcoded password detected
94
+ severity: ERROR
95
+ languages: [python, javascript, java]
96
+ metadata:
97
+ cwe: "CWE-798"
98
+ owasp: "A3:2017"
99
+
100
+ - id: sql-injection
101
+ patterns:
102
+ - pattern: |
103
+ $QUERY = "..." + $USER_INPUT + "..."
104
+ $DB.execute($QUERY)
105
+ message: Potential SQL injection
106
+ severity: ERROR
107
+ languages: [python]
108
+ metadata:
109
+ cwe: "CWE-89"
110
+
111
+ - id: insecure-random
112
+ pattern: random.random()
113
+ message: Use secrets module for security-sensitive randomness
114
+ severity: WARNING
115
+ languages: [python]
116
+ fix: secrets.token_hex()
117
+ ```
118
+
119
+ ### CI Configuration
120
+
121
+ ```yaml
122
+ # .github/workflows/semgrep.yml
123
+ name: Semgrep
124
+
125
+ on:
126
+ push:
127
+ branches: [main]
128
+ pull_request:
129
+
130
+ jobs:
131
+ semgrep:
132
+ runs-on: ubuntu-latest
133
+ container:
134
+ image: returntocorp/semgrep
135
+ steps:
136
+ - uses: actions/checkout@v4
137
+
138
+ - name: Run Semgrep
139
+ run: semgrep ci
140
+ env:
141
+ SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }}
142
+ ```
143
+
144
+ ## CodeQL
145
+
146
+ ### Setup
147
+
148
+ ```yaml
149
+ # .github/workflows/codeql.yml
150
+ name: CodeQL Analysis
151
+
152
+ on:
153
+ push:
154
+ branches: [main]
155
+ pull_request:
156
+ branches: [main]
157
+ schedule:
158
+ - cron: '0 0 * * 0'
159
+
160
+ jobs:
161
+ analyze:
162
+ runs-on: ubuntu-latest
163
+ permissions:
164
+ security-events: write
165
+ actions: read
166
+ contents: read
167
+
168
+ strategy:
169
+ matrix:
170
+ language: ['javascript', 'python']
171
+
172
+ steps:
173
+ - uses: actions/checkout@v4
174
+
175
+ - name: Initialize CodeQL
176
+ uses: github/codeql-action/init@v3
177
+ with:
178
+ languages: ${{ matrix.language }}
179
+ queries: +security-and-quality
180
+
181
+ - name: Autobuild
182
+ uses: github/codeql-action/autobuild@v3
183
+
184
+ - name: Perform CodeQL Analysis
185
+ uses: github/codeql-action/analyze@v3
186
+ with:
187
+ category: "/language:${{ matrix.language }}"
188
+ ```
189
+
190
+ ### Custom Queries
191
+
192
+ ```ql
193
+ // queries/sql-injection.ql
194
+ /**
195
+ * @name SQL Injection
196
+ * @description User input in SQL query
197
+ * @kind path-problem
198
+ * @problem.severity error
199
+ * @security-severity 9.0
200
+ * @precision high
201
+ * @id py/sql-injection
202
+ * @tags security
203
+ */
204
+
205
+ import python
206
+ import semmle.python.dataflow.new.DataFlow
207
+ import semmle.python.dataflow.new.TaintTracking
208
+ import semmle.python.security.dataflow.SqlInjectionQuery
209
+
210
+ from SqlInjectionConfiguration config, DataFlow::PathNode source, DataFlow::PathNode sink
211
+ where config.hasFlowPath(source, sink)
212
+ select sink.getNode(), source, sink, "SQL injection from $@.", source.getNode(), "user input"
213
+ ```
214
+
215
+ ## SonarQube
216
+
217
+ ### Docker Setup
218
+
219
+ ```yaml
220
+ # docker-compose.yml
221
+ version: '3.8'
222
+
223
+ services:
224
+ sonarqube:
225
+ image: sonarqube:lts-community
226
+ ports:
227
+ - "9000:9000"
228
+ environment:
229
+ - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar
230
+ - SONAR_JDBC_USERNAME=sonar
231
+ - SONAR_JDBC_PASSWORD=sonar
232
+ volumes:
233
+ - sonarqube_data:/opt/sonarqube/data
234
+ - sonarqube_logs:/opt/sonarqube/logs
235
+ depends_on:
236
+ - db
237
+
238
+ db:
239
+ image: postgres:15
240
+ environment:
241
+ - POSTGRES_USER=sonar
242
+ - POSTGRES_PASSWORD=sonar
243
+ - POSTGRES_DB=sonar
244
+ volumes:
245
+ - postgresql_data:/var/lib/postgresql/data
246
+
247
+ volumes:
248
+ sonarqube_data:
249
+ sonarqube_logs:
250
+ postgresql_data:
251
+ ```
252
+
253
+ ### Scanner Configuration
254
+
255
+ ```properties
256
+ # sonar-project.properties
257
+ sonar.projectKey=myproject
258
+ sonar.projectName=My Project
259
+ sonar.projectVersion=1.0
260
+
261
+ sonar.sources=src
262
+ sonar.tests=tests
263
+ sonar.exclusions=**/node_modules/**,**/vendor/**
264
+
265
+ sonar.language=py
266
+ sonar.python.coverage.reportPaths=coverage.xml
267
+
268
+ sonar.qualitygate.wait=true
269
+ ```
270
+
271
+ ### CI Integration
272
+
273
+ ```yaml
274
+ # GitHub Actions
275
+ - name: SonarQube Scan
276
+ uses: sonarsource/sonarqube-scan-action@master
277
+ env:
278
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
279
+ SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
280
+
281
+ - name: Quality Gate
282
+ uses: sonarsource/sonarqube-quality-gate-action@master
283
+ timeout-minutes: 5
284
+ env:
285
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
286
+ ```
287
+
288
+ ## Language-Specific Tools
289
+
290
+ ### Python (Bandit)
291
+
292
+ ```bash
293
+ # Install
294
+ pip install bandit
295
+
296
+ # Run scan
297
+ bandit -r src/ -f json -o bandit-report.json
298
+
299
+ # With configuration
300
+ bandit -r src/ -c bandit.yaml
301
+ ```
302
+
303
+ ```yaml
304
+ # bandit.yaml
305
+ skips: ['B101', 'B601']
306
+ exclude_dirs: ['tests', 'venv']
307
+
308
+ assert_used:
309
+ skips: ['*_test.py', '*_tests.py']
310
+ ```
311
+
312
+ ### JavaScript (ESLint Security)
313
+
314
+ ```bash
315
+ # Install
316
+ npm install eslint eslint-plugin-security --save-dev
317
+ ```
318
+
319
+ ```javascript
320
+ // .eslintrc.js
321
+ module.exports = {
322
+ plugins: ['security'],
323
+ extends: ['plugin:security/recommended'],
324
+ rules: {
325
+ 'security/detect-object-injection': 'error',
326
+ 'security/detect-non-literal-regexp': 'warn',
327
+ 'security/detect-unsafe-regex': 'error',
328
+ 'security/detect-buffer-noassert': 'error',
329
+ 'security/detect-eval-with-expression': 'error',
330
+ 'security/detect-no-csrf-before-method-override': 'error',
331
+ 'security/detect-possible-timing-attacks': 'warn'
332
+ }
333
+ };
334
+ ```
335
+
336
+ ### Ruby (Brakeman)
337
+
338
+ ```bash
339
+ # Install
340
+ gem install brakeman
341
+
342
+ # Run scan
343
+ brakeman -o brakeman-report.json -f json
344
+
345
+ # CI configuration
346
+ brakeman --no-exit-on-warn --no-exit-on-error -o report.html
347
+ ```
348
+
349
+ ## Quality Gates
350
+
351
+ ### SonarQube Quality Gate
352
+
353
+ ```json
354
+ {
355
+ "name": "Security Gate",
356
+ "conditions": [
357
+ {
358
+ "metric": "new_security_rating",
359
+ "op": "GT",
360
+ "error": "1"
361
+ },
362
+ {
363
+ "metric": "new_vulnerabilities",
364
+ "op": "GT",
365
+ "error": "0"
366
+ },
367
+ {
368
+ "metric": "new_security_hotspots_reviewed",
369
+ "op": "LT",
370
+ "error": "100"
371
+ }
372
+ ]
373
+ }
374
+ ```
375
+
376
+ ### Custom Gate Script
377
+
378
+ ```bash
379
+ #!/bin/bash
380
+ # security-gate.sh
381
+
382
+ CRITICAL=$(cat results.json | jq '[.results[] | select(.severity == "critical")] | length')
383
+ HIGH=$(cat results.json | jq '[.results[] | select(.severity == "high")] | length')
384
+
385
+ echo "Critical: $CRITICAL, High: $HIGH"
386
+
387
+ if [ "$CRITICAL" -gt 0 ]; then
388
+ echo "FAILED: Critical vulnerabilities found"
389
+ exit 1
390
+ fi
391
+
392
+ if [ "$HIGH" -gt 5 ]; then
393
+ echo "FAILED: Too many high severity vulnerabilities"
394
+ exit 1
395
+ fi
396
+
397
+ echo "PASSED: Security gate"
398
+ exit 0
399
+ ```
400
+
401
+ ## Common Issues
402
+
403
+ ### Issue: Too Many False Positives
404
+ **Problem**: Alerts on safe code patterns
405
+ **Solution**: Tune rules, add suppressions, use baseline
406
+
407
+ ### Issue: Slow Scans
408
+ **Problem**: SAST taking too long in CI
409
+ **Solution**: Incremental scanning, parallel execution, exclude test files
410
+
411
+ ### Issue: Missing Coverage
412
+ **Problem**: Vulnerabilities not detected
413
+ **Solution**: Add custom rules, combine multiple tools
414
+
415
+ ## Best Practices
416
+
417
+ - Run on every PR/commit
418
+ - Establish baseline for existing code
419
+ - Prioritize by severity and exploitability
420
+ - Maintain custom rules for your codebase
421
+ - Integrate with IDE for early feedback
422
+ - Track trends over time
423
+ - Document false positive suppressions
424
+ - Combine with DAST for comprehensive coverage
425
+
426
+ ## Related Skills
427
+
428
+ - dast-scanning (`dast-scanning`) - Dynamic testing
429
+ - dependency-scanning (`dependency-scanning`) - Dependency vulnerabilities
430
+ - github-actions (`github-actions`) - CI integration
431
+
432
+ ## Limitations
433
+
434
+ - Apply guidance only within authorized scope; test destructive steps in non-production first.
435
+ - Docs-only import: upstream scripts and templates not bundled.
436
+
437
+ ### Example
438
+
439
+ ```bash
440
+ # Read-only first: inventory before any active step.
441
+ which <tool> && <tool> --help | head -n 20
442
+ ```
443
+
444
+ > 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.