Backporting Geçmişe Güvenli Bir Yolculuk

Giriş

Backporting, özellikle yazılım geliştirme ve siber güvenlikte, eski bir yazılım sürümüne yeni bir özellik veya güvenlik yamasının uygulanması anlamına gelir. Red Hat Enterprise Linux (RHEL) gibi sistemlerde bu kavram yaygındır ve kritik önem taşımaktadır. Ancak backporting sadece bir “yama uygulama” işlemi değil; dikkatli analiz, kod uyarlaması ve kapsamlı testler gerektiren bir süreçtir.

Bu makalede, backporting kavramının yanı sıra, bu sürecin aşamalarını ele alacağız ve gerçek dünyadan örnek case çözerek konuyu zenginleştireceğiz.

Backporting Nedir?

Backporting, genellikle aşağıdaki durumlarda uygulanır:

  1. Güvenlik Açıkları: Yeni sürümde giderilen kritik bir güvenlik açığının eski sürüme taşınması.

  2. Uyumluluk İhtiyaçları: Sistemlerin belirli bir yazılım sürümüyle çalışmasını gerektiren iş süreçleri.

  3. Stabilite Kaygıları: Yeni sürüme geçiş sırasında ortaya çıkabilecek hataların önlenmesi.

Backporting Süreçleri

Backporting, iyi tanımlanmış adımlarla yönetilmesi gereken bir süreçtir. İşte bu sürecin tipik aşamaları:

1. Sorunun Belirlenmesi

  • Bir güvenlik açığı veya hata tanımlanır (örneğin bir CVE).

  • İlgili yazılımın sürüm ve özellik bilgisi toplanır.

  • Açığın etkisi analiz edilir (critical, high, medium, low).

2. Kaynak Kodunun İncelenmesi

  • Sorunun giderildiği yeni sürümdeki değişiklikler incelenir.

  • Kod farkları analiz edilir ve eski sürüme uygulanabilirliği değerlendirilir.

3. Kodun Taşınması

  • Yeni sürümdeki düzeltmeler, eski sürümle uyumlu hale getirilir.

  • Gerekirse kod değişiklikleri, eski sürümün kütüphane veya API yapısına uyacak şekilde düzenlenir.

4. Test Edilmesi

  • Backport edilen yamalar hem manuel hem de otomatik testlerden geçirilir.

  • Özellikle güvenlik açısından, regresyon testleri yapılır.

  • Test ortamında, yamanın eski sürümde beklenen işlevleri sağlamaya devam ettiği doğrulanır.

5. Yamanın Dağıtımı

  • Geliştirilen yama, ilgili yazılım paketine entegre edilir (ör. RPM veya DEB paketleri).

  • Red Hat gibi dağıtımlar için yeni bir paket sürümü yayımlanır.

  • Sistem yöneticileri yamayı sisteme uygular.

6. Dokümantasyon

  • Yamaların hangi CVE’leri kapattığı ve ilgili değişiklikler açıkça dokümante edilir.

  • Kullanıcılara bilgilendirme yapılır.

Siber Güvenlik Perspektifinden Backporting

Backporting, güvenlik uzmanları için, sistemlerin güncel tehditlere karşı korunduğundan emin olma noktasında kritik bir rol oynar. Özellikle Red Hat Enterprise Linux (RHEL) platformlarda, backporting süreçlerinin anlaşılması ve yönetilmesi önemlidir.

Bir güvenlik uzmanının temel sorumluluklarından biri, backporting ile sağlanan güvenlik yamalarının doğru bir şekilde uygulanıp uygulanmadığını teyit etmektir. Bu süreçte, güvenlik tarama araçlarının (ör. Tenable Security Center, Nessus Pro. vb.) sunduğu bulgular ile sistem tarafından sağlanan yamaların birbiriyle tutarlı olup olmadığı dikkatle analiz edilmelidir.

Güncel Tenable Security Center ile tespit edilmiş Backporting örneği

Case: CVE-2023–38545 nolu zafiyet için taramalarımızı gerçekleştirdik. Zafiyetin tespit edilmesini bekliyorduk, ancak herhangi bir zafiyet tespit edilmedi.

İncelemeler:

Bu zafiyet Security Center ürünü ile tespit edilmeye çalışıldığı için ilk olarak ürünün gereksinimlerini kontrol edip daha sonra incelemeyi derinleştireceğiz.

Adım1:

İlgili CVE yi Tenable CVE listesine ekleyip plugin çıkarmış mı kontrol ediyoruz.

https://www.tenable.com/cve/CVE-2023-38545

appsec

CVE listesinde olduğunu ve çok fazla plugin çıkarıldığını gözlemledik. Beklenen pluginin ID’si ve taranmak istenen sistem hakkında daha fazla bilgi talep ederek, tarama sonuçlarında görülmesi beklenen pluginin ID’sinin 182875 olduğu bilgisini öğreniyoruz.

Adım2:

Pluginin gereksinimleri tespit edilip taramanın bu isterleri karşılama durumu kontrol edilir. (Bu süreçte diagnostic dosyası talep edilir.)

2.1 Gereksinim tespiti

https://www.tenable.com/plugins/nessus/182875

appsec

Pluginin local(Credential gereksinimi) ve Thorough checks(detaylı test) gereksimleri olduğu görülmüştür.

!! İlgili gereksinimler dikkatli bir sekilde karşılanmadan tarama yapılması networkünüzde büyük sorunlar oluşturabilir. Özellikle daha önce kullanılmadıysa “Enable thorough checks” ayarı detaylı bir şekilde araştırılmalıdır.

Diagnostic dosyası incelenerek plugin gereksinimleri kontrol edilir.

appsec

appsec

Adım3:

İnformation pluginleri ve debugging logları incelenerek Tenable’ın tespit ettiği versiyon kontrol edilir.

appsec

Zafiyetli versiyon tespiti yapılmış. Bu tespitte ise local bir plugin kullanılmış ve hedef makine içerisinde tam path görülmüş. Ek kontrol için ilgili ekipten ilgili path’i kontrol etmesi istenilebilir fakat bu durumun f/p olması çok ama çok düşük bir ihtimaldir.

Adım4:

İlgili pluginin neden çalışmadığını tespit etmek için “Audit Trail” Sorgusu yapılır.

appsec

Tenable backported olabileceğini belirtmiştir. Böyle bir durumun kontrolü için ise hedef makinedeki işletim sisteminin release notları kontrol edilebilir veya doğrudan üreticiye case açılarak zafiyetli versiyon için backported işleminin yapılma durumu sorgulanabilir.

Bonus:

Redhat’in Backporting konusu hakkındaki yayınlamış olduğu makaleye aşağıdaki bağlantıdan ulabilirsiniz;

https://access.redhat.com/security/updates/backporting

Sonuç

Backporting, eski sürümlerin güvenliğini sağlamanın yanı sıra, sistemlerin operasyonel stabilitesini korumak için önemli bir stratejidir. Ancak bu süreç dikkatli bir analiz, test ve dokümantasyon gerektirir. Siber güvenlik uzmanları için, bu süreçleri anlamak ve takip etmek, sistemlerin hem güvenli hem de uyumlu çalışmasını sağlamada kritik rol oynar.

Makalemi okuduğunuz için teşekkür ederim. Umarım backporting konusunda faydalı bilgiler sunabilmişimdir. Görüş ve geri bildirimlerinizi paylaşarak bu konuda daha derin bir tartışma başlatabiliriz!

Written by

Oktay Çetin