Merhabalar,
Bu makalemizde sizleri günümüz güvenlik mimarisinin artık olmazsa olmazlarından VIRTUAL PATCHING – SANAL YAMA özelliği ile buluştumak istiyorum. Sanal yama terimini özellikle KVKK teknik tedbirlerininde içermesi ile sıklıkla sahada duymaya başladık. Sanal yama bugün keşfedilen bir özellik olarak düşünmememiz gerekmektedir. Aslında birçok üretici yıllardır geliştirdikleri yazılımlar ve güncellemelerle aslında bir nevi sanal yama yapıyorlar. Bir ürün ortaya çıkarıp; daha sonra bu üründe ki kod hatalarına bağlı sorunları bir sonra ki sürümde fix leyip yani düzeltme geçerek kapatıyorlar. Ama süre gelen zamana baktığımızda ise güvenlik tarafında tespit edilen bir açığın kapatılma süresinin üreticiden gelen düzeltmeyi beklemesi en büyük zafiyetlerden birisi olarak karşımıza çıkıyor.
Vırtual patching/sanal yama sisteminin üreticilerden farklı olarak yaptığı ise bu açığı sistem aktif çalışırken ve henüz herhangi bir güncelleme ya da düzeltme gelmeden ,çalışan sistem üzerinde dinamik olarak tespit edip önlemlerini alarak açığı kapatmak olarak açıklayabiliriz.
Peki virtual patching ihtiyacımız neden var? Bu sistemi aktif olarak nerelerde kullanmalıyız? Şimdi biraz detaylara başlayalım.
Bu sistemin detayına girmeden önce aşağıdaki terimlerden kısaca bahsetmekte fayda olduğunu düşünüyorum:
- Vulnerability/Zafiyet: Bilgi Teknoloji sistemlerinde yapının çalışmasını engel olabilecek yazılımsal bazlı kod hatalarıdır.
- Threats / Tehditler: Zafiyetleri kullanarak oluşabilecek ve sistemin çalışmasını engelleyebilecek her türlü durumu tehdit olarak algılayabiliriz.
- Zero Day / Sıfırıncı Gün: Henüz kimse tarafından tespiti sağlanmayan saldırıların genel adıdır.
- Exploit: Kelime karşılığı “ Kendi çıkarı için kullanmak “ olan bu süreç hacker olarak tabir ettiğimiz bilgisayar korsanlarının sıklıkla kullandıkları ve yazılımlara ait kod açıklarını kullanarak sistemlere yaptıkları saldırı tipinin genel adıdır.Amaç kullanıcı yetkinliklerini elde ederek sistem üzerinde veri sızıntısı oluşturma ya da sisteme kalıcı hasarlar vermek olabilir. 5 farklı başlıkta yer alır:
- Zero-Day Exploit,
- SQL-Injection Exploits,
- DOS-Exploit,
- Local Exploit,
- Remote Exploit,
5- Payload: Kelime anlamı “ Yararlı yük” olan bu terim ise exploit edilen sistemlerde session sonrası sistem üzerinde yönetilmesini-çalıştırılmasını istediğimiz komutların sisteme aktarımını sağlamaktadır. Komutları karşı exploit edilen makinedeki ilgili servise komutları ileterek çalışmasını sağlar.
- Meterpreter,
- DLL Injection,
- Binary Upload,
- sPassiveX,
- Download and Exec,
- Adduser,
Ana konumuza dönecek olursak, Virtual Patching; pantolonun yırtılan bölümünü; pantolana ait parça kumaş ile ya da o kumaşa yakın bir renk ile yeniden onarılması ile Sanal Yama sisteminin, açık bulunan sistemdeki işlevsel mantığı birbirine benzemektedir. Sanal yama ile sistem üzerinde açığı olan ve tehditlere açık olan yazılım üzerinde, açığın yer aldığı kod bloğunun değiştirilmesine gerek kalmadan, zafiyeti kapatan ve riski ortadan kaldırmaya yarayan yazılım olarak bahsedebiliriz. Pantolon örneğinde de aslında bütün kumaş üzerinde siz dikiş hatları ile mevcut olan kumaşa ek yapmaktasınızdır. Amaç bütünlüğü bozmamaktır.
Buradaki ana fark elbette sistemi durdurmadan ve dinamik olarak bu çözümlerin sistem üzerinde çalıştırılmasıdır. Server-client mimarisinin güvenliğini üst düzeye çıkararan sanal yama sistemleri, günümüzde özellikle Server tarafında değerlendirilmesi ön planda iken son zamanlarda son kullanıcı tarafı ve ağ yapısının iletişim için aktif kullanıldığı SCADA/Endüstriyel sistemlerde de kullanıldığını söyleyebiliriz.
Sanal yama sistemleri ile sunucularınız, client larınız veya diğer sistem unsurları üzerinde çalışan yapıyı tarayıp analiz etmesi sonucunda, bu ürünlerin üreticilerine ait özel açıkların olduğunu tespit edebilirsiniz veya bu sistemler üzerinde koşan uygulamalar ait açıklar olduğunu gözlemleyebilirsiniz. Aşağıdaki ekran görüntüsünde bir “virtual patching” işlemine ait verileri örnek olarak paylaştım. Hala çalışmakta olan Windows Server 2003 (EOL) bir makinedir ve üzerinde Web servisleri aktif çalışmaktadır. Farmınızda farklı işletim sistemleri ve farklı sürümler yer alabilir ancak sizlerin dinamik olarak sisteme ait açıkalrı tespit edip, bu açıkları kapatabiliyor olmanız gerekmektedir. Buradaki vurgulamak istediğim nokta yazının başında dediğim gibi, “bir açık üreticinin yayınladığı yama ile de kapatabilir ama üretici desteğini çekmişse ya da açık ile ilgili ne zaman bir fix yayınlacağı belli değil ise siz nasıl önlem almalısınız” durumunu sanal yama ile çözümleyebilirsiniz.