Cuma günü araştırmacılar, Linux ve diğer Unix benzeri işletim sistemlerinin hemen hemen tüm kurulumlarında kullanılabilen açık kaynaklı bir veri sıkıştırma aracı olan xz Utils'e kasıtlı olarak yerleştirilmiş bir arka kapının keşfedildiğini açıkladı. Bu projenin arkasındaki kişi veya kişiler muhtemelen üzerinde yıllarca çalışmıştır. Dikkatli bir geliştirici şüpheli bir şey fark ettiğinde muhtemelen arka kapı güncellemesinin en büyük iki Linux dağıtımı olan Debian ve Red Hat'e entegre edildiğini görmeye çok yaklaşmışlardı.
Yazılım ve kriptografi mühendisi Filippo Valsorda, “Bu şimdiye kadar kamuoyunda açıklanan en iyi gerçekleştirilen tedarik zinciri saldırısı olabilir ve bu bir kabus senaryosu: kötü niyetli, etkili ve yaygın olarak kullanılan bir kütüphanede yetkili” dedi. dedi ki Başarıya korkutucu derecede yaklaşan bir çaba.
Araştırmacılar hafta sonunu kanıt toplamakla geçirdiler. Şu ana kadar bildiklerimiz bunlar.
xz yardımcı programı nedir?
xz Utils Linux'un neredeyse her yerindedir. Linux dahil hemen hemen tüm Unix benzeri işletim sistemlerinde kayıpsız veri sıkıştırma sağlar. xz Utils, her türlü işlem sırasında verileri sıkıştırmak ve sıkıştırmayı açmak için önemli işlevler sağlar. xz Utils aynı zamanda eski .lzma formatını da desteklemektedir, bu da bu bileşeni daha da önemli kılmaktadır.
ne oldu?
Microsoft'un PostgreSQL çözümü üzerinde çalışan geliştirici ve mühendis Anders Freund, yakın zamanda Debian'ın İnternet üzerinden makinelere uzaktan oturum açmak için en yaygın olarak kullanılan protokol olan SSH ile yaşadığı performans sorunlarını gideriyordu. Özellikle, SSH oturum açma işlemleri çok fazla CPU döngüsü tüketiyordu ve bir bilgisayar belleği izleme aracı olan valgrind'de hatalara neden oluyordu.
Tamamen şans ve Freund'un keskin gözünün bir araya gelmesiyle, sonunda sorunların xz Utils'te yapılan güncellemelerin sonucu olduğunu keşfetti. Cuma günü Freund, açık kaynak güvenlik menüsüne giderek güncellemelerin birisinin kasıtlı olarak sıkıştırma yazılımına bir arka kapı yerleştirmesinin sonucu olduğunu ortaya çıkardı.
Arka kapı ne işe yarar?
xz Utils'in 5.6.0 ve 5.6.1 sürümlerine, lzma sıkıştırma veya açma ile ilgili işlemleri gerçekleştirirken programın davranış biçimini değiştirmek için kötü amaçlı kod eklenmiştir. Bu işlevler SSH'yi içerdiğinde, kötü amaçlı kodların kök ayrıcalıklarıyla yürütülmesine izin verir. Bu token, önceden tanımlanmış bir şifreleme anahtarına sahip herkesin SSH aracılığıyla arka uç sistemde oturum açmasına olanak tanır. Artık bu kişi herhangi bir yetkili yöneticiyle aynı düzeyde kontrole sahip olacak.
Bu arka kapı nasıl ortaya çıktı?
Görünüşe göre bu arka kapı yıllardır yapım aşamasında. 2021 yılında JiaT575 kullanıcı adına sahip bir kişi kendi hesabını oluşturdu Bilinen ilk taahhüt Açık kaynaklı bir projeye. daha sonra, Değişir Kütüphanesel proje şüphelidir çünkü Safe_fprint işlevini uzun süredir daha az güvenli olarak kabul edilen bir değişkenle değiştirmiştir. O sırada kimse fark etmedi.
Ertesi yıl JiaT575, xz Utils e-posta listesine bir yama gönderdi ve hemen ardından Jigar Kumar adında görünmeyen bir katılımcı tartışmaya katıldı ve uzun süredir xz Utils'in bakımını yapan Lasse Collin'in yazılımı çoğu zaman güncellemediğini savundu. Sık sık veya yeterince hızlı. Kumar, Dennis Ince ve daha önce listede yer almayan birkaç kişinin desteğiyle, projeyi sürdürmek için ek bir geliştirici getirmesi için Colin'le lobi yaptı.
Ocak 2023'te JiaT75 bunu üretti İlk taahhüt Xz Utils'e. İlerleyen aylarda Jia Tan adını kullanan JiaT75, xz Utils'in işlerine giderek daha fazla karışmaya başladı. Örneğin Tan, Microsoft'un açık kaynaklı yazılımları kötü niyetlilik belirtileri açısından tarayan bir proje olan oss-fuzz projesinde Collins'in iletişim bilgilerini kendisininkiyle değiştirdi. Tan ayrıca oss-fuzz'dan test sırasında ifunc işlevini devre dışı bırakmasını istedi; bu, Tan'ın yakında xz Utils'te yapacağı kötü niyetli değişiklikleri tespit etmesini engelleyen bir değişiklikti.
Bu yılın Şubat ayında Tan, xz Utils'in 5.6.0 ve 5.6.1 sürümleri için taahhütler yayınladı. Arka kapı güncellemeleri uygulandı. Sonraki haftalarda Tan ve diğerleri Ubuntu, Red Hat ve Debian geliştiricilerine güncellemeleri kendi işletim sistemlerine entegre etmeleri için yalvardı. Sonunda, iki güncellemeden biri sonraki sürümlere ulaştı. buna göre Savunulabilir Güvenlik Şirketi:
Bu arka kapının ne yaptığı hakkında daha fazla bilgi verebilir misiniz?
Kısacası, doğru özel anahtara sahip herkesin, SSH bağlantılarını yapmaktan sorumlu yürütülebilir dosya olan sshd'yi ele geçirmesine ve oradan kötü amaçlı komutlar yürütmesine olanak tanır. Bagaj kapağı, kendisini gizlemek için bir dizi basit ama akıllı teknik kullanan beş aşamalı bir yükleyici aracılığıyla gerçekleştiriliyor. Aynı zamanda büyük değişikliklere gerek kalmadan yeni yüklerin teslim edilmesine olanak sağlar.
Güncellemelere tersine mühendislik uygulayan birçok kişinin arka kapı hakkında söyleyecek çok şeyi var.
Geliştirici Sam James tarafından tanıtıldı Bu genel bakış:
Bu arka kapının çeşitli bileşenleri vardır. Yüksek düzeyde:
- Yukarı akışta yayınlanan tarball sürümleri GitHub'dakiyle aynı kodu içermez. Bu, C projelerinde yaygındır, böylece alt tüketicilerin otomatik araçları ve otomatik konferansları nasıl çalıştıracaklarını hatırlamalarına gerek kalmaz. Tarball'larda bulunan build-to-host.m4 sürümü GitHub'daki orijinal sürümden önemli ölçüde farklıdır.
- Git deposunun içindeki testler/ klasöründe de yerleşik test dosyaları bulunmaktadır. Bu dosyalar aşağıdaki taahhütlerde bulunur:
- build-to-host.m4 tarafından çağrılan bir komut dosyası, bu kötü amaçlı test verilerini paketinden çıkarır ve bunu derleme sürecini değiştirmek için kullanır.
- Glibc'de dolaylı işlev çağrılarına izin veren bir mekanizma olan IFUNC, OpenSSH kimlik doğrulama prosedürlerinin çalışma zamanı bağlamasını/yeniden yönlendirilmesini gerçekleştirmek için kullanılır. IFUNC genellikle meşru şeyler için kullanılan bir araçtır ancak bu durumda bu saldırı yolu için istismar ediliyor.
Upstream genellikle GitHub'da otomatik olarak oluşturulanlardan farklı tarball'lar yayınlar. Bu değiştirilmiş tarball'larda, derleme işlemi sırasında bir komut dosyasını çalıştırmak için build-to-host.m4 dosyasının kötü amaçlı bir sürümü bulunur.
Bu komut dosyası (en azından 5.6.0 ve 5.6.1 sürümlerinde) aygıt mimarisi gibi çeşitli koşulları kontrol eder. Build-to-Host.m4 tarafından derlenen kötü amaçlı komut dosyasından bir alıntı ve ne yaptığına dair bir açıklama:
if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then
- Derleme hedefi amd64/x86_64 ise
- Ve eğer hedef linux-gnu adını kullanıyorsa (çoğunlukla glibc kullanımını kontrol eder)
Ayrıca kullanılan takım zincirini de kontrol eder:
if test "x$GCC" != 'xyes' > /dev/null 2>&1;then exit 0 fi if test "x$CC" != 'xgcc' > /dev/null 2>&1;then exit 0 fi LDv=$LD" -v" if ! $LDv 2>&1 | grep -qs 'GNU ld' > /dev/null 2>&1;then exit 0Ve eğer bir Debian veya Red Hat paketi oluşturmaya çalışıyorsanız:
if test -f "$srcdir/debian/rules" || test "x$RPM_ARCH" = "xx86_64";thenDolayısıyla bu saldırının, Debian veya Red Hat'ten türetilen dağıtımları kullanarak glibc çalıştıran AMD64 sistemlerini hedef aldığı görülüyor. Diğer sistemler şu anda savunmasız olabilir, ancak bunu bilmiyoruz.
Çevrimiçi bir röportajda geliştirici ve tersine mühendis HD Moore, Sam James'in arka kapının Debian veya Red Hat dağıtımlarını hedef aldığı yönündeki şüphelerini doğruladı.
“Saldırı sinsiydi çünkü kitaplığı AMD64 (Intel x86 64-bit) üzerinde oluşturuyorsanız ve bir Debian veya RPM paketi oluşturuyorsanız (yerel kurulum için kullanmak yerine) arka kapının yalnızca son adımlarını atıyordu. ” ,” o yazdı.
Hafta sonunu toplu olarak kötü amaçlı güncellemeleri analiz ederek geçiren araştırmacıların gözlemlerini başka kelimelerle aktararak devam etti:
Bir SSH genel anahtarını doğrularken, eğer genel anahtar belirli bir parmak izi işleviyle eşleşiyorsa, genel anahtar gerçekten doğrulanmadan önce anahtarın içeriğinin şifresi, önceden paylaşılan bir anahtar kullanılarak çözülecektir. Şifresi çözülen içerikler daha sonra doğrudan sisteme aktarılır.
Parmak izi eşleşmezse veya şifresi çözülen içerik belirli bir formatla eşleşmezse, normal anahtar doğrulamaya geri dönülür ve kimse bundan daha akıllı olamaz.
Arka kapı çok sinsi. Bir işlevi bağlamak için glibc'nin bilinmeyen bir özelliğini kullanır. Yalnızca arka kapılı xz kitaplığı, etkilenen dağıtımlardan birinde /usr/bin/sshd işlemi tarafından yüklendiğinde çalıştırılır. Başka birçok arka kapı olabilir, ancak herkesin bahsettiği arka kapı, kancayı eklemek için yönsüz bir işlev kullanır. Veri, sahte xz test dosyalarında şifrelendi ve etkili bir şekilde kabuk kodu olarak çalıştırılarak SSH RSA anahtar doğrulama kodunu değiştirerek sihirli genel anahtarın (normal kimlik doğrulama sırasında gönderilen) saldırganın erişmesine izin vermesini sağladı.
Büyük planları şuydu:
1) Görünmez bir şekilde serbest bırakma toplarının arka kapılarını açar, ancak kaynak kodunu değil
2) Çeşitli Linux dağıtımlarını en son sürümü alıp paketlemeye ikna etmek için Sockpuppet hesaplarını kullanın
3) Bu dağıtımlar gönderildikten sonra herhangi bir kullanıcı/şirket sistemini/vb.'yi devralabilirler.
Ek teknik analiz şu adreste mevcuttur: üstünde Valsorda'dan Bluesky ipliği, Araştırmacı Kevin Beaumont Ve Freund Cuma günü açıklandı.
Jia Tan hakkında daha fazla ne biliyoruz?
Şu anda bu çok az bir rakam, özellikle de xz Utils gibi yaygın ve hassas bir yazılımı denetlemekle görevli biri için. Bu geliştirici kişiliği, son birkaç yılda onlarca başka açık kaynaklı yazılıma da değindi. Şu anda bu kullanıcı adının arkasında gerçek bir kişinin mi olduğu yoksa Jia Tan'ın tamamen uydurma bir kişi mi olduğu bilinmiyor.
“Kahve meraklısı. İçine kapanık. Gururlu problem çözücü. Kaşif. Arkadaş canlısı müzik tutkunu. Zombi inek.”
More Stories
Kara Cuma’nın erken saatlerinde en iyi iPad fırsatları
Apple, Vision Pro’nun iki ülkeye daha yayılacağını duyurdu
Android telefon kullanan çocuklar yakında Google Cüzdan’ın dokun-öde hizmetini kullanabilecek