JFrog'i teadlased avastasid Docker-pildi "cabotage-app" koostisesse juurdepÀÀsuÔigustega administraatori tokendeid Python, PyPI ja Python Software Foundation'i hoidlatele GitHubis. Token leiti binaarfailist "__pycache__/build.cpython-311.pyc", mis sisaldas vahemÀllu salvestatud kompileeritud baitkoodi.

PyPI hoidla esindajate sĂ”nul loodi token 2023. aastal arendaja ewdurbin (Ee Durbin) jaoks, kes töötab Python Software Foundation'is infrastruktuuri direktorina. Token andis juurdepÀÀsuĂ”igused kĂ”igile projekti hoidlatele ja organisatsioonidele, sealhulgas kĂ”ikidele pypi, python, psf ja pypa organisatsioonide hoidlatele. Probleemne Docker-pilt koos tokeniga avaldati Docker Hubi kataloogis 3. mĂ€rtsil 2023 ja kustutati 11. juunil 2024, st oli 16 kuud avatud juurdepÀÀsuga. Token tĂŒhistati 28. juunil.
On tĂ€helepanuvÀÀrne, et olemasolevates lĂ€htekoodides, mille alusel probleemne bytecode fail genereeriti, tokenit ei mainita. Koodi autor selgitas, et cabotage-app5 tööriistade arendamise protsessis kohtus ta oma lokaalses sĂŒsteemis GitHubi API juurdepÀÀsu intensiivsuse piirangutega automatiseeritud failide laadimise funktsiooni tĂ€itmisel. Et ĂŒletada GitHubi anonĂŒĂŒmsete pĂ€ringute jaoks kehtestatud limiite, lisas ta ajutiselt oma töötava tokeni koodile. Enne kirjutatud koodi avaldamist eemaldati token, kuid arendaja ei arvestanud, et tokeni mainimine vahemĂ€lusse salvestati eelkompileeritud bytecode failis, mis seejĂ€rel sattus docker-pildile. def _fetch_github_file( â github_repository=»owner/repo», ref=»main», access_token=None, filename=»Dockerfile» + github_repository=»owner/repo», + ref=»main», + access_token=»0d6a9bb5af126f73350a2afc058492765446aaad», + filename=»Dockerfile», ):
Python arendajate lÀbi viidud audit GitHubi hoidlate aktiivsuse osas ei tuvastanud kolmandate isikute katseid juurde pÀÀseda avaldatud tokeni kasutamisega. Arvestades, et alates 2017. aastast on GitHub olnud CPythoni arendamise peamine platvorm, oleks tokeni sattumine kurjategijate kÀtesse vÔinud viia tÀieliku kompromiteerimiseni Python arendamiseks ja PyPI hoidla infrastruktuuri osas, samuti vÔimaluseni integreerida tagauksed CPythonisse ja paketihaldurisse PyPI.
Juhtum nĂ€itab, kui oluline on lekete analĂŒĂŒs mitte ainult lĂ€htekoodis, konfiguratsioonifailides ja keskkonnamuutujates, vaid ka binaarfailides. Python kontekstis soovitatakse kasutajatel samuti pöörata tĂ€helepanu laaditavate projektide pyc-failidele, mis sisaldavad kompileeritud baitkoodi, kuna need failid vĂ”ivad sisaldada varjatud muudatusi, mis puuduvad lĂ€htekoodis.
Allikas: opennet.ru
