drošība · 6 min · 16.08.2026

Marta litellm uzbrukuma laupījums ir 153 GB: 433 909 faili no 118 829 CI izpildītājiem

CloudSEK ieguva arhīvu, ko marta uzbrukumā savāca grupa TeamPCP. Tajā ir 153 gigabaiti datu un 433 909 faili. No tiem 118 829 ir pilnas CI izpildītāju vides izgāztuves, kuras pētnieki piesaistīja 2488 korporatīvajiem domēniem. Launās paketes PyPI bija pieejamas aptuveni 40 minūtes.

Runa ir par litellm, Python starpslāni, kas vienā saskarnē apvieno dažādu ražotāju valodas modeļus. 24. martā PyPI parādījās divas launas versijas: 1.82.7 plkst. 10:39 UTC un 1.82.8 plkst. 10:52 UTC. Projekta komanda vēlāk ieteica par aizdomīgu uzskatīt jebkuru instalāciju līdz plkst. 16:00 UTC. Pilnu laika grafiku uztur atvērtā kļūdas pieteikumā pašā litellm repozitorijā.

Ķēde sākās ar drošības skeneri

Uzbrucēji litellm nemeklēja. Viņi vispirms tika pie Aqua Security skenera trivy izplatīšanas kanāla. 19. martā trivy-action repozitorijā tika pārrakstīti Git tagi: 76 no 77 tagiem sāka norādīt uz launu kodu, bet setup-trivy gadījumā pārrakstīti visi septiņi. Kopš tā brīža katra GitHub Actions plūsma, kas trivy-action izsauca pēc taga nosaukuma, ievilka uzbrucēja versiju. Drošā trivy-action versija ir 0.35.0, setup-trivy gadījumā 0.2.6.

litellm CI plūsma bija viena no tādām plūsmām. Launais skeneris no izpildītāja vides nolasīja PYPI_PUBLISH zetonu. Ar to pietika, lai pēc piecām dienām publicētu paketes ar uzbrucēja kodu. Tā pati infrastruktūra 23. martā tika izmantota pret Checkmarx KICS. Kaspersky vērtējumā potenciāli skarto repozitoriju skaits pārsniedz 20 000. Google šo grupu izseko ar apzīmējumu UNC6780.

Fails, kas palaižas bez importa

Versijā 1.82.8 uzbrucēji pievienoja failu litellm_init.pth. Failus ar .pth paplašinājumu Python interpretators nolasa katrā startā neatkarīgi no tā, ko programma importē. Tas nozīmē, ka pietika ar litellm klātbūtni vidē. Jebkura Python komanda tajā mašīnā palaida uzbrucēja kodu, arī tad, ja pati litellm netika izmantota.

Kods no vides mainīgajiem savāca OPENAI_API_KEY un ANTHROPIC_API_KEY vērtības, SSH atslēgas, Kubernetes zetonus, datubāzu paroles, AWS un GCP piekļuves atslēgas, Salesforce klientu noslēpumus, Slack parakstīšanas atslēgas un Azure vides mainīgos. Savākto tas sūtīja uz uzbrucēju domēnu models.litellm[.]cloud. Ekosistēmas kompromitēšana ir reģistrēta kā CVE-2026-33634 un 26. martā nonāca CISA aktīvi izmantoto ievainojamību katalogā.

Četrdesmit minūtes izklausās maz, taču PyPI pakete šajā laikā nonāk visur, kur automātiskā būve neizmanto piesaistītas versijas. Katrs nakts būves darbs, katrs atkarību atjaunināšanas robots un katrs konteinera attēls, kas tobrīd tika būvēts, paņēma jaunāko versiju. Tieši tāpēc laupījumā dominē serveru puses CI vides ar plašām tiesībām. Izstrādātāju darba mašīnas arhīvā ir retums.

Ko rāda 153 gigabaiti

CloudSEK 11. augustā publicēja analīzi, kurā datu kopa ir sasaistīta ar vairāk nekā 2500 organizācijām un aptuveni 434 000 CI/CD konveijeriem. Sarakstā ir NVIDIA, Microsoft, Volkswagen, FedEx, Siemens, Cisco, Samsung, Salesforce, ServiceNow, Deloitte, S&P Global, John Deere, Epic Games, Orange, TomTom un BT Group.

CloudSEK uzsver, ka parādīšanās datu kopā nav pierādījums veiksmīgai ielaušanās reizei. Augstas ticamības sasaiste nozīmē, ka organizācijas domēns parādās CI izpildītāja identitātes pazīmēs. Zemāka ticamība balstās tikai uz repozitorija nosaukumtelpu. CloudSEK atvēra publisku meklēšanas rīku adresē exposure.cloudsek.com, kurā uzņēmums var pārbaudīt savu domēnu.

Apstiprināti gadījumi jau ir vairāki. Checkmarx atzina nesankcionētu piekļuvi saviem GitHub repozitorijiem un launu artefaktu publicēšanu. CERT-EU vērtējumā Eiropas Komisijai tika kompromitēts AWS konts, no kura izsūtīti 91,7 gigabaiti saspiestu datu. Uzbrucēji paši savos kanālos apgalvoja, ka ieguvuši vairāk nekā 500 000 kontu.

Atslēgas, kas joprojām der

Marts nebija stāsta beigas. FBI 2. jūlijā izdeva brīdinājumu FLASH-20260702-01, kurā norādīja, ka saistītie uzbrucēji nozagtos akreditācijas datus izmantos vēlāk. Drošības pētnieks Kevin Beaumont vairākus mēnešus pēc incidenta pārbaudīja daļu no it kā nomainītajām atslēgām. Pēc viņa vārdiem, darbojās gandrīz katra.

Galvenā mācība ir tā, cik ļoti piegādes ķēdes ir mainījušās: viens ielaušanās gadījums augšpusē vienlaikus skar tūkstošiem uzņēmumu.

Tā incidentu komentēja Alon Gal no Hudson Rock. Pati trivy kompromitēšana notika tāpēc, ka pēc iepriekšējas ielaušanās akreditācijas dati tika nomainīti nepilnīgi. Uzbrucēji piekļuvi saglabāja un izmantoja to atkārtoti.

Kas jādara tagad

Ieteikumi ir īsi. Jāpārbauda, vai laikposmā no 19. līdz 24. martam CI plūsmās tika izsaukts trivy-action pēc taga, nevis pēc konkrētas commit jaucējsummas. Jāpārbauda, vai kādā vidē tolaik nonāca litellm 1.82.7 vai 1.82.8. Jānomaina publicēšanas zetoni, mākoņa akreditācijas dati, SSH atslēgas un Kubernetes noslēpumi, kas šajās vidēs bija pieejami. Ilgi dzīvojošos zetonus vērts aizstāt ar īslaicīgiem, ko izsniedz OIDC.

Kampaņas pazīmes ir zināmas. Uzbrucēji nozagtos datus augšupielādēja kā GitHub laidienu pielikumus repozitorijos ar nosaukumu tpcp-docs vai docs-tpcp, bet arhīvu tagi bija formā data-<laika zīmogs>. Help Net Security apkopojumā arhīvā ir 118 829 CI izpildītāju izgāztuves no 2488 domēniem. Uz vienu domēnu tas ir vidēji 48 atsevišķas būves vides.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no drošībasaistītie