Сканирование секретов стало стандартной практикой в инженерных командах, и Gitleaks долгое время был одним из самых популярных инструментов в этой области. Автор того проекта теперь выпустил новый инструмент под названием Betterleaks, предназначенный для поиска утечек учетных данных, API-ключей, токенов и паролей в git-репозиториях, директориях и стандартном вводе.
Захари Райс, написавший исходный код Gitleaks примерно восемь лет назад и ныне возглавляющий направление сканирования секретов в Aikido Security, является руководителем проекта Betterleaks.

Сравнение времени сканирования с Gitleaks на реальных репозиториях (Источник: страница Betterleaks на GitHub)
Райс пояснил в публикации, что он больше не имеет полного контроля над репозиторием и названием Gitleaks, что и побудило его начать новый проект. Betterleaks создан как прямая замена Gitleaks, то есть существующие флаги командной строки и файлы конфигурации работают без изменений.
Наиболее значимое техническое изменение в Betterleaks — это подход к фильтрации потенциальных секретов. Gitleaks, как и многие сканеры, полагается на энтропию Шеннона для выявления строк, похожих на секреты. Betterleaks представляет иную методику под названием «Эффективность токенов», основанную на токенизации методом байтовых пар.
Этот подход измеряет, насколько хорошо токенизатор BPE сжимает данную строку. Естественный язык эффективно сжимается в длинные токены, демонстрируя высокую эффективность. Секреты и случайные строки сжимаются плохо, порождая множество коротких токенов и низкую эффективность. Betterleaks использует этот сигнал для отсева ложных срабатываний. По данным Райса, на наборе данных CredData методика эффективности токенов показала полноту 98,6% против 70,4% у метода энтропии.
Логика валидации в Betterleaks написана с использованием Common Expression Language, что дает авторам правил программный контроль над тем, что считается подтвержденным секретом.
Инструмент также по умолчанию обрабатывает дважды и трижды закодированные секреты и поддерживает параллельное сканирование git для сокращения времени проверки. Он написан на чистом Go без CGO, что устраняет зависимость от Hyperscan и позволяет развертывать его в различных средах без требований к нативным библиотекам. Инструмент поддерживает сканирование архивов, включая вложенные, и выводит результаты в форматах JSON, CSV, JUnit, SARIF, а также по пользовательским шаблонам.
Дорожная карта проекта включает несколько функций, отсутствующих в текущем релизе v1. Райс описал планы по классификации с помощью ИИ, когда анонимизированные потенциальные секреты передаются локальной или удалённой языковой модели для получения дополнительного контекста. Запланирована поддержка автоматического отзыва для провайдеров, предоставляющих API для аннулирования учётных данных. Команда также намерена добавить сопоставление разрешений, которое будет показывать, какой доступ на самом деле предоставляет обнаруженный секрет.
Инструмент разработан с флагами для управления выводом, чтобы ИИ-агенты для программирования могли запускать его как подпроцесс и потреблять его вывод без избыточных затрат на токены. Райс отметил, что агенты, работающие в таких инструментах, как Claude Code или Cursor, обращаются к CLI-утилитам с управляемым выводом, и Betterleaks создан в соответствии с этой моделью.
Betterleaks доступен бесплатно на GitHub.

Обязательно к прочтению:

Подпишитесь на ежемесячную рассылку Help Net Security без рекламы, чтобы быть в курсе важнейших инструментов кибербезопасности с открытым исходным кодом. Подписаться можно здесь!
