31 puan yazan GN⁺ 2024-04-03 | 7 yorum | WhatsApp'ta paylaş
  • İki yıldan uzun süre boyunca "Jia Tan" adını kullanan saldırgan, xz sıkıştırma kütüphanesine dürüst ve etkili bir katkıcı olarak faaliyet gösterdi ve sonunda commit yetkisi ile yönetici yetkisi aldı.
  • Bu yetkiyi kullanarak Debian, Ubuntu, Fedora ve diğer systemd tabanlı Linux sistemlerinde OpenSSH sshd için de bir bağımlılık olan xz'nin parçası liblzma içine son derece incelikli ve dikkatle gizlenmiş bir arka kapı yerleştirdi.
  • Bu arka kapı, SSH oturumu başlatılırken saldırganın gizli komutlar göndermesini izleyerek saldırgana hedef sistemde oturum açmadan rastgele komut çalıştırma yeteneği sağlıyordu. Bu, kimlik doğrulamasız hedefe uzaktan kod çalıştırma anlamına geliyor.
  • Saldırı 29 Mart 2024'te kamuya açık olarak ifşa edildi ve yaygın kullanılan açık kaynak yazılıma yönelik ilk ciddi tedarik zinciri saldırısı gibi görünüyor.
  • Açık kaynak tedarik zinciri güvenliği açısından bir dönüm noktası niteliğinde.
  • Bu yazı, görünüşe göre 2021 sonlarına kadar uzanan bu saldırının sosyal mühendislik yönüne dair oluşturulmuş ayrıntılı bir zaman çizelgesi.

Prolog

  • 2005-2008: Lasse Collin, başkalarının yardımıyla, dosyaları gzipe kıyasla yaklaşık %70 boyuta kadar sıkıştıran LZMA sıkıştırma algoritmasını kullanarak .xz dosya biçimini tasarladı.
  • Bu biçim zamanla tar dosyalarını, Linux çekirdek görüntülerini ve daha fazlasını sıkıştırmak için yaygın biçimde kullanılmaya başlandı.

Jia Tan'in ortaya çıkışı ve destekçileri

  • 2021-10-29: Jia Tan, xz-devel e-posta listesine ilk zararsız yamasını gönderdi.
  • 2021-11-29: Jia Tan ikinci zararsız yamasını gönderdi.
  • 2022-04-19: Jia Tan bir başka zararsız yama gönderdi.
  • 2022-04-22: "Jigar Kumar", Jia Tan'in yamasının hâlâ birleştirilmemiş olmasından şikâyet etti.
  • 2022-05-19: "Dennis Ens", XZ for Java'nın bakım durumunu sordu.
  • 2022-05-19: Lasse Collin, yavaş yanıt için özür dileyerek, "Jia Tan bana XZ Utils konusunda liste dışı yardım ediyor ve en azından XZ Utils içinde daha büyük bir rol üstlenebilir" diye yanıt verdi.
  • 2022-05-27: Jigar Kumar, yama dizisine baskı içeren bir e-posta gönderdi.
  • 2022-06-07: Jigar Kumar, Java dizisine baskı içeren bir e-posta gönderdi.
  • 2022-06-08: Lasse Collin, ilgisini kaybetmediğini ancak ruh sağlığı sorunları nedeniyle kapasitesinin sınırlı olduğunu söyledi.
  • 2022-06-10: Lasse Collin, Jia Tan tarafından yazılan ilk commit'i birleştirdi.
  • 2022-06-14: Jugar Kumar bir başka baskı e-postası gönderdi.
  • 2022-06-21: Dennis Ens, bakımın başka birine devredilmesini öneren baskı içerikli bir e-posta gönderdi.
  • 2022-06-22: Jigar Kumar, C yama dizisine baskı içeren bir e-posta gönderdi.
  • 2022-06-29: Lasse Collin, "Jia Tan proje içinde daha büyük bir rol üstlenebilir" imasında bulunan bir yanıt verdi.

Jia Tan bakım sorumlusu oluyor

  • Görünüşe göre Lasse, Jia Tan ile daha yakın çalışmaya başladı. Jigar Kumar ve Dennis Ens büyük olasılıkla sahte kişilerdi.
  • 2022-09-27: Jia Tan, 5.4.0 sürüm özeti sundu.
  • 2022-11-30: Lasse Collin, hata raporu e-posta adresini kişisel adresinden Jia Tan ile paylaşılan bir takma ada çevirdi.
  • 2022-12-30: Jia Tan, xz deposuna doğrudan ilk commit'i birleştirdi.
  • 2023-01-11: Lasse Collin, son sürümü olan v5.4.1'i etiketledi ve derledi.
  • 2023-03-18: Jia Tan, ilk kendi sürümü olan v5.4.2'yi etiketledi ve derledi.
  • 2023-03-20: Jia Tan, Google oss-fuzz yapılandırmasını güncelleyerek hataların kendisine gönderilmesini sağladı.
  • 2023-06-22: Hans Jansen, "GNU indirect function" özelliğini kullanan bir çift yama gönderdi; Lasse Collin bunları yeniden işledi ve Jia Tan birleştirdi.
  • 2023-07-07: Jia Tan, oss-fuzz derlemeleri sırasında ifunc desteğini devre dışı bıraktı.
  • 2024-01-19: Jia Tan, web sitesini GitHub Pages'e taşıyarak XZ Utils web sayfasının kontrolünü aldı.

