
Esegue audit dei progetti GitLab rispetto al CIS GitLab Benchmark tramite controlli API di sola lettura, generando report JSON su conformità e raccomandazioni di hardening.
Il 17 aprile 2024, GitLab™ ha pubblicato un articolo del blog in cui presenta il suo benchmark CIS (Center for Internet Security®) per GitLab, con l'obiettivo di migliorare la sicurezza del prodotto e offrire raccomandazioni di hardening ai clienti di GitLab. È possibile scaricare una copia dei benchmark pubblicati sul sito del Center for Internet Security®.
"Il CIS GitLab Benchmark è nato da una collaborazione tra CIS e i team Field Security e Product Management di GitLab. Dopo numerose conversazioni con i clienti, abbiamo compreso la necessità di un benchmark specifico che guidasse i loro sforzi di hardening. Abbiamo condotto una revisione approfondita del prodotto e della documentazione di GitLab per capire come la nostra offerta si allineasse al CIS Software Supply Chain Security Benchmark. Una volta pronta la bozza iniziale, questa è entrata nel processo di consensus di CIS, in cui la più ampia community dei benchmark CIS ha potuto esaminarla e suggerire modifiche prima della pubblicazione."
gitlabcis è un pacchetto Python® che verifica un progetto GitLab rispetto al CIS GitLab Benchmark del Center for Internet Security® (CIS). Include raccomandazioni-as-code formattate in YAML™.
È in corso un'iniziativa più ampia per aggiungere il CIS Benchmark come standard di conformità al Compliance Adherence Report.
Nel corso dello sviluppo di questo strumento, gli autori hanno contribuito con 2 funzionalità al prodotto GitLab (#39):
[[TOC]]
| Avvertenza | Commento |
|---|---|
| Questo strumento presuppone che si utilizzi GitLab per tutto |
|
| Questo strumento non può verificare ogni raccomandazione |
|
| Questo strumento non esegue alcuna operazione di scrittura sulla tua istanza, gruppo o progetto GitLab. Non vengono effettuate azioni di scrittura. |
|
| Questo non è un prodotto ufficiale GitLab |
|
gitlabcis richiede uno dei seguenti token:
Puoi passare il token come opzione oppure salvarlo come variabile d'ambiente:
GITLAB_TOKEN - (facoltativo) Variabile d'ambiente--token / -t - (facoltativo) opzione token di gitlabcisPuoi passare il token come opzione oppure salvarlo come variabile d'ambiente:
GITLAB_OAUTH_TOKEN - (facoltativo) Variabile d'ambiente--oauth-token / -ot - (facoltativo) opzione token di gitlabcisread_api.Ci sono diversi modi per scaricare lo scanner. Vedi di seguito:
Installa gitlabcis da pypi.org:
pip install gitlabcis
Installa gitlabcis dal registro pacchetti:
pip install gitlabcis --index-url https://gitlab.com/api/v4/projects/57279821/packages/pypi/simple
Se non l'hai già fatto, dovrai aggiungere quanto segue al tuo file .pypirc.
[gitlab]
repository = https://gitlab.com/api/v4/projects/57279821/packages/pypi
username = __token__
password = <your personal access token>
Installa gitlabcis dal sorgente tramite clone o dalla nostra pagina delle release
# 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
È prevista la seguente sintassi:
gitlabcis URL OPTIONS

Per generare un report dalla shell:
gitlabcis https://gitlab.example.com/path/to/project --token $TOKEN
Genera un report json: (Usando la variabile $GITLAB_TOKEN, non è necessario specificare l'opzione --token)
gitlabcis \
https://gitlab.example.com/path/to/project \
-o results.json \
-f json
Per eseguire un singolo controllo:
gitlabcis \
https://gitlab.example.com/path/to/project \
-ids 1.2.3 # or multiple: 2.3.4 3.4.5 etc
Analizza tutti i sottogruppi e i progetti all'interno di un'istanza o di un gruppo (1 livello di profondità per impostazione predefinita):
gitlabcis https://gitlab.example.com/path-to-group --nest
Analizza tutti i sottogruppi e i progetti fino a 2 livelli di profondità, scrivendo file JSON per entità in ./results/: