Sicurezza automatizzata

Completato

In questa unità vengono illustrati alcuni modi per automatizzare i controlli di sicurezza in un repository disponibili per gli amministratori dei repository GitHub.

Rilevare e correggere le dipendenze obsolete con vulnerabilità di sicurezza

Di fatto oggi tutti i progetti acquisiscono dipendenze da pacchetti esterni. Pur offrendo notevoli vantaggi per la produttività, questi componenti possono introdurre altri rischi per la sicurezza. Tenere sotto controllo questi pacchetti e il relativo stato di vulnerabilità può essere complicato, soprattutto considerando che ogni dipendenza potrebbe avere a sua volta dipendenze che possono diventare difficili da monitorare e gestire. Fortunatamente, GitHub include funzionalità che riducono questo carico di lavoro.

Grafici delle dipendenze del repository

Una delle funzionalità predefinite di ogni repository è rappresentata dai grafi delle dipendenze. GitHub analizza i manifesti di pacchetti comuni, ad esempio package.json, requirements.txt e altri. Questi grafi consentono ai proprietari di progetto di tenere traccia in modo ricorsivo di tutte le dipendenze su cui si basa il progetto.

Screenshot di un grafico delle dipendenze di GitHub.

Per l'elenco dei manifesti di dipendenze supportati, vedere Informazioni sul grafico delle dipendenze.

Avvisi di Dependabot

Anche con un grafico visivo delle dipendenze, può risultare comunque difficile tenersi continuamente aggiornati sugli aspetti legati alla sicurezza di ogni dipendenza di un progetto. Per ridurre questo sovraccarico, GitHub fornisce avvisi Dependabot che controllano automaticamente i grafici delle dipendenze. Quindi confronta le versioni di destinazione con le versioni incluse negli elenchi di vulnerabilità note. Quando viene individuato un rischio, viene generato un avviso per il progetto. L'input per l'analisi proviene da GitHub Security Advisories.

Screenshot degli avvisi Dependabot per le dipendenze vulnerabili.

Aggiornamenti automatizzati delle dipendenze con Dependabot

Un avviso di dipendenza può indurre un collaboratore del progetto a portare il riferimento del pacchetto incriminato alla versione consigliata e a creare una richiesta di pull per la convalida. Non sarebbe meglio se si potesse automatizzare questa operazione? In effetti si può. Dependabot lo fa. Analizza gli avvisi sulle dipendenze e crea richieste pull in modo che un collaboratore possa convalidare l'aggiornamento e unire la richiesta.

Per altre informazioni sulla flessibilità di Dependabot, vedere Configurazione degli aggiornamenti della sicurezza di Dependabot.

Analisi automatizzata del codice

Come Dependabot cerca nel repository avvisi sulle dipendenze, è possibile usare l'analisi del codice per esaminare e trovare vulnerabilità di sicurezza ed errori nel codice in un repository GitHub. L'analisi del codice offre diversi vantaggi. È possibile usarla per trovare, valutare e classificare in ordine di priorità le correzioni per i problemi esistenti o per le potenziali vulnerabilità di sicurezza. È anche utile per impedire agli sviluppatori di introdurre nel codice nuovi problemi di sicurezza.

Un altro vantaggio dell'analisi del codice è la possibilità di usare CodeQL, CodeQL consente di eseguire query sul codice come dati, permettendo quindi di creare query personalizzate o di usare le query gestite dalla community open source. L'analisi del codice offre la libertà di personalizzare e gestire la modalità di analisi del codice all'interno del repository.

È possibile abilitare i flussi di lavoro e gli avvisi sull'analisi del codice nella scheda relativa alla sicurezza di un repository GitHub:

Screenshot di un elenco di criteri e avvisi con collegamenti ad altre informazioni.

Altre informazioni sull'analisi del codice e CodeQL.

Analisi dei segreti

Un'altra funzionalità di analisi automatizzata in un repository GitHub è l'analisi segreta. Analogamente alle funzionalità di analisi della sicurezza precedenti, l'analisi dei segreti cerca i segreti o le credenziali note di cui è stato eseguito il commit nel repository. Questa analisi viene eseguita per impedire comportamenti fraudolenti e per proteggere l'integrità dei dati sensibili. Per impostazione predefinita, l'analisi dei segreti viene eseguita nei repository pubblici ed è possibile abilitare l'analisi dei segreti nei repository privati da parte di amministratori di repository o proprietari dell'organizzazione.

Quando l'analisi dei segreti rileva un set di credenziali, GitHub invia una notifica al provider di servizi che ha rilasciato il segreto. Il provider di servizi convalida le credenziali. Decide quindi se revocare il segreto, rilasciare un nuovo segreto o contattare direttamente l'utente. L'azione dipende dai rischi associati all'utente o al provider di servizi.

Altre informazioni sull'analisi dei segreti per i repository pubblici e privati.