Nel repository PyPI sono stati individuati circa 5000 segreti dimenticati nel codice e 8 offuscatori malevoli.

I ricercatori di GitGuardian hanno pubblicato i risultati di un'analisi sui dati sensibili dimenticati dagli sviluppatori nel codice caricato nel repository dei pacchetti Python, PyPI (Python Package Index). Dopo aver esaminato oltre 9,5 milioni di file e 5 milioni di versioni di pacchetti legati a 450.000 progetti, sono stati identificati 56.866 casi di esposizione di dati riservati. Considerando solo i dati unici, senza duplicati in diverse versioni, il numero di esposizioni scoperte è stato di 3.938, mentre il numero di progetti con almeno un'esposizione è di 2.922.

Sono stati identificati oltre 150 tipi di esposizione di informazioni riservate, tra cui comuni password, chiavi crittografiche, token di accesso a servizi cloud, sistemi di integrazione continua e API. Almeno 768 credenziali erano ancora valide al momento della ricerca. Tra gli esempi di esposizioni popolari e rilevanti ci sono le chiavi di accesso a Azure Active Directory, credenziali per SSH, MongoDB, MySQL e PostgreSQL, chiavi per GitHub OAuth App, Dropbox e Auth0, e dati di accesso a Coinbase e Twilio.

Tra i tipi di fuga dati in crescita si citano i token di accesso ai bot su Telegram, il cui numero è raddoppiato all'inizio del 2021 e poi nuovamente raddoppiato nella primavera del 2023. Una crescita costante delle fughe è stata registrata dal 2020 per le chiavi di accesso all'API di Google, e dal 2022 per le credenziali dei database. Tra i pacchetti che guidano il numero di fughe, si segnalano i pacchetti chatllm e safire, che hanno esposto 209 chiavi di OpenAI e 320 chiavi di Google Cloud.

Tra i tipi di file che mostrano il maggior numero di perdite, oltre ai file con estensione «.py», figurano i file con estensione .json (610 perdite), .md (270), PKG-INFO (240), METADATA (210), .txt (170), così come i file README (209) e i file delle cartelle chiamate test (675). Molte perdite sono anche associate a negligenze e errori nella configurazione delle eccezioni dei file durante la creazione dei pacchetti. Ad esempio, i file di configurazione locali (.cookiecutterrc, .env, .pypirc, ecc.) possono essere esclusi dal repository Git tramite il file «.gitignore», che non viene considerato durante la creazione del pacchetto. In particolare, nel repository sono stati trovati 43 file .pypirc contenenti credenziali per l'accesso a PyPI. In 15 casi di perdite, gli sviluppatori non avevano pianificato di pubblicare pacchetti creati per uso interno, ma li hanno pubblicati su PyPI per errore.

In aggiunta, si possono menzionare altri due eventi legati a PyPI:

  • Nel repository PyPI sono stati identificati 8 pacchetti dannosi, presentati come strumenti per l'offuscamento, ovvero per rendere il codice illeggibile, complicando il recupero dell'algoritmo di funzionamento. I pacchetti identificati contenevano nel nome la stringa «pyobf» (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse e pyobfgood) e sono stati scaricati oltre 2000 volte.

    Il codice malevolo integrato nei pacchetti era specifico per la piattaforma Windows e permetteva di connettersi a un controller esterno server, eseguire comandi arbitrari sul computer dello sviluppatore, trovare e inviare a un server esterno informazioni riservate, come chiavi di accesso, e trasferire file arbitrari dal sistema. Inoltre, il codice malevolo poteva svolgere funzioni di keylogger, intercettare le password inserite in Chrome, creare screenshot, registrare audio e persino controllare la webcam.

  • Sono stati pubblicati i risultati di un audit indipendente del codice sorgente degli strumenti utilizzati per gestire il repository pypi.org e del framework "cabotage", impiegato nell'infrastruttura per l'orchestrazione dei container. L'audit è stato condotto con il supporto dell'organizzazione non profit OTF (Open Technology Fund). Durante l'audit non sono stati riscontrati problemi con un alto livello di pericolo, mentre i codici sorgenti sono stati riconosciuti conformi ai requisiti fondamentali per una scrittura sicura del codice. È stato però notato un'insufficiente copertura dei test del codice sorgente di cabotage e sono emersi 29 problemi, di cui otto classificati come di pericolo moderato, sei come bassi e 14 contrassegnati come osservazioni informative.

    Problemi più evidenti:

    • Una verifica insufficiente delle firme digitali utilizzate per l'integrazione di PyPI con AWS SNS consentiva l'invio di notifiche via email a singoli utenti.
    • Una perdita di informazioni nel gestore dei caricamenti, che permette di determinare l'esistenza di un account senza generare eventi di tentativi di accesso.
    • Utilizzo di hash crittografici non affidabili, che non escludono attacchi di avvelenamento della cache.
    • Se i diritti per avviare processi di build sono presenti attraverso cabotage, l'attaccante potrebbe potenzialmente inserire i propri comandi.
    • Se i diritti di deploy sono presenti in cabotage, l'attaccante potrebbe potenzialmente distribuire un'immagine dall'aspetto legittimo.

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