Находит учётные данные и секреты с помощью более чем 170 правил, охватывающих исходный код, веб-URL и CI/CD, проверяет их через API поставщиков и формирует отчёты в форматах SARIF, JSONL, HTML, PDF или Excel.
DAST + SAST сканер секретов с живой проверкой, разбором source-map и отчётностью, встроенной в CI, плюс движок для поиска уязвимостей и ошибок конфигурации SAST.
Находите утёкшие учётные данные в деревьях исходного кода, работающих веб-приложениях и логах CI. Проверяйте их вживую через API вендоров. Сканируйте те же деревья исходного кода на уязвимости кода и ошибки конфигурации. Выводите SARIF для дашбордов сканирования кода, JSONL для конвейеров SOAR или Excel/PDF/HTML для отчётов клиентам.
Переполненный ландшафт (gitleaks, trufflehog, detect-secrets) отлично справляется с SAST по git-деревьям, но на этом останавливается — и они ищут только секреты. scan4secrets закрывает пробелы, которые они не покрывают, добавляя живой веб-DAST, живую проверку через вендоров и движок для поиска уязвимостей кода / ошибок конфигурации поверх обнаружения секретов:
| Возможность | gitleaks | trufflehog | detect-secrets | scan4secrets |
|---|---|---|---|---|
| SAST-обнаружение секретов | Y | Y | Y | Y |
| Живой веб-краулинг DAST | - | - | - | Y |
| Разбор JS source-map | - | - | - | Y |
| Извлечение JS-эндпоинтов | - | - | - | Y |
| Сканирование секретов в HTTP-заголовках | - | - | - | Y |
| Живая проверка токенов | - | Y | - | Y |
| Вывод SARIF | Y | - | - | Y |
| Отчёты Excel / PDF / HTML | - | - | - | Y |
| Энтропийный фильтр + allowlist | Y | Y | Y | Y |
| Схема правил YAML | - (TOML) | - | - | Y |
| Аутентифицированный DAST (cookie/header/proxy) | н/д | н/д | н/д | Y |
| Обнаружение уязвимостей / ошибок конфигурации SAST | - | - | - | Y |
Это дополнение к gitleaks, а не замена. Используйте оба: gitleaks в pre-commit + CI для SAST по истории git, scan4secrets для живого DAST против staging/production.
# из исходников
git clone https://github.com/m14r41/scan4secrets
cd scan4secrets
pip install -e .
# ИЛИ через pipx
pipx install git+https://github.com/m14r41/scan4secrets
# ИЛИ Docker
docker run --rm -v $(pwd):/scan ghcr.io/m14r41/scan4secrets:latest --path /scan
После установки команда scan4secrets доступна в вашем PATH.
# SAST: сканирование локального каталога
scan4secrets --path /code
# DAST: краулинг живого таргета
scan4secrets --url https://staging.example.com --threads 32
# DAST по умолчанию запускает ВСЕ встроенные словари (1279 путей: /.env, /wp-config.php, /backup.zip, ...)
scan4secrets --url https://target.com
# Использовать СВОЙ файл словаря (заменяет встроенный набор)
scan4secrets --url https://target.com --wordlist /path/to/my-paths.txt
# Объединить несколько пользовательских файлов словарей
scan4secrets --url https://target.com --wordlist seclists/Common.txt internal-paths.txt
# Ограничиться конкретными встроенными словарями по имени
scan4secrets --url https://wp.example.com --wordlist-only wordpress common env
# Полностью отключить подстановку словарей (следовать только по живым ссылкам)
scan4secrets --url https://target.com --no-wordlist
# Полный аудит с проверкой + HTML-отчётом
scan4secrets --path . --url https://app.example.com \
--verify --report html sarif json \
--output reports/audit-$(date +%F)
# Аутентифицированный DAST с прокси (работает с Burp / ZAP)
scan4secrets --url https://app.example.com \
--cookie "session=abc123" \
--header "X-Tenant: acme" \
--proxy http://127.0.0.1:8080
# CI-гейт (выход 1, если что-либо >= high)
scan4secrets --path . --report sarif --fail-on high \
--output reports/scan
# SAST: секреты + уязвимости кода / ошибки конфигурации
scan4secrets --path ./src --misconfig
# SAST: только уязвимости / ошибки конфигурации (пропустить обнаружение секретов)
scan4secrets --path ./src --misconfig-only
--misconfig)Помимо секретов, scan4secrets поставляется с движком SAST для уязвимостей кода и ошибок конфигурации. Добавьте --misconfig, чтобы сканировать и секреты, и уязвимости, или --misconfig-only, чтобы сканировать только уязвимости:
scan4secrets --path ./src --misconfig # секреты + уязвимости
scan4secrets --path ./src --misconfig-only # только уязвимости
scan4secrets --path . --misconfig --report html --output report
Он обнаруживает — с taint/контекстной фильтрацией для снижения ложных срабатываний — SQL-инъекции, NoSQL-инъекции, инъекции команд ОС, инъекции кода (eval), SSTI, XXE, небезопасную десериализацию, LFI / обход пути, LDAP- и XPath-инъекции, SSRF, открытый редирект, ошибку конфигурации CORS, отключённый CSRF, prototype pollution, XSS (отражённый/хранимый/DOM в 11 шаблонизаторах: EJS, Handlebars, Pug, Jinja, Thymeleaf, Razor, Blade, ERB, Vue, Angular, React), слабую криптографию (DES/RC4/ECB/статический IV/слабый RSA), небезопасную генерацию случайных чисел, изъяны JWT (alg:none, путаница алгоритмов, захардкоженный секрет подписи, отключённая проверка), обходы TLS, небезопасные по времени сравнения секретов, SAML без обязательной подписи, захардкоженные учётные данные, логирование конфиденциальных данных и ошибки конфигурации IaC/config (Terraform, Kubernetes, Dockerfile, GitHub Actions, ASP.NET web.config, WCF/SOAP).
Поддерживаемые языки: python, node, javascript, typescript, react, php, ruby, go, java, kotlin, csharp/.NET, sql, а также XML/WSDL, JSP, Terraform/HCL, Kubernetes YAML и Dockerfile.
Каждая находка уязвимости несёт богатую запись: Название уязвимости, Критичность, Описание, Доказательство (file:line), Уязвимый код, Безопасный код, Рекомендации по устранению, Техническое воздействие, Влияние на бизнес и сопоставление с CWE + OWASP Top-10.
Помимо построчного движка, проход по всему файлу ловит секреты, которые построчные сканеры пропускают: вложенные XML-теги (<SMS_API_KEY><value>…</value></SMS_API_KEY>), разделённые пары <key>/<value>, JSON-объекты ключ/значение, многострочные YAML/properties и секреты в кодировке Base64. Он также закрывает слепую зону энтропийного фильтра — присваивания с именами, указывающими на учётные данные (например, AM_CLIENT_SECRET=…), помечаются по сигналу имени без порога энтропии, так что реальные низкоэнтропийные секреты больше не отбрасываются молча.
Всего 416 правил — 193 правила для секретов + 223 правила для уязвимостей / ошибок конфигурации.
Правила для секретов охватывают: