Zafiyet Taramalarında Kapsam ve Derinlik Belirleme

IT bileşenlerinde var olan zafiyetleri tespit etmek için çeşitli ürünler vasıtasıyla periyodik zafiyet taramaları gerçekleştiriliyor. Danışmanlık hizmetlerimiz sırasında bize en çok gelen sorulardan biri “Taramaları nasıl bir politika ile yapmalıyız?” sorusudur. Bu soruyu farklı sorular takip etmektedir.  Bu sorulardan bazıları:

“Bütün portları mı tarayalım yoksa belirli bir port setini mi?”,

“Bütün pluginleri enable etmeli miyiz? Linux sistemler tarıyoruz, sadece Linux pluginleri mi aktif olmalı?”,

“İşletim sistemlerinde ve ağda yoğunluk oluşturabilecek Thorough Testing’i açmalı mıyız?”,

“Panaoid taramalar mı yapmalıyız yoksa sadece kesin zafiyetleri tespit etmek için Avoid False Alarms ayarını mı açalım?”,

“Default şifre test pluginleri açık olmalı mıdır?”

Bu soruların cevabı kurumdan kuruma değişmekle birlikte, dikkate alınması gereken en önemli kavram risk yönetimidir. Tabii ki en ideal olan durum en geniş kapsamlı testlerin yapıldığı, bütün ayarların enable olduğu politikalar oluşturmaktır. Ancak maalesef gerçek dünyada bu durum yönetilebilir ve sürdürülebilir değildir. Bunun en temel sebepleri yapılan taramalarla birlikte hem sunucularda hem de ağda hizmet kesintilerine yol açma ihtimali ve tarama sürelerinin yönetilemez hale gelmesidir.

Yaptığınız taramada eğer hizmet kesintisine yol açarsanız hiçbir ekip veya kişi sizin ne kadar detaylı bir tarama yaptığınızla ilgilenmeyecek, hizmet kesintisinin peşine düşecek, sizi ve kullandığınız ürünü sorgulayacaktır. Bu yüzden optimize tarama politikaları oluşturmak gerekmektedir. Farklı senaryolar için tarama politikası önerileri vermeden önce, zafiyet taramalarında hangi ürünü kullanırsanız kullanın benzer sorular ve sorunların gündeme geleceğini belirtelim. Bu yazıda Cyberwise olarak bizim de destek verdiğimiz Tenable Nessus ve Security Center ürünlerinden örnekler vereceğiz.

Soruları detaylandırarak yazımıza devam ediyoruz.

Soru 1: Hangi taramalarda bütün portları tarayalım, hangi taramalarda default port seti kullanalım?

Günümüzde firmaların önemli bir kısmı periyodik taramalarda bütün portları taramaktadır. Ancak bütün portları taramak ağda yoğun bir trafik oluşmasına sebep olabilir ve kesintilere sebep olabilir. Bu yüzden ancak ağ altyapısı güçlü olan firmalar bütün portları tarama kapsamına alabilir. En azından bir tane örnek tarama yapmadan bütün portları taramanın kesintiye sebep olup olmayacağını kestirmek maalesef çok güç. Bu yüzden bütün portları dahil ettikten sonra, ilgili ekiplere de haber verilerek tarama gerçekleştirilir. Eğer kesinti olmamışsa, ağ cihazları etkilenmemişse bundan sonrası için taramalar bütün portları dahil edecek şekilde ayarlanabilir.

Eğer ağda bir sorun oluşursa nessus politikalarında da olan “default” portlar taramaya dahil edilir. Default port listesinde en çok kullanılan portların bir listesi bulunmaktadır. Bu konuda detaylı bilgiye aşağıdaki linkten erişebilirsiniz.

https://www.tenablecloud.cn/blog/configuring-the-ports-that-nessus-scans

Default portlar tarandığı halde ağ üzerinde yine sorunlar ortaya çıkıyorsa, çözüm tarama politikasında değil ağda bulunan cihazlarda aranmalıdır. Default port listesinden daha dar kapsamlı bir tarama tavsiye etmiyoruz.

Periyodik olmayan taramalarda, bir veya birkaç tane sunucunun taranacağı taramalarda ise bütün portlar taramaya dahil edilebilir. Örneğin yeni bir sunucu var ve prod ortama alınmadan önce test edilmesi istendi. Bu durumda sunucuya all ports taraması yapılmalıdır. All ports dediğimiz port seti 65535 portun tamamını kapsamaktadır.

Tenable Nessus ve Security Center’da port kapsamı aşağıdaki ayarla belirlenir. İlgili ayar Policy’de Port Scanning -> Ports altında bulunmaktadır.

alt text

veya

alt text

Soru 2: Bütün pluginleri enable etmeli miyiz?

Bu sorunun cevabı senaryo fark etmeksizin evet. Çünkü Nessus vb. ürünler taramalarda bütün pluginleri teste dahil etmez. Öncelikle port taraması ve servis taraması ile bilgileri toplar, sonrasında hangi pluginleri test edeceğini belirler ve kapsama dahil eder. Yani kısaca taramayı optimize eder. Örneğin taranan sunucu Windows ise Linux pluginlerini hiç test etmez.

