21 Migliori Pratiche di Sicurezza per GitHub

GitHub è estremamente proattivo nel proteggere la sicurezza dei suoi utenti e del loro codice. Oltre a incoraggiare o far rispettare l'uso dell'autenticazione multifattore (MFA), ha anche sviluppato e distribuito strumenti per aiutare a prevenire l'esposizione di accessi non autorizzati e informazioni sensibili nei depositi pubblici. Di conseguenza, la maggior parte degli incidenti di sicurezza legati a GitHub è causata da errori degli utenti. Questo articolo esplora alcune best practice che le organizzazioni che utilizzano GitHub possono adottare per garantire la sicurezza dei loro repository GitHub e del codice e dei dati che contengono.

Scarica il whitepaper Scopri di più

Le 21 migliori pratiche di sicurezza per GitHub

Ecco le 21 migliori pratiche di sicurezza per GitHub:

#1. Non memorizzare mai credenziali e dati sensibili su Github

GitHub è un sistema di controllo versioni, quindi i dati memorizzati su di esso restano lì per sempre. Strumenti come git-secrets possono bloccare il codice contenente dati sensibili dal trasferirsi su GitHub.

#2. Disabilitare il forking

Forking crea una copia di un repository GitHub senza influenzare il codice originale. Disabilita il forking per mantenere il controllo sul codice sorgente e assicurarti che dati sensibili non vengano aggiunti e resi pubblici da un fork non autorizzato.

#3. Disabilita i cambiamenti di visibilità

GitHub supporta sia i repository pubblici che quelli privati, e gli utenti privilegiati possono modificare la visibilità di un repository. Limita il numero di utenti che possono farlo disabilitando il permesso per tutti i membri della tua organizzazione di modificare "Repository visibility change" nei privilegi dei membri di GitHub.

#4. Convalida la tua applicazione GitHub

Le organizzazioni spesso collaborano con sviluppatori terzi che hanno accesso agli account GitHub. Questi utenti esterni dovrebbero avere un accesso limitato e tutti i commit dovrebbero essere convalidati prima di aggiungerli a un repository.

#5. Imporre l'autenticazione a 2 fattori

GitHub consente alle organizzazioni di imporre l'uso dell'autenticazione a due fattori (2FA). Richiedere la 2FA per tutti gli utenti riduce il rischio di fughe di codice o codice malevolo dovuti a account insicuri.

#6. Implementa SSO (solo GitHub Enterprise)

GitHub Enterprise consente alle organizzazioni di assegnare in modo granulare le autorizzazioni a varie risorse. Inoltre, l'accesso singolo SAML (SSO) consente l'integrazione di GitHub con la soluzione IAM di un'organizzazione.

#7. Limita l'accesso agli indirizzi IP consentiti

L'inserimento di IP consentiti consente a un'organizzazione di limitare l'accesso ai dispositivi locali o alle VPN aziendali. Ciò protegge dall'accesso al repository da parte di ex dipendenti o dispositivi non autorizzati.

#8. Gestire attentamente le autorizzazioni dei collaboratori esterni

I collaboratori esterni possono partecipare a un progetto solo per un breve periodo e l'accesso deve essere revocato al termine del loro ruolo. La gestione degli account esterni riduce il gap di sicurezza e i prezzi "per utente" di GitHub.

#9. Revoca i permessi in tempi rapidi

Gli utenti potrebbero non aver più bisogno dell'accesso ai repository dopo aver lasciato l'azienda o il progetto. Revocare l'accesso o passare a lettura sola riduce il rischio associato al loro account.

#10. Richiedi la firma dell'impegno

L'identità percepita di un utente può essere modificata su GitHub semplicemente modificando la sua configurazione git. La firma di codici in modo crittografico firma impegni per garantire autenticità e tracciabilità.

#11. Applicare la revisione del codice prima dei commit

La revisione del codice può identificare potenziali vulnerabilità di sicurezza o funzionalità dannose in un commit. GitHub può essere configurato in modo che tutti gli invii siano richieste pull, consentendo la revisione prima dell'unione.

#12. Aggiungi un file Security.md

Il file security.md documenta ufficialmente le politiche di sicurezza di un repository. Questo può essere utilizzato per condividere requisiti di sicurezza e mezzi per segnalare vulnerabilità.

#13. Ruota le Chiavi SSH e i Token di Accesso Personale (PAT)

GitHub utilizza chiavi SSH e PAT come alternativa alle password per l'autenticazione. Questi dovrebbero essere ruotati regolarmente per eliminare le potenziali credenziali violate.

#14. Controlla tutto il codice caricato su GitHub

Le code base legacy ed esterne possono essere aggiunte a un repository GitHub come parte di un'Applicationazione. Questo codice dovrebbe essere verificato per eventuali vulnerabilità prima di essere accettato in un codice base.

#15. Rivedi i tuoi log di audit su GitHub per eventuali attività sospette

GitHub offre una logging robusta per l'attività all'interno del GitHub di un'organizzazione. Esaminare regolarmente questi log può aiutare a identificare potenziali attività sospette e account compromessi.

#16. Abilita gli avvisi per dipendenze vulnerabili

Applicazione può ereditare vulnerabilità dalle proprie dipendenze, in particolare dipendenze di terze parti e open source . GitHub offre la segnalazione automatica delle vulnerabilità nei repository pubblici di un'organizzazione.

#17. Utilizza la scansione segreta automatizzata al pre-commit

Le credenziali codificate in modo rigido in un'Applicazione rischiano di essere esposte, anche nei repository privati. La scansione automatica dei segreti identifica e impedisce che queste credenziali vengano incluse nel codice committato.

#18. Cancella la cronologia di GitHub

Le ampie storie delle versioni di GitHub possono essere problematiche se dati sensibili sono inclusi nel codice. La storia può essere riscritta usando il comando git filter-branch.

#19. Abilita la protezione dei branchi Git

La protezione dei branchi git impedisce modifiche non autorizzate a specifici branch. Questo può proteggere questi branch dalla perdita di codice e dati dovuta a cancellazioni accidentali o a git squash merge.

#20. Aggiungi file sensibili a .gitignore

Un repository git locale potrebbe richiedere l'accesso a determinate chiavi SSK e token di accesso che non dovrebbero essere inviati a un repository git. Inclusione di questi file in .gitignore impedisce che vengano caricati.

#21. Impiega un servizio "Secrets Vault"

Un archivio segreto conserva informazioni sensibili (password, chiavi crittografiche, ecc.) a cui un'Applicazione deve accedere. Un vault offre una protezione più forte di quella disponibile su GitHub.

Raggiungere la sicurezza di GitHub con Check Point

Per le organizzazioni che utilizzano i repository GitHub, proteggerli è essenziale per proteggere il codice e i dati sensibili che possono contenere.

Per ulteriori consigli su come mantenere i tuoi repository GitHub al sicuro, consulta questa lista più completa delle migliori pratiche di sicurezza su GitHub. Check Point offre soluzioni per proteggere Applicazione durante tutto il ciclo di vita dello sviluppo software (SDLC).

Scopri di più su come la tua organizzazione può migliorare la sicurezza di GitHub con Check Point Developer Security.