deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

XZ Utils arka kapısı geriye dönük incelemesi: Hâlâ geçerli olan tedarik zinciri dersleri

Dev.to'da yayımlanan bir geriye dönük inceleme, 2024 XZ Utils arka kapısını ele alarak üç yıllık bir sosyal mühendislik kampanyasının milyonlarca sunucuyu nasıl ele geçirmeye yaklaştığını ve bakımcılarla kullanıcıların bu konuda neler yapması gerektiğini anlatıyor.

XZ Utils arka kapısı geriye dönük incelemesi: Hâlâ geçerli olan tedarik zinciri dersleri

Dev.to'da yayımlanan bir geriye dönük inceleme, XZ Utils arka kapısını, yani CVE-2024-3094 olarak kataloglanan ve saldırganlara milyonlarca sunucu üzerinde sessiz kontrol sağlama fırsatına ramak kalan tedarik zinciri saldırısını yeniden gündeme getiriyor. Yazı, ele geçirmenin nasıl gerçekleştiğini, neden işe yaradığını ve açık kaynak ekosisteminin hâlâ neleri değiştirmesi gerektiğini adım adım anlatıyor.

Anahtarı yakalayan bir kaza

Dev.to'daki anlatıma göre olay, Mart 2024'ün sonunda, Microsoft geliştiricisi Andres Freund'ün Debian makinesindeki performans sorunlarını araştırmasıyla ortaya çıktı. SSH girişlerinin olağandışı miktarda CPU tükettiğini ve normalden yaklaşık 500 milisaniye daha yavaş çalıştığını fark etti. Bunu görmezden gelmek yerine konuyu derinlemesine inceleyen Freund, yavaşlamayı liblzma'ya, yani neredeyse her Linux ve macOS sisteminde kurulu olan XZ Utils sıkıştırma kütüphanesinin çekirdek bileşenine kadar izledi. Kütüphanenin binary dosyalarının içinde yoğun şekilde gizlenmiş kötü niyetli kod buldu.

Arka kapı gerçekte ne yapıyordu

Dev.to analizinin altını çizdiği gibi, kötü niyetli kod hiçbir zaman projenin GitHub repository'sinde bulunmadı. Yalnızca build süreci sırasında birkaç kamufle edilmiş test dosyasından oluşturuldu ve liblzma'ya enjekte edildi; bu da yalnızca kaynak ağacına odaklanan denetimlerin hiçbir şey bulamayacağı anlamına geliyordu. Payload, systemd çalıştıran ve yamalanmış bir SSH daemon'ına sahip sistemlerde SSH sunucusunun içindeki belirli bir fonksiyona müdahale edecek şekilde tasarlanmıştı — bu yapı birçok Debian ve Red Hat tabanlı dağıtımda yaygındır. Belirli bir private key'e sahip olan herkes kimlik doğrulamayı tamamen atlayabilir ve root ayrıcalıklarıyla rastgele komutlar çalıştırabilirdi — fiilen çok sayıda makineye açılan bir anahtar.

Üç yıllık sabırlı manipülasyon

İncelemenin anlattığı kadarıyla hikâyenin en rahatsız edici yanı insani boyutu. "Jia Tan" adıyla faaliyet gösteren bir aktör veya grup, 2021'de XZ projesine katkı yapmaya başladı; önce küçük ve gerçekten faydalı pull request'lerle, giderek de artan sorumluluklarla. Aynı zamanda bir yığın kukla hesap, posta listelerinde orijinal bakımcı Lasse Collin'e baskı yaparak yavaş ilerlemeden şikâyet ediyor ve Jia Tan'ın daha büyük bir rolü hak ettiğini savunuyordu. Kaynakları yetersiz bakımcıların tipik tükenmişliğinin üzerine binen bu psikolojik baskı, sonunda Jia Tan'ın resmi sürümleri yayımlama yetkisine sahip ortak bakımcı olarak atanmasıyla sonuçlandı.

