GitGuardian-onderzoekers hebben de resultaten gepubliceerd van een analyse van gevoelige gegevens die door ontwikkelaars zijn vergeten in code die wordt gehost in de PyPI-repository (Python Package Index) van Python-pakketten. Na bestudering van meer dan 9.5 miljoen bestanden en 5 miljoen pakketreleases in verband met 450 projecten werden 56866 gevallen van het lekken van vertrouwelijke gegevens geïdentificeerd. Als we alleen rekening houden met unieke gegevens, zonder duplicatie in verschillende releases, bedroeg het aantal geïdentificeerde lekken 3938 en het aantal projecten met minstens één lek 2922.
In totaal zijn er meer dan 150 soorten lekken van vertrouwelijke informatie geïdentificeerd, waaronder gewone wachtwoorden, cryptografische sleutels, toegangstokens voor clouddiensten, continue integratiesystemen en API's. Ten tijde van het onderzoek waren er ten minste 768 inloggegevens actief. Voorbeelden van populaire lekken die relevant blijven zijn onder meer toegangssleutels voor Azure Active Directory, inloggegevens voor SSH, MongoDB, MySQL en PostgreSQL, sleutels voor GitHub OAuth App, Dropbox en Auth0, inlogparameters voor Coinbase en Twilio.
Tot de soorten lekken die aan populariteit winnen behoren tokens voor toegang tot bots in Telegram, waarvan het aantal begin 2021 verdubbelde en vervolgens in het voorjaar van 2023 opnieuw verdubbelde. Sinds 2020 wordt ook een constante toename van het aantal lekken geregistreerd voor toegangssleutels tot de Google API, en sinds 2022 voor inloggegevens voor het DBMS. Onder de pakketten die leidend zijn in het aantal lekken worden de chatllm- en safire-pakketten genoemd, waarbij 209 sleutels van OpenAI en 320 sleutels van Google Cloud werden vergeten.
Onder de bestandstypen waarin het grootste aantal lekken werd geïdentificeerd, bevinden zich, naast bestanden met de extensie “.py”, bestanden met de extensie .json (610 lekken), .md (270), PKG-INFO (240 ), METADATA (210), .txt (170), evenals README-bestanden (209) en bestanden uit mappen met de naam test (675). Veel lekken zijn ook te wijten aan vergissingen en fouten bij het instellen van de uitsluiting van bestanden bij het genereren van pakketten. Bestanden met lokale configuratiebestanden (.cookiecutterrc, .env, .pypirc, enz.) kunnen bijvoorbeeld worden uitgesloten van de Git-repository via een ".gitignore"-bestand, waarmee geen rekening wordt gehouden bij het maken van het pakket. Er werden met name 43 .pypirc-bestanden gevonden in de repository met inloggegevens voor toegang tot PyPI. Bij 15 lekken waren de ontwikkelaars niet van plan om pakketten die oorspronkelijk voor intern gebruik waren gemaakt publiekelijk uit te geven, maar publiceerden ze deze per ongeluk op PyPI.
Daarnaast kunnen nog twee evenementen met betrekking tot PyPI worden genoemd:
- In de PyPI-repository werden acht kwaadaardige pakketten geïdentificeerd, gepresenteerd als hulpprogramma's ter verduistering, d.w.z. het reduceren van de code tot een onleesbare vorm, wat het herstel van het algoritme bemoeilijkt. De geïdentificeerde pakketten bevatten de string "pyobf" in hun namen (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse en pyobfgood) en werden meer dan 8 keer gedownload.
De kwaadaardige code die in de pakketten was geïntegreerd, was platformspecifiek. Windows en maakte aansluiting op een externe bediening mogelijk serverDe kwaadaardige code kan willekeurige commando's uitvoeren op de computer van de ontwikkelaar, gevoelige informatie zoals toegangssleutels vinden en naar een externe server sturen, en willekeurige bestanden van het systeem overzetten. Bovendien kan de code fungeren als een keylogger, wachtwoorden onderscheppen die in Chrome worden ingevoerd, screenshots maken, audio opnemen en zelfs de webcam bedienen.
- De resultaten van een onafhankelijke audit van de codebasis van de tools die worden gebruikt om het werk van de pypi.org-repository te organiseren en het cabotageframework dat wordt gebruikt in de containerorkestratie-infrastructuur zijn gepubliceerd. De audit werd uitgevoerd met steun van de non-profitorganisatie OTF (Open Technology Fund). Tijdens de audit zijn geen problemen met een hoog risico geïdentificeerd en werd erkend dat de broncodes voldeden aan de basisvereisten voor veilige codering. Tegelijkertijd werd er onvoldoende testdekking van de cabotagecodebase opgemerkt en werden 29 problemen geïdentificeerd, waarvan er acht een gematigd gevaarniveau kregen toegewezen, zes - laag, en 6 werden gemarkeerd als informatief commentaar.
De meest opvallende problemen:
- Door onvoldoende verificatie van de digitale handtekeningen die werden gebruikt om PyPI te integreren met AWS SNS, konden meldingen naar de e-mails van individuele gebruikers worden verzonden.
- Een informatielek in de downloadhandler waarmee u het bestaan van een account kunt vaststellen zonder gebeurtenissen over inlogpogingen te genereren.
- Het gebruik van onbetrouwbare cryptografische hashes die cachevergiftigingsaanvallen niet uitsluiten.
- Als u het recht heeft om bouwprocessen via cabotage te starten, kan de aanvaller mogelijk de vervanging van zijn opdrachten bewerkstelligen.
- Met inzetrechten voor cabotage kan een aanvaller mogelijk een legitiem ogende afbeelding inzetten.
Bron: opennet.ru
