Zpět na domů

Útoky PyPI LiteLLM Telnyx: ochrana řetězce

Zpráva PSF o kompromitaci litellm a telnyx přes Trivy: zlovolné vydání kradou tajemství a zajišťují persistence. Doporučení zahrnují období ochlazení P3D, lock-soubory s haši a trusted publishers pro ochranu OSS projektů.

Zlovolné vydání LiteLLM a Telnyx: jak se chránit
Advertisement 728x90

Útoky na dodavatelský řetězec PyPI: Případy LiteLLM a Telnyx s praktickými doporučeními

Útočníci kompromitovali balíčky litellm a telnyx prostřednictvím úniku API tokenu z závislosti Trivy. 19. března 2026 byly zveřejněny škodlivé verze: litellm 1.82.7 a 1.82.8, telnyx 4.87.0 a 4.87.2. Kód se aktivuje při importu modulů, skenuje prostředí na tajemství a exfiltruje data na vzdálené servery.

Škodlivý payload v litellm shromažďuje SSH klíče, Git/Docker přihlašovací údaje, .env soubory, K8s tokeny, DB hesla, LDAP konfigurace, historii shellu a kryptografické klíče. Pokouší se získat cloudové tokeny z metadata serverů a AWS Secrets Manager. Data odcházejí na models.litellm.cloud. Pro perzistenci vytváří SystemD službu "System Telemetry Service" nebo K8s pod, který stahuje instrukce z checkmarx.zone.

V telnyx škodlivý kód v _client.py načítá fáze z WAV souborů na 8.42.209.203. Na Windows umisťuje msbuild.exe do Startup pro automatické spuštění, na jiných OS – Python skript. Verze 4.87.1 obsahovala překlep, který blokoval provedení. Spojení s TeamPCP pomocí šifrovacího klíče.

Google AdInline article slot

Vývojáři reagovali rotací tokenů, odstraněním vydání a zavedením trusted publishers v PyPI.

Specifika útoků na populární OSS balíčky

Na rozdíl od typických PyPI útoků (typosquatting nebo nové balíčky) je zde škodlivý kód vložen do existujících projektů s vysokým provozem. Řetězec: kompromitace repozitářů → krádež PyPI/GitHub tokenů → publikace malware → sběr přihlašovacích údajů z dev strojů → opakovaná kompromitace.

LiteLLM stažen 119k+ krát během útoku. ~40-50% instalací bez verze (latest), ~1700 instalací/min. Doba reakce PyPI:

Google AdInline article slot
  • LiteLLM: od publikace do karantény — 2h32min (13 hlášení uživatelů).
  • Telnyx: 3h42min (auto-karanténa trusted users).

Opatření PyPI proti malware

Denně ~700-800 nových projektů. PyPI spoléhá na komunitu pro skenování a hlášení prostřednictvím "Report as malicious". Funkce od roku 2024 urychluje karanténu. Trusted publishers aktivují auto-reakci.

Doporučení: období chlazení závislostí

Zpoždění instalace čerstvých vydání dává čas na detekci malware. Formát RFC 3339 (P3D = 3 dny).

  • uv: globálně v ~/.config/uv/uv.toml nebo pyproject.toml:
[tool.uv]
exclude-newer = "P3D"
  • pip v26.1+: v pip.conf:
[install]
uploaded-prior-to = P3D
  • pip 26.0 (absolutní datum):
python -m pip install --uploaded-prior-to=$(date -d '-3days' -Idate) package

Obcházení pro security záplaty: --uploaded-prior-to=P0D nebo Dependabot/Renovate (ignorují zpoždění).

Google AdInline article slot

Blokování závislostí pro reprodukovatelnost

Lock soubory s hashi zabraňují nahrazení kódu při reinstalaci.

| Nástroj | Příkaz | Formát |

|------------|---------|--------|

| uv | uv lock | uv.lock |

| pip-tools | pip-compile --generate-hashes | requirements.txt |

| pipenv | pipenv lock | Pipfile.lock |

pip freeze nestačí — bez hashů. Očekává se pip lock (pylock.toml).

Ochrana OSS projektů

  • Zavést trusted publishers v PyPI.
  • Používat 2FA + hardwarové klíče pro PyPI/GitHub.
  • Omezit práva tokenů (scopes).
  • Monitorovat publikace prostřednictvím webhooků.
  • Skenovat repozitáře Trivy/Grype.

Pro dev stroje:

  • Izolovat kompromitovaná prostředí.
  • Rotovat všechny přihlašovací údaje.
  • Zkontrolovat na perzistenci (SystemD, K8s pods, Startup).
  • Analýza provozu/logů.

Co je důležité

  • Útoky využívají reálné OSS balíčky; kontrolujte čerstvá vydání.
  • Období chlazení P3D + lock soubory = základní ochrana.
  • 119k+ instalací LiteLLM před karanténou; latest je nebezpečný.
  • Exfiltrace zahrnuje cloudová metadata a Secrets Manager.
  • Trusted publishers a komunita urychlují reakci PyPI.

— Editorial Team

Advertisement 728x90

Číst dál