Arka kapı yerleştirildikten sonra Jia Tan, bulaşmış sürümlerin Debian, Red Hat ve Fedora dahil olmak üzere büyük dağıtımlar tarafından benimsenmesi için çaba gösterdi. Kötü niyetli kod, Freund onu fark etmeden önce yalnızca unstable ve testing dallarına ulaşabildi. Dev.to yazısına göre birkaç hafta daha geçseydi, kod kararlı sürümlere girip milyonlarca üretim sistemine dağıtılmış olacaktı.

İncelemenin çıkardığı dersler

Makale çıkarımlarını üç geniş sorunda grupluyor.

Birincisi, bakımcı tükenmişliği. Kritik altyapı yazılımları rutin olarak boş zamanlarında çalışan birkaç gönüllü tarafından bakımı üstleniliyor; yazar bunu sürdürülemez bir durum olarak nitelendiriyor. Collin'e yöneltilen baskı sistemik bir sorunun belirtisiydi ve bu ücretsiz katkılar üzerine milyarlar kazanan şirketlerin projelere ve arkasındaki insanlara kaynak sağlamaları çağrısında bulunuluyor.

İkincisi, dependency'lerdeki yanılsama konforu. Modern geliştirme süreçleri, içerikleri veya kökenleri yakından incelenmeden sayısız paketi içine çekiyor. XZ vakası, her dependency'nin potansiyel bir giriş noktası olduğunu gösteriyor ve açık kodun otomatik olarak birçok gözden geçirdiği varsayımı, yazarın ifadesiyle tehlikeye yol açacak kadar saf.

Üçüncüsü, yeni cephe olarak build pipeline'ı. Saldırı repository yerine build sürecini manipüle ettiği için inceleme, derlenmiş bir binary'nin incelenen kaynak koduna karşılık geldiğini kriptografik olarak kanıtlayabilecek, doğrulanabilir ve tekrarlanabilir build'ler çağrısında bulunuyor. CI/CD pipeline'larının, yazıya göre, en kritik saldırı yüzeylerinden biri haline geldiği savunuluyor.

Pratik savunma önlemlerinde ise yazı basit kalıyor: geliştiriciler yeni ya da tanımadıkları isimlerden gelen katkılara gerçek bir inceleme uygulamalı, build süreçlerine ve dependency'lere uygulama koduyla aynı şüpheyle yaklaşmalı. Şirketler ise kritik açık kaynak projelerinin arkasına — doğrudan bağışlarla, bakımcıları istihdam ederek veya mühendislik zamanı ayırarak — gerçek bir bütçe koymalı.

Neden önemli

XZ Utils olayı, tedarik zinciri saldırılarının yalnızca kodu değil, güveni ve insanları hedef aldığını ve yıllarca süren sabırlı itibar inşasının açık kaynakın dayandığı gayri resmi güven modelini yenilgiye uğratabileceğini gösterdi. Saldırının tespiti, tek bir mühendisin yarım saniyelik bir gecikmeye duyduğu merak sayesinde gerçekleşti — neredeyse saf şans. İncelemenin ana noktası şudur: sorunun zeminini oluşturan koşullar — yetersiz fonlanan bakımcılar, incelenmeyen dependency'ler ve şeffaf olmayan build pipeline'ları — büyük ölçüde hâlâ mevcut. Bakımcılar için bu, koordineli baskı kampanyalarına karşı tetikte olmayı ve katkıları sağlıklı bir şüpheyle incelemeleri gerektiği anlamına geliyor. Diğer herkes için ise kökenin ve tekrarlanabilir build'lerin hoş bir ek değil bir zorunluluk olarak görülmesi gerektiği anlamına geliyor — çünkü bir sonraki Jia Tan çoktan bir yerlerde, sessizce commit hakları kazanıyor olabilir.

  • #open-source
  • #supply-chain-security
  • #xz-utils
  • #linux
  • #security

İlgili yazılar