Saldırının başlaması

  • 2024-02-23: Jia Tan, test girdi dosyalarının içine gizlenmiş arka kapı ikili kodunu birleştirdi.
  • 2024-02-24: Jia Tan, v5.6.0'ı etiketledi ve kötü amaçlı build-to-host.m4 içeren xz-5.6.0.tar.gz dağıtım paketini yayımladı.
  • 2024-02-24: Gentoo'da 5.6.0 sürümünde çökmeler görülmeye başlandı.
  • 2024-02-26: Debian, xz-utils 5.6.0-0.1 paketini unstable dalına ekledi.
  • 2024-02-28: Debian, xz-utils 5.6.0-0.2 paketini unstable dalına ekledi.
  • 2024-02-29: GitHub'da @teknoraver, liblzma'nın libsystemd'ye bağlanmasını engelleyen bir pull request gönderdi.
  • 2024-02-28: Jia Tan, Landlock desteğini kontrol etmekte kullanılan C programına ince bir yazım hatası ekleyerek configure betiğinin Landlock algılamasını bozdu.
  • 2024-03-04: RedHat dağıtımlarında liblzma içindeki _get_cpuid bölümünden Valgrind hataları görülmeye başlandı.
  • 2024-03-05: libsystemd PR'ı birleştirildi ve liblzma kaldırıldı.
  • 2024-03-05: Debian, xz-utils 5.6.0-0.2 paketini testing dalına ekledi.
  • 2024-03-05: Jia Tan, ifunc hata düzeltmesini commit etti.
  • 2024-03-08: Jia Tan, Valgrind düzeltmesi için bir commit yaptı.
  • 2024-03-09: Jia Tan, arka kapı dosyalarını güncelleyen bir commit yaptı.
  • 2024-03-09: Jia Tan, v5.6.1'i etiketledi ve xz 5.6.1 dağıtım paketini yayımladı.
  • 2024-03-20: Lasse Collin, çekirdekteki xz sıkıştırma kodunun bakım sorumluları olarak kendisini ve Jia Tan'i ekleyen yama setini LKML'ye gönderdi.
  • 2024-03-25: Hans Jansen, xz-utils paketini 5.6.1'e güncellemek için bir Debian hata kaydı açtı.
  • 2024-03-28: Jia Tan, xz-utils paketinin Debian'da 5.6.1'e güncellenmesi için bir Ubuntu hata kaydı açtı.

Saldırının tespit edilmesi

  • 2024-03-28: Andres Freund hatayı keşfetti ve Debian ile distros@openwall adresine özel olarak bildirdi. RedHat, CVE-2024-3094 atamasını yaptı.
  • 2024-03-28: Debian, 5.6.1'i geri aldı ve 5.6.1+really5.4.5-1 sürümünü devreye soktu.
  • 2024-03-29: Andres Freund, "son birkaç haftadır" fark ettiğini söyleyerek herkese açık oss-security@openwall listesine arka kapı uyarısını gönderdi.
  • 2024-03-29: RedHat, arka kapı içeren xz sürümünün Fedora Rawhide ve Fedora Linux 40 Beta'da dağıtıldığını duyurdu.
  • 2024-03-30: Debian derlemeleri durdurdu ve derleme makinelerini Debian stable kullanarak yeniden kurdu.

GN⁺ görüşü

  • Bu olay, açık kaynak yazılımlara yönelik tedarik zinciri saldırıları açısından önemli bir dönüm noktası olacak. Çünkü uzun süreye yayılan bir sosyal mühendislik yaklaşımıyla güven kazanıldı, erişim yetkileri elde edildi ve ardından yaygın kullanılan çekirdek bir kütüphaneye gizlice arka kapı yerleştirildi.
  • Açık kaynak projelerindeki yönetişim ve yetki devri süreçlerinin yeniden düşünülmesi gerekiyor. Projenin, ana bakım sorumlusunun kişisel koşullarına bağımlı kalmaması için daha dağıtık yönetişim modelleri değerlendirilebilir.
  • Büyük açık kaynak projelerinde güvenlik denetimi ve kod incelemesi daha da önemli hâle gelecek. Şüpheli değişiklikleri tespit etmek ve yetkilerin kötüye kullanılmasını önlemek için otomatik denetim araçlarına da ihtiyaç var. Örneğin ikili veri eklemeleri için uyarılar gibi.
  • Açık geliştirme ve herkesin katkı verebilmesi gibi açık kaynak yaklaşımının avantajlarını zedelemeden, kötü niyetli katkıcıları ayıklayabilecek ve saldırıları erken aşamada engelleyebilecek teknik ve kurumsal önlemler geliştirilmeli.
  • Güvenliği zayıf diller veya araçlar kullanan açık kaynak projelerinde risk daha yüksek olacaktır. Bellek güvenliği, statik analiz, fuzzing ve benzeri yöntemlerle güvenliği çok yönlü artırma çabalarının yanında modern araçlara geçiş de gerekecek.
  • Arka kapının gizli etkinleşme koşulları, yayılma yolu ve etki kapsamı gibi ayrıntılı analiz sonuçlarına ilgi yoğunlaşacak. Bunlar, gelecekte benzer saldırı türlerine karşı savunma geliştirmek için içgörü sağlayabilir.

