Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
GitMonitor — Один из способов непрерывного мониторинга конфиденциальной информации, которая может быть раскрыта на Github | Kitploit
Инструменты/GitHubGitHub/talkaboutcybersecurity/gitmonitor
OSINT (Разведка открытых источников)РазведкаСбор информацииОбнаружение Секретов
GitHubtalkaboutcybersecurity/gitmonitor

GitMonitor

Один из способов непрерывного мониторинга конфиденциальной информации, которая может быть раскрыта на Github

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
172406 лет назадПроверено Kitploit

GitMonitor

License: GPL v3

GitMonitor

Один из способов непрерывного мониторинга конфиденциальной информации, которая может быть раскрыта на Github

Краткое описание

Я знаю, что существует много других инструментов для поиска конфиденциальной информации, уже утекшей на Github, и сам пользуюсь некоторыми из них. Однако, на мой взгляд, им всё ещё не хватает некоторых возможностей, например:

  • Другие инструменты больше сосредоточены на поиске конфиденциальной информации в репозиториях, адрес которых передан инструменту. Лишь немногие подобные инструменты на момент создания GitMonitor были нацелены на поиск репозиториев, за которыми нужно следить в первую очередь: найти все релевантные репозитории, а затем проверить, не содержится ли в них конфиденциальная информация.

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

  • Если вы охотник за багами, вас интересует лишь несколько целей одновременно. Но если вы инженер по безопасности компании, вам нужно знать, когда появляется репозиторий, связанный с вашей компанией или проектом, и он может содержать конфиденциальную информацию. Такие репозитории могут появиться где угодно на Github, с любым именем, от любой учётной записи. Вы также должны получать оповещение сразу после появления такого репозитория (непрерывный мониторинг).

  • Инструмент имеет гибкий механизм отчетности.

Вот почему я создал этот инструмент — GitMonitor. GitMonitor использует два разных набора правил для поиска того, что вам нужно. Набор правил поиска находит репозитории, которые могут быть связаны с вашей организацией, внутренними проектами или чем-либо ещё, клонирует подходящие репозитории локально. Затем набор правил фильтрации конфиденциальной информации проверяет, есть ли в этих репозиториях конфиденциальные данные. Наконец, инструмент отправляет отчёт через Slack. Вы можете использовать этот инструмент с помощью Cronjob для создания системы непрерывного мониторинга утечек конфиденциальной информации, связанной с вашей организацией, на Github и получать результаты через Slack.

Обновление от 15 июня 2020 года: Мы выпустили обновление до версии 1.0. В этой версии исправлены некоторые ошибки, благодаря которым Gitmonitor работает стабильно. Рекомендуем выполнить git pull, если вы используете предыдущие версии.

Возможности

  • Использование двух разных наборов правил: набора правил поиска (yaml) для поиска интересующих репозиториев и набора правил фильтрации (regex) для проверки, содержат ли эти репозитории конфиденциальную информацию. Правила поиска (yaml) и правила фильтрации (regex) определяются отдельно. Пользователи могут легко и интуитивно задавать yaml-правила и регулярные выражения.

  • Набор правил поиска: Вы можете создать множество различных правил, используя разные yaml-файлы. Правила позволяют гибко задать способ поиска репозиториев: можно использовать ключевые слова или ключевые слова в сочетании с языком, именем файла и расширением. Также можно исключать репозитории из поиска на основе языка, имени файла или расширения. Ключевые слова ищутся в именах репозиториев, коде репозиториев и коммитах.

  • Набор правил фильтрации: Вы можете легко добавлять или изменять регулярные выражения для поиска конфиденциальной информации, которая может присутствовать в репозиториях.

  • Первый репозиторий, соответствующий правилам поиска, клонируется локально. Затем правила фильтрации проверяют, содержит ли этот репозиторий конфиденциальную информацию. После завершения проверки Gitmonitor записывает результаты и автоматически удаляет этот репозиторий локально для экономии места, прежде чем продолжить повторять процесс, пока все релевантные репозитории не будут найдены и проверены.

  • Отчет через Slack.

  • Этот инструмент можно запланировать через Cronjob для непрерывного мониторинга.

