Xz-backdoor: the saga so far

Afgelopen weekend daverde de Open Source Community op zijn grondvesten (en het zindert nog stevig na).
Het verhaal achter de xz-backdoor is waanzinnig, maar potentieel geen unicum.

Wat je moet onthouden: deze backdoor zou het mogelijk gemaakt hebben om op meer dan 90% van alle Linux systemen die verbonden zijn met het internet, code uit te voeren, als root.

Alles was in gang gezet, de eerste systemen werden reeds geïnfecteerd.
Binnen dit en een dik jaar zou 90% van alle systemen die van regelmatige updates voorzien worden kwetsbaar zijn.
Ware het niet voor 1 PostgreSQL developer die zich stoorde aan lag.

Vrijdag 29 maart postte Andres Freund op de Open Source Security List, OpenWall volgend bericht:

https://www.openwall.com/lists/oss-security/2024/03/29/4

Het was hem opgevallen dat inloggen via SSH plots minstens 500ms trager was geworden.
Andres vond dat al dat wachten aantoonde dat er ergens iets niet pluis was.
En hij ging op onderzoek, trok een potje open en viel heel diep down the rabbit hole.

In onderstaand Tweakers artikel kan je veel links vinden waar je op kan doorlezen.
Het heeft mij het hele weekend in de ban gehouden.
Voor mij is dit duidelijk State Actor Level.

Jammer dat GitHub de repo offline heeft gehaald en de account suspended heeft.
Want de backdoor maker is enorm ver gegaan om zijn backdoor alle kansen te geven.
En heeft ook enorm veel kwetsbaarheden van de OSS wereld misbruikt.
Je kon het zelf natrekken door de geschiendenis van JiaT75 op te zoeken op GitHub.

Er werd actief gepushed om de meest recente versie van xz in zoveel mogelijk distro’s te krijgen, er werd meegeholpen om bugs (veroorzaakt door de backdoor) te pletten om het zo in Fedora te krijgen.
Er werd 2 jaar! actief en nuttig bijgedragen aan xz door JiaT75, om zo tot co-maintainer gekroond te worden.
oss-fuzz (een tools om kwetsbaarheden te vinden in Open Source Software) kreeg een Pull Request van JiaT75 om de glibc functie waar de backdoor gebruik van maakt te negeren, omdat dat bugs zou verhelpen.
Die PR werd committed, JiaT75 was co-maintainer van xz, hij zou het wel geweten hebben zeker?
JiaT75 paste the security disclosure regels voor xz aan, zodat er minder snel public disclosures zouden plaatsvinden.

Het werd moeilijk gemaakt om de backdoor te reproduceren.
De backdoor wordt alleen ingebakken als je .deb of .rpm packages build.
Niet als je xz zelf zou builden.
De backdoor maakt gebruik van obfuscated code.
De backdoor zit enkel in de release tarballs.
Het verschil tussen de GitHub zip van de repo en de release tarballs is minimaal, de malafide code zit in de fake test files, die wel in de repo zaten.

Ook over hoe JiaT75 co-maintainer is geworden beginnen vragen te rijzen.
In 2022 zou er iemand actief de slechte maintenance van xz aangekaart hebben (na 30 jaar werd de library nog maar door 1 iemand maintained, iemand die notabene zelf met een Open Source Burnout zat).
En net dan kwam JiaT75 op de proppen, met nuttige commits en maintenance.
Na 2j werd hij co-maintainer.

De moeite die hier in is gekropen is gigantisch, een absolute long con.
Maar voor een undetected RCE op 90% van alle Linux servers, die potentieel meer dan 10 jaar blijft werken, tja ik snap het alvast.

Ware het dus niet dat het lag veroorzaakte bij het inloggen.
Zelfs wanneer je bewust met foutieve gegevens probeerde in te loggen, iets dat normaal zeer snel zou falen.
Of die lag er altijd zou zijn met de backdoor of enkel in specifieke gevallen zoals bij Andres, is nog niet geweten.

Ik vrees wel dat dit niet de enige backdoor is die in Operating Systems zit, en ook niet dat dit enkel van deze tijd is.
OS’en zijn dermate complex met zovele moving parts, het is zeer goed mogelijk dat er nog 1 of meerdere backdoors zijn.

