
Több mint egy évvel az XZ Utils backdoor incidens felfedezése után egy új kutatás rávilágított, hogy még mindig elérhetőek fertőzött Docker képfájlok a Docker Hubon. Ráadásul ezek közül több olyan is létezik, amelyeket más képfájlok alapjául használtak fel, így a fertőzés transzitív módon továbbterjedhetett a konténeres ökoszisztémában. A felfedezést a Binarly biztonsági cég jelentette, amely firmware és ellátási lánc biztonságra specializálódott.
Az XZ Utils incidens háttere
Az XZ Utils backdoor-ja (CVE-2024-3094, CVSS: 10.0) 2024 márciusában került napvilágra, amikor Andres Freund figyelmeztetett arra, hogy az XZ Utils 5.6.0 és 5.6.1 verzióiban rejtett kód található. A rosszindulatú kód az liblzma[.]so könyvtárba volt beágyazva és különösen veszélyessé tette, hogy az OpenSSH szerverekkel együttműködve lehetővé tette a távoli jogosulatlan hozzáférést. A támadás technikailag kifinomult volt: az RSA_public_decrypt függvényt eltérítették a glibc IFUNC mechanizmusán keresztül, így, ha egy támadó birtokában volt egy speciálisan generált privát kulcs, teljes root hozzáférést szerezhetett az érintett rendszerhez SSH-n keresztül (jelszó vagy más hitelesítés nélkül).
A támadás mögött egy „Jia Tan” (felhasználónevén JiaT75) néven ismert fejlesztő állt, aki közel két éven keresztül építette fel a közösség bizalmát, mielőtt maintainer szerepet kapott volna az XZ Utils projektben. Ez a módszer a beszivárgás és bizalomépítés révén történő támadást példázza – amelyre ritkán látunk ilyen alaposan kidolgozott példát.
Újra felbukkanó fenyegetés a Docker ökoszisztémában
A Binarly legfrissebb jelentése szerint legalább 35 Docker képfájl tartalmazza még mindig a fertőzött XZ könyvtárat. Ezek közül 12 Debian alapú képfájl, míg a többi ezekre épülő másodlagos képekből áll, amelyek különböző felhasználói projektekben is elérhetők. Bár a Debian fejlesztői tudomással bírnak a problémás képekről és szándékosan elérhetően hagyták őket „történelmi érdekességként”, ez a döntés biztonsági szempontból vitatható. A fertőzött képek ugyanis továbbra is nyilvánosan elérhetők és potenciálisan használatba kerülhetnek. Binarly szerint a képek nyilvános elérhetősége komoly kockázatot jelent, mivel a backdoor technikailag lehetőséget biztosít távoli hozzáférésre, ha az adott konténerben fut az SSH szolgáltatás és hálózaton keresztül elérhető.
Az ellátási lánc sebezhetőségének tanulságai
Az eset ismételten rámutat arra, milyen törékeny a szoftver-ellátási lánc biztonsága, különösen az olyan ökoszisztémákban, mint a Docker vagy más konténerplatformok. Az XZ Utils backdoor-ja olyan bináris szinten volt beágyazva, amely verziókövetéssel nem volt észlelhető csak alacsony szintű kódvizsgálat deríthette ki. A Binarly hangsúlyozza, hogy szükség van folyamatos bináris szintű monitorozásra és CI/CD pipeline-okban történő mélyebb vizsgálatra, mivel a konténerképek fertőzése és azok rejtett terjedése hónapokig vagy akár évekig is észrevétlen maradhat.
Ajánlások a biztonság fokozására
A biztonsági szakértők a következő lépéseket javasolják a hasonló esetek megelőzése érdekében:
- Automatikus biztonsági szkennelés bevezetése konténer build és deploy fázisokban
- Base image auditálása, különösen, ha publikus forrásból származik
- SSH szolgáltatás minimalizálása vagy kikapcsolása konténeres környezetben
- Verzióellenőrzésen túli bináris vizsgálatok alkalmazása
Az XZ Utils backdoor-jának hosszú ideig történő észrevétlensége, majd konténeres képeken keresztül való továbbterjedése komoly figyelmeztetés minden fejlesztő és üzemeltető számára: a nyílt forráskódú szoftverekben rejlő bizalom nem helyettesíti az alapos biztonsági ellenőrzést. Az ellátási lánc biztonsága ma már nem csupán egy opció, hanem elengedhetetlen része a szoftverfejlesztési életciklusnak.
