Всем привет!



Держите на удачу заметку.



Talisman - утилита выявления секретов (SSH ключи, токены и пр) в локальных git-репозиториях, размещённых на рабочих станциях разработчиков. Она умеет не только искать секреты, но и предотвращать их публикацию либо на этапе commit, либо на этапе push.



Как ставится:

Утилита может запускаться на ОС Windows, Linux, Mac OSX. Установка выполняется одним из следующих образов:

🍡Как git hook на уровне глобального шаблона git hook template

🍡Как git hook для конкретного репо



Как работает:

После установки Talisman автоматически запускает проверки на наличие секретов до того как будет выполнен commit или push. В случае, если был обнаружен секрет, утилита выведет отчёт с указанием названия файла и типа секрета в нем.



Что сканирует:

Talisman запускает следующие проверки:

🍡Вшитые значения в формате base 64, hex и пр.

🍡Содержимое файлов  - выявление паролей и ключевых фраз

🍡Размер файла - сканирование больших файлов, потенциально содержащих ключи и другие данные

🍡Энтропия - сканирование контента с потенциально высокой энтропией

🍡Номера кредитных карт

🍡Имена файлов - сканирование имён файлов и расширений, которые могут потенциально подходить под файлы с чувствительными данными



Ещё немного деталей:

🍡Можно настраивать правила игнора, например, для файлов или кочевых слов, задавать свои шаблоны поиска секретов, устанавливать уровни критичности и пр

🍡При использовании force push конструкция не работает

🍡Если нужно запускать несколько hook-ов, то можно воспользоваться такими инструментами как pre-commit и husky

🍡У утилиты есть CLI и ее можно встроить в CI/CD для сканирования истории в репо на наличие секретов или генерации отчета в формате html



Более подробную информацию можно посмотреть тут: https://github.com/thoughtworks/talisman