7 yorum

 
sagee 2024-04-09

Bu olayın ardından beni endişelendiren şey şu..
Açık kaynak geliştiricilerinin bilgisayarlarının hacklenmesi ya da kaçırılıp/alıkonulmaları veya parayla satın alınıp kötü amaçlı kod yerleştirilmesi gibi şeyler...
Parayı düşününce, açık kaynak geliştiricileri acaba iyi geçinebiliyor mu diye de aklıma geliyor?

 
botplaysdice 2024-04-05

Ben güvenlik tarafında çalışıyorum; kod incelemesi yaparken bir bug bulunca, "bu kodu yerleştirmek için 5 yıl önce buraya işe mi girdin?" gibi espriler dönüyor haha

 
aer0700 2024-04-04

Lesser Collin'in birçok açıdan zorlanmış olması muhtemelen kaçınılmazdı...

 
xcutz 2024-04-03

Evet, Arch Linux çoktan yamaladı~ gelin gelin, arka kapı dışarı, en güncel Arch süper ya~

 
tpdns90321 2024-04-07

pacman -Syu

 
sdkfile 2024-04-03

Lasse Collin bu olayı derleyen bir yazı paylaşmış.
https://tukaani.org/xz-backdoor/

 
GN⁺ 2024-04-03
Hacker News görüşü
  • Olayın mükemmel bir özeti ve tüm bağlantılar tek bir yerde toplanmış; sosyal mühendislik saldırılarının pratikte nasıl geliştiğini öğrenmek isteyenler için kusursuz bir kaynak.

    • "Saldırının başlangıcı" bölümünde Ubuntu ve Debian anılmış, ancak Fedora eksik kalmış; bütünlüğü artırmak için eklenebilir.
    • Fedora üzerindeki sosyal mühendislik baskısının 4 Mart 2024'ten önceki hafta başlamış göründüğü belirtiliyor.
  • Fedora zaman çizelgesinin eksik olduğuna dikkat çekiliyor.

    • "Jia Tan" adlı kişi, 27 Şubat ile 27 Mart arasında iletişime geçmeye çalışarak yeni xz sürümünün Fedora 40 ve 41'e dahil edilmesini istemiş.
  • Sistem içindeki anlaşılması güç kodlara artık tahammül edilmemesi gerektiği görüşü dile getiriliyor.

    • M4 ve karmaşık shell script'lerden kurtulmanın zamanı geldiği savunuluyor.
  • Bunun, yükseltmelere karşı daha temkinli bir tutumun artması gibi olumlu sonuçlarından biri olabileceği düşünülüyor.

    • Geliştiriciler dahil birçok kişinin, yükseltmeleri her zaman iyi bir şey olarak görmek yerine riskleri ve faydaları dikkatle tartması gerektiği belirtiliyor.
  • FOSS topluluğunda kaba kullanıcıların sistematik olarak yasaklanması ya da topluluk farkındalığının artırılarak kaba davranışlara daha güçlü tepki verilen bir kültürel değişim yaşanabileceği öne sürülüyor.

  • E-posta adresi biçimiyle ilgili gözlemin yanlış olduğuna işaret ediliyor.

    • Jigar Kumar ile Dennis Ens'in e-posta adresi biçimleri farklı ve bu durum, ikisinin aynı kişi (sockpuppets) olduğunu ne kanıtlıyor ne de çürütüyor.
  • Sosyal baskının insanların kontrolü ne kadar kolay bırakmasına yol açabildiğine dair endişe ifade ediliyor.

    • XZ'nin yaratıcısı için bunun ne kadar sarsıcı olduğunu hayal etmenin bile zor olduğu, ayrıca bunun diğer açık kaynak sorumluları için başkalarının baskısına boyun eğmemeleri yönünde güçlü bir örnek olması umuluyor.
  • Bir bakımcı olarak, katkıcılar ya da kullanıcılar bir şeyi ne kadar ısrarla talep ederse, o talebi yerine getirme olasılığının o kadar düştüğü vurgulanıyor.

  • Joe Cooper'ın görüşüne atıf yapılarak, proje bakımcıları üzerindeki baskıya dair düşünceleri paylaşılıyor.

  • Gizli arka kapı ikili kodunun, ikili test girdi dosyalarının içine çok iyi gizlendiği; bu dosyalar çoğunlukla bir hex editörle elle oluşturulduğu için dosyaların kendisinin en iyi "kaynak kod" olduğu açıklanıyor.

    • Bunun, açık kaynak yazılımlarda desteklenmeyen donanım için binary blob savunanlara bir uyarı olduğu belirtiliyor.
    • Kaynak biçiminde yeniden üretilebilir olmalı, aksi halde hiç var olmamalı deniyor.