Схема работы

Требования

  • Python3
  • Python3-pip.
  • Протестировано на Ubuntu 18.04 и MacOS. Мы считаем, что Gitmonitor будет хорошо работать и на других системах.

Установка

1. Установка зависимостей

root@kitploit:~
> python3 -m pip install -r requirements.txt

Убедитесь, что установлена версия Pyyaml 5.x или выше (pip3 install --ignore-installed PyYAML)

2. Убедитесь, что вы настроили всю необходимую информацию в файле конфигурации (config.ini)

В следующей таблице объясняется значение каждого ключа в файле конфигурации:

3. Задайте учётные данные учётной записи Github. Есть 2 способа сделать это

  • Определите учётные данные в переменных окружения:
root@kitploit:~
> export GIT_USERNAME=ваше имя пользователя Github
> export GIT_PASSWORD=ваш личный ключ или пароль Github
  • Или укажите учётные данные в файле конфигурации (не рекомендуется):

    • Откройте файл config.ini.
    • Заполните учётные данные в значения ключей user и pass.

Пример файла конфигурации при задании учётных данных через переменные окружения

Пример конфигурационного файла

4. Напишите правила (правила поиска). Поместите свои правила в каталог rules

Вы можете создать несколько разных yaml-файлов, подобных шаблону, для задания множества ключевых слов. Файл правил будет выглядеть, как на изображении ниже:

Пример файла правил

5. Добавьте дополнительные регулярные выражения в файл libs/regex.py — правила фильтрации конфиденциальной информации (необязательно)

6. Запустите Gitmonitor

root@kitploit:~
> python3 gitmonitor.py

7. Вы можете настроить автоматический запуск инструмента с помощью Cronjob.

Например:

Пример cronjob

Планы

  • Возможность: Отчет по email.
  • Возможность: Отправка результатов в Elasticsearch.
  • Разработка: Написать setup.py
  • Разработка: Написать Dockerfile

Моя команда

  • Tony — руководитель проекта
  • musashi137 — основной разработчик

Особая благодарность

  • GitMAD за механизм поиска конфиденциальной информации на основе регулярных выражений

Участие в разработке

Многие области этого проекта могут быть улучшены и существенно изменены при рефакторинге текущего кода и реализации новых функций. Обратная связь с предложениями по улучшению и pull request'ы от сообщества будут высоко оценены и приняты.

В целом, мы следуем рабочему процессу "fork-and-pull".

  1. Сделайте fork репозитория на GitHub
  2. Клонируйте проект на свою машину
  3. Внесите изменения в свою ветку
  4. Отправьте изменения в свой fork
  5. Отправьте Pull request, чтобы мы могли просмотреть ваши изменения

ПРИМЕЧАНИЕ: Перед отправкой pull request обязательно выполните слияние последних изменений из "upstream"!

Поддержать

Buy Me A Coffee

Скачать инструмент
КлючОписание
userИмя пользователя Github — оставьте пустым, если учётные данные Github заданы через переменные окружения
passПароль Github — оставьте пустым, если учётные данные Github заданы через переменные окружения
webhooksТокен Incoming Webhook для отправки сообщений из GitMonitor в Slack
ruleКаталог, содержащий набор правил поиска
sourceКаталог для загрузки репозитория
logКаталог будет содержать JSON-файл, который записывает состояние после каждого сканирования; этот JSON-файл используется для сравнения результатов между сканированиями (для выявления новых репозиториев)
startОпределяет баннер начала сканирования и баннер результатов сканирования набора правил фильтрации конфиденциальной информации — будет показан в результатах, отправляемых в Slack
endОпределяет баннер завершения сканирования и баннер результатов сканирования набора правил поиска — будет показан в результатах, отправляемых в Slack
allОпределяет баннер для отображения всех репозиториев — будет показан в результатах, отправляемых в Slack