12 декабря 2023

Блог

Улучшаем защиту ПО с помощью инструмента Gitleaks

Мы со всей серьезностью относимся к информационной безопасности наших продуктов и потому продолжаем внедрять в работу новые инструменты для аудита ПО. Рассказываем об использовании Gitleaks на web-проектах.

Один из наших принципов работы заключается в том, что мы проводим анализ разрабатываемых продуктов на уязвимости прежде, чем приложение или web-решение выйдет в продакшн. В начале этого года мы рассказывали, что начали применять фреймворк MobSF в процессе разработки, а теперь перешли к внедрению Gitleaks.

Что такое Gitleaks и зачем он нужен?

Gitleaks – это open source инструмент, который используется для поиска потенциальных секретов в Git репозиториях web-решений. С помощью статического анализа он сканирует файлы и код и находит в среде разработчика такие секреты, как API‑ключи, пароли, токены доступа и другие.

Прежде чем остановить свой выбор на Gitleaks, мы провели бенчмаркинг — по его результатам стало ясно, что этот инструмент полностью отвечает нашим требованиям. Кроме того, его также используют известные компании в сфере кибербезопасности.

Репозиторий с Gitleaks лежит на GitHub в свободном доступе, и абсолютно любой разработчик может скачать его, чтобы проверить код и убедиться в его надежности. Этот проект впервые появился в 2018 году и сейчас насчитывает уже 156 версий — последняя вышла несколько недель назад.

Git Hub Gitleaks

Благодаря тому, что с каждым обновлением в Gitleaks появляются дополнительные функции и новые алгоритмы поиска секретов, он остается востребованным среди разработчиков по всему миру, и мы не исключение.

Процесс внедрения Gitleaks в работу

Шаблоны внедрения инструмента, как и допустимость нахождения конкретного секрета в коде, могут разниться от проекта к проекту. Для начала мы решили использовать стандартный шаблон с базовыми параметрами поиска секретов. В дальнейшем, после тестового периода планируем адаптировать правила поиска под нужды различных проектов.

Внедрение инструмента Gitleaks происходит следующим образом:

1.       копируем готовый пайплайн из шаблона Gitleaks в пайплайн репозитория проекта

2.       регистрируем пайплайн в репозитории проекта

3.      выбираем ветку Master, заходим в ее настройки и нажимаем на «Branch policies»

4.      в пункте «Build validation» выбираем зарегистрированный пайплайн Gitleaks

5.      после этого он отобразится на странице «Pull Requests» в графе в «Required policies» и будет осуществлять анализ кода.

Gitleaks сканирует код и при обнаружении открытого секрета присылает автору pull request’а оповещение (alert) с указанием номера строки, в которой этот секрет находится. Пока секрет не будет вычищен, а именно зашифрован или удален из кода, задеплоить проект будет невозможно.

Gitleaks Alert 1

Gitleaks Alert 2

Преимущество Gitleaks

Стоит отметить, что при разработке продуктов, наши инженеры хранят секреты в защищенном виде или вовсе не пропускают их в код, однако дополнительная проверка является обязательной частью рабочего процесса. Gitleaks помогает нам повышать уровень защищенности производимого ПО и снижать себестоимость разработки.