Socket: protezione del software open source dagli attacchi alla catena di approvvigionamento con l'analisi dei pacchetti di nuova generazione

Pubblicato: 2022-05-30

Con l'avvento e l'ubiquità di Internet, le aziende fanno sempre più affidamento sulla digitalizzazione per sopravvivere e prosperare nell'ambiente aziendale di oggi. Ma con i vantaggi apportati dai progressi tecnologici, ci sono problemi con cui queste aziende devono fare i conti. La violazione della sicurezza informatica è un problema importante per le aziende, che può causare molti danni. Quindi, per affrontare questo problema, Socket ha lanciato la sua piattaforma di sicurezza informatica per aiutare le aziende a proteggersi dagli attacchi alla catena di fornitura del software. Queste aziende utilizzano la piattaforma di sicurezza informatica per proteggere le proprie applicazioni software e servizi critici da malware e minacce alla sicurezza originate dal codice open source.

Leggi anche: 7 motivi per cui la gestione delle risorse è importante per le piccole imprese

Fondata da Feross Aboukhadijeh, l'azienda è stata fondata nel 2021 con l'obiettivo di proteggere gli ecosistemi open source per le aziende. Il suo obiettivo era il software open source, che consente ai team di creare applicazioni potenti in un tempo più breve. Inoltre, chiunque nel gruppo può ispezionare e contribuire al codice. Aboukhadijeh si è reso conto che, essendo una comunità generalmente fiduciosa, alcuni aggressori approfittano di questa fiducia e apertura per portare a termine attacchi sfacciati alla catena di approvvigionamento. C'è stata una crescita senza precedenti nella scala del malware open source. Tale è il tasso di aumento che circolavano preoccupazioni sull'uso continuato del software open source.

Ci sono ragioni per cui approcci provati e affidabili non hanno funzionato per proteggere l'open source. L'intero settore della sicurezza è sempre stato preoccupato per la scansione delle vulnerabilità note, un approccio troppo reattivo per fermare un attacco attivo alla catena di approvvigionamento. Le esposizioni possono richiedere settimane o mesi per essere scoperte.

Nella cultura odierna dello sviluppo rapido, una dipendenza dannosa può essere aggiornata, unita ed eseguita in produzione in pochi giorni o addirittura ore. Questo non è abbastanza tempo per creare un CVE e farsi strada negli strumenti di scansione delle vulnerabilità utilizzati dai team.

Gli attacchi e le vulnerabilità della catena di approvvigionamento sono molto diversi e richiedono soluzioni molto diverse:

️ Le vulnerabilità vengono introdotte accidentalmente da un manutentore open source. A volte, va bene inviare una vulnerabilità alla produzione se è a basso impatto.

️ Gli attacchi alla catena di approvvigionamento sono introdotti intenzionalmente da un utente malintenzionato. Non va MAI bene inviare malware da mostrare. Devi prenderlo PRIMA di installarlo o dipendere da esso.

I team che vogliono affrontare gli attacchi alla catena di approvvigionamento hanno attualmente due opzioni:

  • Esegui un controllo completo: leggi ogni riga di codice in tutte le dipendenze. Pochissime aziende lo fanno, ma è il gold standard per prevenire gli attacchi alla catena di approvvigionamento. Ci vuole un team a tempo pieno per gestire questo processo: gli audit, gli aggiornamenti, la lista consentita e l'applicazione di patch di sicurezza critiche. Questo approccio è fuori dalla portata di tutte tranne le aziende più importanti o le applicazioni più critiche per la sicurezza. È un sacco di lavoro, è lento ed è costoso.
  • Non fare nulla: incrocia le dita e spera per il meglio. Questa è l'opzione che la maggior parte delle squadre sceglie. Sulla maggior parte delle unità, qualsiasi sviluppatore può installare qualsiasi dipendenza per portare a termine il lavoro e nessuno esamina il codice in queste dipendenze prima di approvare la richiesta pull. Come ci si potrebbe aspettare, questo approccio lascia le aziende completamente vulnerabili agli attacchi alla catena di approvvigionamento.

Nessuno dei due approcci è l'ideale.

Leggi anche: 10 motivi per cui il test del software è un campo di carriera in crescita oggi

