11 puan yazan GN⁺ 2024-03-30 | 8 yorum | WhatsApp'ta paylaş
  • Debian sid kurulumlarında liblzma (xz paketinin bir parçası) ile ilgili bazı olağandışı belirtiler gözlemlendi: SSH oturumu açarken CPU kullanımında artış ve valgrind hataları
  • Sorunun nedeni olarak, xz’nin üst depoları ile tarball’larının bir arka kapıyla enfekte olduğu keşfedildi. Arka kapının bir kısmı yalnızca dağıtılan tarball’larda bulunuyor
  • Tarball’a dahil edilen betik, configure işleminin sonunda çalıştırılıyor ve belirli koşullar sağlanırsa $builddir/src/liblzma/Makefile dosyasını değiştirerek kötü amaçlı kod enjekte ediyor.

Depodaki arka kapı

  • Arka kapının ana kısmı, depodaki tests/files dizininde şifrelenmiş biçimde bulunuyor.
  • Bu dosyalar 5.6.0 sürümünün testlerinde kullanılmadı; 5.6.1 sürümünde ise arka kapının neden olduğu valgrind hataları ve çökmeleri düzeltmeye yönelik girişimler vardı.

Etkilenen sistemler

  • Arka kapı betiği, configure sonrasında ilk çağrıldığında yalnızca belirli koşullarda (ör. x86-64 Linux sistemleri, gcc ve GNU bağlayıcısı kullanımı, Debian veya RPM paketi derleme sırasında) derleme sürecini değiştiriyor.

openssh sunucusuna etkisi

  • Arka kapı yerleştirilmiş liblzma kullanıldığında SSH üzerinden oturum açma yavaşlıyor.
  • openssh doğrudan liblzma kullanmasa da Debian dahil bazı dağıtımlar systemd bildirim desteği için openssh’e yama uyguluyor ve libsystemd de lzma’ya bağımlı.

Enjekte edilen kodun analizi

  • Analiz, güvenlik araştırmacısı ya da tersine mühendislik uzmanı olmayan bir gözlemcinin bakış açısından yapıldı.
  • Arka kapı, ifunc resolver aracılığıyla yürütmeyi ele geçiriyor ve sshd başlatılması sırasında sembolleri çözümleyerek RSA_public_decrypt sembolünü kendi koduyla değiştiriyor.

sshd üzerindeki etkisi

  • RSA_public_decrypt@....plt, arka kapı kodunu gösterecek şekilde değiştirilerek açık anahtarla oturum açma sırasında arka kapı kodunun çağrılması sağlanıyor.
  • Bunun kimlik doğrulamayı atlamayı veya uzaktan kod yürütmeyi mümkün kıldığı tahmin ediliyor.

Hata bildirimi

  • Üst deponun işin içinde olduğundan şüphelenildiği için hata raporu gönderilmedi.
  • Red Hat bu soruna CVE-2024-3094 atadı.

Savunmasız kurulumların tespiti

  • Sistemdeki ssh ikilisinin savunmasız olup olmadığını tespit eden bir betik sağlanıyor.

8 yorum

 
[Bu yorum gizlendi.]
 
depth221 2024-03-30

xz arka kapısı hakkında bildiğim her şey
Bu, söz konusu arka kapıyı keşfeden Andres Freund tarafından yazılmış bir yazıdır.

 
edunga1 2024-04-01

Bunun çok planlı bir şekilde yürütülmüş olması gerçekten şaşırtıcı;; süreç adeta bir dizi gibi.

 
carnoxen 2024-03-30

Bunu parça parça etseler bile az kalır.

 
roxie 2024-03-31

Neden?

 
keepworking 2024-04-01

Bu, açık kaynak içine kasıtlı olarak bir arka kapı yerleştirme eylemiydi... bu süreçte gizlice kamuoyu yönlendirme çabaları gibi davranışlarda da bulundular.
Daha önce de Linux çekirdeğine kötü niyetli şekilde güvenlik açığı eklenen vakalar olmuştu, insanın içini burkuyor.

 
roxie 2024-04-01

