В этой статье мы рассмотрим, какие инструменты и методы можно применить в OSINT-расследовании на GitHub.

GitHub — крупнейшая в мире платформа для разработки программного обеспечения и контроля версий, на которой размещены миллионы публичных и приватных репозиториев с кодом. Построенный на основе распределённой системы контроля версий Git, он позволяет разработчикам хранить код, отслеживать изменения с течением времени, совместно работать над проектами и управлять ими.
Для OSINT аналитиков GitHub — это нечто большее, чем просто место для хранения кода; это один из богатейших источников разведывательной информации в интернете. Поскольку разработчики используют его в повседневной работе, не задумываясь о формировании своего публичного профиля, GitHub нередко даёт полное представление о том, как организации функционируют на самом деле. Он охватывает используемые технологии, людей, работающих над проектами, создаваемые продукты, а иногда и конфиденциальные сведения, которые не предназначались для публичного доступа.
В этой статье мы рассмотрим, какие методы можно применить для OSINT-расследования на GitHub. Приступим!
Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!
Шаг №1: Google Dorks для поиска людей на GitHub
Встроенный поиск GitHub весьма функционален, однако имеет существенные ограничения: в частности, требует авторизации, а также не обеспечивает полного индексирования контента и ряда типов файлов. Веб-краулеры, такие как Google, напротив, индексируют значительную часть публичного контента GitHub.
Попробуем найти профиль по имени:
site:github.com "Полное имя"

Попробуем найти людей, упомянутых на страницах компаний:
site:github.com "Название компании" "members"

Помимо этого, можно попытаться найти конфигурационный файл следующим образом:
site:github.com filename:config.json

Разумеется, поиск не ограничивается этими расширениями. Можно искать, например, базы данных:
site:github.com/targetorg filename:*.sql

Шаг №2: Эндпоинты GitHub API
GitHub предоставляет REST API по адресу api.github.com, возвращающий структурированные данные в формате JSON для всего, что доступно на сайте, а также для некоторых данных, недоступных через веб-интерфейс. Запросы к публичным данным можно выполнять без авторизации, однако следует учитывать ограничение: 60 запросов в час. При использовании персонального токена доступа (PAT) этот лимит увеличивается до 5 000 запросов в час.
Для сбора информации о пользователе откройте в браузере следующий URL:
https://api.github.com/users/[имя_пользователя]

Эти данные раскрывают ценную информацию, такую как местоположение и дата создания аккаунта.
Другая команда позволяет извлекать адреса электронной почты из истории коммитов. Даже если пользователь GitHub не сделал свой адрес электронной почты общедоступным, он нередко содержится в метаданных коммитов, и API предоставляет прямой доступ к этой информации.
https://api.github.com/repos/[владелец]/[репозиторий]/commits

Многие API эндпоинты предоставляют ценную информацию, однако их ручной поиск может занять значительное время. Поэтому рассмотрим инструменты автоматизации.
Шаг №3: Автоматизация GitHub OSINT
TruffleHog — один из наиболее функциональных и активно поддерживаемых инструментов с открытым исходным кодом, для обнаружения секретов.
Ещё один инструмент, заслуживающий внимания, — Octosuite. Фреймворк написан на Python и отлично подходит для автоматизации GitHub OSINT’а. Он объединяет несколько API эндпоинтов в единый streamlined-воркфлоу и предоставляет форматированный вывод.
Установка выполняется следующими командами:
kali> python3 -m venv .venv
kali> source .venv/bin/activate
kali> pip3 install octosuite

Далее можно выполнять запросы к GitHub непосредственно из командной строки. Например, обратимся к API эндпоинту users:
kali> octosuite user username

Кроме того, можно получить информацию обо всех сотрудниках компании, упомянутых на GitHub:
kali> octosuite org company_name –members

Octosuite особенно полезен в случаях, когда необходимо сформировать структурированный отчёт на основе открытых данных с GitHub, без написания собственных скриптов.
Итоги
GitHub является ценным ресурсом для разведки по открытым источникам, поскольку многие пользователи используют его как рабочее пространство и имеют публичный профиль с личными данными.
Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!