Ağ trafiği dinleme araçları

Wireshark bilgisayarımızın ağ üzerinden başka ağ elemanları ve başka bilgisayarlarla yaptığı paket alışverişini gerçek zamanlı olarak kaydederek incelememize olanak tanır. Wireshark genellikle hata ayıklama için kullanılsa da bir protokolün eğitim amaçlı olarak nasıl çalıştığını öğretmek ya da aşina olunmayan bir programın çalışma dinamiğini anlamak için de ara ara kullanılmaktadır.

Wireshark direkt olarak Ethernet frame seviyesinde bilgisayardan çıkan veya bilgisayara giren raw (çıplak) paketleri elde ettiği için program çıktısı dış dünya tarafından nasıl görünüyorsa Wireshark tarafından da o şekilde gösterilir ve doğru analize olanak tanınır. Wireshark paketleri frame seviyesinden yakalayabilmek için ağ kartının (NIC - Network Interface Card) sürücüsüne dahil olmaktadır. Windows üzerine link seviyesinde paketleri yakalayabilmek için Wireshark’a ek olarak WinPcap adlı kütüphanenin de kurulması gerekmektedir.

Wireshark’ı başlattığınızda, bir açılış ekranı geçerli cihazınızdaki kullanılabilir ağ bağlantılarını listeler. Her birinin sağında görüntülenen, o ağdaki canlı trafiği temsil eden bir EKG tarzı çizgi grafiktir.

Wireshark ile paket çekmeye başlamak için:
  1. Bir veya daha fazla şebeke seçin, menü çubuğuna gidin, ardından Capture’yı seçin.

wireh.jpg

 

2. Wireshark Capture Interfaces penceresinde, Start öğesini seçin.

ad.jpg
3.  Çekimi kaydetmek için Dosya> Farklı Kaydet’i seçin veya Export’i seçin.

asdf.jpg

4. Yakalamayı durdurmak için, Ctrl + E tuşlarına basın. Veya, Wireshark araç çubuğuna gidin ve köpekbalığı yüzgecinin yanında bulunan kırmızı Durdur düğmesini seçin.

asdfs.jpg

Paket İçeriğini Görüntüleme ve Analiz Etme
Yakalanan veri arayüzü üç ana bölümden oluşur:

  • Paket listesi bölmesi (üst kısım)
  • Paket ayrıntıları bölmesi (orta bölüm)
  • Paket bayt bölmesi (alt kısım)

sdfghd.jpg

Paket listesi

Pencerenin en üstünde bulunan paket listesi bölmesi, etkin yakalama dosyasında bulunan tüm paketleri gösterir. Her paketin, bu veri noktalarının her biriyle birlikte, kendi sırası ve kendisine atanmış bir numarası vardır:

No: Bu alan, hangi paketlerin aynı konuşmanın parçası olduğunu gösterir. Bir paket seçinceye kadar boş kalır.

Zaman: Paketin ne zaman çekildiği zaman damgası bu sütunda görüntülenir. Varsayılan biçim, bu özel yakalama dosyasının ilk oluşturulduğundan bu yana saniye veya kısmi saniye sayısıdır.

Kaynak: Bu sütun paketin geldiği adresi (IP veya diğer) içerir.

Hedef: Bu sütun paketin gönderildiği adresi içerir.

Protokol: Paketin protokol adı, TCP gibi, bu sütunda bulunabilir.

Uzunluk: Bayt cinsinden paket uzunluğu bu sütunda görüntülenir.

Bilgi: Paket hakkında ek bilgi burada sunulmaktadır. Bu sütunun içeriği, paket içeriğine bağlı olarak büyük ölçüde değişebilir.

Saat biçimini daha yararlı bir şeyle değiştirmek için (günün gerçek saati gibi), Görünüm (View)> Saat Görüntüleme Biçimi’ni (Time Display Format) seçin.

1qw.jpg

Üst bölmede bir paket seçildiğinde, No. sütununda bir veya daha fazla simge göründüğünü fark edebilirsiniz. Açık veya kapalı parantezler ve düz bir yatay çizgi, bir paketin mi yoksa bir paket grubunun ağdaki aynı ileri-geri konuşmanın parçası olup olmadığını gösterir. Kesik bir yatay çizgi bir paketin konuşmanın bir parçası olmadığını gösterir.

dfghj.jpg

Paket Detayları

Ortada bulunan, seçilen paketin protokollerini ve protokol alanlarını daraltılabilir bir biçimde sunar. Her seçimi genişletmenin yanı sıra, belirli ayrıntılara göre bireysel Wireshark filtreleri uygulayabilir ve istediğiniz öğeyi sağ tıklatarak protokol türüne göre veri akışlarını takip edebilirsiniz.

