IBCOURSES / СПРАВОЧНИК ИБ

GitLab: аудит операций с репозиторием

К ответу ↓

Аудит Git-операции связывает обращение с учётным контекстом и проектом. Он отличается от авторства коммита и результата pipeline.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

GitLab: аудит операций с репозиторием

Аудит Git-операции связывает обращение с учётным контекстом и проектом. Он отличается от авторства коммита и результата pipeline.

Условия и источник

Зафиксируйте инсталляцию GitLab, выпуск, проект, период и способ получения аудита. Рассматривается repository_git_operation в документированной форме streaming; доступность типов и доставки нужно сверить со своей конфигурацией и лицензией. Обычный commit log не заменяет аудит доступа к репозиторию, а author коммита не является автоматическим доказательством пользователя сетевого запроса.

Как отобрать запись

В разрешённой копии stream JSONL отберите точный event_type, затем entity_path/id и время. Сохраните id события, если он есть, чтобы повторная доставка не стала новым действием. Прочитайте details целиком: его состав зависит от типа и контекста. Не применяйте схему одного способа аутентификации ко всем остальным и проверьте, является ли запись исходной или нормализованной.

Разбор примера

git-upload-pack в примере по ssh показывает операцию чтения объектов репозитория в выбранном проекте. По этой форме нельзя однозначно различить clone и очередной fetch. author_id обозначает технического инициатора; для deploy key предусмотрены особые случаи. Данные о ключе и контексте доступа важнее похожего отображаемого имени. Вымышленные адрес и IDs не являются результатом проверки инсталляции.

Интерпретация и границы

Отделите факт сетевой Git-операции от человеческого авторства кода и от вывода об утечке. Даже разрешённое чтение требует контекста, если оно неожиданно, но само событие не описывает дальнейшее использование полученного содержимого. Сопоставьте account/key/token context с задачей автоматизации, ожидаемым проектом и временем. Не приписывайте пользователю отрицательный служебный author_id как обычный ID человека.

Следующая проверка

Проверьте доступные сведения аутентификации и назначения ключа, историю изменения доступа и связанные операции проекта. Для утверждения об изменении ветки используйте соответствующий тип и состояние refs, а для запуска CI — pipeline/job. В заметке разделите «пакет объектов запрошен», «инициатор установлен технически» и «цель использования неизвестна». Отсутствие объёма переданных данных не заполняйте предположением о полном клоне.

Если записи нет

Проверьте scope потока, поддерживаемый тип, период, анонимный доступ, лицензию и ошибки приёма. Затем сравните источник с SIEM и исключите фильтр по неправильному event_type. Строка коммита не компенсирует отсутствующий audit event. Если история недоступна, укажите конкретный пробел по проекту/периоду и способу доступа; не делайте вывод, что чтения репозитория не было.

Поля и область применения

Исходное полеСмысл и ограничения
event_typeТип аудитного события
author_idИнициатор, со специальными случаями для deploy keys
entity_pathПроект/группа
created_atВремя
detailsДополнительные данные конкретного типа
ip_addressНаблюдаемый адрес

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

Фрагмент Git audit

Фрагмент журнала. Сокращённый пример по документированной структуре. Остальные поля опущены.

{
  "event_type": "repository_git_operation",
  "author_id": 42,
  "entity_type": "Project",
  "entity_id": 7,
  "entity_path": "demo/app",
  "created_at": "2026-11-04T09:00:00Z",
  "ip_address": "192.0.2.10",
  "details": {
    "custom_message": {
      "protocol": "ssh",
      "action": "git-upload-pack"
    }
  }
}

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

jq, локальная копия stream JSONL

jq -c 'select(.event_type == "repository_git_operation")' gitlab-audit.jsonl

Первоисточники

Анонимные обращения к публичному проекту не покрываются этим аудитом; details не имеет одной неизменной схемы.

Связанные материалы

Как пользоваться техническим справочником

Найдите порт, код ошибки, событие или источник журнала. Уточните протокол и систему, затем сверяйте значение, поля, примеры и первоисточники. Назначение порта не определяет фактическую службу, а одна запись не доказывает инцидент.

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

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

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.