用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill owasp-security-scan命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | owasp-security-scan |
| description | > Use when this capability is needed. |
Runs a layered, OWASP Top 10-aligned security audit across Go, TypeScript, and Python projects using best-in-class open-source tools. Produces a consolidated findings report with severity, OWASP category, and remediation guidance.
| Layer | Purpose | Tools |
|---|---|---|
| SAST | Static code analysis | Semgrep (all langs), gosec (Go), Bandit (Python) |
| SCA | Dependency CVEs | go mod + govulncheck (Go), npm audit (TS), pip-audit (Python) |
| Secrets | Hardcoded credentials | gitleaks |
| IaC | Dockerfile/config misconfig | Semgrep IaC rules |
# Detect what's present
[ -f go.mod ] && echo "GO" || true
[ -f package.json ] && echo "TYPESCRIPT" || true
[ -f requirements.txt ] || [ -f pyproject.toml ] || [ -f Pipfile ] && echo "PYTHON" || true
find . -name "*.go" | head -1
find . -name "*.ts" -not -path "*/node_modules/*" | head -1
find . -name "*.py" | head -1
Run scans only for detected languages. Skip gracefully with a note if a language isn't present.
# Semgrep (cross-language, required for all projects)
command -v semgrep || pip install semgrep --break-system-packages
# Go tools
command -v gosec || go install github.com/securego/gosec/v2/cmd/gosec@latest
command -v govulncheck || go install golang.org/x/vuln/cmd/govulncheck@latest
# Python tools
command -v bandit || pip install bandit --break-system-packages
command -v pip-audit || pip install pip-audit --break-system-packages
# Secrets scanning
command -v gitleaks || (curl -sSfL https://raw.githubusercontent.com/gitleaks/gitleaks/main/scripts/install.sh | sh -s -- -b /usr/local/bin 2>/dev/null || brew install gitleaks 2>/dev/null || echo "gitleaks not installed - skipping secrets scan")
# SAST - gosec maps to OWASP Top 10
gosec -fmt json -out gosec-results.json ./... 2>/dev/null || gosec -fmt json ./... > gosec-results.json 2>&1
# Dependency CVEs
govulncheck ./... 2>&1 | tee govulncheck-results.txt
# Semgrep - Go-specific OWASP rules
semgrep --config "p/golang" --config "p/owasp-top-ten" \
--json --output semgrep-go.json \
--exclude "vendor/" --exclude "*_test.go" \
. 2>/dev/null
# Dependency CVEs
npm audit --json > npm-audit.json 2>/dev/null || true
# Semgrep - TS/JS OWASP rules
semgrep --config "p/javascript" --config "p/typescript" \
--config "p/owasp-top-ten" --config "p/nodejs" \
--json --output semgrep-ts.json \
--exclude "node_modules/" --exclude "dist/" --exclude "build/" \
. 2>/dev/null
# SAST - Bandit maps findings to CWE/OWASP
bandit -r . -f json -o bandit-results.json \
--exclude ".venv,venv,tests,test" 2>/dev/null || \
bandit -r . -f json --exclude ".venv,venv" > bandit-results.json 2>&1
# Dependency CVEs
pip-audit --format json --output pip-audit.json 2>/dev/null || \
pip-audit > pip-audit.txt 2>&1
# Semgrep - Python OWASP rules
semgrep --config "p/python" --config "p/owasp-top-ten" \
--json --output semgrep-py.json \
--exclude ".venv" --exclude "venv" --exclude "tests" \
. 2>/dev/null
gitleaks detect --source . --report-format json \
--report-path gitleaks-results.json --no-git 2>/dev/null || \
gitleaks detect --source . --report-format json \
--report-path gitleaks-results.json 2>/dev/null || true
Read each output file and build a unified finding list. For each finding, extract:
references/owasp-mapping.mdreferences/remediation-guide.md for standard fixesSeverity mapping from tool scores:
Present findings in this structure:
## Security Scan Report
**Date**: <date>
**Project**: <detected name>
**Languages Scanned**: Go | TypeScript | Python
---
### Summary
| Severity | Count |
|-----------|-------|
| Critical | X |
| High | X |
| Medium | X |
| Low | X |
---
### Critical & High Findings
For each finding:
**[SEVERITY] OWASP Category - Short Description**
- File: `path/to/file.go:42`
- Tool: gosec (G304)
- Detail: <what the issue is>
- Fix: <concrete remediation - see references/remediation-guide.md>
---
### Dependency Vulnerabilities
<list CVEs with affected package, version, fix version>
---
### Secrets Detected
<file, type of secret, line - NEVER print the actual secret value>
---
### Medium / Low Findings
<condensed table: File | Issue | Tool | Fix Link>
---
### Recommended Next Steps
1. <prioritized action items>
After presenting the report:
references/ci-workflow.md// #nosec G304, # nosec, // eslint-disable-line)Load these on-demand as needed:
| File | Load When |
|---|---|
references/owasp-mapping.md | Mapping tool codes -> OWASP Top 10 categories |
references/remediation-guide.md | Standard fix patterns per vulnerability type |
references/ci-workflow.md | GitHub Actions / CI pipeline templates |
references/tool-config.md | .semgrepignore, .bandit, gosec config examples |
go mod tidy, npm install, or pip freeze--max-target-bytes 1000000 to semgrep; warn user scans may take timereferences/ci-workflow.md)Source: everydaydevopsio/ballast — distributed by TomeVault.