rt.jpg

Paket Baytları

Alt kısımda, seçilen paketin ham verilerini onaltılık bir görünümde gösteren paket bayt bölmesi bulunur. Bu hex dökümü, veri ofsetinin yanında 16 onaltılık bayt ve 16 ASCII bayt içerir.

Bu verinin belirli bir bölümünü seçmek, paket ayrıntıları bölmesinde ilgili bölümünü otomatik olarak vurgular ve bunun tersi de geçerlidir. Yazdırılamayan baytlar bir süre ile temsil edilir.

5676.jpg

Bu verileri onaltılık yerine bit biçiminde görüntülemek için, bölmede herhangi bir yere sağ tıklayın ve bit olarak seçin.

89.jpg

Wireshark Filtreleri Nasıl Kullanılır ?

Yakalama filtreleri, Wireshark’a yalnızca belirtilen kriterleri karşılayan paketleri kaydetmesini söyler. Filtreler, yalnızca belirli paketlerin gösterilmesi için oluşturulmuş bir yakalama dosyasına da uygulanabilir. Bunlar ekran filtreleri olarak adlandırılır.

Wireshark, varsayılan olarak çok sayıda önceden tanımlanmış filtre sağlar. Bu mevcut filtrelerden birini kullanmak için, adını Wireshark araç çubuğunun altında bulunan Ekran filtresi girişine uygula alanına veya karşılama ekranının ortasında bulunan bir ekran filtresi gir alanına girin.

Örneğin, TCP paketlerini görüntülemek istiyorsanız, tcp yazın. Wireshark otomatik tamamlama özelliği, yazmaya başladığınızda önerilen adları gösterir ve aradığınız filtre için doğru takma adın bulunmasını kolaylaştırır.

9.jpg

Bir filtre seçmenin başka bir yolu, giriş alanının sol tarafındaki yer imini seçmektir. Filtre eklemek, kaldırmak veya düzenlemek için Filtre İfadelerini Yönet veya Ekran Filtrelerini Yönet’i seçin.

10.jpg

Geçmiş açılan liste listesini görüntülemek için giriş alanının sağ tarafındaki aşağı oku seçerek önceden kullanılmış filtrelere de erişebilirsiniz.

11.jpg

Yakalama filtreleri, ağ trafiğini kaydetmeye başlar başlamaz uygulanır. Bir ekran filtresi uygulamak için, giriş alanının sağ tarafındaki sağ oku seçin.

12.jpg

Wireshark Renk Kuralları

Wireshark’ın yakalama ve görüntüleme filtreleri, hangi paketlerin ekranda kaydedildiğini veya ekranda gösterildiğini sınırlarken, renklendirme işlevi işleri bir adım öteye götürür: Farklı renk tonları temelinde farklı paket türleri arasında ayrım yapabilir. Bu, kaydedilmiş bir kümedeki belirli paketleri, paket listesi bölmesinde satır rengine göre hızlı bir şekilde bulur.

13.png

Wireshark, yaklaşık 20 varsayılan renklendirme kuralına sahiptir, her biri düzenlenebilir, devre dışı bırakılabilir veya silinebilir. Her rengin ne anlama geldiğiyle ilgili genel bakış için Görünüm> Renklendirme Kuralları’nı seçin. Ayrıca kendi renk tabanlı filtrelerinizi de ekleyebilirsiniz.

14.jpg

Wireshark İstatistikleri

Diğer kullanışlı metrikler İstatistikler açılır menüsünde bulunabilir. Bunlara, yakalama dosyası hakkında boyut ve zamanlama bilgilerinin yanı sıra, HTTP isteklerinin dağıtımını yüklemek için paket konuşma arızalarından başlayarak değişen düzinelerce çizelge ve grafik dahildir.

15.jpg

Ekran filtreleri, bu istatistiklerin çoğuna arayüzleri üzerinden uygulanabilir ve sonuçlar, CSV, XML ve TXT dahil olmak üzere ortak dosya formatlarına aktarılabilir.

 
 

TCP/IP nasıl çalışır ?

İnternet, TCP/IP veya İletim Kontrol Protokolü / İnternet Protokolü adı verilen bir protokol kullanarak çalışır. TCP/IP, İnternet’in altında yatan iletişim dilidir. Temel olarak, TCP/IP, bir bilgisayarın veri paketlerini derleyerek ve doğru yere göndererek İnternet üzerinden başka bir bilgisayarla konuşmasını sağlar.

