Sanal Kütüphane » Makaleler » NESSUS : Güvenlik duvarına konulmuş bir tuğla daha

Yazar: Erdal MUTLU
Gönderen: zakkeyboorock
Tarih: 16:50 09-06-2004
Derece:
Yorumlar: (0)
<b>Nessus'un elde edilmesi ve yüklenmesi</b>
http://www.nessus.org adresini ziyaret ederek, bu müthiş yazılımı elde edebilirsiniz. Nessus'un istemcisi, Win32 için var olmasına karşın, biz burada doğal olarak Posix sürümünü ele alacağız.
Nessus'u kullanabilmek için en azından nmap ve Gtk (Gimp Toolkit) ya gereksinim vardır. Bu yazılımlara olan bağlantı adreslerini, nessusun sayfasından bulabilirsiniz. Nessus'u komut satırından da kullanabileceğinize göre, Gtk'nın olması şart değildir.
Nessus'u üç farklı yoldan elde edebilirsiniz : iyi, kötü ve çirkin. İyi, standart yoldur, yani size yakın bir ftp alanından. Dört adet arşiviniz olacaktır : nessus kütüphaneleri, nasl kütüphaneleri, çekirdek nessus ve nessus eklentileri. Arşivleri açtıktan sonra, yapmanız gerek her zaman olduğu gibi sırasıyla : ./configure, make ve make install dır. Eğer, nessusun daha önceki sürümüne sahipseniz, onu sistemden silmeniz gerekecektir. Bunun için nessusun, "./configure" dan sonra kullanılmak üzere, bir kabuk programı vardır. Bu kabuk programını her arşiv için "make" ten önce çalıştırınız ve işlem tamam.
Kötü yol, nessus-installer.sh kabuk programını İnternet'ten indirdikten sonra çalıştırmaktan geçer. Bunun için "sh nessus-installer.sh" komutunu auto-install seçeneği ile çalıştırınız. Dolayısıyla dört ayrı paket yüklemenize gerek kalmayacaktır. Artık, sadece bir paket yükleniyor.
Çirkin yol ise, sisteminizde lynx yüklü ise, "lynx -source http://install.nessus.org | sh" komutunu çalıştırmanız yeterlidir. Bunun için root OLMAMANIZ gerekmektedir.
Tabii ki, önerilen yol "iyi" olanıdır... Eğer, nessusu çektiyseniz, güvenlik sizin için önemli olmalıdır! Güvenlikten sözettiğimize göre MD5 toplamlarını çekmeyi ve denetlemeyi unutmayın.
Nessus, farklı bileşenler içermektedir (nasl, betik dili, nessus-adduser, nessus-build ...). Herbir bileşenin istemci ve sunucu için kendi man sayfası vardır. Daha fazla bilgi, gelen paketlerirden (README, INSTALL ...) veya nessusun sanaldoku sayfasından elde edebilirsiniz.

<b>Nessus'un yapılandırılması ve çalıştırılması</b>

İşleri kolaylaştırmak için örnekleri, nessusun X11 sürümü, yani Gtk için olan istemci üzerinden göstereceğiz.

<b>Nessusd sunucusu</b>

Nessus'u çalıştırmak için, açıktır ki, nessus sunucusunu çalıştırmanız gerekecektir. Nessus sunucusu ilk defa çalıştırırken, nessus-useradd ile bir kullanıcı ve geçişsözcüğü belirtmeniz gerekecektir. Eğer, nessus kütüphaneleri, "--enable-cipher" seçeneği ile derlenmişler ise, (önerilen, mutlaka grekli demiyorum!) kişisel bir anahtar yaratılacaktır. Bu anahtar bir geçiş ifadesi ile korunabilir. Nessus sunucu programını çalıştırmak için birçok seçenek vardır. Bunların hepsini, nessusd'nin man sayfasından bulabilirsiniz.
Bundan sonra kullanıcı veritabanınızı oluşturabilir ve kuralları belirleyebilirsiniz. Yani, nessusd sunucusunu kimin çalıştırma hakkı olduğu ve neleri tarayabileceği (bilgisayar, ağ ...) gibi. Kurallar, "accept" veya "deny" sonra IP adresi ve onun ağ maskesi gelecek şekilde belirtilmektedir.
Sözgelimi : accept 192.168.1.0/24, kullanıcıya tüm 192.168.1 ağını taramasına izin vermektedir.
Sadece kullanıcı tanımlayarak, hiç kural koymayabilirsiniz. Eğer, çeşitli kullanıcıların nessusd çalıştırmasını istiyorsanız, nelere izin verdiğinizi çok dikkatli belirlemeniz gerekmektedir. Herkese, ağınız üzerinde hertürlü hakkı vermeyi düşünmüyorsunuz herhalde, yoksa düşünüyor musunuz?
Son olarak, nessusd, (genellikle) /usr/local/etc/nessus/nessusd.conf da bulunan yapılandırma dosyasına göre çalışmaktadır. Eğer, ne yaptığınız biliyorsanız, bu dosya üzerinde değişiklik yapabilirsiniz.

<b>Nessus istemcisi</b>

Bundan sonra, nessus sunucusuna bağlanmak için, nessus istemcisini çalıştırabilirsiniz. İstemciyi çalıştırmak için, komut satırından "nessus &" komutunu vermeniz yeterlidir. Yukarıda sözünü ettiğimiz geçiş ifadesini doğru bir şekilde yadığınızda, nessusun yapılandırma penceresi ekrana gelecektir. Bu pencerede, birden fazla pencereye ulaşmanızı sağlayan tablar vardır.
İlk pencerenin adı "hessus host" dur. Buradaki "Log in" tuşuna basarak nessusd sunucusuna bağlanabilirsiniz. Tabii ki, sunucuya bağlanma izninizin olması gerekmektedir, başka bir deyişle, kullanıcı olarak sisteme tanımlanmış olmanız gerekmektedir.
<img src=http://www.linuxfocus.org/common/images/article217/hostth.jpg align=center>

İkinci pencere, eklentiler hakkındadır. Burada, tarama sırasında kullanmak istediğniz ve istemediğiniz eklentileri seçebilirsiniz. Sözgelimi, tehlikeli olan eklentileri (bilgisayarınızı çökertebilecek olanları!) iptal edebilirsiniz. Pencerenin alt tarafındaki eklentinin üzerine tıklarsanız, eklenti hakkında daha ayrıntılı bilgi edinebilirsiniz.
<img src=http://www.linuxfocus.org/common/images/article217/plugth.jpg ><img src=http://www.linuxfocus.org/common/images/article217/plugdth.jpg >

Üçüncü pencerede, eklentiler hakkındaki seçimlerinizi belirtebilirsiniz. Bu, ping, FTP, TCP ... gibi servisleri içermektedir. Burada hedef bilgisayarı (ları) veya ağı nasıl tarayacağınızı ayrıntılı olarak ayarlayabilirsiniz.
<img src=http://www.linuxfocus.org/common/images/article217/prefsth.jpg align=center>

Dördüncü pencereden, tarama seçeneklerini ve tarayıcıyı seçme imkanınız vardır. Genellikle nmap kullanılmaktadır.
<img src=http://www.linuxfocus.org/common/images/article217/scopth.jpg align=center>

Beşinci pencere, nessusa hangi hedefi taraması gerektiğini söylediğiniz yerdir. Hedef alanına, tarama yapacağınız bilgisayarın adını veya IP'sini, birden fazla ise, virgül ile ayrılmış olarak veya ağ ise, ağ adresi ile birlikte ağ maskesni (sözgelimi 192.168.1.0/24) vermeniz gerekmektedir. Ayrıca, DNS (ad veya isim) bölgesini aktarma seçeneği de vardır. Bunu işaretlerseniz, DNS (isim) sunucusuna bağlanarak, o bölgeye ait tüm bilgisayarların listesini almasını, yani alan aktarımı yapılmasını sağlayabilirsiniz.
<img src=http://www.linuxfocus.org/common/images/article217/targth.jpg align=center>

Altıncı pencere, kullanıcı geçiş ifadesini değiştirilmesini, anahtarınızı silmenizi veya kural eklemenizi sağlamaktadır.
<img src=http://www.linuxfocus.org/common/images/article217/userth.jpg align=center>


Yedinci pencere, program sürüm numarası ve yazarlar bilgisini içermektedir. Yani, nessusu başka projelerde kullanacaksanız, belirtmeniz gereken tüm bilgiler bundan ibarettir... Yani, böyle olması gereklidir!
<img src=http://www.linuxfocus.org/common/images/article217/credth.jpg align=center>

Eğer, nessusu "--enable-save-kb" seçeneği ile derlediyseniz, sekizinci pencereye de sahip olacaksiniz. Buradaki Kb (knowledge base) bilgi (veri) tabanı anlamındadır. Şu an için bu deneysel bir özelliktir ve daha önceki taramaların sonuçlarını kullanmanızı sağlamaktadır. Bu özellik, nessus 1.1.0 da benimsenmiş değer olarak yer alacaktır. Bununla ilgili daha fazla bilgi www.nessus.org/doc/kb_saving.html adresinden elde edebilirsiniz.
Tüm pencereleri ziyaret ettikten sonra, programı çalıştırabilirsiniz. Bunun için "Start the scan" (Taramayı başlat) tuşuna basmanız yeterli olacaktır. Ondan sonra ne olacak?

<b>Nessus işbaşında</b>

Taramayı başlattığınız anda, nessus tarama hakkında durum bilgileri içeren bir pencere açmaktadır. Sözgelimi, tüm 192.168.1.0/24 ağ üzerinde denetleme yaptığınızı varsayalım. Pencerede aynı anda sekiz bilgisayar görüntülenecektir. Herbiri için hangi eklenti programın kullanıldığı, ilerleme çubuğu ile birlikte yer alacaktır. İşte örnek bir görüntü :
<img src=http://www.linuxfocus.org/common/images/article217/atstth.jpg align=center>

Görüldüğü üzere tüm denetlemeyi istediğniz anda durdurabilirsiniz.
Doğal olarak, tüm bir ağ üzerindeki bilgisayarları taradığınızda, süreç oldukça uzun olacaktır. Tarama süresi, bilgisayarlanızda yüklü olan isletim sistemlerine, ağ hızınıza, bilgisayarların işlevlerine (açık olan portlara), aktif olan eklentilere vs. bağlı olacaktır.
Ayrıca, taramayı iki farklı yoldan yapabilirsiniz : arka planda tarama veya fark (diferansiyel) tarama. Bunun için nessusu "--enable-save-kb" seçeneği ile derlemiş olmanız gerekmektedir. Arka planda tarama, adında da anaşılacağı üzere, tarama işlemini arka planda gerçekleştirmektedir. Fark tarama işe, iki tarama arasındaki farkları göstermektedir.
Bu özellikler ile ilgili çok daha fazla bilgi nessus documentation (www.nessus.org/doc) adresine giderek öğrenebilirsiniz.
En önemlisi, tarama sonucunda elde edeceğiniz sonuçtur. Nessus'un en önemli özelliği, size sunduğu raporlarda yatmaktadır.
<img src=http://www.linuxfocus.org/common/images/article217/repth.jpg align=center>

Bu raporlar oldukça ayrıntılıdır ve genellikle, çözüm için öneride de bulunmaktadır. Eğer, keşfedilen güvenlik açığı gerçek değil ise, nessus bunun yanlış olumlu (false positive) olduğunu söyleyecektir. Bu özellikle, yama yaptığınız bazı sunucu programlarında gerçekleşebilir : yakında giderilen bir güvenlik açığı, potansiyel risk olarak görülebilir. Ancak, bu türden olan yanlış uyarılara yol açan nessus eklentilerine, oldukça hızlı bir şekilde yamalar oluşturulmakta ve sorun giderilmktedir.
İşletim sistemlerin sürüm numaralarını tanımlarken, nmap'in (2.53) sürümü kullanıldığında küçük hatalar oluşabilir. Bu gerçekte pek ilginç bir şey değilir. Şahsen benim için, SP6a (Servıce Pack) NotTerminated (Sonlandırılmamış veya Tamamlanmamış) 4.0 (NT 4.0) sistemi, NT 4.0 SP5 olarak tanımlanması veya Linux 2.2.19, Linux 2.2.14 olarak tanımlanması benim için hiç de önemli değildir. Hatta, AmigaOS veya BeOS gibi "ekzotik" işletim sistemlerinin, yazıcı veya router olarak tanımlanmalarını şikayet bile etmeyeceğim. Demek istediğim, nmap'in yazarı olan Fyodor'a böyle bir şeyden söz eden bir e-ileti gönderirken kendimi hayal bile edemiyorum. Bu işletim sistemlerini ağ ortamında kim kullanıyor ki? AmigaOS için dünyada 5 kişi diyebilirim :-(
Diğer bazı işletim sistemleri de tam olarak tanımlanamamakta. Nedeni, belkide, yeni olduklarından veya pek kullanılmadıklarından olabilir. Bu MacOS X veya QNX için doğrudur. Aslında, bunlar pek de önemli değildir. Belkide bu sorunlar nmap'in 2.54 beta sürümünde çözülmüştür bile (bu arada, bu yeni sürümün MacOS X sürümü de var).
Herneyse, esas nokta şudur, kendi ağınızın güvenlik açıkları düzeltmeniz için, nessus size bir ton bilgi vermektedir.
Bu raporları, metin, NSR, HTML, HTML pay grafikleri ile ... gibi farklı biçimlerde kaydedebilirsiniz. Böylece iki tarama arasındaki farkları görebilirsiniz. Bu belki de aşikar olabilir, ancak bilgisayar ağınızın belli bir andaki durumu 30 dakika sonraki durumu ile aynı olmayabilir. Neden? Bilgisayar ağınız canlı da ondan! Bir bilgisayar ağın güvenliğinin sağlanmasının zor taraflarından en önemlisi şudur : sürekli değişen bir şeyler vardır. Eğer, bunun için nessus ve nmap gibi araçlara gereksinimiz varsa, işte size cevap.
Eğer, nessusun nasıl çalıştığına kuşkulu bakıyorsanız, log dosyalarına bakınız veya snort kullanıyorsanız, onun log dosyalarına bakın. Bilgi alabileceğiniz başka bir yer de /usr/local/var/nessus dizinidir.
Bundan sonra, ağ üzerindeki bilgisayarların zayıf noktalarını güçlendirmekle uğraşacaksınız sanırım. Ne kadar sağlamlaştırırsanız, o kadar iyi. Bu çalışmada, vazgeçilmez yardımcılarınız nessus ve nmap olacaktır ve bunlarsız yaşayamaz duruma geleceksiniz.

<b>Eklentiler</b>

Eklentiler, nessusun kalbidir. Onlar güvenlik denetimleridir, yani harhangibir güvenlik açığını keşfedebilmek için yazılmış programlar. NASL (Nessus Attack Scripting Language , Nessus Saldırı Betik Dili) eklentilerin yazılımında kullanılması önerilen programlama dilidir. NASL hakkında bilgi http://www.nessus.org/doc/nasl.html adresinden bulabilirsiniz.
Ayrıca, eklenti yazarak projeye katkıda bulunabilirsiniz. Bu yazının yazımı sırasında nessusun veritabanında 756 adet eklenti vardı!
Yaklaşık olarak 20 eklenti ailesi vardır : arka kapılar, servis önleme, uzaktan root hakkı elde etme, ... Daha önce de söylenildiği gibi, her eklenti neyin yanlış olduğunu ve nasıl düzeltilebileceğini raporlamaktadır.
Eklentiler hakkında sözederken, CVE (Common Vulnerabilities and Exposures, Bilinen Güvenlik Açıkları) dan sözetmemek olmaz. Bu, http://cve.mitre.org adresinde bulabileceğiniz, çok büyük bir veritabanıdır. Burada bilinen tüm güvenlik açıkları hakkında bilgi edinebilirsiniz. Bilgi paylaşımında bulunabileceğiniz müthiş yerlerden birisidir. Bu sanaldoku yöresi, ziyaret etmeniz gereken yerlerden birisidir.
Tabii ki, nessusun eklentileri hakkında birçok şey söylenebilir, bunun için kitap bile yetmez. Nasıl çalıştıklarını ve nasıl yazıldıklarını öğrenmenin yolu /usr/local/lib/nessus/plugin dizinine gidip incelemektir. Böyle müthiş bir iş başardıkları için Renaud Deraison ve diğer katkıda bulunanlara tekrar teşekkür.

Georges Tarbouriech
Türkçe'ye çeviri: Erdal MUTLU
Kaynak: http://www.linuxfocus.org

Henüz yorum yapılmamış