Phylum’un yeni bulguları, XZ Utils arka kapısıyla ilişkili “test dosyalarının” liblzma-sys olarak bilinen bir Rust kasasına gittiğini ortaya koyuyor.
Bugüne kadar 21.000’den fazla kez indirilen liblzma-sys, Rust geliştiricilerine XZ Utils veri sıkıştırma yazılımının bir parçası olan temel bir kitaplık olan liblzma uygulamasına bağlantılar sağlar. Söz konusu etkilenen sürüm 0.3.2’dir.
Phylum, 9 Nisan 2024’te GitHub sayısında “Crates.io’daki mevcut dağıtım (v0.3.2), arka kapıyı içeren XZ test dosyalarını içeriyor” dedi.
“Test dosyalarının kendisi GitHub’daki .tar.gz veya .zip etiketlerinde yer almıyor ve yalnızca Crates.io’dan yüklenen liblzma-sys_0.3.2.crate’te mevcut.”
Sorumlu bir açıklamanın ardından, söz konusu dosyalar (“tests/files/bad-3-corrupt_lzma2.xz” ve “tests/files/good-large_compressed.lzma”) Nisan ayında yayımlanan liblzma-sys 0.3.3 sürümünden kaldırıldı. 10. Sandığın önceki versiyonu kayıt defterinden çekilmiştir.
Snyk kendi tavsiyesinde, “Kötü amaçlı test dosyaları yukarı yönde işlendi, ancak kötü amaçlı oluşturma talimatlarının yukarı yöndeki depoda mevcut olmaması nedeniyle hiçbir zaman çağrılmadı veya yürütülmedi” dedi.
XZ Utils’teki arka kapı, Microsoft mühendisi Andres Freund’un sırasıyla Şubat ve Mart 2024’te yayımlanan 5.6.0 ve 5.6.1 sürümlerini etkileyen komut satırı yardımcı programına yönelik kötü niyetli taahhütleri tespit etmesiyle Mart ayının sonlarında keşfedildi. Popüler paket birçok Linux dağıtımına entegre edilmiştir.
Şu anda askıya alınmış bir GitHub kullanıcısı olan JiaT75 (diğer adıyla Jia Tan) tarafından yapılan kod taahhütleri, SSH içindeki kimlik doğrulama kontrollerini atlatarak kodu uzaktan yürütmeyi ve potansiyel olarak operatörlerin sistemi ele geçirmesini mümkün kıldı.
SentinelOne araştırmacıları Sarthak Misraa ve Antonio Pirozzi bu hafta yayınlanan bir analizde “Genel uzlaşma iki yıla yayıldı” dedi. “Oyuncu, Jia Tan takma adı altında 29 Ekim 2021’de xz projesine katkıda bulunmaya başladı.”
“Başlangıçta taahhütler zararsız ve önemsizdi. Ancak oyuncu yavaş yavaş projeye daha aktif bir katkıda bulunmaya başladı ve topluluk içinde sürekli olarak itibar ve güven kazandı.”
Rus siber güvenlik şirketi Kaspersky’ye göre truva atı haline getirilen değişiklikler çok aşamalı bir operasyon şeklini alıyor.
“Son paketleri oluşturan derleme altyapısının kaynak kodu, bir test senaryosu dosyasında (bad-3-corrupt_lzma2) gizlenen bir sonraki aşama komut dosyasını çıkarmak için biraz değiştirildi (ek bir build-to-host.m4 dosyası eklenerek) .xz),” dedi.
“Bu komut dosyaları, derleme işlemi sırasında Linux depolarına gönderilmek üzere meşru kitaplığa bağlanan başka bir test senaryosu dosyasından (good-large_compressed.lzma) kötü amaçlı bir ikili bileşeni çıkardı.”
Bir kabuk betiği olan yük, arka kapının çıkarılmasından ve yürütülmesinden sorumludur; bu da, virüslü makineye yapılan her SSH bağlantısını izlemesine olanak tanıyan RSA_public_decrypt, EVP_PKEY_set1_RSA ve RSA_get0_key gibi belirli işlevlere bağlanır.
Liblzma’ya sızan arka kapının birincil amacı, Secure Shell Daemon’u (sshd) manipüle etmek ve bir SSH oturumunun başlangıcında bir saldırgan tarafından gönderilen komutları izlemek, böylece uzaktan kod yürütmeyi gerçekleştirmenin etkili bir yolunu sunmaktır.
Arka kapının erken keşfedilmesi, Linux ekosisteminin yaygın bir şekilde tehlikeye atılması ihtimalini önlemiş olsa da, bu gelişme bir kez daha açık kaynak paket bakımcılarının yazılım tedarik zinciri saldırıları düzenlemek amacıyla sosyal mühendislik kampanyaları tarafından hedef alındığının bir işareti oldu.
Bu durumda, projenin uzun süreli bakımcısını daha fazla özellik eklemesi ve sorunları çözmesi için bir ortak bakımcıyı görevlendirmeye zorlamayı amaçlayan bir baskı kampanyası düzenleyen, muhtemelen birkaç çorap kuklası hesabının yer aldığı koordineli bir faaliyet biçiminde gerçekleşti.
ReversingLabs, “Açık kaynak kodu katkılarının telaşı ve daha önce bilinmeyen geliştirici hesaplarından gelen ilgili baskı kampanyaları, sahte geliştirici hesaplarını kullanan koordineli bir sosyal mühendislik kampanyasının, kötü amaçlı kodu yaygın olarak kullanılan bir açık kaynak projesine gizlice sokmak için kullanıldığını gösteriyor.” dedi.
SentinelOne araştırmacıları, JiaT75 tarafından 5.6.0 ve 5.6.1 sürümleri arasında yapılan ince kod değişikliklerinin, değişikliklerin arka kapının modülerliğini geliştirmek ve daha fazla kötü amaçlı yazılım yerleştirmek için tasarlandığını öne sürdüğünü ortaya çıkardı.
9 Nisan 2024 itibarıyla XZ Utils ile ilişkili kaynak kodu deposu, şirketin hizmet şartlarının ihlali nedeniyle devre dışı bırakıldıktan yaklaşık iki hafta sonra GitHub’a geri yüklendi.
Operasyonun niteliği ve amaçlanan hedefler şu anda bilinmiyor, ancak arkasındaki planlama ve karmaşıklık dikkate alındığında tehdit aktörünün devlet destekli bir kuruluş olduğundan şüpheleniliyor.
Kaspersky, “Bu arka kapının son derece karmaşık olduğu ve tespit edilmekten kaçınmak için gelişmiş yöntemler kullandığı açık” dedi.