Aha, sanırım nüansı şimdi anladım, teşekkürler

 
GN⁺ 2024-03-30
Hacker News görüşü
  • İlgili bağlantılar:

  • Özet:

    • Arka kapının yazarı, Fedora 40 ve 41'e xz 5.6.x eklemek için haftalar boyunca iletişim kurdu. Bu arka kapının yol açtığı valgrind sorununu çözmek için birlikte çalışıldı, ancak sonunda sorunun kaynağının arka kapının kendisi olduğu anlaşıldı. Yayın yasağı süresi kazara bozulunca sorun acilen çözülmek zorunda kaldı.
    • Arka kapı yazarlarından biri, tesadüfi şekilde fark edilmesini önlemek için oss-fuzz içinde arka kapıya bağımlı bir özelliği bizzat devre dışı bıraktı.
    • Arka kapının yazarı, xz-java projesine bir SECURITY.md dosyası ekledi. Bu dosya, güvenlik açığı bulunursa bunun kamuya açıklanmadan özel olarak bildirilmesini söylüyordu. Başka bir açıdan bakıldığında bu, yazarın kendi exploit'ini ayarlamak ve hedefleri kullanmak için zaman kazanmaya çalıştığı şeklinde yorumlanabilir.
    • openssh doğrudan liblzma kullanmıyor, ancak debian ve çeşitli dağıtımlar systemd bildirim desteği için openssh'e yama uyguluyor. Bu da libsystemd'nin liblzma'ya bağımlı hale gelmesine yol açıyor; sonuç olarak openssh gibi güvenlik açısından kritik daemon'lara ek bağımlılıklar giriyor ve tedarik zinciri saldırısı riski artıyor.
    • Panik halindeki kişiler için kontrol edilmesi gereken başlıca noktalar:
      • liblzma5'in yeni sürümlerinden birini (5.6.0 veya 5.6.1) kullanıp kullanmadığınız. Bunlar yaklaşık son bir ay içinde eklendi.
      • Debian veya RPM tabanlı bir Linux dağıtımı kullanıp kullanmadığınız. Bunun tersine mühendisliği zorlaştırma girişimi olduğu düşünülüyor.
      • OpenSSH sshd'yi systemd altında çalıştırıp çalıştırmadığınız. Bazı dağıtımlarda yamalanmış OpenSSH, loglama için libsystemd kullanıyor ve bu da savunmasız liblzma5'i devreye sokuyor.
      • Debian testing zaten 5.6.1+really5.4.5-1 sürümüne sahip; bu da gerçekte eski 5.4 sürümünün yeni sürüm gibi yeniden paketlenmiş hali.
    • GNU autoconf içinde şüpheli bir şeyi gizlemek isteseydiniz, bunu bir curl | sh betiğine değil oraya saklardınız. Bu olaydaki dağıtıcı daha önce de sürüm yayımlamış ve 2022'den beri commit atıyordu. Gerçek değişiklikler içeren çok sayıda commit'i ve libarchive gibi ilgili projelerde de katkıları vardı. Arka kapıyı yerleştirmek için büyük çaba harcanmış.
    • Birkaç yıl önce xz C kodunu saran ve Go içinden xz sıkıştırması yapmayı sağlayan bir Go kütüphanesi yazmıştım. Yaklaşık bir hafta önce bu depoya 5.6.1'e yükseltme yapan ilk PR geldi. Bu, upstream GitHub hesabından farklı bir hesaptı.
    • Güvenlik araştırmacısı ya da tersine mühendis olmayan bir katkıcının teknik yazılar yazmayı sevmesi hoşuma gidiyor. Kendi bulgularını özetleyen raporu, bilgi paylaşma konusunda isteksiz ana akım debugging dünyasının dışındaki katkıcılar için harika bir şablon olarak görülüyor.
    • xz(1) için daha ustaca hazırlanmış bir arka kapı girişimi olsaydı, muhtemelen bu kadar hızlı fark edilmezdi. xz neredeyse her yerde kullanılıyor. Belirli build süreçlerinin temeli olarak kullanılan .tar.xz yazılım tarball'arı gibi dosyaların yalnızca küçük bölümlerini seçerek değiştiren bir xz üretilebilir. Buradaki hedef, kaynak kodu tarball'ları değil, önceden derlenmiş binary dağıtan tarball'lar olurdu.