X9: come Resultados Digitais può rilevare automaticamente i dati sensibili dati nei suoi repository di codice

Pubblicato il

(Vitoria Rio) (9 ottobre 2020)

Man mano che le aziende diventano più grandi, con una quantità sempre crescente di funzionalità, gli sviluppatori creano e integrano costantemente nuovi pezzi di codice come commit, pull request , ecc. Con laumento della popolarità delle metodologie agili, una soluzione più veloce per lanalisi delle vulnerabilità sta diventando un must. Non appena il codice viene inserito nel repository, se tale commit contiene informazioni sensibili, è necessario intraprendere azioni per risolverlo immediatamente, poiché alla fine potrebbe portare a fughe di dati.

Tuttavia, approfondendo centinaia di commit e pull request non è un compito facile nemmeno per un team di esperti ingegneri della sicurezza, ecco dove entra in gioco X9. X9 è uno strumento open source creato per automatizzare il rilevamento di informazioni sensibili nei repository GitHub dellorganizzazione. Può analizzare automaticamente il codice e creare notifiche tramite Slack quasi in tempo reale.

Architettura

Github ci consente di leggere diversi eventi come commit e pull request tramite luso di Github Webhooks . Ad esempio, quando uno sviluppatore crea un PR, viene creato un evento sulla piattaforma Github, che quindi invia un payload di un messaggio a un percorso preconfigurato (in questo caso, linterfaccia X9) contenente informazioni dettagliate sullevento. Questo approccio funziona meglio se si considera che Github ci consente di configurare webhook per lintera organizzazione, consentendo a X9 di analizzare tutti i repository da questo ambito.

Configurando gli eventi per lintera organizzazione, X9 non solo garantisce che tutti i repository vengono analizzati, ma semplifica anche il processo di analisi, offrendo agli ingegneri della sicurezza maggiore flessibilità e controllo sulle potenziali minacce alla sicurezza dellazienda.

Dopo aver ricevuto il payload dellevento, lapp clona la filiale del repository ed esegue diverse operazioni di sicurezza test. Ogni evento viene elaborato da un lavoratore indipendente che può essere aumentato in caso di throughput più elevato. Tutte le vulnerabilità scansionate vengono quindi archiviate in un database PostgreSQL e notificate su un canale Slack. Linterfaccia di Slack consente di creare direttamente un problema su Github o di segnalare la vulnerabilità come un falso positivo.

Analisi

X9 utilizza firme e modelli specifici per rilevare dati sensibili nel codice. Queste firme sono espressioni regolari su misura per questo scopo specifico come r"[a-zA-Z0-9]*\@emailexample.com" che può rilevare e-mail personali o quanto segue, che rileva le chiavi di accesso AWS allinterno del contenuto del file (definito più avanti):

Lapplicazione consente inoltre allutente di configurare espressioni regolari, consentendo un approccio più orientato al dominio. Esistono quattro tipi di contesti di firma per X9:

  • nomefile : cerca nomi di file completi
  • extension : cerca estensioni specifiche (ad esempio: .pem, .db)
  • path : cerca il percorso completo di una cartella predeterminata di un file nel repository
  • contenuti : cerca pattern allinterno dei file

Notifiche e azioni

Tramite webhook Slack , X9 invia informazioni dettagliate per ogni risultato a un canale definito dallutente. È importante notare che qualsiasi informazione potenzialmente sensibile viene adeguatamente offuscata, come illustrato di seguito:

I componenti interattivi ( Problema aperto e False Positive ) consentono la creazione diretta del problema su GitHub e ignorano la vulnerabilità come un falso positivo rispettivamente. Se è necessario creare un problema dal messaggio, viene creato il seguente formato del problema nel repository vulnerabile:

Dashboard

X9 ha anche un dashboard per la visualizzazione delle vulnerabilità. Questa dashboard è unapplicazione separata opzionale che non interferisce con lanalisi della sicurezza. Utilizza OpenID Connect per lautenticazione dellaccesso.

La dashboard è una visualizzazione tabella che consente il filtraggio in base al nome del repository e al tipo di vulnerabilità. Se creato, verrà visualizzato anche il link del problema.

Considerazioni finali

X9 è ancora un work in progress ed è attivamente aggiornato, i contributi sono benvenuti :).

Dai unocchiata a github.com/ResultadosDigitais/ x9 .

Riferimenti

Questo progetto è stato ispirato da Shhgit e Gitleaks , che ha fornito la maggior parte delle firme e della strategia analitica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *