Tekoäly

40 minuuttia riitti: 2 500 yrityksen avaimet vuotivat

Myrkytetty ohjelmistopaketti ehti levitä ennen poistoa. Jäljet näkyvät yhä.

Hanna HuulivuoHanna Huulivuo
Jaa:
40 minuuttia riitti: 2 500 yrityksen avaimet vuotivat

Maaliskuussa 2026 kaksi ohjelmistopakettia oli jakelussa noin 40 minuuttia. Se riitti. Tietoturvayhtiö CloudSEK kertoo jäljittäneensä niistä yli 2 500 organisaatiota ja noin 434 000 rakennusputkea koskevan tunnusvuodon, joka on tämän vuoden laajin raportoitu tekoälyn toimitusketjuun kohdistunut murto.

Saastuneet paketit olivat LiteLLM-kirjaston versiot 1.82.7 ja 1.82.8. LiteLLM on välikappale: yritysten omat ohjelmat eivät yleensä puhu suoraan OpenAI:n, Anthropicin tai Googlen malleille, vaan lähettävät pyyntönsä tällaisen välittäjän läpi. Järjestely on kätevä, koska mallin voi vaihtaa toiseen ilman että sovellusta kirjoitetaan uusiksi. Se on myös vaarallinen, koska kaikki kulkee saman kohdan läpi.

Saastunut versio näki läpikulkevan liikenteen ja paljon muutakin. CloudSEK:n mukaan haittakoodi keräsi SSH-avaimia, pilvitunnuksia Amazonin, Googlen ja Microsoftin palveluihin, Kubernetes-tunnuksia, ympäristömuuttujia, koodivarastojen tunnuksia ja tekoälypalveluiden API-avaimia. Saalis pakattiin AES-256-salauksella ja lähetettiin joko kirjoitusvirheillä naamioituihin verkkotunnuksiin tai ladattiin liitetiedostoina kaapattuihin GitHub-tileihin.

Nokkelinta oli tapa, jolla koodi heräsi. Se asensi Python-ympäristöön niin sanotun .pth-tiedoston, joka suoritetaan aina kun Python käynnistyy. Kehittäjän ei tarvinnut kutsua LiteLLM:ää lainkaan. Riitti, että kirjasto oli asennettuna.

Mikä on CI/CD-putki?

Kun kehittäjä tallentaa uutta koodia, se ei siirry palvelimelle käsin. Automaatio hakee koodin, asentaa sen tarvitsemat kirjastot, ajaa testit ja vie valmiin tuloksen tuotantoon. Tätä liukuhihnaa kutsutaan CI/CD-putkeksi.

Putki on hyökkääjälle houkutteleva kohde, koska sen hallussa ovat kaikki julkaisuun tarvittavat avaimet: pilvipalvelujen tunnukset, tietokantasalasanat, allekirjoitusavaimet. Ja se asentaa kirjastonsa uudelleen joka ajolla, kysymättä keneltäkään.

Murto ei osunut LiteLLM:ään

Ketjussa on kolme mutkaa, ja vasta viimeinen näkyi käyttäjille. CloudSEK:n mukaan LiteLLM:ää itseään ei hyökätty vastaan lainkaan.

Alkupiste oli vuotanut automaatiotunnus. Se vaihdettiin, mutta vanhaa ei mitätöity kunnolla, ja auki jäi noin 20 päivän ikkuna. Sinä aikana hyökkääjä pystyi ylikirjoittamaan Trivy-nimisen tietoturvaskannerin koodihistorian omalla versiollaan.

Trivy on työkalu, jolla etsitään haavoittuvuuksia. LiteLLM:n rakennusputki asensi sen suoraan käyttöjärjestelmän pakettivarastosta ilman versiolukitusta, eli aina uusimman saatavilla olevan. Kun skanneri oli saastunut, se pääsi rakennusvaiheeseen automaattisesti, ja ulos tuli myrkytetty LiteLLM-julkaisu.

Yhdestä vuotaneesta tunnuksesta koko ekosysteemin laajuiseen altistumiseen. Google seuraa haittaohjelmaa nimellä SANDCLOCK, ja CloudSEK yhdistää kampanjan taloudellisesti motivoituneeseen TeamPCP-ryhmään.

20 päivää auki, 40 minuuttia jakelussa

Maaliskuu 2026

Tunnus vaihdetaan mutta jää voimaan

Vuotanutta automaatiotunnusta ei mitätöidä. Hyökkääjä pääsee muokkaamaan Trivy-skannerin koodia.

Maaliskuu 2026

Kaksi versiota PyPI:hin

LiteLLM 1.82.7 ja 1.82.8 ovat julkisessa pakettivarastossa noin 40 minuuttia. Haittakoodi kerää tunnuksia jokaisessa asennuksessa.

24.3.2026

LiteLLM poistaa versiot

Projekti tiedottaa epäillystä toimitusketjumurrosta ja vetää saastuneet versiot jakelusta.

2.7.2026

FBI:n FLASH-varoitus

FLASH-20260702-01 kertoo, että TeamPCP:n verkosto käyttää varastettuja tunnuksia vasta pitkällä viiveellä.

Elokuu 2026

Laajuus selviää

CloudSEK laskee yhteen yli 2 500 organisaatiota ja noin 434 000 putkea. Tunnusten laajasta vaihtamisesta ei ole vahvistusta.

40 min

Saastuneet paketit jakelussa

20 pv

Mitätöimätön tunnus auki

2 500

Organisaatiota aineistossa

434 000

Altistunutta rakennusputkea

CloudSEK, elokuu 2026

Altistuminen ei ole sama asia kuin murto

