GitGuardians forskare har publicerat resultaten av en analys av konfidentiella uppgifter som utvecklare har glömt bort i koden som lagts upp i Python-paketarkivet PyPI (Python Package Index). Efter att ha studerat över 9,5 miljoner filer och 5 miljoner paketreleaser kopplade till 450 000 projekt identifierades 56866 fall av lÀckage av konfidentiella uppgifter. Om man endast rÀknar unika uppgifter utan dubbletter i olika releaser uppgick antalet identifierade lÀckage till 3938, och antalet projekt dÀr minst ett lÀckage fanns till 2922.
Totalt identifierades över 150 typer av lÀckage av konfidentiell information, inklusive vanliga lösenord, kryptografiska nycklar, Ätkomsttoken till molntjÀnster, system för kontinuerlig integration och API:er. à tminstone 768 autentiseringsuppgifter var fortfarande aktiva vid tidpunkten för studien. Exempel pÄ populÀra och relevanta lÀckage Àr Ätkomstnycklar till Azure Active Directory, autentiseringsuppgifter för SSH, MongoDB, MySQL och PostgreSQL, nycklar till GitHub OAuth App, Dropbox och Auth0, samt inloggningsuppgifter för Coinbase och Twilio.
Bland de vÀxande typerna av lÀckage nÀmns token för Ätkomst till bots i Telegram, vars antal fördubblades i början av 2021 och sedan en gÄng till fördubblades vÄren 2023. En konstant ökning av lÀckage har ocksÄ noterats sedan 2020 för Ätkomstnycklar till Google API, och sedan 2022 för autentiseringsuppgifter till databashanterare. Bland paketen med flest lÀckage nÀmns paketen chatllm och safire, dÀr 209 nycklar till OpenAI och 320 nycklar till Google Cloud glömdes bort.
Bland de filtyper i vilka det har pÄtrÀffats flest lÀckage, förutom filer med filÀndelsen ".py", mÀrks filer med filÀndelsen .json (610 lÀckage), .md (270), PKG-INFO (240), METADATA (210), .txt (170), samt README-filer (209) och filer frÄn kataloger med namnet test (675). MÄnga lÀckage Àr ocksÄ relaterade till förbiseenden och felkonfigurationer av filundantagsinstÀllningar vid paketgenerering. Till exempel kan filer med lokala konfigurationsfiler (.cookiecutterrc, .env, .pypirc osv.) undantas frÄn Git-repositoriet via filen ".gitignore", som inte beaktas vid skapandet av paket. Specifikt har 43 .pypirc-filer, innehÄllande autentiseringsuppgifter för Ätkomst till PyPI, pÄtrÀffats i ett repositorium. I 15 fall av lÀckage planerade utvecklarna inte att offentligt publicera paket som ursprungligen skapades för internt bruk, men publicerade dem av misstag i PyPI.
Dessutom kan ytterligare tvÄ hÀndelser relaterade till PyPI nÀmnas:
- I PyPI-repositoriet har Ätta skadliga paket identifierats, som presenterades som verktyg för obfuskering, dvs. för att göra koden olÀslig och svÄr att ÄterfÄ algoritmen. De identifierade paketen innehöll strÀngen "pyobf" i sina namn (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse och pyobfgood) och har laddats ner mer Àn 2000 gÄnger.
Den integrerade skadliga koden var specifik för Windows-plattformen och möjliggjorde anslutning till en extern kontrollenhet servern, körning av godtyckliga kommandon pÄ utvecklarens dator, samt att hitta och överföra konfidentiell information, sÄsom Ätkomstnycklar, till en extern server, samt att skicka godtyckliga filer frÄn systemet. Dessutom kunde den skadliga koden utföra keylogging-funktioner, fÄnga inloggningar i Chrome, ta skÀrmdumpar, spela in ljud och till och med kontrollera webbkamera.
- Resultaten av en oberoende granskning av kodbasen för verktygen som anvÀnds för att organisera arbetet i repositoriet pypi.org, och ramen "cabotage", som anvÀnds i infrastrukturen för orkestrering av containrar, har publicerats. Granskningen genomfördes med stöd av den ideella organisationen OTF (Open Technology Fund). Under granskningen identifierades inga problem med hög risk, och kÀllkoden erkÀndes som uppfyllande grundlÀggande krav för sÀker kodning. Det noterades dock att testningen av cabotage-kodbasen var otillrÀcklig och 29 problem identifierades, varav Ätta tilldelades en mÄttlig risknivÄ, 6 en lÄg och 14 mÀrktes som informativa kommentarer.
De mest framtrÀdande problemen:
- OtillrÀcklig kontroll av digitala signaturer som anvÀnds för att integrera PyPI med AWS SNS, vilket gjorde det möjligt att skicka meddelanden till e-postadresser för enskilda anvÀndare.
- InformationslÀckage i nedladdningshanteraren, vilket möjliggjorde identifiering av en existerande anvÀndarkonto utan att generera inloggningsförsök.
- AnvÀndning av osÀkra kryptografiska hash-algoritmer, som inte utesluter cache-poisoning-attacker.
- Om det finns rÀttigheter att köra byggprocesser via cabotage, kunde angriparen potentiellt Ästadkomma en substitution av sina egna kommandon.
- Om det finns rÀttigheter till distribution (deployment) i cabotage, kunde angriparen potentiellt distribuera en legitimat utseende bild.
KĂ€lla: opennet.ru
