一键导入
vulnerability-scanning
Local vulnerability scans: dependencies, secrets, GitHub Actions, SAST, SBOM, package intake, cron/predeploy.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Local vulnerability scans: dependencies, secrets, GitHub Actions, SAST, SBOM, package intake, cron/predeploy.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | vulnerability-scanning |
| description | Local vulnerability scans: dependencies, secrets, GitHub Actions, SAST, SBOM, package intake, cron/predeploy. |
Use this skill to inspect codebases, choose local security scanners, run the repo CLI or direct tools, and report evidence-backed findings without requiring SaaS services for normal scans.
python3 scripts/vuln-scan.py validate-tools --config templates/config-starter.yaml --format text
Use --deep before broad or unattended scans. Do not install scanners unless
the user explicitly asks for setup or approves host changes. Missing scanners,
timeouts, unsupported targets, and parse failures are setup debt, not clean
coverage. Install guidance lives in references/install-tools.md.
scripts/vuln-scan.py scan when it supports the requested mode.templates/config-starter.yaml; override narrowly.full focused on security: dependencies, broad repo, secrets, workflow, and SAST.--scan-mode hygiene is requested.package_intake.osv_api_enabled: false unless the user wants public OSV lookup.--output and --artifact-dir outside target repos for multi-repo scans, usually under /tmp.Run a normal scan:
python3 scripts/vuln-scan.py scan \
--config templates/config-starter.yaml \
--root /path/to/repo-or-workspace \
--scan-mode full \
--output /tmp/vuln-summary.json \
--artifact-dir /tmp/vuln-artifacts \
--format text
Plan without scanner execution:
python3 scripts/vuln-scan.py plan --config templates/config-starter.yaml --root /path/to/repo --scan-mode full --format text
List engines or validate tools:
python3 scripts/vuln-scan.py list-engines --format text
python3 scripts/vuln-scan.py validate-tools --config templates/config-starter.yaml --format text --deep
Retest focused engines:
python3 scripts/vuln-scan.py scan --root /path/to/repo --scan-mode full --only-engine trivy --output /tmp/vuln-summary.json --artifact-dir /tmp/vuln-artifacts --format text
Render an existing JSON summary:
python3 scripts/vuln-scan.py render-report /tmp/vuln-summary.json --format text
For more examples, direct tool fallback syntax, and parser expectations, read
README.md and references/.
scripts/nightly-vuln-scan.py may remain in use for existing cron jobs.references/install-tools.md for install commands and tool-specific troubleshooting.$HOME/.hermes/vuln_knowledge.json or the configured tracker path to avoid reprocessing known fixed, unfixable or blocked findings until their retry window expires.| Mode | Use |
|---|---|
full | Default local security scan; SBOM, hygiene, supply-chain, and licenses remain explicit |
dependencies | Known vulnerable dependency checks |
secrets | Secret scanning and git-tracked .env* checks |
ci | GitHub Actions and CI workflow checks |
supply-chain | Package-intake and malicious-package behavior checks |
sast | Source-code security scanning |
sbom | SBOM generation and optional SBOM vulnerability checks |
hygiene | Repo security hygiene checks |
remediation-prep | Group findings by likely fix strategy without editing |
| Evidence or request | Preferred scanner |
|---|---|
| Supported dependency manifests or lockfiles | OSV Scanner first, then native audit |
bun.lock or bun.lockb | bun audit --json |
package-lock.json | npm audit --json |
pnpm-lock.yaml | pnpm audit --json |
| Python manifests | pip-audit |
| Rust manifests | cargo audit |
| Go or JVM manifests | OSV Scanner; add dedicated tooling only when implemented or direct-run and reported |
| Dockerfile, Compose, Terraform, Kubernetes, Helm | Trivy filesystem scan |
| Image target | Trivy image scan |
| License review | Add --include-licenses |
| Secrets-only or git repo | Gitleaks; TruffleHog for verified credential checks |
| Missing secret tools | Built-in metadata-only secret-pattern scan |
| New npm or PyPI dependency | GuardDog; optional OSV API lookup only when enabled or requested |
| GitHub Action intake | GuardDog, zizmor, action pinning checks |
.github/workflows | zizmor and actionlint |
| Source security scan | Semgrep CE with --config=auto |
| SBOM requested | Syft, then Grype when vulnerability scan from SBOM is needed |
| Repo hygiene requested | OpenSSF Scorecard, noting network/API requirements |
--allowed-root, --allowed-label-prefix, --forbidden-label-prefix, and --fail-on-scope-violation for unattended scans.Every non-silent report must include:
scanned, verified_clean, not_requested, not_applicable, skipped, unsupported, scanner_missing, scanner_failed, or timed_outNever print secret values. Report metadata only: file, line, detector, severity,
confidence, git-tracked state, and remediation hint. Normalized report fields
are documented in references/report-schema.md.
For unattended cron delivery, respond exactly:
[SILENT]
Only do this when there are zero findings, actionable setup-debt items, scope
violations, parse failures, and scanner timeouts. Do not return [SILENT] if a
missing tool prevented coverage.
For dependency intake, identify ecosystem and package, then run:
python3 scripts/vuln-scan.py package-intake npm package-name --output /tmp/package-intake.json --artifact-dir /tmp/package-intake-artifacts --format text
Supported ecosystems: npm, pypi, go, rubygems, github_action,
extension. Return one of allow, allow with caution, avoid, or
blocked pending review. Do not add the dependency unless separately asked.
The scan phase is read-only. Run Codex remediation only when the user explicitly
asks or the command includes --auto-remediate.
For remediation, preserve one log per repo under the artifact directory and guard each task:
Use $HOME/.hermes/vuln_knowledge.json or the configured tracker path to skip
known fixed/unfixable/blocked findings until their retry window expires.