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

La OpenSSF (Open Source Security Foundation), costituita dalla Linux Foundation e finalizzata a migliorare la sicurezza del software open source, ha introdotto il progetto aperto Package Analysis, che sviluppa un sistema per analizzare la presenza di codice dannoso nei pacchetti. Il codice del progetto è scritto in Go e distribuito sotto la licenza Apache 2.0. Una scansione preliminare dei repository NPM e PyPI utilizzando gli strumenti proposti ci ha permesso di identificare più di 200 pacchetti dannosi precedentemente non rilevati.

La maggior parte dei pacchetti problematici identificati manipola l'intersezione dei nomi con le dipendenze interne non pubbliche dei progetti (attacco di confusione delle dipendenze) o utilizza metodi di typosquatting (assegnando nomi simili ai nomi delle librerie popolari) e chiama anche script che accedono a host esterni durante il processo di installazione. Secondo gli sviluppatori di Package Analysis, la maggior parte dei pacchetti problematici identificati sono stati molto probabilmente creati da ricercatori di sicurezza che hanno partecipato a programmi bug bounty, poiché i dati inviati sono limitati al nome dell'utente e del sistema e le azioni vengono eseguite esplicitamente, senza tentativi di nascondere il loro comportamento.

I pacchetti con attività dannose includono:

  • Pacchetto PyPI discordcmd, che registra l'invio di richieste atipiche a raw.githubusercontent.com, Discord API e ipinfo.io. Il pacchetto specificato ha scaricato il codice backdoor da GitHub e lo ha installato nella directory del client Discord di Windows, dopodiché ha avviato il processo di ricerca dei token Discord nel file system e di invio a un server Discord esterno controllato dagli aggressori.
  • Il pacchetto Colorsss NPM, che ha anche provato a inviare token da un account Discord a un server esterno.
  • Pacchetto NPM @roku-web-core/ajax - durante il processo di installazione ha inviato dati sul sistema e ha lanciato un gestore (shell inversa) che accettava connessioni esterne e lanciava comandi.
  • Pacchetto PyPI secret three: avvia una shell inversa durante l'importazione di un modulo specifico.
  • Pacchetto NPM random-vouchercode-generator: dopo aver importato la libreria, ha inviato una richiesta a un server esterno, che ha restituito il comando e l'ora in cui dovrebbe essere eseguito.

Il lavoro di Package Analysis si riduce all'analisi dei pacchetti di codice nel codice sorgente per stabilire connessioni di rete, accedere ai file ed eseguire comandi. Inoltre, vengono monitorati i cambiamenti nello stato dei pacchetti per determinare l'aggiunta di inserti dannosi in una delle versioni di software inizialmente innocuo. Per monitorare l'aspetto dei nuovi pacchetti nei repository e apportare modifiche ai pacchetti pubblicati in precedenza, viene utilizzato il toolkit Package Feeds, che unifica il lavoro con i repository NPM, PyPI, Go, RubyGems, Packagist, NuGet e Crate.

L'analisi del pacchetto include tre componenti di base che possono essere utilizzati sia insieme che separatamente:

  • Pianificatore per l'avvio del lavoro di analisi dei pacchetti in base ai dati dei feed dei pacchetti.
  • Un analizzatore che esamina direttamente un pacchetto e ne valuta il comportamento utilizzando tecniche di analisi statica e tracciamento dinamico. Il test viene effettuato in un ambiente isolato.
  • Un caricatore che inserisce i risultati del test nello spazio di archiviazione BigQuery.

Fonte: opennet.ru

Aggiungi un commento