Bilişim Enstitüsü
Bu topluluk için Kalıcı Uri
Enstitü, insan gelişiminin tüm boyutlarında bilgi teknolojileri uygulamalarına yönelik lisansüstü düzeyde eğitim vermekte ve araştırma yapmaktadır.
Gözat
Konu "Ağ paket yakalama sistemleri" ile Bilişim Enstitüsü'a göz atma
Sayfa başına sonuç
Sıralama Seçenekleri
-
ÖgeNetwork packet capturing for Windows operating system(Bilişim Enstitüsü, 2017) Aydın, Yücel ; Özdemir, Enver ; 707141011 ; Bilgi Güvenliği Mühendisliği ve Kriptografi ; Cybersecurity Engineering and CryptographyGünümüzde uygulama seviyesinde yapılmış birçok ağ güvenlik sistemi bulunmaktadır. Bunlar saldırganı tespit etmek, saldırı trafiğinin yoğunluğunu tespit etmek gibi birçok amaç için tasarlanmıştır. Yapılan her uygulamada ilk aşama bilgisayara veya ağa gelen trafiğin tespit edilmesidir. Bunun hayata geçirilmesi için ise trafiği oluşturan paketlerin elde edilmesi şarttır. Elde edilen paketlerin içeriği yorumlanarak gerekli önleme yöntemleri ortaya koyulmaktadır. Bu çalışma Windows işletim sistemlerindeki ağ trafiğini elde edebilecek bilgileri içermektedir. Çalışmanın ikinci bölümünde Windows sistemlerindeki ağ trafiğini anlayabilmek için sistemi oluşturan işletim sisteminin içerisindeki yapılar incelenmiştir. Üçüncü bölümde ise bugüne kadar farklı işletim sistemlerinde ağ trafiğinin elde edilmesi için yapılmış uygulamaların detayları verilmiş ve Windows sistemlerinde uygulanan ve birçok kullanıcı tarafından tercih edilen ağ analiz programları tarafından kullanılan WinPcap alt yapısı incelenmiştir. Dördüncü kısımda Ağ paketlerinin yakalanması simule edilerek hazırlanan analiz ve değerlendirmelere yer verilmiştir. Sonuç kısmında ise Windows sistemlerinde kullanılacak C++ programlama dili ile yazılmış uygulamanın detayları ve ileride kullanım şekilleri açıklanmıştır. Bir ağ içerisinde bilgisayarların birbirleriyle irtibat kurup iletişim sağlaması ağ paketleri sayesinde olmaktadır. Ağ paketi, kullanıcı veya işletim sistemi tarafından oluşturulmuş ham bilginin yada verinin iletişimin sağlanması için gerekli ek bilgilerin eklenmesiyle oluşmaktadır. Bilgisayara dış dünyadan gelen her türlü girdi bir donanım sayesinde bilgisayara giriş yapmaktadır. Paketler de aynı şekilde bir bilgisayara ağ kabloları vasıtasıyla gelmekte ve ağ kartından işletim sistemine giriş yapmaktadır. Ağ kartının kilobyte seviyesinde hafızası bulunması nedeniyle paketler ağ kartı tarafından ön tespit yapıldıktan sonra işletim sistemi hafızasına kaydedilmektedir. Ön tespit olarak ağ kartı sadece paketin içerisinde bulunan ethernet bilgilerini alıp gerekli hash algoritmasıyla işleyip elde ettiği bilgi ile ethernet bilgilerinin son hanesi olan frame kontrol bilgisiyle karşılaştırma yapmaktadır. Uygun olmayan paketleri ağ kartı işletim sistemine iletmeden elemektedir. Windows işletim sistemi diğer işletim sistemlerinin aksine kullanıcının yapabileceği işlemleri kısıtlamaktadır. Diğer işletim sistemlerinde kullanıcılar işletim sistemini oluşturan çekirdek ile doğrudan etkileşim sağlamaktadır. Bu özellik doğal olarak diğer işletim sistemlerinde ağ paketleri ağ kartından çekirdeğe geçtiğinde kullanıcılar tarafından direkt olarak elde edilip gerekli analizler yapılabilmektedir. Windows işletim sisteminde ise işlem bu kadar basit değildir. Windows işletim sistemi kullanıcı bölgesi ve çekirdek bölgesi olack şekilde iki ana yapıya ayrılmıştır. Normal kullanıcılar sadece kullanıcı bölgesinde yetki verilen işlemleri yapmaktayken çekirdek ile direk etkileşimleri bulunmamaktadır. Eğer kullanıcıların veya kullanıcı bölgesinde işleyen bir uygulamanın çekirdek ile etkileşim sağlaması gerekli ise çekirdek içerisinde bu etkileşimi sağlayacak bir sürücünün bulunması gereklidir. Sürücü çekirdek içerisinde gerekli işlemleri gerçekleştirirken kullanıcı bu sürücü ile yine bu etkileşim için programlanmış dinamik bağlantı kütüphaneleri (dbk) yardımıyla gerekli irtibatı sağlamaktadır. Her ağ kartı işletim sistemi içerisinde kendisine has olacak şekilde bir ağ sürücüsü ile birlikte bulunur. Bu sürücü vasıtasıyla ağ kartı işletim sistemine gerekli işlemleri yaptırır. Ağ kartı gelen paketleri sistem hafızasına kopyaladıktan sonra ağ sürücüsünü uyararak yeni bir paketin geldiğini haber verir. Ağ sürücüsü ise üst seviye sürücülerinden ağ paketlerini kullanacak tüm sürücülere paketin bulunduğu bilgisini verir ve üst sürücüler gerekli işlemleri yaparlar. Ağ paketlerinin yakalanıp analiz yapılması gerekliliğinde ise uygulama geliştiriciler işletim sistemi çekirdeğine bir adet paket yakalama sürücüsü yerleştirir ve ayrıca kullanıcı seviyesindeki uygulamaların bu sürücü ile irtibatını sağlamak için yeni kütüphaneler geliştirirler. Ağ paket yakalama sistemlerinin hızı ve doğruluğu aynı zamanda analiz yapacak uygulamaları doğrudan etkilerler. Çünkü; elde edilemeden geçen herhangi bir ağ paketi içerisinde sisteme zarar verecek içerik bulundurabilir ve bu paketten de analiz sisteminin haberi olmayabilir. Ağ paket yakalama sistemlerinin performansı sistem içerisinde kullanılan tamponlama ve filtremele sistemleriyle doğrudan ilgilidir. İyi bir tampon yada filtre kullanılmaz ise bir çok ağ paketi yakalanmadan doğrudan işletim sistemine iletilmiş olmaktadır. İlk zamanlarda tampon olarak iki adet sabit boyutlu tampon çekirdek içerisine yerleştirilmiştir. Ağ kartından gelen paketler önce bir tamponda depolanmıştır ve bu tampon dolduğu zaman tüm veriler diğer tampona aktarılmıştır. Kullancı seviyesindeki uygulamalar ise doğrudan bu tampon içerisindeki bilgilere ulaşmıştır. Ancak bu sistem günümüz ortamında pek uygulanabilir olmamıştır. Günümüzde kullanılan ağ trafiği çok hızlı ve yoğun bir şekilde işlemektedir. Bir saniye içerisinde milyonlarca paket sistem içersine gelmek de veya sistemden uzaklaşmaktadır. Eğer kullanıcı seviyesindeki uygulama gelen paket hızı kadar bir hızla paketleri tampon içerisinden alamazsa ilk tampon içerisine gelen yeni paketler yakalanamamaktadır. Bu dezavantajı gidermek için sirküler tampon sistemi geliştirilmiştir. Bu sistem de sadece bir adet tampon kullanılmış ve bu tamponun boyutu dinamik olarak değiştirilmiştir. Ağ kartından gelen paketler olduğu sürece tampon boyutu artarken kullanıcı seviyesindeki uygulamalar paketleri aldıkça boyut azalmıştır. Ağ paket yakalama sistemlerindeki diğer bir kritik unsur ise filtreleme sistemidir. Çoğu kullanıcı veya uygulama ağ paketlerini analiz ederken tüm paketleri yakalamak istemez. Sadece gerekli olan paketlerin yakalanması sistem için yeterlidir. Bu ayırt etme işlemi ise filtreleme sistemiyle mümkün olmaktadır. Yakalanacak paket sayısının azaltılması vasıtasıyla ayrıca tampon içerisinde yerleştirilecek paket sayısı azaltılmak da ve tamponlama sistemi de rahatlatılmaktadır. Filtreme sistemi kullanıcı uygulamasının hangi paketlerin yakalanması gerektiğini tanımlamasıyla başlar. Bu tanımlama gerekli kütüphaneler vasıtasıyla çekirdek içerisindeki sürücüye iletilir. Sürücü ise ağ paketleri daha ağ kartı içerisindeyken bu filtreleme işlemini yapar ve sadece kullanıcı uygulamasının istediği paketler tampon içersine kopyalanır. Açık kaynak işletim sistemlerinde geliştirilen birçok ağ paket yakalama sistemi bulunmaktadır. Ancak günümüzde birçok kullanıcı ve şirketin kullandığı normal ve server bilgisayarlarının çoğu Windows işletim sistemini içermektedir. Bu sebepten dolayı Windows işletim sistemi için de bir ağ paket yakalama sistemi gerekliliği doğmuştur. Yapılan çalışmalar sonucunda günümüzde de bir çok uygulamanın tercih ettiği WinPcap ağ paket yakalama kütüphanesi geliştirilmiştir. Wireshark, TCPDump vb. Birçok popüler uygulama da kendi sistemlerinde bu kütüphaneyi kullanmaktadır. WinPcap kütüphanesi Fulvio Rises ve Loris Degionani isimli iki italyan bilim insanı tarafından geliştirilmiştir ve daha sonraki yıllarda optimize çalışması yapılmıştır. WinPcap kütüphanesi üç ayrı ancak birbiriyle irtibatlı parçalardan oluşmaktadır. Bu parçalar Çekirdek Sürücüsü, Packet.dll ve Wpcap.dll parçalarıdır. Çekirdek sürücüsü kullanıcı tarafından tanımlanmış filtreye uygun olarak filtreleme yapıp kullanıcının istediği paketleri sirküler tampon içerisine kopyalamaktadır. Aynı zamanda işlem kolaylığı ve hız sağlamak maksadıyla sürücü içersinde bir istatiksel makine tutmaktadır. Bu makine gelen ve giden paketlerle ilgili istatiksel bilgileri kullanıcının istemesi durumunda derhal sağlamak maksadıyla hazır etmektedir. Diğer bir sürücü görevi ise gelen giden tüm paketlerinin içeriği ile ilgili tüm bilgileri kullanıcı seviyesine çıkmadan direkt olarak hardisk içerisine kaydetmektedir. Packet.dll unsuru ise Windows işletim sistemi içerisindeki kullanıcı bölgesi ile çekirdek bölgesi arasında irtibatı sağlamaktadır. Çekirdek içerisindeki sürücüye gerekli direktifleri göndererek kullanıcı uygulamasının istediği işlemleri gerçekleştirmektedir. Wpcap.dll unsuru üst seviye işlemler için geliştirilmiş bir kütüphanedir. Çekirdek tarafından kullanılacak filtrenin oluşturulması, kullanıcı uygulamaları ile irtibatların sağlanması vb. işlemler bu kütüphane tarafından sağlanmaktadır. Windows işletim sisteminin incelenmesinin yanında çalışmanın üçüncü bölümünde diğer işletim sistemlerindeki ağ paket yakalama sistemleriyle ilgili çalışmalar incelenmiştir. Günümüzde Windows işletim sisteminin yaygın olarak kullanılmasının yanında bireysel kullanım bazında mobil sistemlerin gelişmesiyle Android işletim sistemlerinin kullanılması da artmıştır. Anroid işletim sistemlerinde ağ paketinin yakalanması ile ilgili çalışmalar yağılmıştır. Bu çalışmalar Android işletim sisteminin linux tabanlı bir işletim sistemi olması sebebiyle açık kaynak işletim sistemleriyle ilgili geliştirilmiş sistemler kullanılmıştır. Linux işletim sisteminde ağ paketi yakalamak konusunda popüler olan libpcap kütüphanesinin Android işletim sistemine uyarlanması çalışmaları yapılmıştır. LibPcap kütüphanesinin C programlama dili ile yazılmış olması ve Android işletim sisteminde Java programlama dili kullanımı geliştiriciler için problemler çıkartmıştır. Bu problemin aşılması ise Android işletim sistemlerinde kullanılan programlama dilleri arasında dönüşüme imkan sağlayan Java Native Interface kullanılmıştır. Yapılan çalışma ile aynı zamanda gerekli test çalışmalarının yapılabilmesi için C++ programlama dili kullanılarak WinPcap kütüphanesi tabanlı bir uygulama geliştirilmiştir. Geliştirilen uygulama ile açık kaynak işletim sistemlerindeki ağ paket yakalama sistemleri karşılaştırılmış ve gerekli sonuçlar ilgili bölümlerde verilmiştir. Genel olarak bakıldığında Windows işletim sistemi için geliştirilen WinPcap kütüphanesi son optimize çalışmalarıyla birlikte açık kaynak sistemlerine göre üstünlük göstermekte ancak açık kaynak sistemlerinde sistem geliştirilmesi için birçok araştırma yapıldığı ve yapılacağı görülmektedir. Geliştirilen uygulama Windows işletim sisteminde simule edilmiş ve 10 Ghz kadar ağ trafiği altında çalışabilirliği ve kullandığı kaynak miktarı gözlenmiştir.