Bilmeyenler için, bazen daha resmi olarak bir ağ paketi olarak adlandırılan bir paket, bir konumdan diğerine iletilen bir veri birimidir. Atomun bir hücrenin en küçük birimi olduğu gibi, bir paket de İnternet üzerinden iletilen en küçük birimdir.

Adında belirtildiği gibi, TCP/IP’ye iki katman vardır. Üst katman olan TCP, büyük miktarlarda veriyi almaktan, paketlere derlemekten ve bunları paketleri yararlı bilgi / verilere dönüştüren diğer bir TCP katmanı tarafından alınma yolunda göndermekten sorumludur.

Alt katman olan IP, bilgi paketlerinin doğru yere gönderilmesine ve alınmasına izin veren çiftin konumsal yönüdür. Bir harita açısından IP düşünürseniz, IP katmanı doğru hedefi bulmak için paket GPS işlevi görür. Bir karayolu üzerinde süren bir arabaya benzer şekilde, her paket, paketleri doğru hedefe iletmeye yarayan bir ağ geçidi bilgisayarından (yoldaki işaretler) geçer.

İnternet yüzeyde bu şekilde çalışır. İnternetin soyutlama katmanlarında yüzeyin altına bir göz atalım.

TCP / IP’ye Gömülü Dört Soyutlama Katmanı

Dört soyutlama katmanı, link katmanı (en düşük katman), Internet katmanı, taşıma katmanı ve uygulama katmanıdır (üst katman).

Aşağıdaki şekilde çalışır:

  1. Bağlantı Katmanı, düğümleri ve sunucuları birbirine bağlamak için kullanılan fiziksel ağ ekipmanıdır.
  2. İnternet Katmanı, ana bilgisayarları birbirine ağlar üzerinden bağlar.
  3. Aktarım Katmanı, tüm ana bilgisayardan ana bilgisayara iletişimi çözümler.
  4. Uygulama Katmanı, ağdaki uygulamalar arasında iletişimi sağlamak için kullanılır.

İngilizce’de, TCP / IP’ye gömülü dört soyutlama katmanı, paketlerin eksiksiz ve doğru yere gönderildiğinden emin olmak için veri paketlerinin, uygulama programlarının ve fiziksel ağ ekipmanının İnternet üzerinden birbirleriyle iletişim kurmasını sağlar.

tcpip

 


 

 

Proxy Cache nedir ve nasıl kullanılır?

Tanım

Proxy önbelleğe alma, bir sunucunun bir kullanıcı ve bir web içeriği sağlayıcısı arasında aracı görevi görmesini sağlar. Bir kullanıcı bir web sitesine eriştiğinde, proxy sunucular asıl sunucu adına yapılan istekleri yorumlar ve yanıtlar. Modern web’in çoğu için bir web servisine gönderilen talepler bir ara sunucu tarafından yerine getirilmektedir. Bu ara veya proxy sunucusu, nasıl kullanılmaları gerektiğini belirlemek için istekleri işler. Proxy sunucuları, işletmelere ağlarını yapılandırma ve koruma sağlarken, kullanıcılara şeffaf bir şekilde ek özellikler sağlar.

Proxy önbelleğe alma, web hizmetlerinin bu kaynakları daha fazla kullanıcıyla paylaşmasına izin veren, proxy sunucunun kendisinde içerik depolayan bir proxy sunucu özelliğidir. Proxy sunucusu, dosyalar, görüntüler ve web sayfaları gibi belgeleri önbelleğe almak için kaynak sunucu ile koordine eder.

Proxy önbelleği nasıl çalışır?

Proxy’ler, kullanıcı ile kaynak sunucu arasında bir ağ geçidi görevi görür ve sunucunun kaynaklarını depolar (veya önbelleğe alır). Kullanıcı bir kaynağa erişmeye çalıştığında, proxy kaynağın yeni bir kopyasına sahip olup olmadığını kontrol eder. Öyleyse, kaynak derhal kullanıcıya iletilir. Olmazsa, kaynak kaynaktan alınır ve aynı anda proxy’ye önbelleğe alınır ve kullanıcıya iletilir.

