Els investigadors de GitGuardian han publicat els resultats d'una anàlisi de dades sensibles oblidades pels desenvolupadors en codi allotjat al dipòsit PyPI (Python Package Index) de paquets Python. Després d'estudiar més de 9.5 milions d'arxius i 5 milions de llançaments de paquets associats a 450 mil projectes, es van identificar 56866 casos de fuga de dades confidencials. Si tenim en compte només dades úniques, sense duplicació en diferents llançaments, el nombre de filtracions identificades va ser de 3938 i el nombre de projectes amb almenys una filtració va ser de 2922.
En total, s'han identificat més de 150 tipus de fuites d'informació confidencial, incloent contrasenyes ordinàries, claus criptogràfiques, testimonis d'accés per a serveis al núvol, sistemes d'integració contínua i API. Almenys 768 credencials romanien actives en el moment de l'estudi. Alguns exemples de filtracions populars que segueixen sent rellevants inclouen claus d'accés per a Azure Active Directory, credencials per a SSH, MongoDB, MySQL i PostgreSQL, claus per a l'aplicació GitHub OAuth, Dropbox i Auth0, paràmetres d'inici de sessió per a Coinbase i Twilio.
Entre els tipus de filtracions que estan guanyant popularitat hi ha fitxes per accedir als bots a Telegram, el nombre dels quals es va duplicar a principis del 2021 i després es va tornar a duplicar a la primavera del 2023. També s'ha registrat un augment constant de filtracions des del 2020 per a les claus d'accés a l'API de Google, i des del 2022 per a les credencials del SGBD. Entre els paquets que lideren el nombre de filtracions, s'esmenten els paquets chatllm i safire, en què es van oblidar 209 claus per a OpenAI i 320 claus per a Google Cloud.
Entre els tipus de fitxers en què s'han identificat el major nombre de fuites, a més dels fitxers amb l'extensió “.py”, hi ha fitxers amb l'extensió .json (610 filtracions), .md (270), PKG-INFO (240). ), METADATES (210), .txt (170), així com fitxers README (209) i fitxers dels directoris anomenats test (675). Moltes filtracions també es deuen a descuits i errors en establir l'exclusió de fitxers en generar paquets. Per exemple, els fitxers amb fitxers de configuració local (.cookiecutterrc, .env, .pypirc, etc.) es poden excloure del repositori Git mitjançant un fitxer ".gitignore", que no es té en compte a l'hora de crear el paquet. En particular, s'han trobat 43 fitxers .pypirc al repositori que contenen credencials per accedir a PyPI. En 15 filtracions, els desenvolupadors no tenien la intenció de llançar públicament paquets creats originalment per a ús intern, però els van publicar a PyPI per error.
A més, es poden esmentar dos esdeveniments més relacionats amb PyPI:
- Al repositori PyPI, es van identificar 8 paquets maliciosos, presentats com a utilitats per a l'ofuscament, és a dir. reduint el codi a una forma il·legible, complicant la restauració de l'algorisme. Els paquets identificats contenien la cadena "pyobf" als seus noms (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse i pyobfgood) i es van descarregar més de 2000 vegades.
El codi maliciós integrat als paquets era específic de la plataforma Windows i va permetre la connexió a un control extern servidor, executar ordres arbitràries a l'ordinador del desenvolupador, trobar i enviar informació confidencial, com ara claus d'accés, a un servidor extern i transferir fitxers arbitraris des del sistema. A més, el codi maliciós podria actuar com a keylogger, interceptar contrasenyes introduïdes a Chrome, crear captures de pantalla, gravar àudio i fins i tot controlar la càmera web.
- S'han publicat els resultats d'una auditoria independent del codi base de les eines utilitzades per organitzar el treball del repositori pypi.org i del marc de cabotatge utilitzat en la infraestructura d'orquestració de contenidors. L'auditoria es va dur a terme amb el suport de l'organització sense ànim de lucre OTF (Open Technology Fund). Durant l'auditoria, no es van identificar problemes amb un alt nivell de perill, i es va reconèixer que els codis font compleixen els requisits bàsics per a una codificació segura. Al mateix temps, es va observar una cobertura insuficient de proves de la base de codis de cabotatge i es van identificar 29 problemes, dels quals vuit se'ls va assignar un nivell de perill moderat, 6 - baix i 14 es van marcar com a comentaris informatius.
Els problemes més notables:
- La verificació insuficient de les signatures digitals utilitzades per integrar PyPI amb AWS SNS va permetre enviar notificacions als correus electrònics dels usuaris individuals.
- Una filtració d'informació al gestor de descàrregues que permet determinar l'existència d'un compte sense generar esdeveniments sobre intents d'inici de sessió.
- L'ús de hash criptogràfics poc fiables que no exclouen els atacs d'enverinament de la memòria cau.
- Si teniu dret a iniciar processos de compilació mitjançant cabotatge, l'atacant podria aconseguir la substitució de les seves ordres.
- Amb els drets de desplegament en cabotatge, un atacant podria desplegar una imatge d'aspecte legítim.
Font: opennet.ru
