XZ Arka Kapı Saldırısı

XZ Backdoor: "Az kalsın yakalanıyorduk."

SSH'ye arka kapı erişimi

Kötü niyetli veya yetkiyi kötüye kullanan bir geliştirici, adlı bir kütüphaneye zararlı davranışlar ekledi. liblzmaBu, xz sıkıştırma araçları ve kütüphanelerinin bir parçası olup, SSH'de bir arka kapı oluşturmaktadır. Bu, gelişmiş bir yazılım tedarik zinciri saldırısıdır çünkü kütüphane, saldırı yükünü gözden geçirenlerden gizlemek için gizleme ve örtünme teknikleri kullanılarak kasıtlı olarak arka kapı için değiştirilmiştir.

Bu saldırı yakın zamanda (29 Mart'ta) keşfedildi ve duyuruldu ve saldırının ele alınması devam ediyor. Ancak, yalnızca sınırlı sayıda ortamın (x86_64 mimarisi için ve GCC ile derlenmiş DEB ve RPM paketleri) ön sürüm sürümlerini etkilediği için hızla kontrol altına alındı. Her neyse, CVE kendisine verildi CVSS temel puanı 10 üzerinden 10 puan alan bu tehdit, en kritik siber güvenlik açıkları için ayrılmıştır. Eğer istikrarlı dağıtımlara girerse, etkisi çok büyük olacaktır. 

Saldırının teknik analizi, aşağıdakileri içermektedir: xz arka kapısı detaylı olarak açıklandıBu konu başka yerlerde analiz edildi. Bu yazıda saldırının zaman çizelgesine, nasıl tespit edilebileceğine, olayın bugüne kadar nasıl ele alındığına ve saldırıdan çıkarılabilecek derslere odaklanacağız.

Arka kapının uzun süreli etkisi, ilk yama yayınlandıktan çok sonra da devam etti. Ağustos 2025'te, CVE-2024-3094'ün açıklanmasından bir yıldan fazla bir süre sonra, Binarly'deki güvenlik araştırmacıları, arka kapının Docker Hub'da yayınlanan bir düzine Debian Docker imajında ​​hala mevcut olduğunu buldu; Debian ekibi ise bunları aktif bir risk olarak değil, tarihsel geliştirme kalıntıları olarak değerlendirerek kaldırmayı reddetti. Ayrıca, OpenSSF XZ olayından kısa bir süre sonra OpenJS de benzer sosyal mühendislik ele geçirme girişimlerinin JavaScript projelerini hedef aldığını belirten ortak bir uyarı yayınladı ve burada kullanılan "bakımcı güveni" saldırı modelinin başka yerlerde de yeniden kullanıldığını öne sürdü.

XZ arka kapısının nasıl yerleştirildiği

Not: Git deposu şu konumdadır: git.tukaani.org. Bununla birlikte, Ayrıca bir tane daha vardı. GitHub'da barındırılan depo (şu anda engellenmiş durumda) GitHub hesabının, daha sonra Git deposuna entegre edilen değişiklikleri yayınladığı yer.

Arka kapının bir kısmı, git depolarında değil, yalnızca 5.6.0 ve 5.6.1 sürümlerinin dağıtılan tarball'larında bulunuyor ve bir şeye dayanıyor. build-to-host.m4 dosyasındaki tek satır Autoconf tarafından kullanılan makro dosyası. Diğer kısım ise iki adet test dosyasında yer alıyordu. kötü-3-bozuk_lzma2.xz hem de iyi-büyük_sıkıştırılmış.lzma

olduğu committed GitHub hesabı "Jia Tan" tarafından (JiaT75Olarak) xz deposu 23 Şubat'ta yapılan bu değişiklik, test dosyaları (sözde .lzma ve .xz sıkıştırılmış bloklar) ekleyen zararsız bir değişiklikti. İlginç bir şekilde, test dosyaları testler tarafından kullanılmadı! .m4 dosyasındaki satır, bazı koşullar eşleşirse yapılandırmanın sonunda çalıştırılacak gizlenmiş bir komut dosyasını (tarball'a dahil) enjekte eder. Bu, Makefile'ı değiştirir. liblzma Kod çözme işleminden sonra .xz dosyasından veri çıkaran kodu içeren kütüphane. bu senaryodaBu fonksiyon, yapılandırma işleminin sonunda çağrılır. Derleme sürecini kod enjekte edecek şekilde değiştirip değiştirmemeye karar verir: yalnızca GCC ve GCC bağlayıcısı altında, Debian veya rpm altında ve yalnızca x86_64 Linux için. Eşleştiğinde, enjekte edilen kod, iki satırı değiştirerek yürütmeyi engeller. ifunc Çözümleyiciler, belirli çağrıların değiştirilmesine neden olur. Bu, sembol tablolarının bellekte ayrıştırılmasına yol açar (bu zaman alır ve daha sonra açıklanacağı gibi tespit edilmesine neden olmuştur).