Adım adım, proxy önbelleğe alma işlemi nasıl çalışır:

  1. Bir kullanıcı, medya, JavaScript veya CSS gibi statik içerik içeren bir web sayfası açar.
  2. Kullanıcının tarayıcısı otomatik olarak bir proxy sunucusuna bağlanır. Bu, dünyanın çeşitli yerlerindeki içerikleri önbelleğe alan bir içerik dağıtım ağı (CDN) olabilir.
  3. Tarayıcı, proxy sunucusundan kaynak ister. Proxy sunucusu yalnızca kaynağa sahip olup olmadığını değil, yeni kaynak olup olmadığını kontrol eder. Kaynak eski veya eksikse, proxy kaynaktan yeni bir kopya alır.
  4. Proxy kaynağı tarayıcıya iletir. Proxy yeni bir kopya almak zorunda kalırsa, kopyayı ileride kullanmak üzere önbelleğe alır.

Bir proxy bir kaynağı yenilediğinde, eski olduğu gibi geri çevrilmesini önlemek için kaynağın “son kullanma tarihini” sıfırlar. Kaynak, belirli bir süre geçinceye kadar olduğu gibi teslim edilir, bu noktada vekil sunucu kaynağı tekrar kontrol eder.

Proxy cache states

Proxy önbelleğinden istenen nesneler üç durumdan birinde bulunabilir: taze, eski veya var olmayan. Bu durumlar, proxy sunucusundaki nesnenin kaynağa göre yaşına ve bulunabilirliğine göre belirlenir.

Fresh objects

Orijinal içerik yerine taze nesneler sunulmaya hazırdır. Tazelik, son kullanma tarihini veya nesnenin maksimum yaşını tanımlayan meta verilerle belirlenir. Tazelik, nesnenin son değişiklik tarihine dayanan bir yaşlanma faktörü kullanılarak da belirlenebilir.

Stale objects

Eski nesneler, artık kullanılmayan önbellek nesnelerdir. Son kullanma tarihi veya yaş sınırını geçen nesnelerin, proxy tarafından sunulmadan önce kaynak sunucudan önbelleğe alınması gerekir. Eski bir nesneyle karşılaştıktan sonra, proxy güncellenen nesneyi kaynak sistemden aynı anda önbelleğe alır ve kullanıcıya gönderir.

Nonexistent objects

Sunucuda bulunan ancak proxy’de bulunmayan nesneler eski nesnelerle aynı prosedürü uygular. Proxy üzerinde bir nesne varsa, ancak sunucuda yoksa, proxy önbelleğe alınmış kopyaya hizmet vermez.

Example of proxy caching (Proxy önbelleğe alma örneği)

MaxCDN gibi CDN’ler, proxy önbelleğe almayı büyük ölçekte gerçekleştirir. Bir kullanıcı MaxCDN tarafından barındırılan statik bir web sitesine eriştiğinde, içerik orijinal web sunucusu yerine doğrudan MaxCDN’nin sunucularından sağlanır. Kullanıcı yalnızca dinamik içerik gerektiğinde veya MaxCDN’nin kopyası eski olduğunda orijinal sunucuya bağlanır.

Proxy önbelleğe alma, işletmelerin web sitelerini hızlı ve kolay bir şekilde yönetmelerini sağlar. CDN’ler veriler üzerinde gerçek zamanlı analizler yapar, dünya genelinde önbelleğe alınmış içeriğin kopyalarını saklar ve kaynak sunucu çevrimdışı olduğunda bile web sitelerini çalışır durumda tutar.

Proxy önbelleğe almanın yararları

  • Proxy önbelleğe alma, işletmelerin web hizmetlerini yönetmelerini ve müşterilerine içerik sunmalarını kolaylaştırır.
  • Kullanıcılar, zaten önbelleğe alınmış dosyaları alarak daha hızlı ve daha güvenilir bir deneyime sahiptir.
  • İşletmeler, müşterilerin içeriğin müşterilere daha hızlı teslim edilmesini sağladığı için daha yüksek müşteri memnuniyeti görüyor.
 

Karşılıklı kimlik doğrulama

Karşılıklı kimlik doğrulama, hem istemcinin hem de sunucunun, gerçek iletişim gerçekleşmeden önce birbirlerinin kimliklerini doğruladığı bir güvenlik işlemidir. Bu kimlik doğrulama işlemi web tabanlı ve çevrimiçi uygulamalarda yaygındır. Bu, istemcilerin yalnızca meşru varlıklar veya sunucularla iletişim kurmasını sağlamak ve böylece sunucular erişmeye çalışan müşterinin meşru bir amacı olduğundan emin olmalarını sağlamaktır.

Karşılıklı kimlik doğrulama, web sitesinden kullanıcıya doğrulama ve iki yönlü kimlik doğrulama olarak da bilinir. Karşılıklı kimlik doğrulama, iletişim ile ilgili herhangi bir işlevi gerçekleştirmeden önce hem sunucunun hem de istemcinin kendi kimliklerini birbirlerine kanıtlamasını gerektirir.