Soru 3: “Thorough testi açmalı mıyız?”

Öncelikle Thorough test nedir bunu bilmek gerekiyor. Bu konuda aşağıdaki linki inceleyebilirsiniz:

https://www.tenable.com/blog/using-nessus-thorough-checks-for-in-depth-audits

Tenable, thorough test’i şu şekilde açıklar:

“Causes various plugins to work harder. For example, when looking through SMB file shares, a plugin can analyze 3 directory levels deep instead of 1. This could cause much more network traffic and analysis sometimes. By being more thorough, the scan is more intrusive and is more likely to disrupt the network, while potentially providing better audit results.”

Periyodik taramalarda kapsamlı test yapmak hem ağda hem sunucularda sorunlara yol açabilir. Bu yüzden Thorough testin açılmasını tavsiye etmiyoruz. Ancak yine test taramalarında, örneğin prod’a alınmadan önce bir sunucunun test edilmesi sırasında Thorough testin açılması gerekir. Böylece bütün zafiyetler tespit edilir.

Nessus ve Security Center’da ilgili ayar Policy’de Assessment ayarları altında bulunmaktadır.

alt text

Soru 4: Bulgu Kesinlik (Accuracy) ayarları ne olmalıdır?

Yapısı gereği bazı zafiyetler kesin olarak tespit edilemeyebilir. Tespit edilen bazı zafiyetler ise aslında var olmayabilir. Bu durumda False Positive ve False Negative durumlar ortaya çıkacaktır. Accuracy ayarları bu yüzden kullanılmaktadır.

Tenable dokümanlarında Accuracy ile ilgili şu açıklama yapılmıştır:

“In some cases, Tenable Nessus cannot remotely determine whether a flaw is present or not. If report paranoia is set to Paranoid then a flaw is reported every time, even when there is a doubt about the remote host being affected. Conversely, a paranoia setting of Avoid false alarms will cause Tenable Nessus to not report any flaw whenever there is a hint of uncertainty about the remote host. Normal is a middle ground between these two settings.”

Eğer False Positive bulgu olmayan bir tarama isteniyorsa Avoid False Alarms seçilebilir. Bu durumda varolan bazı zafiyetler kaçırılabilir. Dolayısıyla tavsiye ettiğimiz bir ayar değildir.

Eğer Paranoid seçilirse daha esnek bir tarama yapılır ve olası bütün zafiyetler listelenir. Bu durum, False Positive bulgular çıkarak, ilgili ekiplerin gereksiz uğraş vermesine ve ürüne güvenlerini kaybetmesine yol açabilir.

Bu yüzden periyodik taramalarda tavsiye ettiğimiz Normal seçeneğinin kullanılmasıdır. Peki Paranoid taramayı ne zaman yapacağız? Yine henüz Prod’a geçirilmemiş, test ortamında test edilen bir sunucu, ağ cihazı vb. bileşen var ise spesifik tarama yapılırken Paranoid modun açılmasını tavsiye ederiz.

Tenable Nessus ve Security Center’da ilgili ayar Policy’de Assessment –> Accuracy altında bulunmaktadır.

alt text

Soru 5: Şifre deneme pluginleri ve brute force testleri açık olmalı mıdır?

Yine en çok sorulan sorulardan ve hassas konulardan biri. Birkaç yıl önce, destek verdiğimiz firmalardan biri, pentest yapan firmanın bazı bileşenlerde default password tespit ettiğini, kendilerinin periyodik taramalarda bunu neden tespit edemediğini sormuştu. Yaptığımız incelemede default şifrelerin test edilmesi ile ilgili pluginlerin enable olmadığını tespit ettik. Olayın biraz geçmişine gittiğimizde ise daha öncesinde bu pluginlerin aktif olduğunu, ancak linux sunucularda root hesaplarını kilitlediği için küçük bir kriz olduğunu, bu sebeple Genel Müdür Yardımcısı seviyesinde bir onay ile ilgili pluginlerin kapsamdan çıkarıldığını tespit etmiştik.

Bu konuda bir ikileme düşmek çok olasıdır. Bu pluginleri enable ettiğinizde root veya administrator gibi önemli bazı kullanıcıların kilitlenmesi olasılığı bulunmaktadır. Enable etmediğinizde default şifreler var ise bunları tespit edemezsiniz. Dolayısıyla tamamen firmaların karar vermesi gereken ve gerektiğinde risk kabul kararı vermesi gereken bir durumdur. Risk değerlendirmesi sonucu genellikle bu pluginler taramalara dahil edilmemektedir.

Tenable Nessus ve Security Center’da ilgili ayar aşağıda verilmiştir.

alt text

Bu ayar enable edilirse şifre denemesi yapan pluginler kapsam dışı tutulur, disable edilirse ilgili pluginler de tarama kapsamına dahil edilir. Tenable’ın bu ayarla ilgili açıklaması şu şekildedir:

“In some cases, Tenable Nessus can test default accounts and known default passwords. This can lock out an account if too many consecutive invalid attempts trigger security protocols on the operating system or application. By default, this setting is enabled to prevent Tenable Nessus from performing these tests.”

Şimdi bazı tarama senaryoları ve çıktılarından bahsedelim. Bu testler Tenable Security Center ürünü ile gerçekleştirilmiştir. İncelemede taramalarla ilgili süre bilgilerine de yer vereceğiz ve politika değişimlerinin tarama sürelerine etkisini gözlemleyeceğiz.

Senaryo 1: Default port seti ile yetkisiz tarama

Yapılan taramada default port seti kullanılmıştır. Bütün pluginler enable edilmiştir. Taramada kullanıcı ve şifre kullanılmamıştır, bu yüzden tamamen remote taramadır. Tarama sonucusunda tespit edilen zafiyet sayıları şu şekildedir:

alt text

Tarama süresi: 18 dk.

Senaryo 2: Default port seti ile yetkili tarama

Yapılan taramada default port seti ile yetkili tarama gerçekleştirilmiştir. Taranan sunucunun local admin kullanıcı ve şifresi de eklenmiştir. Böylece remote + local bir tarama gerçekleştirilmiştir. Tarama sonucunda tespit edilen zafiyet sayıları şu şekildedir:

alt text

Görüldüğü gibi yetkili tarama ile local zafiyetler de tespit edilmiş, bu durum tespit edilen zafiyet sayısının artmasına sebep olmuştur.

Tarama süresi: 35 dk.

Senaryo 3: All port seti ile yetkisiz tarama

Yapılan taramada bütün portlar (65535 port) kapsama dahil edilmiş, yetkisiz remote tarama gerçekleştirilmiştir. Tarama sonucu çıkan zafiyet sayıları:

alt text

Default port taramasına göre sadece Info seviye bulgularda 21 artış olmuştur. Bu artış default port listesinde olmayan bazı portların da kapsama alınması sonucu ortaya çıkmıştır.

Tarama süresi: 19 dk.

Senaryo 4: Default port setinin kullanıldığı ve thorough testlerin enable edildiği yetkili tarama

Yapılan taramada deault port seti kullanılmış, thorough test ayarı açılmıştır. Yetkili tarama gerçekleştirilmiştir. Tarama sonucunda çıkan zafiyet sayıları:

alt text

Görüldüğü gibi daha kapsamlı taramalar yapıldığından tespit edilen zafiyet sayıları artmıştır, ancak tarama süresi de dikkate değer bir şekilde artmıştır.

Tarama süresi: 3 saat 12 dk.

Senaryo 5: Default port setinin kullanıldığı ve paranoid mod açılan yetkili tarama

Bu taramada default port seti kullanılmış, Accuracy ayarında paranoid mod açılmıştır. Tarama sonucu:

alt text

Paranoid mod açıldığından dolayı kesin olmayan zafiyetlerin de tespit edildiğini ve normal bir taramaya göre zafiyet sayılarının arttığını görüyoruz.

Tarama süresi: 4 saat 33 dk.

Senaryo 6: Default port setinin kullanıldığı ve avoid false alarms ayarının açıldığı yetkili tarama

Bu senaryoda default port seti kullanışmış, Accuracy ayarında avoid false alarms ayarı seçilmiştir. Tarama sonucu:

alt text

Tarama süresi: 5 saat 51 dk.

Sonuç

Elde edilen bu rakamları tablo haline getirelim.

Senaryo Tarama Süresi Critical High Medium
Senaryo 1: Default port seti ile yetkisiz tarama 18 dk. 4 20 17
Senaryo 2: Default port seti ile yetkili tarama 35 dk. 17 81 37
Senaryo 3: All port seti ile yetkisiz tarama 19 dk. 4 20 17
Senaryo 4: Default port setinin kullanıldığı ve thorough testlerin enable edildiği yetkili tarama 3 saat 12 dk. 16 88 49
Senaryo 5: Default port setinin kullanıldığı ve paranoid mod açılan yetkili tarama 4 saat 33 dk. 17 86 47
Senaryo 6: Default port setinin kullanıldığı ve avoid false alarms ayarının açıldığı yetkili tarama 5 saat 51 dk. 17 81 37

Tabloda görüldüğü gibi farklı politikalar ile yapılan taramalarda farklı sayılarda zafiyetler tespit edilmektedir. Ayrıca farklı politikalar ile yapılan taramaların toplam süresi de kaydadeğer farklılıklar içermektedir. Thorough test ve Accuracy ayarları açıldığında tarama süreleri önemli ölçüde artmaktadır. Bu durum periyodik taramaların çok uzun sürmesine ve bir süre sonra yönetilememesine yol açacaktır. Bu yüzden periyodik taramalarda ideal politika bütün pluginlerin enable edildiği, all port seti ile yetkili taramadır.

Written by

Oktay Şahin