GitLab ha rilasciato aggiornamenti di sicurezza urgenti per risolvere un grave errore di bypass dell’autenticazione SAML (Security Assertion Markup Language) che potrebbe permettere agli attaccanti di accedere alle istanze di GitLab senza autenticarsi correttamente. Questo problema, identificato come CVE-2024-45409, colpisce le versioni CE (Community Edition) e EE (Enterprise Edition) di GitLab e richiede un intervento immediato per evitare possibili attacchi.
Il problema di bypass dell’autenticazione SAML
Il problema di bypass dell’autenticazione SAML si verifica quando la risposta SAML inviata da un provider di identità (IdP) contiene una configurazione errata o è stata manipolata. In particolare, la vulnerabilità deriva dalla mancata validazione sufficiente di elementi chiave nelle dichiarazioni SAML, come l’extern_uid
(identificatore utente esterno), utilizzato per identificare gli utenti in modo univoco across different systems.
Un attaccante può creare una risposta SAML maliziosa che inganna GitLab nel riconoscere l’utente come autenticato, bypassando così l’autenticazione SAML e guadagnando accesso all’istanza di GitLab.
Impatto delle versioni colpite
Il CVE-2024-45409 colpisce le seguenti versioni di GitLab:
- GitLab 17.3.3
- GitLab 17.2.7
- GitLab 17.1.8
- GitLab 17.0.8
- GitLab 16.11.10
- Tutte le versioni precedenti di queste linee di rilascio
Come risolvere il problema
Per risolvere il problema, GitLab ha rilasciato aggiornamenti per le versioni colpite. Ecco i passaggi da seguire:
- Aggiornamento delle versioni: Assicurarsi di utilizzare le versioni aggiornate di GitLab, specificamente:
- GitLab 17.3.3
- GitLab 17.2.7
- GitLab 17.1.8
- GitLab 17.0.8
- GitLab 16.11.10
- Aggiornamento delle librerie: Le librerie utilizzate per gestire l’autenticazione SAML sono state aggiornate:
- OmniAuth SAML è stato aggiornato a versione 2.2.1.
- Ruby-SAML è stato aggiornato a versione 1.17.0.
- Abilitazione della due-factor authentication (2FA): Per coloro che non possono aggiornare immediatamente, GitLab consiglia di abilitare la 2FA per tutti gli account e di impostare l’opzione SAML 2FA bypass su “non consentire”.
- Controllo dei segni di sfruttamento: Verificare i segni di sfruttamento del bug, come:
- Errori relativi a
RubySaml::ValidationError
(tentativi non riusciti). - Nuovi o insoliti valori di
extern_uid
nelle registrazioni di autenticazione (tentativi riusciti). - Informazioni mancanti o errate nelle risposte SAML.
- Valori multipli di
extern_uid
per un singolo utente (indicativi di compromissione del conto).
- Errori relativi a
Suggerimenti e consigli
- Monitoraggio delle registrazioni di autenticazione: Verificare regolarmente le registrazioni di autenticazione per individuare eventuali segni di attività sospette.
- Abilitazione della 2FA: La due-factor authentication è un metodo efficace per aumentare la sicurezza dell’accesso ai sistemi.
- Aggiornamento regolare delle versioni: Mantenere le versioni di GitLab aggiornate è fondamentale per evitare vulnerabilità come questa.
- Formazione degli amministratori: Assicurarsi che gli amministratori siano adeguatamente formati per riconoscere e risolvere problemi di sicurezza.
- Test di penetrazione: Eseguire regolarmente test di penetrazione per identificare e correggere vulnerabilità prima che vengano sfruttate dagli attaccanti.
- Collaborazione con la comunità: Partecipare alla comunità di GitLab per condividere informazioni e best practices sulla sicurezza.