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.
Şimdi buradaki ana sorulardan birisi ise sizler tek tek bu açıkları takip edebilir misiniz ? Takip ettiğinizi varsayalım; bu açıklara uygun yama tanımını kod olarak tanımlayabilecek düzeyde misiniz? Bu iki sorunun cevabını birçoğunuzda tahmin edebiliyorum. Bu kısımdaki sorumluluğu virtual patching-sanal yama sistemlerinize yükleyebilirsiniz. Günün sonunda Virtual Patching işleminin size sunduğu durumu şu cümle ile açıklayabiliriz: “ Patching işlemi, açık bulunan koda müdahale etmeden hızlıca onarma işlemidir.”
Bir zafiyet sadece Server, client ya da SCADA sisteminde olur diye düşünmek kesinlikle yanlıştır; zafiyetler, kullandığınız bir uygulamaya, bir işletim sistemine, bir switch ya da routerınıza, evde kullandığınız modeme veya cep telefonunuz üzerinde çalışan işletim sistemine, hatta kullandığınız Bluetooth kulaklığa bile ait olabilir. Bu durumlar göz önüne alındığında ise sanal yama sistemlerinin neden önemli bir hale geldiğini anlıyoruz; Bu kadar teknoloji ürünleri ile iç içe yaşarken, her ürünü tek tek kontrol ederek güvenlik açıklarını kapatmamız, bireysel anlamda ve teknik bilgimiz ile zor olmaktadır. Çünkü bir yandanda süre gelen işlerimizi takip etmekteyiz.
Özellikle “exploit” edilebiliecek zafiyetlerin hem dışarıya bakan sistemlerde (Web sunucu vb.) hem de içeride lokal hizmet veren makinelerde kapatılması gerekmektedir. Ayrıca son zamanlarda KVKK ile birlikte alınması gereken teknik tedbirler içerisinde de sanal yama özellikle belirtilmiştir. Bunun ana sebebi ise sunuculardan çok olan son kullanıcının hem veri güvenlik düzeyini arttırmak, hem de performansı etkilemeden, arka planda zafiyetlere karşı önlemlerin alınmasını sağlamaktır. Sanal Yama sistemlerini son zamanlarda IPS(Intrusion Prevention Systems) olarakta duymaktayız. Ozellikle WAF çözümleri, UTM ürünleri ve Server-Client AV (Anti-Virus) ürünleri ve üreticileri sanal yama üzerinde çalışmalarını yürütmektedirler. UTM-WAF çözümleri gelen trafiğe göre critical-high-medium-low seviyede tespit ve yama işlemleri yürütürken, AV firmaları “Host-Based IPS” yapılarına odaklanmaktadır. Host-Based IPS ile bir sunucu üzerinde çalışan mevcut tüm uygulamalar, işletim sistemine bağlı zafiyetler tespit edilip, dinamik olarak prevention (korunum) sağlanmaktadır. Bunu hem lokal DC içerisinde sağlarken, ayrıca cloud-based farmınız içinde sağlayabilir ve merkezi olarak yönetebilirsiniz. Son günlerde bu alanda ciddi yönelimi olan Trend Micro Deep Security ve Trend Micro ApexOne-Central with Vulnerability Protection ürünleri ön plana çıkıyor. Dinamik olarak sundukları yapı ve ZDI (ZeroDay Initative) desteği ile çok kısa sürelerde Zero-day açıkların kapatılmasına ve mevcut açıklara sunulan yamaların, sistemler üzerinde geçilmesine olanak sağladığını gözlemliyoruz. Farklı markalarda yine benzer aksiyonları sahipler (Symantec, McAffe vb.) ancak Trend Micro tarafında ZDI desteği yapıyı ciddi olarak ön plana çıkarmaktadır.
Sanal yama sistemlerinin getirdiği dezavantajlar yok mudur? Bunlarıda aşağıda birkaç madde ile bahsetmek istiyorum:
- Kaynak tüketiminizin arttıracaktır, çünkü sürekli olarak bir tespit ve koruma yapısı arka planda çalışmaktadır,
- Sanal yama önemli açıklara karşı önlem alırken, çalışan bir uygulamaya ait süre gelen sorunlar için size bir çözüm sunmaz. Sadece açık olan kısım için size çözüm sunar,
- Zero-Day karşısında güçlü veritabanına sahip bir sistem kullanmıyorsanız; güçlü bir arkaplan geliştirme ekibine sahip bir ürün kullanmıyorsanız-sanal yama, bir saldırının farklı yöntemlerle yapıldığı bilgisini tam olarak ele almayabilir. Yani bir zafiyetin 1 den fazla istismar edebilecek saldırı durumu olabilir. Kullandığınız ürün bu konuda destekleyici ve teknik raporlarda kendini ispat etmiş olmalıdır; aksi halde zafiyetler farklı teknikler ile istismar edilebilir. Ortamda sanal yama yapınız olsa bile,
Bir dipnot vermek istiyorum; Özellikle MITRE ATT&CK Framework tarafını incelemenizi ve ürün seçimlerinizde bu noktadan destek alan-veri alan altyapılarla çalışmanızı öneririm. MITRE Framework ağ üzerinde yapılabilecek saldırıların ve bu saldıraların adım adım nasıl yapıldığını açıklayan bir sistemdir. Sanal yama sistemi üreticileri kod geliştirirken buradan faydalanmaktadır. Faydalanmayan üreticilerde yer almaktadır.
KVKK Sürecinde Virtual Patching Sanal Yamanın Önemi ?
Herhangi bir bilgisayar korsanının (hacker) 2 temel amacı olduğunu söyleyebiliriz-genişletiledebilir;
- Sisteme zarar vermek-hizmeti aksatmak,
- Saldırı sonrası veri çalarak, veri istismarından maddi gelir elde etmek,
KVKK ise bu 2 ana nedeni farklı methodlarla deneyen saldırganlara karşı sistemlerinizin güvenlik güçlendirmesini yapmanızı istemektedir. Bunu zaman zaman emsal kararlar ile farkındalığını oluşturmakta ve siz yöneticilere sorumlulukları hatırlatmaktadır. Sorumluluk sizlerin ellerindedir. Teknoloji gündenden güne gelişirken önlemleri alma noktasında gereken çalışmaları yürütmez iseniz, sonuçları hem yasal anlamda hemde sistemsel anlamda ağır yükümlülükler getirmektedir.
Sanal yama sistemlerini yapınızda kurarak özellikle kişisel verilerin işlendiği sunucu-client ve diğer ağ ürünlerinde gereken önlemleri yazılımsal açıklara karşı sağlamış olursunuz. Ayrıca bu sistemler ile gereken loglama işlemlerini sağlayıp, KVKK sürecinizide desteklemiş olacaksınız. Ağ üzerindeki cihazları takip edip versiyondurumlarını ve bu versiyonlara ait zafiyetleri raporlayan sistemler yer almaktadır.