Maar opnieuw, dit verhaal toont aan dat software tot op heden nog steeds door mensen geschreven en gebruikt wordt en mensen zijn om de tuin te leiden en hun vertrouwen misbruikt…

9 likes

Ik heb er een goede verduidelijkende video over gezien dit weekend: https://www.youtube.com/watch?v=jqjtNDtbDNI

5 likes

Zag deze ook, alsook https://www.youtube.com/watch?v=bS9em7Bg0iU

(Fireship is sowieso :fire:)

En LLL heeft op zijn Twitch kanaal 2 video’s waarin hij de backdoor fileert:


Ze bespreken de malware an sich erg goed.
Maar ze bespreken het grotere onderliggende probleem niet.
Dit kan morgen in een andere system lib voorvallen of erger nog, ontdekt worden.

  • We accepteren dat de GitHub zip niet altijd wenselijk is en laten tarballs toe van maintainers met extra’s tov de repo.
  • We vertrouwen blindelings op wat een developer zegt wanneer die de maintainer is van een OSS package.
  • We werken met extreem complexe code, waar vaak enkel de maintainers nog aan uit kunnen. En in sommige gevallen zelfs niemand echt alle code begrijpt (OpenSSL is een schoolvoorbeeld hiervan).
  • Er geen middelen zijn om alles van een grondige audit te voorzien

Hopelijk kan AGI hier veel gaan betekenen in de toekomst.
Een mens om de tuin leiden die niet alle info in 1 keer volledig kan bevatten is niet moeilijk. (Social Engineering 101)
Een AGI die everything, everywhere, all at once kan observeren hopelijk iets minder evident.

Het is trouwens geen Auth Bypass zoals eerst gedacht, maar een RCE.
Je kan een payload sturen naar de backdoor, die moet signed zijn met de private key van de attacker (en wordt verified adhv de public key), die daarna rechtstreeks aan de system() function gefeed wordt.

1 like

Ik ben zeker geen programmeur maar ik snap een beetje waar dit over gaat en deze shit is scary! Zeker als je weet hoeveel bedrijven vertrouwen op open source software.

Is dit te vergelijken met Log4j?

1 like

Hier nog een goed stuk:

1 like

Niet helemaal, al dat het wel in beide gevallen over kwetsbaarheden gaat.

Log4Shell (de kwetsbaarheid in Log4j) was een onbewuste programmeerfout.

De xz-backdoor was vele malen erger helaas.
Het was een doelbewust gecreëerde achterdeur die, als alles goed ging, in alle grote Linux distributies terecht zou komen.

2 likes

DBAs zijn gevoelig voor performance changes :slight_smile:

Ik had gelezen dat voornamelijk distro’s zoals Debian, OpenSUSE, Fedora en Kali dit risico lopen.

Temple OS to the rescue dan? :laughing:

Oke, eventjes serieus. Ik vind het vooral scary dat dit echt gewoon per toeval ontdekt is geweest omdat dit inderdaad wel de vraag naar boven brengt, “welke andere grote open source projecten zitten in hetzelfde scenario, maar zijn gewoonweg nog niet ontdekt geweest?”

Voor de conspiracy theorists: is het niet heel toevallig dat deze backdoor “gevonden” wordt net voor ze richting mainstream versies van de de meeste Linux distros gaat (want eigenlijk waren enkel de mensen die unstable versies van distros draaiden geimpacteerd) ?
In de donkerder hoeken van het internet wordt gesuggereerd dat bepaalde three letter agencies van deze backdoor wisten en mensen getipt hebben om op bepaalde plaatsen te zoeken zodat hun kennis niet moet openbaar gemaakt worden

Alle distro’s gebaseerd op Debian en Redhat (met .deb en .rpm packages) die op x64 chipsets draaien werden geviseerd. Dat is een heel groot aandeel van de servermarkt.

2 likes

Tja, was dit gelukt dan was het wel de “holy grail”. Een authentication bypass (en mogelijks nog meer) in sshd. Zo maar toegang op bijna alle servers wereldwijd.
Wat natuurlijk de vraag doet stellen: zijn er mogelijks andere backdoors waar we niet van weten …

Mind = :exploding_head:

Deze week ook in de nieuwsbrief, @StephanS. Je hebt Computer Club uitgespeeld.

3 likes

Aight.
Boeken toe, pintjes drinken!

2 likes