Sanal yamalama, güvenlik açığı bulunan kodu değiştirmeden, yazılımdaki belirli bir güvenlik açığını azaltan yamalama işlemidir. Bu terim ilk olarak birkaç yıl önce IPS (İzinsiz Giriş Önleme Sistemi) dağıtıcıları tarafından kullanılmıştır. Bir web uygulamasına özel bir terim değildir ve diğer protokollere uygulanabilir, ancak şu anda daha genel olarak Web Uygulama Güvenlik Duvarları (WAF) için kullanılan bir terimdir. Virtual Patching (sanal yamalama) farklı isimlerle de bilinmektedir. Sanal yamalama External Patching and Just-in-time Patching olarak da adlandırılmaktadır.
Yama (patch), bir program parçasının hızlı onarma işidir. Tipik bir yama derlenmiş kodun yerine geçmesi veya eklenmesi şeklinde geliştirilip, dağıtılır. Sanal bir yama, kötü amaçlı trafiğin zafiyetli uygulamaya ulaşmasını önlemek için güvenlik denetimi katmanını kullanarak işlemleri analiz eder. Güvenlik politikası uygulama katmanı (Security Policy Enforcement Layer) bilinen bir zafiyetin sömürülme durumuna engel olur. Sanal yama etkinse, uygulamanın kaynak kodunu değiştirmeden istismarın gerçekleşmesini önler.
Sanal Yama Araçları
Sanal yama çalışmaları için kullanılabilecek birkaç farklı araç vardır.
– WAF veya IPS gibi aracı cihazlar
– ModSecurity gibi Web sunucusu eklentisi
– ESAPI WAF gibi uygulama katmanı filtresi
Sanal Yama Çeşitleri
Sanal yamaya ilk olarak IPS / IDS topluluğu tarafından öncülük edildi. Daha sonra, sanal yama WAF’lar ve en son RASP ürünlerinde benzer yetenekler sunmaya devam etti. Sanal yamayı uygulamaya koymanın en yaygın yolu, uygulama ile girişlerinin ve çıkışlarının kaynağı arasına bir proxy veya satır içi paket manipülatörü yerleştirmektir. Sanal yama uygulaması 3 farklı şekilde var olmaktadır.
– İlk sanal yama türü yalnızca ağ trafiğini analiz etmeye dayanır. Bu tür sanal yamaları sunan sistem, kötü amaçlı etkinliği tanımlamak ve karşılık gelen istekleri engellemek için imzaları, düzenli ifadeleri ve kalıp eşlemeyi kullanır.
– İkinci tip sanal yamalar aynı ilkelere dayanır; Bununla birlikte, bir kural dilini ve durum yönetimi gibi yetenekleri kullanarak talepleri engellemek için kriterleri belirleme konusunda daha sağlam bir yol sunar. ModSecurity böyle bir sanal yama çözümünün bir örneğidir.
– Üçüncü tür, eşzamanlı runtime platformlarının (Java Sanal Makinesi gibi) Just-in-Time derleyicilerinden yararlanır.
Bu yaklaşım geleneksel yamaya göre çeşitli avantajlar sunar:
– Sanal bir yama çevrimiçi olması gereken kritik görev bileşenlerini korur, bu nedenle acil bir durumda geleneksel bir yamada olduğu gibi işlemler kesintiye uğramaz.
– Uygulama dağıtıcılarının etkili ve kalıcı bir yamayı test edip çıkarana kadar sanal yama, sömürü riskini azaltır.
– Sanal yama, zamanlanmış yama dağıtılmadan bir güvenlik açığı ortaya çıkarsa, kuruluşun zamanlanmış yamayı çıkarana kadar geçen sürede işlemlerini sürdürmesini sağlar.
– Sanal yamanın, bir ağdaki tüm ana bilgisayarlara değil, yalnızca birkaç konuma kurulması yeterli olur.
– Tüm ana bilgisayarlara yamalar kurmak yerine birkaç yerde uygulandığı için ölçeklenebilir bir çözüm sunmaktadır.
Sanal yamanın dezavantajları veya riskleri şunları içerir:
– Belli bir güvenlik açığı nedeniyle bir istismarın ortaya çıkabileceği tüm olası yolları veya olası konumların tümünü ele almamış olabilir.
– Sanal yama uygulandıktan ve etkili olduğu kanıtlandıktan sonra, bir kuruluş kalıcı bir yama oluşturmak için motivasyonu azaltabilir.
– Sanal yama bir krizi önleyebilse de kalıcı bir düzeltme ekinin olduğu gibi uzun vadede de fayda sağlaması pek olası değildir, çünkü sanal yama bir uygulama programındaki doğal hataları ortadan kaldıramaz.