I clienti di GitLab hanno constatato che l'uso di GitLab quale piattaforma per DevSecOps ha semplificato il processo di audit SOC 2. Questo articolo presenta il framework SOC 2 e le funzionalità di GitLab che aiutano i clienti con l'audit SOC 2.
Introduzione a SOC 2
Il System and Organization Controls 2, o SOC 2, è uno standard di conformità volontario che descrive come le aziende devono gestire i dati dei clienti. Il report dell'audit SOC 2 attesta l'affidabilità di un software per i propri clienti.
SOC 2, sviluppato dall'Association of International Certified Professional Accountants (AICPA), si basa su cinque criteri, i cosiddetti criteri dei servizi fiduciari:
- Sicurezza: protezione dei dati dei clienti da vulnerabilità e accessi non autorizzati
- Disponibilità: garanzia che i sistemi siano a tolleranza di errore e performanti in caso di carichi elevati, per soddisfare gli accordi sui livelli di servizio
- Integrità dell'elaborazione: funzionamento dei sistemi come previsto, senza vulnerabilità, errori o bug
- Riservatezza: protezione delle informazioni riservate come il codice sorgente dell'applicazione, i nomi utente e le password, i dati delle carte di credito ecc., così che siano accessibili solo a chi ne ha necessità per le proprie mansioni
- Privacy: protezione delle informazioni sull'identità da utenti non autorizzati
La sicurezza è l'unico criterio richiesto per ogni audit SOC 2. Gli altri criteri possono essere aggiunti all'audit se sono ritenuti fondamentali per i servizi forniti.
Criterio di sicurezza dei servizi fiduciari
Il criterio di sicurezza riguarda non solo la sicurezza dei server e dei sistemi fisici, ma anche delle applicazioni. Le vulnerabilità del software possono aprire un'applicazione a un attacco, mettendo a rischio i dati dei clienti, ma GitLab può aiutare a evitarlo.
GitLab fornisce analisi di sicurezza per individuare possibili vulnerabilità nelle applicazioni sviluppate da un'azienda, tra cui:
- Analisi statica della sicurezza delle applicazioni (SAST), che analizza il codice sorgente alla ricerca di possibili bug e vulnerabilità, come la non sicurezza del codice che può comportarne l'esecuzione involontaria
- Analisi delle dipendenze, che trova vulnerabilità della sicurezza nelle dipendenze software di un'applicazione
- Scansione dei container, che rileva vulnerabilità della sicurezza nelle dipendenze del sistema operativo di un'applicazione containerizzata
- Analisi dinamica della sicurezza delle applicazioni (DAST), che trova vulnerabilità della sicurezza in un'applicazione web in esecuzione che la rendono suscettibile a un attacco
- Analisi dell'Infrastructure as Code (IaC), che esegue l'analisi dei file di configurazione della IaC, tra cui Terraform, Ansible, AWS CloudFormation e Kubernetes, per trovare vulnerabilità della sicurezza
GitLab fornisce anche un report sulle vulnerabilità che mostra tutte le vulnerabilità note nell'applicazione corrente, in base alle analisi eseguite. GitLab offre inoltre una distinta base del software (SBOM) in formato CycloneDX JSON standard, che mostra tutte le dipendenze a livello di software e sistema operativo e le loro vulnerabilità note.
Svolgere analisi delle vulnerabilità regolarmente e avere un metodo affidabile per la loro segnalazione aiuta a soddisfare tre criteri di sicurezza:
- CC7.1. Per raggiungere i propri obiettivi, l'entità usa procedure di rilevamento e monitoraggio per individuare (1) le modifiche alle configurazioni che introducono nuove vulnerabilità, e (2) le vulnerabilità scoperte di recente.
- CC4.1. Principio COSO 16: l'entità seleziona, sviluppa ed esegue valutazioni continue e/o separate per accertare se le componenti del controllo interno sono presenti e funzionanti.
- CC4.2. Principio COSO 17: l'entità valuta e comunica tempestivamente le carenze del controllo interno ai responsabili dell'adozione di azioni correttive, inclusi i dirigenti senior e il Consiglio di Amministrazione, a seconda dei casi.
Un elemento cruciale delle analisi di sicurezza sono governance e adempimento. Le funzionalità di GitLab garantiscono analisi regolari, non eludibili dai team di sviluppo software. Esse includono:
- Controlli di accesso basati sui ruoli, per limitare chi può apportare modifiche alle impostazioni di configurazione a livello di progetto
- Criteri di esecuzione dell'analisi, per garantire che le scansioni vengano eseguite su ciascun repository di codice
- Criteri di approvazione delle richieste di merge, per garantire che i risultati dell'analisi siano esaminati e approvati dai responsabili della sicurezza adatti, così che le vulnerabilità rilevate recentemente non siano introdotte nel software implementato
- Report sulla conformità, per mostrare eventuali modifiche alle configurazioni di GitLab che potrebbero violare i processi di sicurezza messi in atto
Con queste configurazioni, le aziende possono dimostrare che la sicurezza del software è una priorità assoluta per le loro applicazioni e che le pratiche di sicurezza vengono applicate.
Criterio di disponibilità e integrità dell'elaborazione dei servizi fiduciari
GitLab può anche aiutare con i criteri di disponibilità e integrità dell'elaborazione dei servizi fiduciari. Questi criteri hanno a che fare con la qualità e le prestazioni dell'applicazione stessa. Per supportarli, GitLab fornisce:
- Risultati dei test unitari e modifiche alla copertura del codice sotto forma di report sulla copertura del codice, che garantiscono che il codice sorgente sia convalidato da una suite di test
- Qualità del codice, che analizza la qualità e la complessità del codice sorgente per facilitarne la leggibilità e l'aggiornabilità
Queste pratiche vengono usate all'inizio del ciclo di sviluppo software per garantire un codice testato di alta qualità, ma GitLab fornisce anche modelli per vari tipi di test automatici delle applicazioni in esecuzione, per garantire il funzionamento previsto. Questi test includono:
- Test delle prestazioni del browser, che misura il tempo di caricamento dei siti web durante il ciclo di vita dello sviluppo, per testare l'impatto di eventuali modifiche del codice sulle prestazioni del browser
- Test delle prestazioni del carico, che misura le prestazioni del sistema del back-end di un'applicazione durante il ciclo di vita dello sviluppo, per testare l'impatto di eventuali modifiche del codice sulle prestazioni
- Fuzzing orientato alla copertura, che invia dati imprevisti, non validi o casuali a un'applicazione e quindi la monitora per rilevare comportamenti instabili e arresti anomali
- Fuzzing dell'API web, che invia dati imprevisti, non validi o casuali agli endpoint dell'API per cercare bug e problemi di sicurezza
Usando GitLab per applicare solide prassi DevSecOps e dare vita ad applicazioni sicure e di alta qualità, potrai superare più facilmente un audit SOC 2 e attestare la sicurezza dei dati dei clienti.
Ulteriori informazioni: Rafforzare la sicurezza informatica con i principi Secure by Design.