GitGuardian-forskere har publisert resultatene av en analyse av sensitive data glemt av utviklere i kode som ligger i PyPI (Python Package Index)-depotet til Python-pakker. Etter å ha studert mer enn 9.5 millioner filer og 5 millioner pakkeutgivelser knyttet til 450 tusen prosjekter, ble 56866 3938 tilfeller av konfidensiell datalekkasje identifisert. Hvis vi bare tar med unike data, uten duplisering i forskjellige utgivelser, var antallet identifiserte lekkasjer 2922, og antallet prosjekter med minst én lekkasje var XNUMX.
Totalt er det identifisert mer enn 150 typer konfidensielle informasjonslekkasjer, inkludert vanlige passord, kryptografiske nøkler, tilgangstokens for skytjenester, kontinuerlige integrasjonssystemer og APIer. Minst 768 legitimasjon forble aktive på tidspunktet for studien. Eksempler på populære lekkasjer som fortsatt er relevante inkluderer tilgangsnøkler for Azure Active Directory, legitimasjon for SSH, MongoDB, MySQL og PostgreSQL, nøkler for GitHub OAuth App, Dropbox og Auth0, påloggingsparametere for Coinbase og Twilio.
Blant typene lekkasjer som vinner popularitet er tokens for tilgang til roboter i Telegram, hvor antallet doblet seg tidlig i 2021 og deretter doblet igjen våren 2023. En konstant økning i lekkasjer har også blitt registrert siden 2020 for tilgangsnøkler til Google API, og siden 2022 for legitimasjon til DBMS. Blant pakkene som leder i antall lekkasjer, nevnes chatllm og safire-pakkene, der 209 nøkler til OpenAI og 320 nøkler til Google Cloud ble glemt.
Blant filtypene der det største antallet lekkasjer ble identifisert, er det i tillegg til filer med filtypen ".py" filer med filtypen .json (610 lekkasjer), .md (270), PKG-INFO (240) ), METADATA (210), .txt (170), samt README-filer (209) og filer fra kataloger kalt test (675). Mange lekkasjer skyldes også forglemmelser og feil ved innstilling av ekskludering av filer ved generering av pakker. For eksempel kan filer med lokale konfigurasjonsfiler (.cookiecutterrc, .env, .pypirc, etc.) ekskluderes fra Git-depotet gjennom en ".gitignore"-fil, som ikke tas i betraktning når pakken opprettes. Spesielt ble det funnet 43 .pypirc-filer i depotet som inneholder legitimasjon for tilgang til PyPI. I 15 lekkasjer hadde ikke utviklerne til hensikt å offentliggjøre pakker som opprinnelig ble opprettet for intern bruk, men publiserte dem på PyPI ved en feiltakelse.
I tillegg kan ytterligere to hendelser relatert til PyPI nevnes:
- I PyPI-depotet ble 8 ondsinnede pakker identifisert, presentert som verktøy for tilsløring, dvs. redusere koden til en uleselig form, noe som kompliserer gjenopprettingen av algoritmen. De identifiserte pakkene inneholdt strengen "pyobf" i navnene deres (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse og pyobfgood) og ble lastet ned mer enn 2000 ganger.
Den ondsinnede koden som var integrert i pakkene var plattformspesifikk Windows og tillot tilkobling til en ekstern kontroll server, kjøre vilkårlige kommandoer på utviklerens datamaskin, finne og sende sensitiv informasjon, for eksempel tilgangsnøkler, til en ekstern server, og overføre vilkårlige filer fra systemet. Videre kan den ondsinnede koden fungere som en keylogger, fange opp passord som er angitt i Chrome, lage skjermbilder, ta opp lyd og til og med kontrollere webkameraet.
- Resultatene av en uavhengig revisjon av kodebasen til verktøyene som brukes til å organisere arbeidet til pypi.org-depotet og kabotasjerammeverket som brukes i containerorkestreringsinfrastrukturen, er publisert. Tilsynet ble gjennomført med støtte fra den ideelle organisasjonen OTF (Open Technology Fund). Under tilsynet ble det ikke identifisert problemer med høyt farenivå, og kildekodene ble anerkjent å oppfylle de grunnleggende kravene til sikker koding. Samtidig ble utilstrekkelig testdekning av kabotasjekodebasen notert og 29 problemer ble identifisert, hvorav åtte ble tildelt et moderat farenivå, 6 - lavt, og 14 ble merket som informative kommentarer.
De mest merkbare problemene:
- Utilstrekkelig verifisering av digitale signaturer som ble brukt til å integrere PyPI med AWS SNS tillot at varsler ble sendt til individuelle brukeres e-post.
- En informasjonslekkasje i nedlastingsbehandleren som lar deg fastslå eksistensen av en konto uten å generere hendelser om påloggingsforsøk.
- Bruk av upålitelige kryptografiske hashes som ikke utelukker cache-forgiftningsangrep.
- Hvis du har rett til å starte byggeprosesser via kabotasje, kan angriperen potensielt oppnå erstatning av kommandoene sine.
- Med distribusjonsrettigheter i kabotasje, kan en angriper potensielt distribuere et legitimt utseende.
Kilde: opennet.ru
