XZ-Utils | |
---|---|
Kehityshistoria | |
Vakaa versio | 5.6.3 ()[1] |
Tiedot | |
Lisenssi | GNU Lesser General Public License, versio 2.1 tai myöhempi |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta |
XZ Utils (aiemmin LZMA Utils) on paketti avoimen lähdekoodin pakkausohjelmia. Pakettiin kuuluvat ohjelmat ovat lzma ja sen seuraaja xz. Ohjelmat ovat lähinnä Unix- ja Linux-käyttöjärjestelmiin suunnattuja komentoriviohjelmia, jotka toimivat kuten Unixin compress tai gzip tai bzip2. Ohjelmat pakkaavat vain yhden tiedoston tai vuon, joten sille voi putkittaa esim. tar-arkistointiohjelman tulostuksen, joka pakataan ja tallennetaan tiedostoon.
XZ Utils perustuu Igor Pavlovin kehittämälle LZMA Utilsille, jota käytettiin aluksi 7-Zipin 7z-pakkauksessa. LZMA Utils alkoi Unix-versiona Pavlovin LZMA-SDK:sta Tukaani-projektin yhteydessä. xz:n algoritmina on nykyisin LZMA2, jota tallennetaan xz-kuoreen. Pakkaukselle luvataan jopa 30% parempi pakkaussuhde kuin gzipille ja 15% parempi kuin bzip2:lle.[2] Pavlovin mukaan LZMA on hänen kehittämänsä yhdistelmä LZ77-algoritmia, Markovin ketjuja ja aritmeettista koodausta.[3]
Eräässä kokeessa linux-lähdekoodipaketti pakkautui suurimmilla asetuksilla gzip:llä 21% tilaan, bzip2:lla 16,6% tilaan ja xz:llä 13,9% tilaan. xz:llä pakkaus vie jopa 9 kertaa enemmän aikaa kuin gzipillä.[4] Lisäksi xz:n muistinkäyttö vaihtelee muutamasta sadasta kilotavusta jopa gigatavuihin.[5]
Maaliskuussa uutisoitiin xz-paketista löytyneestä takaovesta, joka muuttaa SSH-palvelimen autentikaatiota. Takaovi on löytynyt versioista 5.6.0 ja 5.6.1, jonka vuoksi monet jakelut ovat palanneet näitä edeltävään versioon. Ongelmallinen versio ei ollut vielä kaikissa jakeluissa käytössä.[6][7] Takaoven löytymisestä kerrottiin OpenWallin sähköpostilistalla.[8][9]
Takaoven lisäsi Jia Tan (JiaT75), joka vaikutti myös toiseen pakettiin, ja pääsi myöhemmin sabotoimaan projektia. Jia Tan tarjoutui projektiin kun sen ylläpito oli vaikeuksissa vuonna 2022 ja samalla ylläpitoon kohdistettiin painostusta nopeampiin päivityksiin.[10][11][12][13][14] Takaovi käytti glibc:n ominaisuutta (IFUNC
) korvaamaan RSA_public_decrypt
-funktion ohjaamalla sen haitalliseen versioon. Tämä antoi hyökkääjälle mahdollisuuden suorittaa antamansa ohjelmakoodin etänä. Jia Tan teki myös muutoksen, jolla landlock-hiekkalaatikon tuki kytkeytyi pois käännösvaiheessa aiheuttamalla virheen CMake-ohjelman tekemässä tarkistuksessa.[15][16] Saastutettu kirjasto hyökkäsi SSH-ohjelmistoon, ja avasi tähän takaoven, jonka kautta hyökkääjälle tuli mahdollisuus lähettää suoritettava ohjelma SSH-sertifikaatin mukana.[14]