Quét bảo mật diff hoặc repo hiện tại — secret (không in giá trị), file nhạy cảm đang track/trong history, dependency audit, guard/hook/deny rule của kit, rồi review code đổi theo OWASP. Dùng khi user gõ /sec, trước commit/PR/release, hoặc sau khi diff đụng auth, input, file credential, dependency.
Installs into .claude/skills of the current project.
Are you the author of Sec?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/8-sync-dev-sec)
---
name: sec
description: Quét bảo mật diff hoặc repo hiện tại — secret (không in giá trị), file nhạy cảm đang track/trong history, dependency audit, guard/hook/deny rule của kit, rồi review code đổi theo OWASP. Dùng khi user gõ /sec, trước commit/PR/release, hoặc sau khi diff đụng auth, input, file credential, dependency.
argument-hint: [diff | repo]
---
Mặc định quét diff hiện tại (`git diff` + file untracked); `repo` hoặc không có diff → cả repo. Chỉ báo file:dòng + loại, KHÔNG in giá trị secret.
1. **Secret:** `gitleaks detect --no-banner --redact` nếu có; không có → regex trên file đang track và diff: khoá API (AWS, GitHub, Anthropic, OpenAI, Slack), header PEM private key, gán `password|secret|token` bằng chuỗi literal dài. Nói rõ đã dùng công cụ nào.
2. **File nhạy cảm:** `git ls-files` và `git log --all --name-only --format=` lọc `.env` (trừ `.example/.sample/.template`), `*.pem`, `*.p12`, `*.session`, `*.pkl`, `id_rsa*`, `id_ed25519*`, `credentials*`. Còn trong history → `git filter-repo` + rotate.
3. **Dependency audit** — chỉ chạy công cụ có sẵn, thiếu thì ghi "skipped: thiếu <tool>": `cargo audit` (Cargo.lock) · `pnpm audit` / `npm audit` (lockfile tương ứng) · `govulncheck ./...` (go.mod) · `pip-audit` (requirements/pyproject).
4. **Kit:** chạy `8sync ccc status` — guard hook, verify/stop gate, deny rule `.env`/key/force-push còn bật không; managed-settings có không. Thiếu → `8sync ccc kit`; muốn siết cả máy → `/harden`.
5. **Review code đổi theo OWASP:** có `/security-review` built-in và skill `senior-security` → dùng chúng cho bước này, không viết lại. Tự làm thì soát: injection (SQL/shell/path), authN/authZ thiếu, SSRF, deserialization, crypto yếu, log lộ dữ liệu, CORS/CSRF, `unsafe`/`eval`/`exec` mới.
6. **Báo cáo:** bảng `mức | mục | file:dòng | việc cần làm`. **BLOCK** (secret thật, lỗ hổng khai thác được — dừng ship) · **WARN** (rủi ro cần user quyết) · **OK** (liệt kê ngắn mục sạch + mục bị skip).
7. Secret thật → bảo user rotate NGAY và xoá khỏi history; không tự rotate, không tự xoá, không lặp lại giá trị.
Liên quan: `/aup-audit` (quét theo Usage Policy) · `/rules` (được phép không) · `/harden` (cấu hình Claude Code).