Valuta la tua posizione di sicurezza nel controllo del codice sorgente con GitGat

Tutti i messaggi

Il tuo sistema di controllo del codice sorgente è uno degli anelli più sensibili nel ciclo di vita dello sviluppo del software. Memorizza il codice sorgente del software, gli script di build e gli script IaC (Infrastructure as Code) e in alcuni casi segreti e informazioni sensibili aggiuntive. Pertanto, proteggere il sistema di controllo del codice sorgente dovrebbe essere uno dei primi passi per proteggere l'ambiente di sviluppo del software.

Con l'obiettivo di proteggere l'SCM, abbiamo sviluppato GitGat. GitGat è un insieme di OPA autonomi (Agente di politica aperto) politiche scritte in Rego. L'uso dell'OPA consente molteplici casi d'uso, come parte di altri strumenti basati su OPA o come applicazioni autonome. GitGat valuta le impostazioni di sicurezza del tuo account SCM e ti fornisce un rapporto sullo stato e consigli attuabili. Il rapporto sullo stato può essere generato in un formato leggibile dall'uomo (file MD) per il professionista della sicurezza o in un formato leggibile dalla macchina (file JSON), per supportare decisioni e azioni politiche automatizzate.

Poiché GitHub è uno dei sistemi SCM leader a livello mondiale, volevamo che questo fosse il nostro punto di partenza. Il nostro obiettivo è eventualmente espandere il supporto ad altre piattaforme SCM.

GitGat attualmente supporta la valutazione delle seguenti famiglie di policy:

  • Controllo Accessi - impedire accesso iniziale tecniche basate sul furto di credenziali.
    • Convalida l'autenticazione a 2 fattori viene applicato alla tua organizzazione o ai suoi membri, comprendendo chi attualmente non utilizza 2FA.
    • Convalidare la visibilità del repository è come previsto. 
    • Convalidare il controllo di distribuzione e SSH Tasti.
  • Permessi – prevenire le fasi di attacco che derivano da autorizzazioni eccessive esecuzione, elusione della difesa, accesso alle credenziali,
    • Mappa gli utenti con autorizzazioni di amministratore
    • Mappa le autorizzazioni del team e invia notifiche ai team con autorizzazioni di amministratore
  • Protezione del ramo – prevenire le fasi di attacco che sfruttano modifiche involontarie e non consentite del repository: esecuzione, persistenza, evasione della difesa e impatto
    • Mappa dei rami protetti e non protetti
    • Mappa la configurazione della protezione del ramo: per comprendere quali protezioni sono in atto (ad esempio: applicare revisioni e commit firmati e impedire la cancellazione della cronologia).
  • Monitoraggio della modifica dei file – prevenire/rilevare passaggi di attacco che sfruttano le autorizzazioni di accesso ai file concesse per impostazione predefinita quando si utilizza GitHub: esecuzione, persistenza ed evasione della difesa.

Stiamo pianificando di aggiungere il supporto per la scansione segreta utilizzando strumenti open source come git-leaks.

Come ogni professionista della sicurezza sa, le regole e le politiche di sicurezza costituiscono solitamente la base per le decisioni specifiche del progetto. Ogni progetto presenta condizioni e vincoli speciali che richiedono approvazioni speciali da parte di una parte interessata autorizzata. Per consentire una facile gestione di questi casi speciali, GitGat supporta la gestione di uno stato. Lo stato, un oggetto JSON gestito dall'utente, può memorizzare tali eccezioni. Ciò ti consente di eseguire una scansione continua del livello di sicurezza e di essere avvisato solo su ciò che è nuovo o non incluso nel tuo stato. 

Un'analisi dettagliata delle minacce sul motivo per cui abbiamo scelto questi problemi come punto di partenza per migliorare la strategia di sicurezza dell'SCM può essere trovata nel README del Archivio GitGat

Invitiamo tutti a provare il progetto. Sentiti libero di offrire critiche, idee, richieste o anche aiuto. Ci sono molte direzioni in cui questo progetto può svilupparsi e siamo entusiasti di esplorarle con te.

Questo contenuto è offerto da Scribe Security, un fornitore leader di soluzioni di sicurezza end-to-end per la catena di fornitura di software, che offre sicurezza all'avanguardia per artefatti di codice e processi di sviluppo e distribuzione del codice attraverso le catene di fornitura di software. Per saperne di più.