
Проводит аудит проектов GitLab на соответствие CIS GitLab Benchmark посредством проверок API только для чтения, формируя JSON-отчёты о соответствии требованиям и рекомендациях по усилению безопасности.
17 апреля 2024 года GitLab™ опубликовал запись в блоге, в которой представил свой бенчмарк Center for Internet Security® (CIS) GitLab Benchmark. Цель — улучшить безопасность продукта и предложить клиентам GitLab рекомендации по усилению защиты. Вы можете скачать копию бенчмарков, опубликованных на сайте Center for Internet Security®.
«CIS GitLab Benchmark стал результатом сотрудничества между CIS и командами GitLab по полевой безопасности и управлению продуктами. После многочисленных разговоров с клиентами мы поняли необходимость в специальном бенчмарке, который направил бы их усилия по усилению защиты. Мы провели углублённый анализ продукта и документации GitLab, чтобы понять, как наше предложение соотносится с CIS Software Supply Chain Security Benchmark. После подготовки первоначального черновика он прошёл процесс согласования CIS, в ходе которого более широкое сообщество CIS Benchmark Community смогло ознакомиться с ним и предложить правки до публикации.»
Источник: Создание CIS GitLab Benchmark
gitlabcis — это пакет Python®, который проверяет проект GitLab на соответствие бенчмарку Center for Internet Security® (CIS) GitLab Benchmark. Он включает рекомендации как код, оформленные в YAML™.
Существует более масштабная инициатива по добавлению CIS Benchmark в качестве стандарта соответствия в Compliance Adherence Report.
В процессе разработки этого инструмента авторы добавили 2 функции в продукт GitLab (#39):
[[TOC]]
gitlabcis требует один из следующих токенов:
Вы можете либо передать токен как параметр, либо сохранить его как переменную окружения:
GITLAB_TOKEN - (необязательно) переменная окружения--token / -t - (необязательно) параметр токена gitlabcisВы можете либо передать токен как параметр, либо сохранить его как переменную окружения:
GITLAB_OAUTH_TOKEN - (необязательно) переменная окружения--oauth-token / -ot - (необязательно) параметр токена gitlabcisread_api.Существует несколько способов загрузки сканера. Они описаны ниже:
Установите gitlabcis из pypi.org:
pip install gitlabcis
Установите gitlabcis из реестра пакетов:
pip install gitlabcis --index-url https://gitlab.com/api/v4/projects/57279821/packages/pypi/simple
Если вы ещё этого не сделали, добавьте следующее в ваш файл .pypirc.
[gitlab]
repository = https://gitlab.com/api/v4/projects/57279821/packages/pypi
username = __token__
password = <your personal access token>
Установите gitlabcis из исходного кода через клонирование или со страницы релизов
# make a clone (or create a local fork) of the repo
git clone [email protected]:gitlab-security-oss/cis/gitlabcis.git
cd gitlabcis
make install
Ожидается следующий синтаксис:
gitlabcis URL OPTIONS

Чтобы создать отчёт из оболочки:
gitlabcis https://gitlab.example.com/path/to/project --token $TOKEN
Создать JSON-отчёт: (Если используется переменная $GITLAB_TOKEN, параметр --token указывать не нужно)
gitlabcis \
https://gitlab.example.com/path/to/project \
-o results.json \
-f json
Чтобы выполнить одну проверку:
gitlabcis \
https://gitlab.example.com/path/to/project \
-ids 1.2.3 # or multiple: 2.3.4 3.4.5 etc
Сканировать все подгруппы и проекты в экземпляре или группе (по умолчанию на 1 уровень вглубь):
gitlabcis https://gitlab.example.com/path-to-group --nest
Сканировать все подгруппы и проекты на глубину до 2 уровней, записывая JSON-файлы для каждой сущности в ./results/:
gitlabcis \
https://gitlab.example.com/path-to-group \
--nest \
--depth 2 \
--output-dir results \
-f json
Сканировать с неограниченной глубиной и префиксом имени файла:
gitlabcis \
https://gitlab.example.com/path-to-group \
--nest \
--depth 0 \
--prefix "audit_" \
--output-dir results \
-f json
Ознакомьтесь с каталогом документации (./docs) — Чего-то не хватает? Не стесняйтесь внести вклад, создав новую задачу.
gitlabcis опубликован под лицензией MIT; её можно посмотреть в файле ./LICENSE.
См. ./CHANGELOG.md для получения дополнительной информации.
Ознакомьтесь с вводным разделом документа о вкладе (CONTRIBUTING.md), где описан кодекс поведения.
Ознакомьтесь с нашим документом политики безопасности (docs/SECURITY.md), в котором описано, как сообщить об уязвимости.
Хотите внести свой вклад? — Отлично! Загляните в документ о вкладе (CONTRIBUTING.md) для получения дополнительной информации.
| Отказ от ответственности | Комментарий |
|---|
| Этот инструмент предполагает, что вы используете GitLab для всего |
|
| Этот инструмент не может проверить все рекомендации |
|
| Этот инструмент не выполняет никаких операций записи в вашем экземпляре, группе или проекте GitLab. Никакие действия записи не выполняются. |
|
| Это не официальный продукт GitLab |
|