
Audita projetos do GitLab contra o CIS GitLab Benchmark por meio de verificações de API somente leitura, gerando relatórios JSON sobre conformidade e recomendações de hardening.
Em 17 de abril de 2024, a GitLab™ publicou um artigo no blogue a apresentar o seu CIS GitLab Benchmark do Center for Internet Security® (CIS). Com o objetivo de melhorar a segurança do produto e oferecer recomendações de reforço (hardening) aos clientes do GitLab. Pode descarregar uma cópia dos benchmarks publicados no site do Center for Internet Security®.
"O CIS GitLab Benchmark surgiu de uma colaboração entre a CIS e as equipas de Segurança de Campo e de Gestão de Produto da GitLab. Após inúmeras conversas com clientes, compreendemos a necessidade de um benchmark específico que orientasse os seus esforços de reforço. Realizámos uma análise aprofundada do produto e da documentação do GitLab para compreender como a nossa oferta se enquadrava no CIS Software Supply Chain Security Benchmark. Depois de o rascunho inicial estar pronto, entrou no processo de consenso da CIS, no qual a comunidade mais ampla do CIS Benchmark pôde revê-lo e sugerir alterações antes da publicação."
O gitlabcis é um pacote Python® que audita um projeto GitLab em relação ao CIS GitLab Benchmark do Center for Internet Security® (CIS). Inclui recomendações-como-código formatadas em YAML™.
Existe um esforço mais amplo para adicionar o CIS Benchmark como norma de conformidade ao Compliance Adherence Report.
Ao longo do desenvolvimento desta ferramenta, os autores contribuíram com 2 funcionalidades para o produto GitLab (#39):
[[TOC]]
| Isenção de responsabilidade | Comentário |
|---|---|
| Esta ferramenta pressupõe que se está a utilizar o GitLab para tudo |
|
| Esta ferramenta não consegue auditar todas as recomendações |
|
| Esta ferramenta não executa nenhuma operação de escrita na sua instância, grupo ou projeto GitLab. Nenhuma ação de escrita é realizada. |
|
| Este não é um produto oficial do GitLab |
|
O gitlabcis requer um dos seguintes tokens:
Pode passar o token como opção ou armazená-lo como variável de ambiente:
GITLAB_TOKEN - (opcional) Variável de ambiente--token / -t - (opcional) opção de token do gitlabcisPode passar o token como opção ou armazená-lo como variável de ambiente:
GITLAB_OAUTH_TOKEN - (opcional) Variável de ambiente--oauth-token / -ot - (opcional) opção de token do gitlabcisread_api.Existem várias formas de descarregar o scanner. Consulte-as abaixo:
Instale o gitlabcis a partir de pypi.org:
pip install gitlabcis
Instale o gitlabcis a partir do registo de pacotes:
pip install gitlabcis --index-url https://gitlab.com/api/v4/projects/57279821/packages/pypi/simple
Se ainda não o fez, terá de adicionar o seguinte ao seu ficheiro .pypirc.
[gitlab]
repository = https://gitlab.com/api/v4/projects/57279821/packages/pypi
username = __token__
password = <your personal access token>
Instale o gitlabcis a partir do código-fonte através de clone, ou da nossa página de lançamentos
# 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
É esperada a seguinte sintaxe:
gitlabcis URL OPTIONS

Para gerar um relatório a partir da shell:
gitlabcis https://gitlab.example.com/path/to/project --token $TOKEN
Gere um relatório json: (Utilizando a variável $GITLAB_TOKEN, não precisa de especificar a opção --token)
gitlabcis \
https://gitlab.example.com/path/to/project \
-o results.json \
-f json
Para executar um único controlo:
gitlabcis \
https://gitlab.example.com/path/to/project \
-ids 1.2.3 # or multiple: 2.3.4 3.4.5 etc
Analise todos os subgrupos e projetos numa instância ou grupo (1 nível de profundidade por predefinição):
gitlabcis https://gitlab.example.com/path-to-group --nest
Analise todos os subgrupos e projetos até 2 níveis de profundidade, gravando ficheiros JSON por entidade em ./results/: