AfterDawn logo

xz Utils - Kun koko netin turvallisuus oli uhattuna, tuuri pelasti

Petteri Pyyny Petteri Pyyny

Yksi huikeimpia tietoturvan tapahtumaketjuja paljastui pääsiäisen aikaan, pitkälti tuurilla.

Katastrofi, jollaista ei olla voitu edes kuvitella, liittyy Linux-käyttöjärjestelmässä käytettyyn xz Utils -pakkauskirjastoon.

Kyseistä kirjastoa käytetään tietoliikenteen pakkaamiseen ja se on kiinteä osa käytännössä kaikkia maailman Linux-jakeluja.

xz Utils on malliesimerkki siitä, miten koko tuntemamme verkon infrastruktuuri pohjautuu pitkälti vapaaehtoisten avoimen lähdekoodin koodaajien työhön. xz Utilsin kehitys on levännyt vuosikausien ajan yhden ainoan ihmisen harteilla: suomalaisen Lasse Collinin.

Pari vuotta sitten Collin ilahtui, kun xz Utilsin kehitykseen liittyi Githubissa vihdoin toinenkin vapaaehtoinen, Jia Tan.

Jia Tan osallistui aktiivisesti kirjaston kehitykseen ja bugien korjaamiseen. Kukaan ei epäillyt mitään ja kaikki koodimuutokset vaikuttivat Collininkin mielestä mukiinmeneviltä ja ne lisättiin mukaan xz Utilsin tuotantoversioon.


Tuotantoon viedyt versiot liitetään automaattisesti mukaan mm. Fedoran ja Debianin jakeluihin - ja asiansa osaavat palvelinten ylläpitäjät tietysti myös päivittävät kaikki käyttöjärjestelmään olennaisesti kuuluvat palaset.

Käytännössä koko maailman verkkoinfrastruktuuri on rakennettu nykyisin Linuxin päälle. Eli kun oleellisesti Linux-jakeluun kuuluva kirjasto päivittyy, se päivitetään pikaisella tahdilla myös koko siihen palvelinkantaan, johon tuntemamme internet pohjautuu.

xz Utilsista paljastuu jotain hämärää

Viime viikolla Microsoftin kehittäjä Andres Freund alkoi ihmettelemään miksi yksi Debiania pyörittävä palvelin reagoi viiveellä SSH-yhteyksiin. SSH on verkkoalalla de facto -asemassa oleva tapa kytkeytyä salatulla yhteydellä toiseen palvelimeen/tietokoneeseen.

Ongelma vaikutti keskittyvän siihen, että kirjautuessa SSH:lla sisään, vaikutti sisäänkirjautuminen kuluttavan aavistuksen verran liian paljon tietokoneen suorittimen tehoja ja kestävän aavistuksen verran liian pitkään.

Nörtti ei ole nörtti, jos mieltä vaivaavaa asiaa ei ryhdy selvittelemään tarkemmin. Ja juuri niin Freund teki.

Selviteltyään asiaa aikansa, Freund päätyi siihen lopputulokseen, että puolen sekunnin hidastuminen sisäänkirjautumisen yhteydessä oli alkanut sen jälkeen, kun xz Utilsin uusin versio oli päivitetty sisään järjestelmään.

Pitkänäperjantaina Freund oli selvitystensä pohjalta varma, että xz Utilsiin on upotettu takaportti ja hän välitti tiedon tietoturvayhteisölle.

Takaportti on nyt varmistettu ja CVE-2024-3094 haavoittuvuus on luokiteltu nyt kriittisimmäksi mahdolliseksi tietoturvauhaksi mitä aukkojen asteikossa tunnetaan.

Taustalla ammattilaiset, mahdollisesti valtiotoimija

Koko kuvion kehittely on ollut äärimmäisen hidasta ja maltillista. Takaportin luonut taho on hankkinut Jia Tan -nimellä esiintyvälle henkilölle avoimen lähdekoodin yhteisön luottamuksen tuottamalla oikeita korjauksia ja parannuksia xz Utils -kirjastoon.


Tuon jälkeen takaporttia on alettu rakentamaan varsin nerokkaalla tavalla. Takaporttia ei voi löytää millään yleisimmillä testaustavoilla ja se osaa väistää myös erilaiset "rikkinäistä dataa" käyttävät testausmenetelmät, jotka useimmiten pystyvät paljastamaan ei-toivottua koodia järjestelmistä.

Ensimmäiset merkit takaportin rakentamisen aloittamisesta pystytään osoittamaan heinäkuulle 2023, jolloin xz Utilsin koodiin on lisätty kikkoja, joilla tulevaa takaporttia pyritään peittelemään mahdollisimman tehokkaasti.

Varsinainen takaportti on lisätty xz Utilsin koodiin 9. maaliskuuta, 2024, mutta tuotantoversio, jossa takaportti on mukana, on paketoitu jakeluun vasta tuon päivämäärän jälkeen.

Prosessin kulusta on tehty loistava aikajana sekä kooste, joihon suosittelemme tutustumaan.

Tietoturva-asiantuntijoiden arvioiden mukaan takaportti on rakennettu sellaisella taidolla, että se ei voi olla yksittäisen pahantekijän työtä. Sen sijaan epäilykset kohdistuvat johonkin laajaan organisaatioon ja myös "valtiotasoisista" toimijoista puhutaan. Tähän viittaa myös nerokas "sosiaalisen hakkeroinnin" käyttäminen osana prosessia, jossa kehittäjäyhteisön luottamus on ensin onnistuttu voittamaan ennen pahoille teille siirtymistä.

Jos haluat tietää detailitasolla siitä, miten takaportti tarkalleen ottaen toimii, kannattaa tutustua Sam Jonesin tekemään yhteenvetoon aiheesta sekä verkkoyhtiö Akamain kuvaukseen takaportista ja sen toteutuksesta.

Mitä olisi voinut tapahtua?

Takaportti toimi siten, että se muokkasi sshd -ohjelmistoa, joka vastaa turvallisten SSH-yhteyksien hallinnoinnista palvelimilla. Takaportin avulla sshd:lle voidaan syöttää käytännössä mitä tahansa ohjelmakoodia kirjautumis-sertifikaatin mukana, jonka palvelin sitten iloisesti olisi suorittanut ilman mitään tarkistuksia.


Eli takaportin avulla, tiettyjen ehtojen täyttyessä, olisi millä tahansa palvelimella voitu suorittaa mitä tahansa ohjelmakoodia, etäyhteyksien yli.

Arviot vaihtelevat villisti sen osalta, monelleko palvelimelle takaportin sisältävä xz Utilsin versio ehdittiin jo päivittää, mutta isoimmat luvut puhuvat 2% kaikista maailman palvelimista. Luku on käsittämättömän suuri, jos se pitää paikkaansa.

Yksikään taho ei ole kuitenkaan toistaiseksi raportoinut siitä, että takaporttia olisi havaittu käytettävän. Toisaalta kukaan ei myöskään tiedä sitä, mihin tarkoitukseen Jia Tan ja hänen taustavoimansa ovat takaportin rakentaneet.

Nyt katastrofilta vältyttiin, käytännössä vain yhden asiaan mitenkään liittymättömän koodaajan tarkkojen silmien ansiosta. Eli puhtaasti tuurilla. Aivan yhtä todennäköistä olisi ollut se, että takaporttia ei olisi huomattu vuosikausiin - ja takaportin tekijällä olisi ollut lähes vapaat kädet isoon osaan maailman kaikista palvelimista.

Yritysten IT-osastot ovat huhkineet pääsiäisen yli, palauttaen xz Utilsia palvelimiltaan sellaiseen versioon, jonka tiedetään olevan turvallinen. Kyberturvallisuuskeskus suosittelee ottamaan käyttöön xz Utilsin v5.4.6 stable -version.

Tarkka lista niistä Linux-jakeluista, joihin xz Utilsin saastunut versio on varmuudella päivittynyt, löytyy täältä.

Opitaanko mitään? Tuskin

Kyseessä on jo toinen kerta parin vuoden sisään, jossa yhden ainoan ihmisen ylläpitämä avoimen lähdekoodin palanen muodostuu oletettua kokoaan paljon, paljon merkittävämmäksi.

Legendaarinen xkcd-sarjakuva kuvaa tilanteen mainiosti.

Mutta tulemmeko näkemään yrityksiltä rahoitusta ja resursseja kaikkiin mahdollisiin kriittisiin avoimen lähdekoodin projekteihin..? Tuskin. Joten jatkossakin voimme vain toivoa, että tarpeeksi tarkkasilmäisiä nörttejä löytyy, jotka ehtivät estää täyden katastrofin.


Suomessa aiheesta uutisoi ensin Tivi, joka kertoi myös Collinin olevan suomalainen.

KOMMENTOI

Haluatko kommentoida tätä artikkelia?
Kirjaudu sisään tai Luo uusi käyttäjätunnus.