Sonra işler ilginçleşiyor: Arka kapı, dinamik bağlayıcıya bir denetim kancası yerleştiriyor ve RSA_public_decrypt fonksiyon sembolünün gelmesini bekliyor; bu sembol, arka kapı kodundaki bir noktaya yönlendiriliyor ve oradan da geri çağrı yapılıyor. libcryptoMuhtemelen normal kimlik doğrulama işlemini gerçekleştirmek için. Ve eğer çalışan programın işlem adı varsa, zararlı yazılım etkinleşir. /usr/sbin/sshdSSH sunucularının hedef alındığı açıktı. Geleneksel olarak, sshd OpenSSH gibi sunucularla bağlantı kurulmamıştı. liblzmaama sshd genellikle yamalanmış sshd çalışırken diğer servislerin başlatılabilmesi için systemd-notify'ı desteklemek amacıyla liblzma dolaylı olarak yüklenir. systemdÇemberi kapatarak.

Arka kapı henüz tam olarak analiz edilmedi, ancak öyle görünüyor ki... uzaktan komut yürütülmesine izin vermek (RCE) sshd daemon'unun ayrıcalıklarıylaÖn kimlik doğrulama bağlamında çalışır. Uzak sertifikadan gelen bilgiler, arka kapı tarafından eşleştirildiğinde ChaCha20 ile şifresi çözülür ve başarılı bir şekilde şifresi çözüldüğünde ilgili sisteme iletilir. sistem()Yani bu aslında, basit bir açık anahtar atlatma saldırısından çok daha kötü, kontrollü bir uzaktan kod yürütme saldırısıdır. 

Daha sonra yayınlanan 5.6.1 tarball sürümü, izleri gizlemek için ek çabalar gösterdi; sembol adları için daha fazla gizleme eklendi ve görülen hatalar düzeltilmeye çalışıldı. uzatma mekanizması Ek olarak, arka kapıya eklenecek belirli imzaları aramak için ilave test dosyaları da incelendi.

Bu oldukça gelişmiş saldırı, istikrarlı Linux dağıtımlarına ulaşılana kadar fark edilmeden kalabilir. Neyse ki, bazı insanlar anormal şeylerin neden olduğunu kontrol etmeyi sever.  

XZ Arka Kapı Saldırısının Keşfi