Durante lo sviluppo dell'app Wormhole (uno strumento di trasferimento file crittografato end-to-end), l'azienda ha affrontato le sfide di selezionare, gestire e aggiornare le dipendenze open source in mezzo a un attacco costante di attacchi alla catena di approvvigionamento. Ciò ha portato alla necessità di una terribile soluzione al problema. E così, l'azienda ha studiato cosa fanno effettivamente gli aggressori una volta che hanno compromesso un pacchetto. Quasi tutti gli attacchi alla catena di approvvigionamento nell'ecosistema JavaScript hanno seguito uno schema familiare. Una volta che l'attaccante ha ottenuto il controllo di un pacchetto, ha aggiunto script di installazione, connessioni di rete, comandi della shell, accesso al filesystem o codice offuscato. Altri hanno utilizzato l'ingegneria sociale, come l'accorciamento di battitura; questo ha fornito la giusta direzione per una soluzione. La soluzione innovativa presuppone che tutti i pacchetti open source possano essere dannosi e funzionare all'indietro per rilevare in modo proattivo i segni di pacchetti compromessi. L'azienda ha cercato il modo più semplice per mitigare questo rischio senza compromettere l'usabilità. E così, hanno deciso di aiutare gli sviluppatori a utilizzare in sicurezza l'open source senza sacrificare la velocità di sviluppo. Nei mesi successivi, Socket è nata con i suoi popolari pacchetti open source.

L'azienda può rilevare i segni rivelatori di un attacco alla catena di approvvigionamento analizzando staticamente i pacchetti open source e le loro dipendenze. Avvisa quindi gli sviluppatori quando i pacchetti cambiano in modi rilevanti per la sicurezza, evidenziando eventi come l'introduzione di script di installazione, codice offuscato o l'utilizzo di API privilegiate come shell, rete, filesystem e variabili di ambiente. Ad esempio, per rilevare se un pacchetto utilizza la rete, Socket controlla se i moduli fetch(), net, dgram, DNS, HTTP o HTTPS di Node vengono utilizzati all'interno del pacchetto o in una qualsiasi delle sue dipendenze. Se una nuova versione di un pacchetto, in particolare una versione minore o patch, aggiunge codice per comunicare con la rete, è un'enorme bandiera rossa. E così, i problemi del pacchetto vengono rilevati.

La risposta dei clienti ai prodotti e servizi digitali dell'azienda è stata eccezionale! L'azienda ha protetto migliaia di organizzazioni e decine di migliaia di repository in due mesi dal suo lancio.

I clienti dell'azienda sono le aziende che vogliono proteggersi dagli attacchi. Bastano pochi minuti per proteggersi dagli attacchi alla catena di approvvigionamento installando l'app aziendale.

Storia successiva: Kaaruka – Un marchio di abbigliamento fresco per gli appassionati d'arte!

Messaggio a clienti e spettatori:

“Le librerie open source sono più popolari che mai. Poiché il codice open source costituisce l'80-90% della maggior parte delle basi di codice, è fondamentale gestirlo in modo efficace per ridurre i rischi per la sicurezza di un'organizzazione. Gli attacchi alla catena di fornitura del software sono esplosi nell'ultimo anno e i componenti open source sono sempre più utilizzati come vettori. L'utilizzo di dipendenze di terze parti senza un'adeguata verifica può portare a hacking, violazioni e vari problemi di sicurezza. Socket rileva gli attacchi alla catena di approvvigionamento prima che si verifichino disastri, prevenendo i problemi di sicurezza causati dal codice open source in tempo reale. Socket offre molto di più della semplice scansione delle vulnerabilità. Integrandosi direttamente nel flusso di lavoro degli sviluppatori, Socket previene gli attacchi che non ti aspetti: malware, codice nascosto, errori di battitura e pacchetti fuorvianti. Socket aiuta gli sviluppatori a prendersi cura della salute delle loro dipendenze dicendo loro quale open source stanno usando, cosa sta facendo (o potrebbe fare) e quali componenti sono a più alto rischio. Facendo emergere le informazioni sulla sicurezza direttamente in linea in GitHub e altri sistemi di controllo del codice sorgente, gli sviluppatori possono evitare problemi di sicurezza prima di metterli in produzione".