Kimlikler, güvenilir üçüncü şahıslar ve paylaşılan sırlar veya ortak anahtar altyapısı gibi şifreleme yöntemleri kullanılarak kanıtlanabilir.Dolayısıyla, web tabanlı bir karşılıklı kimlik doğrulama sürecinde, iletişim ancak müşteri ve sunucu birbirlerinin dijital sertifikalarına güveniyorsa gerçekleşebilir. Sertifika değişimi Taşıma Katmanı Güvenliği (TLS) protokolü ile yapılır.

Bu sürecin temel özü, hiçbir tarafın kimlikleri kanıtlanana kadar diğerine güvenmemesidir. Bu sadece sunucunun müşterinin kim olduğundan ve müşterinin sunucudan emin olması gerektiğinden emin olması gerektiği anlamına gelir.


Bu, kimliğe bürünme gibi basit saldırılarla güvenliğin tehlikeye girmesini önler.

 

 

HTTP doğrulama metodları nelerdir

HTTP protokolü, web sayfalarına veya API‘lara erişimin sınırlandırılmak istendiği senaryolar için kullanıcının kimliğinin doğrulamasına yardımcı olan ve HTTP Authentication adı verilen mekanizmayı sunmaktadır.

Web sunucu, istemciden erişimi kısıtlanmış bir kaynağa istek geldiğinde Authorization: HTTP Header‘ını kontrol eder. Gelen istekte Authorization: başlığı, yani istemciyi doğrulamak için gerekli bilgiler yoksa veya geçersizse istemciye cevap olarak 401 Unauthorized statü kodu ile birlikte WWW-Authenticate: başlığı ile desteklediği doğrulama tipini de gönderir. Bu noktadan sonra istemci ya kullanıcıya sorarak ya da elindeki bilgilerle doğrulama bilgisini yenileyerek sunucuya yaptığı isteği tekrarlar.

HTTP’de ilgili başlığın Authorization olarak seçilmiş olması gariptir çünkü aslında bu mekanizma ile sağlanmak istenen Authentication olarak bilinen kimlik doğrulama işlemidir. Authorization günümüzde genel olarak yetkilendirme için tercih edilmektedir.

Bilinen en eski doğrulama metodu HTTP Basic Authentication’dır. Bu doğrulama yönteminde tarayıcı sunucudan 401 Unauthorized cevabını aldığında kullanıcıya doğrulama için gerekli bilgileri hepimizin bildiği aşağıdaki ekranla sorar ve kullanıcıdan giriş bekler.

Anlaşılacağı üzere Basic Authentication’da parola sunucuya gönderildiği için bu yöntemin HTTPS olmadan kullanılması parolanın hattı dinleyenlerin eline geçmesine sebep olacaktır. Dolayısıyla HTTPS olmadan bu yöntem kesinlikle kullanılmamalıdır. Parolanın sürekli olarak karşı tarafa gönderilmesi HTTPS ile iletim güvenliği sağlanmış olsa bile riskli kabul edilmektedir. Ek olarak bu yöntemde istemci tarafından oturumum sonlandırılması tanımlanmamıştır. Dolayısıyla bu yöntem genel olarak güvenli değildir.

HTTP Digest Authentication, Basic Authentication’daki parolanın güvensiz ortamda karşı tarafa gönderilmesi problemini çözmek üzere ortaya çıkmıştır. Burada istemci parolanın kendisini göndermek yerine parolanın Digest’ını (Hash) alarak sunucuya gönderir. Parolanın kendisi ya da Hash’i sunucu tarafında da tutulduğu için sunucu isteğin kimden geldiğini doğrulayabilir. Bu yöntemin iletim katmanı şifrelenmemiş bir ortamda kullanılması durumunda kötü amaçlı kişilerin parolayı öğrenemese bile Hash’ini öğrenebileceği öngörülmüştür.

Bu noktada kötü amaçlı kişilerin Replay Attack adı verilen bu yöntemle HTTP istekleri ile birlikte ağı dinleyerek elde ettikleri Hash‘i göndermelerini önlemek için nonce (number used only once) adı verilen ileride de karşımıza çıkacak olan rassal bir sayı kullanılır. Kullanıcı adı ve parolanın Hash‘i alındıktan sonra çıkan sonuç nonce değeri ile birleştirilerek bir kez daha Hash‘lenir ve sunucuya böyle gönderilir. Sunucu da veri tabanında tuttuğu Hash ile nonce değerini Hash‘ler ve sonuçları karşılaştırır.