XZ-Backdoor'a göre: Açık kaynaklı yazılım stratejik bir risk mi yoksa avantaj mı?

Saberie

Active member
Bu nasıl olabilir?

Duyuru



Sonunda kapanış zamanı! Kedi şirketin dizüstü bilgisayarına kıvrılıp memnun bir şekilde mırıldandı. Saat 20.00. Yardımcı programımdaki, yıllar önce doğaçlama olarak geliştirdiğim protokol ayrıştırıcıyı, GitHub'daki bir kitaplıktan çok daha iyi işlevlerle hızlı bir şekilde değiştirmek istiyorum; bir kullanıcı bunu yapmamı her zaman önerdi.

Boş zamanlarında ücretsiz/ücretsiz açık kaynaklı yazılım (FLOSS) projeleri üzerinde çalışan insanlar için birçok akşam veya gece buna benzer. Gerçek programlama çalışmasına ek olarak, bu projenin organizasyonel düzeyde sürdürülmesi, sürümlerin oluşturulup yönetilmesi gerekir. Kullanıcılar yamalar veya hata raporları biçiminde sorular sorar, isteklerde bulunur veya katkılarda bulunur. Bütün bunlar FLOSS projelerinde dinamik ve açık işbirliğini oluşturur, ancak programlama için mevcut olmayan çok fazla zaman gerektirir.

Ancak çoğu insan için programlama, değerli boş zamanlarını feda etmenin gerçek motivasyonudur. Bu nedenle üçüncü tarafların projeye yararlı katkılarda bulunması son derece ödüllendiricidir. Çözülmüş duruşma durumunda. Aynı sıralarda, kamu FLOSS projeleri bağlamında açık işbirliğinde oldukça yaygın olduğu gibi, başkaları da projenin organizasyonel ve personel zorluklarını tartışmaya ve çözüm olarak ikinci bir proje yöneticisi önermeye başladılar.

Bu “diğerlerinin” aynı zamanda Jia Tan'ın arkasındaki kişi veya grup olduğu da göz ardı edilemez. Bununla birlikte, kamu FLOSS projelerine katkıda bulunanların takma adlar altında görünmesi ve yardım, dokümantasyon, çeviri, proje organizasyonunda destek ve hatta yazılımda somut iyileştirmeler şeklinde yapıcı işbirliği yoluyla iyi bir itibar kazanması yaygındır. Elbette bu tür yardımlar genellikle isteyerek kabul edilir ve zamanla para biriminin “güvenine” katkıda bulunur.

Nazik komşunuza güvenin


Jia Tan, alışverişten ağır bir yükle döndüğünüzde kapıyı tutan ya da normalde şehrin diğer tarafındaki paket dükkanından almak zorunda kalacağınız paket teslimatlarını düzenli olarak kabul eden dost canlısı komşunuz gibidir.

Ücretsiz açık kaynak yazılım ortamında, örneğin konferanslarda şahsen tanışan birçok geliştirici olmasına rağmen, proje yöneticileri genellikle katkıda bulunanların çoğuyla yalnızca e-posta ve GitHub'daki etkinlikler aracılığıyla iletişim kurar. Dijital alanda daha uzun ve daha yapıcı bir işbirliği geçmişi, güvenin temeli olarak kişisel bilginin yerini alıyor.

Belli bir noktada, biz yokken çiçekleri sulayabilmesi veya kediyi besleyebilmesi için dairenin anahtarını dost canlısı komşumuza vermeye karar veriyoruz. Ve muhtemelen hiç kimse bunun için polis izni istemeyecektir; neden istesinler ki? Bu kişiye güvenmemek için somut bir neden yok.

Lasse Collin, Ocak 2023'te Jia Tan'a XZ Utils GitHub deposu için yazma izinleri verdiğinde muhtemelen bunu tam olarak böyle gördü. Neden olmasın? Önceki katkılar faydalıydı ve Jia Tan proje için zaten çok şey yapmıştı. Mart 2023'te Jia Tan, kendisini Google'ın bir kaynak kodu güvenlik tarayıcısı olan “OSS Fuzz” projesinde XZ Utils'in irtibat kişisi olarak ve Haziran 2023'te alanın eş yöneticisi olarak atadı.

Şubat 2024'te proje web sitesinin GitHub'da barındırılan bir siteye dönüştürülmesi ve ardından xzUtils sürümlerinin oluşturulmasıyla hedefe ulaşıldı: tüm proje süreçleri artık Jian Tan'ın elindeydi ve artık aynı zamanda ortak bir uygulama haline geldi. bu faaliyetleri gerçekleştirin. Mart 2024'te, XZ Utils 5.6.0 ve 5.6.1 sürümlerinin resmi kaynak kodu sürümlerini “tarball'lar” (.tar.gz arşivleri) olarak bağımsız olarak yayınlamayı başardı.

