A LiteLLM nevű, több nagy nyelvi modell elérését biztosító nyílt forráskódú interfész két verzióját is eltávolították a Python Package Indexből (PyPI), miután egy ellátásilánc-támadás során rosszindulatú, hitelesítő adatok eltulajdonítására szolgáló kóddal fertőzték meg őket. A visszavont verziók a LiteLLM v1.82.7 és a v1.82.8.
Krrish Dholakia, a LiteLLM-et karbantartó Berri AI vezérigazgatója egy online bejegyzésben jelezte, hogy a kompromittálódás feltehetően a projekt CI/CD pipeline-jában használt Trivy eszközhöz köthető.
A Trivy egy nyílt forráskódú sebezhetőségvizsgáló, amelyet az Aqua Security fejleszt, és amelyet számos projekt integrál biztonsági kontrollként. Az Aqua Security elemzése szerint a rosszindulatú kampány február végén indult, amikor a támadók kihasználtak egy hibás konfigurációt a Trivy GitHub Actions környezetében, és ezen keresztül megszereztek egy privilegizált hozzáférési tokent, amely lehetővé tette számukra a CI/CD folyamatok manipulálását.
A támadók március 19-én avatkoztak be közvetlenül a szoftverbe: a TeamPCP néven azonosított csoport a kompromittált hitelesítő adatok segítségével sikeresen publikált egy rosszindulatú Trivy verziót (v0.69.4). Ezt követően március 22-én további fertőzött Trivy verziók (v0.69.5 és v0.69.6) jelentek meg DockerHub image-ként.
Az Aqua Security ugyanakkor kiemelte, hogy a támadási módszer jóval kifinomultabb volt egy egyszerű új, kártékony verzió feltöltésénél. A támadók a meglévő verziócímkéket (tag) módosították a trivy-action GitHub Action szkripthez kapcsolódóan, és így injektáltak rosszindulatú kódot olyan CI/CD workflowokba, amelyeket a szervezetek már aktívan futtattak. Mivel sok pipeline verziócímkékre támaszkodik fix commit-hivatkozások helyett, ezek a folyamatok tovább futottak anélkül, hogy bármilyen jel utalt volna arra, hogy az alapul szolgáló kód megváltozott.
Dholakia elmondása szerint a LiteLLM PyPI-publikáláshoz használt tokenje (PYPI_PUBLISH), amely a projekt GitHub-repository-jában .env változóként volt tárolva, továbbításra került a Trivy felé, ahol a támadók megszerezték azt, majd felhasználták új, rosszindulatú LiteLLM csomagok publikálására.
„Minden PyPI-publikálási tokenünket töröltük” – nyilatkozta. „A fiókjainkon kétfaktoros hitelesítés volt engedélyezve, tehát itt egy kompromittált tokenről van szó. Jelenleg felülvizsgáljuk a hozzáféréseinket, és vizsgáljuk, hogyan tehetjük biztonságosabbá a rendszert.”
A Python Packaging Authority hivatalos biztonsági figyelmeztetést adott ki a LiteLLM kompromittálódásával kapcsolatban. Az ajánlás szerint minden olyan felhasználónak, aki telepítette és futtatta az érintett verziókat, úgy kell tekintenie, hogy a LiteLLM környezetben elérhető hitelesítő adatok potenciálisan kiszivárogtak, ezért azokat haladéktalanul vissza kell vonni és le kell cserélni.
