Che cos'è GitHub Advanced Security?
GitHub offre molte funzionalità che consentono di migliorare e mantenere la qualità del codice. Alcune di queste funzionalità sono incluse in tutti i piani, ad esempio il grafico delle dipendenze e gli avvisi Dependabot. Altri forniscono funzionalità limitate nei repository pubblici, mentre le funzionalità avanzate per i repository privati richiedono GitHub sicurezza del codice e protezione dei segreti GitHub.
In questa unità verranno fornite altre informazioni su GitHub Sicurezza avanzata e si scoprirà l'aspetto di un progetto con funzionalità di sicurezza avanzate.
Panoramica della sicurezza avanzata di GitHub
GitHub funzionalità di sicurezza avanzata sono ora disponibili tramite due prodotti principali:
- GitHub Sicurezza del codice (rilevamento e correzione delle vulnerabilità)
- protezione dei segreti GitHub (rilevamento e prevenzione dei segreti)
Insieme, questi prodotti offrono una piattaforma di sicurezza più ampia che si estende oltre il set di funzionalità di sicurezza avanzata GitHub originale.
Disponibilità della funzionalità
La tabella seguente riepiloga la disponibilità di GitHub funzionalità di sicurezza tra tipi di repository e prodotti.
| Caratteristica | Repository pubblico | Repository privato | sicurezza del codice GitHub | protezione privata di GitHub |
|---|---|---|---|---|
| Analisi del codice (CodeQL) | Sì | NO | Sì | NO |
| Correzione automatica Copilot | Sì, limitato | NO | Sì | NO |
| Esame delle dipendenze | Sì | NO | Sì | NO |
| Avvisi di Dependabot | Sì | Sì | Sì | NO |
| Regole di triage automatico di Dependabot | NO | NO | Sì | NO |
| Campagne di sicurezza | NO | NO | Sì | NO |
| Panoramica della sicurezza | NO | NO | Sì | NO |
| Analisi dei segreti | Sì (di base) | NO | NO | Sì |
| Protezione push | NO | NO | NO | Sì |
| Modelli di segreto personalizzati | NO | NO | NO | Sì |
Come illustrato nella tabella precedente, molte funzionalità di sicurezza di base, tra cui l'analisi del codice, l'analisi dei segreti di base, la revisione delle dipendenze e gli avvisi Dependabot, sono disponibili per impostazione predefinita per i repository pubblici in GitHub.com. Le funzionalità avanzate per i repository privati e interni richiedono GitHub Enterprise Cloud o GitHub Team con sicurezza del codice GitHub e/o GitHub protezione privata abilitata.
GitHub sicurezza del codice e protezione dei segreti di GitHub offrono le funzionalità avanzate seguenti per i repository privati e interni:
- Analisi del codice (CodeQL): Rileva automaticamente vulnerabilità ed errori nel codice e supporta correzioni assistite dall'intelligenza artificiale tramite Copilot Autofix (se abilitato).
- Analisi dei segreti: Rileva i segreti esposti nel codice, blocca le perdite con protezione push, supporta modelli segreti personalizzati e fornisce flussi di lavoro avanzati di avviso e correzione.
- Revisione delle dipendenze: Mostra l'impatto delle modifiche alle dipendenze ed evidenzia le versioni vulnerabili prima dell'unione delle richieste pull.
- Panoramica della sicurezza: Offre visibilità a livello di organizzazione sul comportamento di sicurezza, sui rischi e sugli avvisi a livello di repository.
- Campagne di sicurezza: Consente alle organizzazioni di raggruppare, classificare in ordine di priorità e correggere sistematicamente più avvisi di sicurezza tra repository, aiutando i team a ridurre le vulnerabilità più velocemente e su larga scala.
Note chiave
GitHub si è evoluto da un singolo bundle di sicurezza avanzata GitHub in una piattaforma modulare costituita da:
- Sicurezza del codice GitHub
- Protezione dei segreti di GitHub
Altri punti importanti includono:
- I repository pubblici continuano a ricevere una baseline avanzata di funzionalità di sicurezza gratuite.
- Le funzionalità avanzate si concentrano sulla prevenzione (ad esempio la protezione push), l'automazione e la correzione assistita dall'intelligenza artificiale.
GitHub Advanced Security nel ciclo di vita dello sviluppo software
Che differenza apportano le funzionalità di GitHub Advanced Security nel ciclo di sviluppo del software? Si esaminerà prima di tutto uno scenario di sicurezza di base.
Questo esempio illustra un approccio tradizionale di sicurezza come gate, in cui uno o più test di sicurezza si svolgono durante la fase di garanzia della qualità. In questo scenario, la sicurezza spesso diventa un collo di bottiglia che ritarda la distribuzione del software. Molte organizzazioni affrontano questa sfida spostando la sicurezza a sinistra.
Si esaminerà ora lo stesso ciclo di vita di sviluppo software con GitHub Advanced Security.
In questo scenario, la sicurezza viene integrata dall'inizio tramite i criteri di sicurezza configurati durante l'installazione del progetto. Gli sviluppatori ricevono commenti e suggerimenti sulla sicurezza durante il processo di sviluppo.
- Analisi del codice: Analizza ogni commit e merge per individuare vulnerabilità ed errori di codifica.
- Scansione dei segreti: Analizza ogni commit e merge alla ricerca di segreti inclusi accidentalmente, ad esempio token e chiavi private.
- Revisione delle dipendenze: Monitora le modifiche alle dipendenze e valuta l'impatto sulla sicurezza del progetto confrontando i file manifesto rispetto ai database di vulnerabilità note durante ogni richiesta pull.
Inoltre, Panoramica della sicurezza offre agli amministratori una panoramica generale del comportamento di sicurezza dell'organizzazione. Questa vista consente di identificare i repository che richiedono attenzione o correzione.
Poiché i controlli di sicurezza si verificano durante tutto il ciclo di vita dello sviluppo, i potenziali problemi vengono identificati e risolti in precedenza. Questo approccio riduce i colli di bottiglia durante la garanzia di qualità e riduce al minimo il debito tecnico prima del rilascio del software.