Çoğu zaman, sisteme yerleştirilen kötü amaçlı yazılımlar tesadüfen veya kaza sonucu ortaya çıkarılır. Bunun iyi bir örneği şuydu: kullanımdan kaldırma uyarısı (“Uyarıları kim umursuyor ki?”) diyenler, şu keşfe yol açtı: olay akışı saldırısı Ekim 2018'de. Diğeri ise uyarıda bulunan kullanıcı. Codecov Nisan 2021'de bash yükleyici komut dosyalarının sağlama toplamından geçmediğini açıkladılar ("Sağlama toplamlarıyla yapıtların bütünlüğünü kim doğruluyor?"). SSH ile ilgili anormallikler ve garip semptomlar logins (loginÇok fazla CPU kullanımı ve artan işlem süresi (Valgrind hataları) merak uyandırdı. Andrés FreundDikkatli bir PostgreSQL geliştiricisi ancak güvenlik analisti değil (kendi belirttiği gibi).Debian Sid üzerinde OpenSSH ile yaptığı bazı araştırmaların ardından, yanıt süresi sorununun bir kütüphaneden kaynaklandığı sonucuna vardı. liblzma, Bir parçasıdır xz-utils Sıkıştırma kütüphanesi. Sebebi: “Yukarı akış xz deposuna ve xz tarball dosyalarına arka kapıdan saldırı yapıldı.Bu teşhis çok doğruydu!   Andres, 29 Mart 2024'te Openwall'da ilk analizi yayınladı: "xz/liblzma adlı yukarı akış deposunda SSH sunucusunun güvenliğinin ihlal edilmesine yol açan bir arka kapı bulunmaktadır.Gerçek şu ki: XZ Utils 5.6.0 ve 5.6.1 tarball dosyaları bir arka kapı içeriyor. Bu tarball dosyaları, yukarıda adı geçen Jia Tan hesabı tarafından oluşturulmuş ve imzalanmıştır.  He Mastodon'da yayınlandı O günün ilerleyen saatlerinde, keşfin tesadüfi olduğunu ve birçok rastlantıya bağlı olduğunu fark etti. Diğer kullanıcıların yorumları okunmaya değer. GitHub kullanıcısı aynı (diğer adıyla Sam James) güzel bir özet yayınladı. xz-utils arka kapısı hakkında SSS Saldırının özetlendiği ve daha fazla bağlantının kurulduğu yer. derinlemesine analizler saldırı yükünün. Bu analizler teknik açıdan oldukça kapsamlıydı ve oldukça detaylı bir şekilde uygulanan enjeksiyonu daha iyi anlamamıza yardımcı oldu: Bu güzel Thomas Roccia'nın posteri  Bu, JiaT75'in GitHub deposundaki faaliyetlerinin bir bölümünü ve enjeksiyon komut dosyasının ikili arka kapıyı nasıl yerleştirdiğini daha ayrıntılı olarak göstermektedir. xz arka kapısı açıklandı.

Olayın nasıl ele alındığı

Andreas Freund'un açıklamaları temkinli oldu çünkü kendi sözleriyle:

"Görünürdeki üst düzey müdahale nedeniyle, üst düzey bir hata bildirmedim. Başlangıçta bunun Debian'a özgü bir sorun olduğunu düşündüğüm için, security@...ian.org adresine daha ön bir rapor gönderdim. Daha sonra sorunu distros@ adresine bildirdim." CISA'ya bir dağıtım yoluyla bildirim yapıldı."

Red Hat bu soruna CVE-2024-3094 numarasını atadı. Ardından haber hızla yayıldı. XZ'nin diğer sorumlusu Lasse Collin bir ekleme yaptı. yeni commit 30 Mart Cumartesi günü "CMake: Sabote edilmiş Landlock sanal alan kontrolünü düzeltme" başlıklı bir gönderi yayınlandı. Kütüphanenin sanal alan oluşturma yöntemlerinden biri, en azından CMake ile derleme sırasında sabote edilmişti. Sorunu derhal açıkladı. XZ Utils'in arka kapısı. Red Hat bu sorunu atadı. CVE-2024-3094 (ayrıca bkz. CVE, NDV, UbuntuOna çok büyük bir miktar tahsis edildi. CVSS Temel Skoru 10Bu tür skorlar internette her zaman büyük yankı uyandırır. CISAynı gün, 29 Mart'ta bir açıklama yayınlandı. uyarıBelki de aciliyet nedeniyle fazla basitleştirilmiş bir yaklaşımla, kullanıcılara 5.4.6 kararlı sürümüne geri dönmeleri öneriliyor. Tukaani organizasyonu altındaki GitHub depoları devre dışı bırakıldı (bu iyi mi yoksa kötü mü? Bence iyi: Birçok dağıtım ve kuruluş, derleme için enfekte tarball'ları kaynaklamak üzere hala GitHub sürümlerine bağlantı veriyordu. Deponun devre dışı bırakılması bunu önler. Yine de depoların bir kopyası şu adreste mevcut: git.tukaani.orgGitHub hesapları JiaTan75 ve Lasse Collins'in (Larhzu) hesapları da askıya alındı. Bu, sürecin bir parçasıdır. kapsamaMasum insanları etkileyebilecek olsa bile. JiaT75 devre dışı bırakılmamış depolardaki etkinlik Henüz görülemiyor. Sektör hızla tepki verdi. Birçok satıcı, savunmasız sistemleri tespit etmeye yönelik kurallar yayınladı, örneğin: Yara kurallarıveya ticari araçlardan destek Sisdig, PANve diğerleri. Güvenlik uzmanları gibi James Berthoty Açık kaynak yazılımlara yaklaşımımızı gözden geçirmekle ilgili bir yazı yayınladım.  Şu anda olayın ortadan kaldırılması ve iyileştirilmesi aşamasındayız. JiaTan75 tarafından yürütülen diğer projeler, özellikle de..., yakından incelenmektedir. libarchive/libarchive (JiaTan75'in düzenli katkıda bulunduğu yer) ve fuzzer oss-fuzz (burada commit JiaTan75 tarafından yapılan bu çalışma, aslında OSS kaynaklı bulanıklığı önlemeye çalıştı. arka kapıyı tespit edemedi.Bu gizleme girişimleri, kanıtlara yenilerini ekliyor. 

Saldırının hedefi kim?

Ya GitHub JiaT75 hesabı ele geçirildi (GitHub'ın yakın zamanda 2FA'yı zorunlu hale getirdiğini hatırlayın) ya da hesabın gerçek sahibi kötü niyetli kişilere geçti. Ancak saldırının teknik karmaşıklığı nedeniyle, belki de devlet destekli, gelişmiş kalıcı bir tehdit (APT) olasılığını düşündüren güçlü nedenler var. Siber güvenlik kurumları ve kolluk kuvvetleri tarafından yapılacak daha fazla araştırma, gerçeği ortaya çıkaracaktır… Bu giriş YCombinator Hacker News'te Jia Tan hakkında "Kim" ve faaliyetleri hakkında bazı bilgiler veriyor. Tavsiye edilir! Kötü niyetli kişilerin sosyal mühendislik kullanarak diğer kullanıcıları nasıl kandırmaya çalıştığı hakkında çok fazla bilgi sunuyor.

“Çok sinir bozucu - arka kapının görünürdeki yazarı, "harika yeni özellikleri" nedeniyle xz 5.6.x'i Fedora 40 ve 41'e eklemek için birkaç hafta boyunca benimle (rwmj) iletişim halindeydi. Hatta valgrind sorununu düzeltmek için onunla birlikte çalıştık (ki bunun da eklediği arka kapıdan kaynaklandığı ortaya çıktı). Ambargonun yanlışlıkla ihlal edilmesinden sonra sorunu çözmek için dün gece acele etmek zorunda kaldık. 2 yıldır xz projesinin bir parçası, her türlü ikili test dosyası ekliyor ve dürüst olmak gerekirse, bu düzeyde bir gelişmişlikle, aksi ispatlanana kadar xz'nin daha eski sürümlerinden bile şüphe duyardım.”

Jia Tan, izlenmeyi önlemek için önlemler aldı: Bağlantı kurmak için VPN (vpn.singapore.witopia.net) kullanmış gibi görünüyor - ki bu kendi başına sorun değil. Ve birçok değişiklik, (bu durumda ProtonMail'den gelen) değişikliklerin birleştirilmesini teşvik eden geçici, tek kullanımlık e-postalarla destekleniyor gibi görünüyor.

Oyuncu, Linux çekirdeğine kadar daha da derine inmeyi hedefliyor olabilir, zira kendisi bu alana katkıda bulunan bir isim. xy-gömülü Proje kapsamında yapılan ilk analizde, bugüne kadar düşük olduğuna dair herhangi bir kanıt bulunamadı.

Not: bir başka XZ'ye katkıda bulunan, pek tanınmayan yazar "Hans Jansen" (GitHub kullanıcısı “hansjans162”) inceleme altındaDebian'daki hesabı şu anda şu şekildedir: tıkalıDebian Games'e birçok güncelleme yaparak debian/xz-utils'te gizlemek istediği güncellemeyi sakladı; ayrıca arka kapı yazılımının dağıtımını hızlandırmak için 5.6.1 sürümüne de bir güncelleme yaptı. debian/kararsız

Şimdilik söyleyebileceğimiz tek şey, bunun (henüz tanımlanamayan) farklı hesaplar kullanan, en az iki yıldır bu kampanya üzerinde çalışan ve sabırla SSH'ye uzaktan kod yürütme (RCE) yazılımı yerleştirmeye çalışan bir APT olduğudur.

Bu yazının yazıldığı an itibariyle, "Jia Tan"ın arkasındaki kimlik henüz doğrulanmamıştır. Belirli bir bireye, kuruluşa veya devlet aktörüne dair güvenilir bir atıf kamuoyuna açıklanmamıştır; bu da bu karakterin operasyonel disiplininin ne kadar etkili olduğunu pekiştirmektedir.

XZ arka kapı saldırısı önlenebilir miydi?

Oldukça zor. 

İlk olarak, enjekte edilen arka kapının bir kısmı, testler tarafından kullanılmayan sıkıştırılmış test dosyalarına bulaştı. Geriye dönüp bakıldığında, bu bazı (gürültülü) alarmlara neden olabilir, ancak gerçek dünyada tüm test dosyalarının gerçek testler tarafından kullanılıp kullanılmadığını kontrol etmek kimin umurunda? İkinci olarak, enjekte edilen arka kapının bir kısmı, yayınlanan tarball'lara makro dosyalarıyla bulaştı ve beklenen tarball'larla farklılıkları manuel olarak kontrol etmek zordur. Otomasyon da karmaşıktır, çünkü derlemenin kendisinden beklenen sonuç (automake/autoconf'un nasıl çalıştığını bilen herkes için) gerçek tarball'ın beklentilerle eşleşip eşleşmediğini analiz etmek için modellenmesi zordur. Bazıları bunu sordu. as "Git ağacındaki tarball'ların uyumsuzluğu bir hata değil, bir özelliktir."İkili tarball'ların kaynak kodundan kökenine dair bilgi edinme sorunu henüz çözülmemiş bir problemdir.

Kullanıcı itibarı mı? Eh, JiaTan75 GitHub hesabının geçmişe bakıldığında yasa dışı bir şey yapmadığı anlaşılıyor. commitKanıtlar toplandıktan sonra askıya alındı, ancak 29 Mart'a kadar normal işlerini yapan sıradan bir kullanıcıydı. Pek de normal sayılmazdı. Daha sonra commits ( Re-Tweet, Re-Tweet, Re-Tweet, ve Re-Tweet (Bu değişiklik, saldırı kodunu da ayarladı) arka kapının beklediği yığın düzeniyle olan farklılıklar nedeniyle bazı yapılandırmalardaki Valgrind hatalarını ve çökmelerini düzeltmeye çalıştı. Commit İncelemeler bunu tespit edebilir, ancak ikili test dosyasındaki değişiklikleri veya C kaynak kodundaki GCC özniteliklerinde yapılan bir değişikliğin gerçek nedenini analiz etmek için kimin sabrı var?

SSH bağlantısında bir sorun yaşandığında alarm verilmeli mi? login 300 ms yerine 800 ms sürüyor mu? Muhtemelen sadece aşırı ihtiyatlı kişiler bunu fark eder. Cicero şöyle demişti: "Düşüncesizlik gençliğe, ihtiyat ise yaşlılığa özgüdür."  

ifunc altyapısı Haziran 2023'te "Hans Jansen" ve "Jia Tan" tarafından eklendi. Bu, ilk örnektir. commit crc64_fast.c dosyasına ifunc desteği eklemek (daha sonra arka kapı yazılımını enjekte etmek için kullanıldı). Arka kapı yazılımlarını test dosyalarına enjekte etmeden aylar önce!

Not: Yazar ve commitBurada farklı görüşler olabilir, ancak bu normal: Lasse Collin proje yöneticisi ve değişiklikleri o birleştirdi. Hatta "Hans Jansen"e teşekkür bile ediyor...

Andres Freund'un paylaşımından ve RedHat tarafından oluşturulan CVE'den önce kimse bu konuda endişe dile getirmemişti. Bunu tespit edebilecek bir dizi araç görürseniz, artık etkilenen bileşeni tespit ediyorlar. fiili sonrası

Muhtemelen en iyi önleme yöntemi, Linux dağıtımlarının doğasından ve kararsız, en yeni sürümlerin ancak kademeli bir süreçten sonra istikrarlı dağıtımlara geçmesinden kaynaklanıyordu.

XZ bBackdoor Saldırısından Alınan Dersler

Tespit etmenin ne kadar zor olduğunu fark ettik. kasıtlı Arka kapılar. Arka kapılar, iç personel tarafından veya ele geçirilmiş iç hesaplar aracılığıyla yerleştirildikleri için iç tehdit olarak değerlendirilmelidir. Ve bu kişiler çoğunlukla güvenilir kişilerdir. Arka kapı dağıtılmış yapıya yerleştirildiğinde ise tespit edilmesi daha da zorlaşır.

Kevin Beaumont gibi bazı yazarlar işaret etti sistemBu durum, üçüncü taraf servislerin arka kapı saldırılarına açık geniş bir saldırı yüzeyi oluşturmasına olanak tanır. Kötü niyetli kişi burada bunu istismar etti. Systemd'nin birçok gözü var, ancak XZ zincirin yukarısında yer alan belirsiz bir kütüphane. "Yukarıdaki su kirlendiğinde, herkes aşağıdan zehirli su içer."

Sistemde, konuyla ilgisi olmayan bir değişiklik talebi Sıkıştırma kütüphanelerinin dinamik olarak yüklenmesiArka kapıyı ortadan kaldıracak olan kod, sisteme zaten entegre edilmişti ancak henüz teslim edilmemişti. libsystemd tarafından getirilen ek bağımlılıklar, güvenlik açıklarının kaynağı olabilir.ve dün Bu talep açıldı.

A yorum Yap “xz: Sorunu düzeltmek için ifunc'u devre dışı bırakın” bölümünde commit Bu tür faaliyetleri önlemek istiyorsak nereye odaklanmamız gerektiği konusunda net bir bakış açısı sağladı (vurgu bana aittir):

"Toplum olarak öğrenmemiz gereken ders, güvenliği daha fazla sağlamaktır." software supply chain security Bütüncül bir yaklaşımla, sadece kaynak kodunun ötesinde derleme sistemlerinin denetlenmesi gerekiyor. Örneğin, SolarWinds ihlalinde olduğu gibi, saldırganlar SolarWinds'in kapalı kaynaklı izleme yazılımı için sunduğu yazılım güncellemelerini değiştirdiler."

Erken teşhis ve hızlı müdahale, etkisini büyük ölçüde sınırladı. Hatırlarsanız... son sahne Siyah III Erkekler“Az kalsın yakalanıyorduk.” K yine ipucunu vermeyi unutmadı. Ve hiçbir sahtekar Linux kararlı dağıtımlarına giremedi.
1. “Ben bir güvenlik araştırmacısı ya da tersine mühendis değilim.” 2. Jia, yaygın bir Çin ismidir. Tan da “muhteşem” anlamına gelen yaygın bir soyadıdır. Bu ismi taşıyan birçok farklı insan var, lütfen bu isimden dolayı kimseyi kınamayın!

SSS

XZ arka kapısı bugün hala bir risk mi?

Çoğunlukla kontrol altına alındı, ancak tamamen ortadan kalkmadı. Ağustos 2025'te araştırmacılar, Debian tarafından etkin olmayan tarihi kalıntılar olarak değerlendirilen arka kapının hala birkaç Debian Docker Hub imajında ​​mevcut olduğunu buldu. Ekipler, 2024 yamasının kapıyı tamamen kapattığını varsaymak yerine, güncel olmayan, yamalanmamış temel imajlar üzerinde derleme yapmadıklarından emin olmalıdır.

sca-tools-software-composition-analysis-tools
Yazılım risklerinizi önceliklendirin, giderin ve güvence altına alın.
Ücretsiz hesabınızı alın.
Hiçbir kredi kartı gerekmektedir.

Yazılım Geliştirme ve Teslimatınızı Güvence Altına Alın

Xygeni Ürün Paketi ile