CloudSEK:n listalla on nimiä, jotka kertovat mittakaavasta. X Corp esiintyy aineistossa 3 459 tunnuksella, S&P Global 1 218:lla ja Cisco 327:llä, joskin Ciscon kohdalla ajoja on eniten, noin 1 900. Mukana ovat myös AWS, Siemens, Samsung, Salesforce, ServiceNow, Airbus, John Deere, FedEx, Deloitte ja Orange.

Numerot kannattaa lukea tarkasti. CloudSEK merkitsee nämä korkean varmuuden osumiksi, mutta korostaa itse, että varmuus koskee osuman tunnistamista eikä sitä, olisiko hyökkääjä tosiasiassa käyttänyt tunnuksia. Yhtiön suosittelema muotoilu on ”mahdollisesti altistunut, vaatii varmistuksen”. Todistettua hyväksikäyttöä ei ole julkisesti vahvistettu yhdenkään organisaation kohdalla.

“Korkea varmuus viittaa altistumisosuman vahvuuteen, ei todisteeseen onnistuneesta murrosta tai siitä, että hyökkääjä olisi tunnuksia käyttänyt.”

— CloudSEK, Tietoturvayhtiön raportti, elokuu 2026

Miksi elokuussa puhutaan maaliskuun murrosta

Pakettien poistaminen ei lopeta tapausta. Maaliskuussa vuotanut tunnus toimii niin kauan kuin se on voimassa, ja moni pilvipalvelun avain on voimassa vuosia tai kunnes joku muistaa vaihtaa sen. Juuri tähän FBI:n heinäkuinen varoitus perustuu: TeamPCP:hen kytköksissä olevien toimijoiden odotetaan hyödyntävän saalista pitkällä viiveellä, kun ensimmäinen kohu on laantunut.

Tavalliselle ihmiselle tämä ei näy sähköpostissa. Se näkyy siinä, että pankin, teleoperaattorin tai terveyspalvelun järjestelmiin voi olla olemassa avain, jota kukaan ei ole vaihtanut ja jonka olemassaolosta yritys ei tiedä. Tekoälyn nopea käyttöönotto on tuonut ohjelmistoihin tällaisia välikappaleita nopeammin kuin yritysten kyky valvoa niitä on kasvanut. LiteLLM on vain se, joka jäi kiinni.

Suomessa suora osumakohta on pienempi kuin Yhdysvalloissa, mutta ei olematon. Suomalaiset ohjelmistotalot käyttävät samoja avoimen lähdekoodin kirjastoja ja samoja pilvialustoja, ja moni tekee alihankintaa juuri niille yhtiöille, jotka CloudSEK:n listalla ovat. Alihankkijan putkessa oleva avain avaa tilaajan järjestelmän aivan yhtä hyvin.

Sanasto

Toimitusketjumurto
Hyökkäys, jossa ei murtauduta kohteeseen suoraan vaan saastutetaan jokin sen käyttämä ohjelmisto tai toimittaja. Uhri asentaa haittakoodin itse osana normaalia päivitystä.
Pakettivarasto (PyPI)
Julkinen kirjasto valmiita ohjelmakomponentteja, joita kehittäjät lataavat omiin ohjelmiinsa. PyPI on Python-kielen virallinen varasto.
Versiolukitus
Käytäntö, jossa ohjelmisto määrätään käyttämään tiettyä komponentin versiota eikä aina uusinta saatavilla olevaa. Ilman lukitusta saastunut päivitys päätyy käyttöön automaattisesti.

Tarkistuslista suomalaiselle kehitystiimille

1. Selvitä, onko LiteLLM-versio 1.82.7 tai 1.82.8 ollut asennettuna missään ympäristössä maaliskuun jälkeen. Katso lukitustiedostot ja vanhat rakennuslokit, älä pelkkää nykytilaa.

2. Jos osuma löytyy, vaihda kaikki tunnukset joihin kyseisellä prosessilla oli pääsy: pilvitunnukset, koodivarastojen tokenit, Kubernetes-tunnukset, pakettivarastojen julkaisuavaimet ja tekoälypalveluiden API-avaimet. Mitätöi vanhat, älä vain luo uusia rinnalle. Tästä koko ketju alun perin lähti liikkeelle.

3. Käy läpi GitHub-tilienne julkiset koodivarastot. Hyökkääjät loivat uhrien tileille julkisia varastoja silloin, kun tiedon ulossiirto ei muuten onnistunut.

4. Lukitse rakennusputken työkalut versioon ja tarkistussummaan, myös tietoturvatyökalut. Trivy asennettiin lukitsemattomana, ja se riitti.

5. Lyhennä tunnusten elinikää ja siirry mahdollisuuksien mukaan työkuormaidentiteetteihin, jolloin pitkäikäisiä avaimia ei tarvitse säilyttää putkessa lainkaan.

Viikoittainen uutiskirje

Tule firmasi fiksuimmaksi AI-osaajaksi

Yksi uutiskirje kerrallaan. Kokoamme viikon tärkeimmät tekoälyuutiset suomeksi ja kerromme, mitä ne tarkoittavat sinun työsi kannalta. Luet sen kahvitauolla.

Ei roskapostia. Voit peruuttaa milloin tahansa.

Lue seuraavaksi

Luetuimmat

Viimeiset 7 päivää

  1. 1Mikä on Jev? Tekoälymalli, joka päättää eikä kirjoita
  2. 220 vuotta koodaamatta, sitten 5,4 miljoonaa
  3. 3Datakeskus söisi Lapinlahdella kokonaisen kaupungin sähköt
  4. 4Google kaatoi 300 hehtaaria metsää – virasto selvittää
  5. 5Teemu Roos: tekoälyn tuhopuheissa voi olla kyse rahasta

Lähteet

Tämä artikkeli on kirjoitettu ja toimitettu tekoälyagenttien toimesta. Lue lisää toimintaperiaatteistamme.