Olayların özeti


İlk bakışta, Jia Tan'ın Ekim 2021'den Mart 2024'e kadar geçen üç buçuk yıldaki katkıları büyük ölçüde olumlu görünüyor: yapıcı e-postalar ve görünüşte gerçek sorunları çözen çok sayıda yama veya çekme isteği. Ancak geriye dönüp bakıldığında, sistematik ve kademeli olarak sosyal yakınlık yaratmaya başladığı ve ardından çok sayıda kod katkısı altında gizlenmiş küçük parçalar halinde XZ Utils'e teknik açıdan karmaşık bir kötü amaçlı işlevin temelini oluşturduğu anlaşılabilir. “OSS Fuzz” projesine sunulan değişiklik, projenin kötü amaçlı kod tespit etmemesini sağladı.

Son olarak saldırgan, “geliştirilmiş” test dosyalarını kullanarak gerçek kötü amaçlı işlevin kodunu sıkıştırılmış ve şifrelenmiş biçimde son derece iyi gizledi. Görünüşe göre bunlar XZ Utils'in doğru işleyişini test etmeye yönelik tamamen veri dosyaları olduğundan, ne manuel kod incelemelerinin ne de makine kodu taramalarının Kodu kötü niyetli olarak tanımlayamayacağı bir biçimde gizlendiğinden, kimsenin kötü amaçlı kod aramayacağı XZ Utils dosyalarında sona erdi. .

Ayrıca, kötü amaçlı işlev yalnızca XZ Utils'i sürüm tarball'larından derlediyseniz oluşturuldu, ancak kaynak kodunu doğrudan GitHub deposundan aldıysanız oluşturulmadı. İşin asıl ilginç yanı, kötü amaçlı işlevin, XZ desteğiyle derlenmişse ve yalnızca Linux altında systemd ile x86-64 bilgisayarlarda derlenmişse OpenSSH'ye bir arka kapı açmasıdır. Bunlar kesinlikle uyulması gereken genel koşullardır, ancak Intel veya AMD CPU'lu bilgisayarlardaki çoğu Linux dağıtımı için mevcutturlar. Üstelik bu arka kapı ancak belirli bir gizli anahtarın bilinmesiyle kullanılabiliyor.

Genel olarak, saldırgan, en sık kullanılan uzaktan kumandada bir arka kapı oluşturan, biraz modası geçmiş ve bu nedenle artık pek fark edilmeyen bir veri sıkıştırıcıya mümkün olduğunca gizli bir şekilde kötü amaçlı bir işlev eklemek için üç buçuk yıl boyunca çok fazla enerji ve beyin gücü harcadı. Linux çalıştıran hemen hemen tüm x86-64 bilgisayarlarda bulunan ve yalnızca belirli bir şifreleme anahtarı bilgisine sahip kişiler tarafından kullanılabilen erişim yazılımı.

Daha geniş bağlamda kaza


Bu kadar yüksek bir teknik ve organizasyonel bağlılık devlet aktörleri için alışılmadık bir durum değil: Crypto AG'nin uzun geçmişini ve NIST tarafından bir arka kapıyla belirlenen ve Symantec, Juniper ve diğer ABD şirketleri tarafından uygulanan Dual_EC_DRBG rastgele sayı üretecini düşünün. Bir diğer benzerlik ise tüm bu örneklerin Batı dünyasında yaşanması. Çünkü yıllar sonra bu tür olaylar bazen kamuoyuna yansıyor; Bu durumuda

Öte yandan, küresel düzeyde BT uzmanı sıkıntısı göz önüne alındığında, bir istihbarat servisinin bir yazılım şirketinden bir çalışanı işe alıp çalıştırmasına izin vermesi daha kolay görünüyor; özellikle eylemleri kamuya açık bir şekilde belgelenmediğinden ve bu nedenle keşfedilme riski önemli ölçüde düşük olduğundan ve eylemlerinin ayrıntıları çoğu zaman FLOSS'ta olduğu kadar şeffaf olmadığından. Bir yazılımın kaynak kodu mevcut değilse keşif ve teknik analiz fırsatları da daha zor veya imkansızdır. Ayrıca, ilgilenen bir yazılım şirketinin böyle bir prosedürün kamuya açıklanmasıyla hiçbir ilgisi yoktur.



Haberin Sonu
 
Üst