skilly.
All skills
Security / AGENT SKILL

secrets-detection

Vitammiin/agent-vorcl-flow
0 installs 2 GitHub stars
0

Обнаружение секретов в коде и git-истории — паттерны ключей (sk-, ghp_, AKIA, xox., private keys, user:pass@), поиск в рабочем дереве и git log -p --all, gitleaks/trufflehog и gre…
Обнаружение секретов в коде и git-истории — паттерны ключей (sk-, ghp_, AKIA, xox., private keys, user:pass@), поиск в рабочем дереве и git log -p --all, gitleaks/trufflehog и grep-альтернативы, фильтр ложных срабатываний (env-подстановки, плейсхолдеры), протокол реагирования с обязательной ротацией. Use для поиска утёкших ключей/токенов/паролей и проверки перед пушем.

Low community score

secrets-detection: This skill has a community score below −5, meaning it has received more downvotes than upvotes. Review its source and assessment before installing. Community votes are not a security review.

BEFORE YOU INSTALL

Understand the trade-offs.

SECURITY REVIEW

Not yet assessed

Review the original instructions and requested permissions before installing.

No security review is available for this catalog entry yet.

SKILL QUALITY

Not yet assessed

How clearly the skill guides your agent, how complete its workflow is, and how you can check the outcome.

No quality assessment is available for this catalog entry yet.

The full skill.

Original instructions from the publisher’s SKILL.md

# Навык: Обнаружение секретов

Ключевой принцип: **найденный секрет = скомпрометирован**. Ключ, побывавший в git-истории, считается утёкшим независимо от приватности репозитория; удаление из истории утечку НЕ отменяет — обязательна ротация.

## 1. Паттерны секретов
| Префикс/форма | Провайдер | Regex (rg) |
|---|---|---|
| `sk-`, `sk-ant-`, `sk-proj-` | OpenAI / Anthropic | `sk-[A-Za-z0-9_-]{20,}` |
| `ghp_`, `github_pat_`, `gho_`, `ghs_` | GitHub token/PAT | `gh[pos]_[A-Za-z0-9]{36,}` · `github_pat_[A-Za-z0-9_]{22,}` |
| `AKIA` (+ secret 40 симв.) | AWS access key | `AKIA[0-9A-Z]{16}` |
| `xoxb-`/`xoxp-`/`xoxa-`/`xoxs-` | Slack | `xox[bpoas]-[A-Za-z0-9-]{10,}` |
| `rnd_` | Render API | `rnd_[A-Za-z0-9]{20,}` |
| `fc-` | Firecrawl | `fc-[a-f0-9]{24,}` |
| `AIza` | Google API | `AIza[0-9A-Za-z_-]{35}` |
| `Bearer <токен>` литералом | любой | `Bearer\s+[A-Za-z0-9._~+/-]{20,}` (не `Bearer \$\{`) |
| `eyJ…` длинный | JWT (сам может быть секретом) | `eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9._-]{20,}` |
| PEM-блоки | private keys | `-----BEGIN (RSA \|EC \|OPENSSH \|PGP )?PRIVATE KEY-----` |
| URL с кредами | connection strings | `[a-z][a-z0-9+.-]*://[^/\s:@]+:[^@\s]+@` |
| Присваивания | generic | `(?i)(password\|passwd\|secret\|api_?key\|token)\s*[:=]\s*['"][^'"]{8,}` |

## 2. Где искать (все четыре слоя)
```bash
rg -n --hidden -g '!node_modules' -g '!.git' '<паттерн>'      # 1. рабочее дерево (включая dotfiles)
git ls-files | grep -iE '\.env'                                # 2. .env закоммичен? + есть ли в .gitignore
git log -p --all -S 'AKIA' --pickaxe-regex                     # 3. вся история, все ветки
git log --all --diff-filter=D --summary | grep delete          # 4. удалённые файлы (диффы смотри git show <commit>^:<path>)
git grep -nE '<паттерн>' $(git rev-list --all) -- .            # альтернатива: grep по каждому коммиту (медленно, полно)
```
Не забывай: staged-изменения (`git diff --cached`), stash (`git stash list` + `git stash show -p`), сорсмапы и артефакты сборки, если закоммичены.

## 3. Инструменты (если установлены) и ручной fallback
| Инструмент | Команда | Что даёт |
|---|---|---|
| **gitleaks** | `gitleaks detect --log-opts="--all" -v` | дерево + вся история, готовые правила, низкий шум |
| **trufflehog** | `trufflehog git file://. --only-verified` | верификация ключей живыми запросами к провайдеру |
| нет ни того ни другого | `rg`/`git log -p -S`/`git grep` по таблице §1 | ручной прогон — честно пометь это в отчёте |
Ничего не устанавливай в чужой проект в рамках read-only аудита — при отсутствии инструментов работай grep'ами.

## 4. Что НЕ секрет (фильтр до отчёта)
- **Env-подстановки:** `${API_KEY}`, `${DB_URL:-postgres://localhost}`, `process.env.SECRET`, `$ENV_VAR` — это ссылки на секрет, не секрет.
- **Плейсхолдеры:** `<your-api-key>`, `xxx`, `changeme`, `sk-...`, `TODO`, `dummy`, `example`.
- **Документация/тесты:** очевидные фейки (`sk-test-1234`, `AKIAIOSFODNN7EXAMPLE` — официальный пример AWS), faker-данные.
- **Публичные по дизайну:** Google Maps browser key с рестрикциями, публичные Sentry DSN, VAPID public key — понизь severity/пометь, но проверь рестрикции.
Сомневаешься, реальный ли ключ (энтропия высокая, но контекст неясен) — секция «требует проверки», не false confidence в обе стороны.

## 5. Протокол при находке
1. **Ротация ключа — обязательна и первична.** Отозвать/перевыпустить у провайдера. Удаление строки/переписывание истории утечку не отменяет.
2. Проверить логи провайдера на использование ключа за период экспозиции.
3. Чистка истории (`git filter-repo`/BFG) — вторично, отдельной задачей на `gitflow` (переписывание истории — force-push, координация с командой).
4. Предотвращение: секрет → env/менеджер секретов, `.env` в `.gitignore`, pre-push чек (`/security:pre-push`), gitleaks в CI.
5. Отчёт: `file:line` или коммит-хэш + путь, провайдер, severity (реальный ключ = critical), значение в отчёте — **маскировать** (`sk-ant-…Xy9Q`, первые/последние 4 символа).