1 puan yazan GN⁺ 2024-03-31 | Henüz yorum yok. | WhatsApp'ta paylaş

Bash aşamasındaki obfuscation açıklaması

  • xz/liblzma'da bir arka kapı bulundu. OpenSSH sunucusunu etkiliyor.
  • Arka kapıyı içeren ikili dosyadan çok, ilk bash kısmı ile kullanılan basit ama zekice obfuscation yöntemine odaklanılıyor.
  • Bu yazı, bash aşamasının nasıl obfuscate edildiğini ve çıkarıldığını açıklıyor.

Başlamadan önce

  • xz/liblzma'nın iki sürümü (5.6.0 ve 5.6.1) etkilendi. Aralarında küçük farklar var.
  • Bash kısmı üç aşamaya (ya da dört aşamaya?) ayrılıyor ve her aşama Stage 0'dan Stage 2'ye kadar adlandırılıyor.
  • "Stage 3"ten de söz edilecek, ancak bunun henüz tam olarak uygulanmamış olabileceği belirtiliyor.
  • Obfuscate/şifrelenmiş aşamalar ile sonrasındaki ikili arka kapı, iki test dosyasına gizlenmiş durumda.

Stage 0

  • m4/build-to-host.m4 dosyasından başlıyor. Bu kod, build sürecinin bir noktasında çalıştırılarak Stage 1 betiğini çıkarıyor.
  • Test dosyasından baytları okuyup standart çıktıya aktarıyor ve tr komutunu kullanarak karakterleri başka karakterlere eşliyor.

Stage 1

  • "####Hello####" ile başlayan bir bash dosyası. Yalnızca Linux'ta çalışacak şekilde ayarlanmış.
  • eval kullanarak config.status içinden srcdir değerini çıkarıyor ve belirli baytları atlayıp yazdıran karmaşık bir head komutu zinciri içeriyor.
  • tr komutuyla basit bir yerine koyma şifresi uyguluyor, ardından xz komutuyla sıkıştırmayı açıp çalıştırıyor.

Stage 2

  • Stage 2, gerçek derleme sürecini değiştiren bash betiği.
  • Bir "extension/patch" sistemi varmış gibi görünüyor; bu sayede test dosyalarını sürekli değiştirmeden yeni betikler çalıştırılabiliyor.
  • .o dosyalarını çıkarıp derleme/bağlama sürecine entegre eden kod içeriyor.

Özet

  • Bu süreç son derece gizli ve yalnızca standart komut satırı araçları kullanılarak karmaşık biçimde kurgulanmış.
  • Üç aşamalı çalıştırma ve "extension" sistemi sayesinde geleceğe dönük tasarlanmış; böylece ikili test dosyalarını yeniden değiştirmeye gerek kalmıyor.
  • Bu tür bir saldırının tesadüfen keşfedilmiş olması, güvenlik topluluğunda birçok soru işareti bırakıyor.

GN⁺ görüşü

  • Bu yazı, yazılım güvenliği ve tedarik zinciri saldırılarının önemini vurguluyor. Yazılım build sürecinde ortaya çıkabilecek zafiyetleri fark etmek, kod incelemesi ve güvenlik denetimlerinin önemini yeniden hatırlatıyor.
  • Obfuscation teknikleri ve çok aşamalı saldırı yöntemleri, saldırganların sistemlere ne kadar sofistike biçimde sızabildiğini gösteriyor. Bu teknikler güvenlik uzmanları için de eğitsel değer taşıyor.
  • Benzer işlevler sunan diğer güvenlik araçları veya projeler arasında OWASP'ın Dependency-Check'i ve Sonatype'in Nexus Platform'u bulunuyor. Bunlar, yazılım bağımlılıklarında güvenlik açıklarını belirlemeye yardımcı oluyor.
  • Bu tür tekniklere karşı önlem alırken, yazılım tedarik zincirinin tüm aşamalarında güvenliği güçlendirmek gerekiyor. Bunun artısı sistem güvenliğini artırması; eksisi ise saldırganlar bu yöntemleri kullanırsa tespit etmenin zor olabilmesi.
  • Bu olay, açık kaynak topluluğunun hem güçlü hem de zayıf yönlerini ortaya koyuyor. Topluluk temelli inceleme ve katkılar, projelerin büyümesi ve güvenliği için önemli; ancak aynı zamanda kötü niyetli katkıcıların yarattığı risk de var.

Henüz yorum yok.

Henüz yorum yok.