- İ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
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?
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
Lesser Collin'in birçok açıdan zorlanmış olması muhtemelen kaçınılmazdı...
Evet, Arch Linux çoktan yamaladı~ gelin gelin, arka kapı dışarı, en güncel Arch süper ya~
pacman -SyuLasse Collin bu olayı derleyen bir yazı paylaşmış.
https://tukaani.org/xz-backdoor/
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.
Fedora zaman çizelgesinin eksik olduğuna dikkat çekiliyor.
Sistem içindeki anlaşılması güç kodlara artık tahammül edilmemesi gerektiği görüşü dile getiriliyor.
Bunun, yükseltmelere karşı daha temkinli bir tutumun artması gibi olumlu sonuçlarından biri olabileceği düşünülüyor.
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.
Sosyal baskının insanların kontrolü ne kadar kolay bırakmasına yol açabildiğine dair endişe ifade ediliyor.
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.