È stato pubblicato un analizzatore che ha identificato 200 pacchetti malevoli in NPM e PyPI.

Il Fondo OpenSSF (Open Source Security Foundation), istituito dalla Linux Foundation e volto a migliorare la sicurezza del software open source, ha presentato il progetto aperto Package Analysis, che sviluppa un sistema per analizzare la presenza di codice malevolo nei pacchetti. Il codice del progetto è scritto in Go e distribuito con la licenza Apache 2.0. La scansione preliminare dei repository NPM e PyPI tramite gli strumenti proposti ha permesso di identificare oltre 200 pacchetti malevoli precedentemente non rilevati.

La maggior parte dei pacchetti problematici identificati sfrutta l'intersezione dei nomi con dipendenze interne non pubbliche dei progetti (attacco di confusione delle dipendenze) o utilizza metodi di type squatting (assegnazione di nomi simili a quelli di librerie popolari), oltre a lanciare durante l'installazione script che si collegano a host esterni. Secondo gli sviluppatori di Package Analysis, la maggior parte dei pacchetti problematici riscontrati è stata probabilmente creata da ricercatori di sicurezza coinvolti in programmi di bug bounty, poiché i dati inviati sono limitati ai nomi utente e del sistema e le azioni vengono eseguite in modo esplicito, senza tentativi di nascondere il proprio comportamento.

Tra i pacchetti con attività dannosa si notano:

  • Il pacchetto PyPI discordcmd, in cui sono stati registrati invii di richieste insolite a raw.githubusercontent.com, Discord API e ipinfo.io. Questo pacchetto scaricava codice backdoor da GitHub e lo installava nella directory del client Windows di Discord, dopodiché avviava un processo di ricerca dei token Discord nel filesystem e li inviava a un server Discord esterno controllato dagli attaccanti.
  • Il pacchetto NPM colorsss, che cercava anche di inviare all'esterno un server token dall'account Discord.
  • Il pacchetto NPM @roku-web-core/ajax ha inviato dati di sistema durante l'installazione e ha attivato un gestore (reverse shell) che accetta connessioni esterne e esegue comandi.
  • Il pacchetto PyPI secrevthree attivava una reverse shell quando veniva importato un modulo specifico.
  • Il pacchetto NPM random-vouchercode-generator inviava una richiesta a un server esterno dopo l'importazione della libreria, che restituiva un comando e l'ora in cui doveva essere eseguito.

Il lavoro di Package Analysis consiste nell'analizzare i codici sorgente dei pacchetti per stabilire connessioni di rete, accedere ai file e eseguire comandi. Viene anche monitorata l'alterazione dello stato dei pacchetti per verificare l'aggiunta di inserti dannosi in una delle versioni di software inizialmente innocuo. Per monitorare l'emergere di nuovi pacchetti nei repository e le modifiche ai pacchetti già pubblicati, si utilizza uno strumento chiamato Package Feeds, che uniforma il lavoro con i repository NPM, PyPI, Go, RubyGems, Packagist, NuGet e Crate.

Il Package Analysis include tre componenti fondamentali, che possono essere utilizzati sia insieme che separatamente:

  • Il pianificatore per l'esecuzione di analisi dei pacchetti basato sui dati provenienti da Package Feeds.
  • L'analizzatore, che verifica direttamente il pacchetto e valuta il suo comportamento utilizzando metodi di analisi statica e tracciamento dinamico. Il controllo avviene in un ambiente isolato.
  • Il caricatore, che archivia i risultati della verifica nello storage BigQuery.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster