27.10.10

Network Analiz Araçları

Bitirme projesini birlikte yaptığım Nail Göksel'in network analizi yapan yazılımlarla ilgili yaptığı bir araştırmanın raporunu ekliyorum. Umarım faydalı olur. Bu arada Wireshark ile MSNMS prtokolünü filtreleyip ağı dinlerseniz MSN'e çevrim dışı girenleri de görebiliyorsunuz. Şimdi burada uzun uzun anlatmayacağım, boş vaktim olursa belki anlatırım ama çok da önemli bi bilgi değil sanırım. Biraz boş bir işmiş gibi geliyor bana. İsteyen ç.dışı girsin isteyen ç.içi ne fark eder yani? Ancak mesaj içerikleri de çok net gözüküyor. Bu içeriğin ağda neden şifrelenmeden taşındığı beni düşündürüyor. Bir şehirdeki herkesin msn yazışmalarını dinlemek hiç de zor bir iş değilmiş, onu anladım. Bilgisayarlarımızı bizim için önemli yapan da, güvensiz yapan da ağ bağlantımız, bunu unutmayalım.

1.         GİRİŞ

Network analizi ile ilgili başlıca yazılımlar; network akışı ile ilgili bilgi toplamaya yarayan sniffer programları ve saldırı tespit ve önleme sistemleridir. Network analizi ile ilgili sık kullanılan yazılımlar tespit edilerek, amaçları ve fonksiyonları aşağıdaki gibi listelenmiştir.

2.         MEVCUT YAZILIMLAR

2.1.     Wireshark

Wireshark programı ile, kurulu olduğu bilgisayarın veri giriş/çıkış arayüzleri kullanılarak paket analizi yapılabilir. Aşağıdaki gibi arayüzleri otomatik olarak tespit eder (Şekil  1.1).


Şekil 1.1 Ağ arayüzlerinin görüntülenmesi

Seçilen arayüze ait verileri aşağıdaki gibi canlı olarak görüntülemeye başlar (Şekil  1.2).


 Şekil 1.2 Yakalanan paketlerin görüntülenmesi

Yakalanan paketlerin içerikleri istenildiği takdirde ayrıntılı olarak görüntülenebilmektedir (Şekil  1.3).

  
Şekil 1.3 Paketlerin ayrıntılı analizi

Bunun yanı sıra incelenecek paketler eklenip çıkartılabilmektedir. Yapılan analizler daha sonra incelenmek üzere kaydedilebilmektedir. Kayıt altına alınacak protokol listesi değiştirilebilmektedir (Şekil  1.4)[1].


Şekil 1.4 Desteklenen Protokoller

2.2.     Snort

Snort dünya üzerinde birçok kullanıcısı bulunan bir saldırı tespit ve önleme sistemidir. Snort'un fonksiyonları arasında, paket izleme, günlük kaydı oluşturma, saldırı tespit ve önleme bulunmaktadır [2].


Şekil 1.5 Snort

2.3.     Ipscan

IPSCAN programı temel olarak aşağıdaki fonksiyonları yerine getirir;
Network üzerindeki cihazlara (bilgısayar, yazıcı vs..) erişilip erişilemediğini kontrol eder, bunun için aşağıdaki metodları kullanır.

          ICMP echo paketlerini kullarak network cihazının varlğını kontrol eder.
          Network cihazının portlarına UDP paketleri göndererek herhangi bir cevap alınıp alınamadığını kontrol eder.
          TCP 80 portu üzerınden bağlantı kurmaya çalışır [3].


Şekil 1.6 Ipscan arayüzü

IPSCAN programı kullanılacak erişim yönteminin seçilebildiği, açık portların tespit edilebildiği ve sonuçların kaydedilebildiği bir programdır.


Şekil 1.7 Analiz sonuçları

3.         SONUÇ VE ÖNERİLER

İncelenen mevcut yazılımlar göz önüne alındığında, proje konusu olması düşünülen yazılımın özellikleri aşağıdaki gibi listelenmiştir.

          Protokoller arası seçim yapılabilecektir.
          Canlı olarak seçili protokollere ait paketler görüntülenebilecektir.
          Paket içerikleri ayrıntılı olarak görüntülenebilecektir.
         Sonuçlar kayıt altına alınabilecektir.
         Seçilen ip aralığındaki ağı tarayarak erişilebilir durumdaki cihazları listeleyip, istenildiğinde kayıt altına alınabilecektir.

4.         KAYNAKLAR

23.10.10

Mevlana'dan 7 Öğüt



Cömertlik ve yardım etmede akarsu gibi ol,

Şevkat ve merhamette güneş gibi ol,

Başkalarının kusurunu örtmede gece gibi ol,

Hiddet ve asabiyette  ölü gibi ol,

Tevazu ve alçak gönüllülükte toprak gibi ol,

Hoşgörürlükte deniz gibi ol,

Ya olduğun gibi görün, ya göründüğün gibi ol.









Seven advice of RUMI :
In generosity and helping others be like a river ,
In compassion and grace be like a sun ,
In concealing other's faults be like night, 
In anger and fury be like dead ,
In modesty and humility be like earth ,
In tolerance be like a sea ,
Either exist as you are or be as you look. 





20.10.10

PMD (Açık Kaynak Kodlu Kod Analiz Aracı)

Mart 2010 tarihinde hazırladığım bir yazıyı paylaşmak istiyorum. 

Doğrulama ve test yazılım geliştirme sürecinin önemli bir parçasıdır. Testin kalitesi yazılımın kalitesiyle paralellik sergiler. Bu süreçte kullanılabilecek bir araç olarak PMD'den nasıl faydalanıldığı kısaca aşağıda anlatılmıştır.

PMD java için yazılmış açık kaynak kodlu kod analiz aracıdır. 

http://sourceforge.net/projects/pmd/files/ adresinden indirilebilmektedir. Bu adreste JDeveloper, Eclipse, Netbeans gibi çeşitli IDE’ler için uygun indirme yapılabilmektedir. Ben Netbeans üzerinde çalıştığım için Netbeans versiyonunu indirdim. Daha sonra eklentiyi IDE’me kurdum. Bu işlemi Tool>Plugins>Downloaded>Add Plugins..>pmd.nbm adımlarını izleyerek yaptım. Eklentiyi kurduktan sonra bir projeye sağ tıkladığımda Tools bölümünden Run PMD çalıştırılarak ya da Ctrl+Alt+P kısayoluyla çalıştırılabilmektedir.


Şekil 1

PMD’nin kodu analiz ederken hangi kriterlere bakacağını da ayarlamamız mümkün. Buna göre kodun şu şu özelliklerine bakılsın, şunlara bakılmasına gerek yok şeklinde bir ayarlama yapılabiliyor. Aynı zamanda eski ayarların saklanıp tekrar kullanılması, farklı senaryolar için farklı ruleset’lerin kullanılması mümkün. İlk önce Tools>Options>Miscallaneous>PMD penceresini açılır.(Şekil-2)


Şekil 2
Buradan “Manage Rules” butonuna basıldığında Rule editor tablosu gelir. Buradan rule’lar kullanıcı tarafından belirlenir. “>>” tuşu ile tüm rule’ların yüklenmesi de sağlanabilir.


Şekil 3
Kuralları bu şekilde ayarladıktan sonra artık kodları test edebiliriz. Test işlemi için yaz stajında yazdığım “Çoklu Server Client” programımı seçtim. Bu program ağ üzerinden bilgisayarların haberleşmesini sağlayan, aynı bilgisayarda birden fazla server ve client oluşturulmasına imkan veren bir programdır. Run PMD yapılınca PMD 128 adet uyarı verdi. Bunlardan biri de EmptyCatchBlock hatasıydı. Hatanın yanında açıklaması var. Daha detaylı bir
açıklama ve kod örneğine “Rule editor” penceresinde hata seçildiğinde ulaşılabilmektedir. Bu kadar çok uyarı çıkmasının nedeni tüm kuralları geçerli kılmam oldu.


Şekil 4

Şimdi de daha önceden hazırlanmış bir ruleset’in kullanılmasında bahsedeceğim. Bu sefer Options Penceresinden (Bkn Şekil-2) Manage rulesets butonuna basıyoruz. Add ruleset butonuna basarak bir xml dosyası yüklüyoruz.(Bkn Şekil-5) Bu dosyada kural ayarlarımız mevcut. Bu xml dosyasını kendimiz değiştirebiliyor, ihtiyaca göre edit edebiliyoruz. Ya da daha önceden başkalarının yazdığı bir ruleset’i kullanabiliyoruz. Aşağıda kullandığım ruleset’in içi gözükmektedir.

<?xml version="1.0" ?>
- <ruleset name="Custom ruleset" xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Imagine PMD Rule Set</description>
<rule ref="rulesets/basic.xml" />
<rule ref="rulesets/codesize.xml" />
<rule ref="rulesets/clone.xml" />
<rule ref="rulesets/coupling.xml" />
<rule ref="rulesets/finalizers.xml" />
<rule ref="rulesets/imports.xml" />
<rule ref="rulesets/logging-java.xml" />
<rule ref="rulesets/logging-jakarta-commons.xml" />
<rule ref="rulesets/naming.xml" />
<rule ref="rulesets/optimizations.xml" />
<rule ref="rulesets/strings.xml" />
<rule ref="rulesets/sunsecure.xml" />
<rule ref="rulesets/unusedcode.xml" />
- <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
- <properties>
<property name="reportLevel" value="8" />
</properties>
</rule>
- <rule ref="rulesets/strictexception.xml">
<exclude name="SignatureDeclareThrowsException" />
</rule>
</ruleset>


Şekil 5

İnternetten indirdiğim custom ruleset ile projemde tekrar test başlattığımda bu sefer bana 26 uyarı verdi.(Bkn Şekil-6)


Şekil 6
Bu uyarıları düzelterek daha kaliteli bir program oluşturmak mümkün. Projenin tamamına test uyguladım ancak class’lara tek tek uygulamak da mümkün. Hatalarımı göstermesi bakımında benim için çok yararlı oldu. Anlayamadığım hatalarda açıklamalara ve örnek kodlara bakmak da tecrübe kazandırdı. Bu sayede ileride yazdığım programlarda günden güne daha az hata mesajı alacağımı düşünüyorum.
Related Posts Plugin for WordPress, Blogger...