Packj: un toolkit per identificare librerie dannose in Python e JavaScript

Gli sviluppatori della piattaforma Packj, che analizza la sicurezza delle librerie, hanno pubblicato un toolkit aperto a riga di comando che consente loro di identificare strutture rischiose nei pacchetti che potrebbero essere associate all'implementazione di attività dannose o alla presenza di vulnerabilità utilizzate per effettuare attacchi sui progetti che utilizzano i pacchetti in questione (“supply chain”). Il controllo dei pacchetti è supportato nei linguaggi Python e JavaScript, ospitati nelle directory PyPi e NPM (questo mese prevedono anche di aggiungere il supporto per Ruby e RubyGems). Il codice del toolkit è scritto in Python e distribuito sotto la licenza AGPLv3.

Durante l'analisi di 330mila pacchetti utilizzando gli strumenti proposti nel repository PyPi, sono stati identificati 42 pacchetti dannosi con backdoor e 2.4mila pacchetti rischiosi. Durante l'ispezione, viene eseguita un'analisi statica del codice per identificare le funzionalità dell'API e valutare la presenza di vulnerabilità note annotate nel database OSV. Il pacchetto MalOSS viene utilizzato per analizzare l'API. Il codice del pacchetto viene analizzato per verificare la presenza di modelli tipici comunemente utilizzati nel malware. I modelli sono stati preparati sulla base di uno studio di 651 pacchetti con attività dannosa confermata.

Identifica inoltre attributi e metadati che comportano un aumento del rischio di uso improprio, come l'esecuzione di blocchi tramite "eval" o "exec", la generazione di nuovo codice in fase di esecuzione, l'utilizzo di tecniche di codice offuscato, la manipolazione di variabili di ambiente, l'accesso non mirato ai file, accesso alle risorse di rete negli script di installazione (setup.py), utilizzo del typequatting (assegnando nomi simili ai nomi delle biblioteche popolari), identificazione di progetti obsoleti e abbandonati, specificazione di e-mail e siti Web inesistenti, mancanza di un repository pubblico con codice.

Inoltre, possiamo notare l'identificazione da parte di altri ricercatori di sicurezza di cinque pacchetti dannosi nel repository PyPi, che inviavano il contenuto delle variabili di ambiente a un server esterno con l'aspettativa di rubare token per AWS e sistemi di integrazione continua: loglib-modules (presentati come moduli per la libreria legittima loglib), pyg-modules , pygrata e pygrata-utils (presentati come aggiunte alla libreria legittima pyg) e hkg-sol-utils.

Packj: un toolkit per identificare librerie dannose in Python e JavaScript


Fonte: opennet.ru

Aggiungi un commento