Github scrappingПри правильных поисковых запросах, можно найти всевозможные фрагменты кода, содержащие учетные данные для подключения к инфраструктуре компании, которые используются разработчиками и QA-инженерами. При этом не только Github можно исследовать на наличие секретов. Техника изучения публичных репозиториев на наличие секретов (данных учетных записей, приватны ключей и т.п.) позволяет открыть доступ к интересным местам приложения еще до того, как начнется его непосредственный анализ защищенности.
Если учесть тот факт, что многие продуктовые IT-компании совершенно разного уровня зрелости (от стартапа до enterprise-бизнеса) привлекают к своему циклу разработки различных подрядчиков, то растет вероятность утечки ценных данных в публичные репозитории. Любой эксперт, вовлеченный в цикл разработки, несет с собой определенные риски для продукта.
Так, например, в процессе поиска фрагментов исходного кода, содержащих домен SaaS-продукта, могут быть найдены фрагменты авто-тестов, содержащих привилегированные учетные данные для подключения к платформе. И чтобы убедиться, что этот пример не гипотетический, а вполне реальный, достаточно зайти на Techcrunch, найти имя какой-нибудь компании, предоставляющей SaaS-продукт и поискать ее домен на гитхабе.
Открываем новости о стартапах, видим много блокчейн-кошельков и блокчейн-платформ, выбираем любой стартап с причудливым названием и ищем его домен на гитхабе. Встречаем много секретов в разных скриптах для подключения к платформе.

Поиск в Github по нужным запросам открывает много интересных скриптов с секретами
Чаще всего секреты встречаются в следующих репозиториях:
- код авто-тесты, которые QA-инженеры бэкапят в свои персональные публичные репозитории;
- репозитории организаций-подрядчиков, отвечающих за интеграцию клиентов с продуктом;
- персональные репозитории разработчиков, которые бэкапят свои внутренние тулзы;
- скрипты установки продукта и skeleton-файлы микросервисов, используемые подрядчиками, отвечающими за установку и поддержку продукта (operations).

Пример секрета, оставленного в коде: приватный ключ для подключения к SaaS-платформе
Пример секретов, которые помогут злоумышленнику скомпрометировать продукт или его пользователя:- учетные данные для подключения (пример поисковых запросов: «product_name+pass», «domain_name+login»);
- приватные ключи и сертификаты (пример поискового запроса: «domain_name+private»).
Кто-то из Security-специалистов сейчас воскликнул: «А вот если бы разработчики использовали Hashicorp Vault, то этих проблем бы не было!». Да, при определенных условиях, подобные решения для secret management эффективны. Однако иногда, даже security-специалисты совершают ошибки.
Возьмем топ коммерческих решения для статического анализа кода на предмет уязвимостей (SAST). Среди этого топа наверняка встретятся большие и дорогие продукты, представляющие собой полноценную платформу для интеграции в CI/CD-процессы разработки и имеющие API для сторонних скриптов автоматизации.
SonarQube – пример платформы анализа качества и безопасности кода. О ее популярности говорит количество инсталляций, которое можно найти в Shodan одним запросом:
port:9000 sonarqube

География доступных инсталляций платформы SonarQube

Количество инсталляций SonarQube по странам
Если поискать на Github какие-либо секреты, относящиеся к SonarQube, то можно найти небольшие скрипты, использующиеся для подключения и управления сканированием.

Скрипты, которые (возможно) содержат секреты для подключения к платформе
Если заглянуть в официальную документацию SonarQube, то можно найти описание формата запуска задач из CLI. В частности, один из ключей отвечает за передачу данных об учетной записи, от имени которой будет выполняться команда.
Ключи, отвечающие за передачу данных об учетной записи в платформе
Используя эту информацию, можно получить более релевантные результаты поиска. Поисковые запросы, содержащие “sonar+login” или “sonar+password”, позволяют найти скрипты автоматизации, которые используются не только разработчиками, но и непосредственно security-командами.
Прочитали документацию, составили новый запрос, получили более релевантную выдачу
Автоматизация поиска секретовМожно искать утечку секретов в официальном репозитории компании, а можно в неофициальных репозиториях ее сотрудников или подрядчиков (а может и пользователей). Процесс поиска секретов на Github или в других репозиториях можно проиллюстрировать следующим образом:

Процесс поиска секретов
Для автоматизации этих действий существует множество утилит и скриптов, поэтому рекомендуется не изобретать велосипед. К примеру, можно взять следующие тулзы:- gitGrabber () – позволяет в реальном-времени мониторить Github и прочие сервисы на предмет появления секретов. Подходит для задачи мониторинга появления секретов по заданные поисковые запросы.
- gitLeaks () – тулза для мониторинга конкретно заданных репозиториев на утечку секретов. Отлично подходит для выполнения задач мониторинга официального репозитория компании.