[TR] Deep Packet Inspection Nedir?

Anıl Çelik
5 min readOct 1, 2020

Herkese merhaba. Bu yazımda “Deep Packet Inspection / Derinlemesine Paket İnceleme” kavramından bahsedeceğim.

Deep Packet Inspection’a Girmeden Önce

TCP/IP (Transmission Control Protocol/Internet Protocol), bir network içerisinde bulunan paketlerin veya daha genel olarak paketlerden meydana gelen verilerin networkler arasında gezinebilmesini sağlayarak istemci veya sunucu tarafından gönderilmek istenen paketin doğru adrese ulaşmasını sağlamak amacıyle tasarlanmış bir protokoldür. Internet Protocol (IP), gönderilecek verinin ulaştırılması gerektiği IP Adresinin elde edilmesinden, Transmission Control Protocol (TCP) ise gönderilecek olan bu verinin iletiminden sorumludur.

TCP/IP protokollerinin işlevlerini fiziksel olarak gerçekleştiren, yani gönderilmekte olan verinin networkler arası iletimini sağlayan cihaz ise Router olarak adlandırılmaktadır. Herhangi bir network içerisinde yer almakta olan routerlar, bağlantının hızlı bir şekilde gerçekleştirilebilmesi için bir başka adrese gönderilmek için kendilerine iletilmekte olan paketleri olabildiğince hızlı bir şekilde iletmelidirler, bunu da üzerlerinden geçen paketlerin sadece “Destination Address / Hedef Adres” ine bakarak gerçekleştirmektedirler. Routerların kullanım amaçları TCP/IP modelini baz alarak sadece bununla kısıtlıdır.

Packet Inspection Metodolojileri

  1. Shallow Packet Inspection (SPI) / Yüzeysel Paket İnceleme

Temel olarak network içerisinde giden bir paketin header bilgisine bakarak Sender & Receiver IP Adress ve Port numaraları ile paketin doğru adrese yönlendirilmesini, herhangi bir şüpheli veya zararlı paketin tespit edilmesini ve paketin statik analizinin yapılmasını sağlayan inceleme çeşididir. Ayrıca, SPI gönderilmekte olan paketin gizliliğini korumaktadır ve gönderilmekte olan paketin içeriğini asla göstermemektedir. Son olarak, SPI sonraki maddelerde bahsedecek olduğumuz diğer iki metodoloji de dahil olmak üzere üçünün arasında en light-weight olan metoddur ve Data Link Layer & Physical Layer’da gerçekleştirilmektedir.

2. Medium Packet Inspection (MPI)

Network içerisine yerleştirilen ve middle-box adı verilen intermediary nodeları kullanarak, bir cihaz üzerinde çalışan çeşitli uygulamalarla data payload’un bazı kısımları da dahil olmak üzere header bilgilerinin incelenebildiği metoddur ve son olarak Transport Layer, Network Layer, Data Link Layer ve Physical Layer’da gerçekleştirilmektedir.

3. Deep Packet Inspection (DPI) / Derinlemesine Paket İnceleme

Deep Packet Inspection’a Giriş

Yazının başında bahsetmiş olduğumuz üzere, TCP/IP üzerinden gönderilmekte olan bir paket veya veri direkt olarak router üzerinden geçer ve routerlar gönderilmekte olan bu veri router’a iletilen Destination Address ile hedefe ulaştırılmaktadır. Her ne kadar routerların temel amacı veri iletimini en hızlı şekilde gerçekleştirmek olsa da, bir router istenildiğinde sadece veriyi iletmekten daha fazlasını yapabilir; çünkü gönderilmekte olan veri network dışına çıkarken ilk olarak router üzerinden geçmektedir ve router bu verinin içeriğini görüntüleme olanağına sahiptir. Tam da bu noktada, Deep Packet Inspection / Derinlemesine Paket İnceleme (DPI) yöntemi gelmektedir.

Az önce bahsetmiş olduğumuz Shallow Packet Inspection (SPI)’ı ele aldığımızda, bu metodun paketlerin yönlendirilmesi, network içerisinde olabilecek herhangi istenmeyen bir davranışın veya trafiğin tespit edilmesi ve statik analiz için kullanıldığından söz etmiştik. Deep Packet Inspection (DPI)’da ise, paket üzerinde sadece basit incelemeler yapmak yerine, diğer paket inceleme metodlarına ek olarak OSI modelindeki tüm layerları, özellikle de Application Layer’ı ve gönderilmekte olan paket içerisindeki Data/Payload bilgisini inceleyerek daha derinlemesine bir inceleme sağlamaktadır.

OSI Layers

DPI’ın sağladığı imkan olan tüm layerlarda gerçekleştirilebilen inceleme kavramını biraz daha açacak olursak, DPI gönderilmekte olan bir paketin Header ve Data/Payload bilgileri üzerinde inceleme yaparak o gönderilmekte olan bu pakete dair bütün bilgilerin elde edilmesini sağlar. Bununla birlikte; gönderilmekte olan bu paket kategorize edilebilir, gönderimi yavaşlatılabilir/tamamen bloke edilebilir veya başka bir hedefe gönderilebilir.

Standart IPv4 Paketi

Farklı bakış açılarından bakıldığında DPI tekniği bazı durumlarda olumlu etki sağlasa da bazı durumlarda ise olumsuz etkiler yaratabilir:

  • Olumlu etkilere örnek olarak, DPI tekniği bir kurum içerisinde kullanıldığında, bu kuruma ait trafik incelenerek kurumu hedef alan bir zararlı yazılımın veya zararlı trafiğin tespiti yapılabilir (IDS/IPS), kuruma ait internet trafiği örneğin network içerisinde yüksek öncelik gerektiren paketlerin daha hızlı gönderilmesi gibi istenilen şekilde düzenlenebilir.
  • Olumsuz etkilere örnek olarak, bir kişinin, bir grubun veya bir kurumun ağı üzerinde gerçekleştirilen DPI işlemi sonucunda elde edilecek bütün detaylı internet trafiği verisi sonucunda hedef alınan tarafa dair gizlilik ve mahremiyet kavramları ortadan kalkacaktır. Dolayısıyla DPI’ın olumsuz kullanımına Eavesdropping saldırılarını rahatlıkla örnek verebiliriz. İkinci bir örnek olarak, bu işlem bir Internet Service Provider (ISP) tarafından gerçekleştirildiğinde, o ISP’ye bağlı bütün kullanıcılara bazı bağlantı kısıtlamaları getirilebilir. Bkz. Privacy & Network Neutrality

DPI In-Action

  • nDPI ile DPI Analizi

DPI kavramının ne olduğundan detaylı bir şekilde bahsettiğimize göre, DPI tekniğinin nasıl işlediğine dair bazı örnekler gösterelim. Bunun için, bu repoda bulunan nDPI isimli aracın DEMO sürümünü kullanarak kendi yerel ağım içerisindeki trafikte bulunan paketlere DPI uygulayacağım:

Öncelikle `./ndpiReader -i eth0` komutu ile aracı çalıştırıyor,

Ve tarayıcım üzerinde normal bir kullanıcı gibi bazı sitelerde gezinmeye başlıyorum:

Görüldüğü gibi, normal bir kullanıcı gibi Facebook, Twitter, YouTube, Netflix, Medium ve Steam gibi çokça kullanılan sosyal medya uygulamaları ve eğlence platformlarına basit HTTP istekleri göndermekteyim, yani sayfaları açmaktayım. Aynı zamanda, aynı yerel ağda yer alan başka bir makineme bir SSH bağlantısı açmakta ve basit bir şekilde Google’a Ping / ICMP paketleri göndermekteyim:

SSH Bağlantısı
ICMP Paketleri

Test için gerekli adımları gerçekleştirdikten sonra, şimdi DPI aracının dinlemesini sonlandırabilir ve analiz için sonucu inceleyebiliriz:

Sonuçlardan görülebildiği gibi, az önce göndermiş olduğumuz bütün browser istekleri, SSH bağlantı talepleri ve ping paketleri başarılı bir şekilde görüntülenebiliyor. Buradan elde edilecek sonuç sonrasında kullanılabilecek diğer araçlarla bu paketlerin içeriğini görüntüleyebilir, trafiği real-time olarak yönetebiliriz.

Deep Packet Inspection ile ilgili sizlere bahsetmek istediklerim bu kadardı. Yazımı okuduğunuz için teşekkür ederim.

Kaynaklar:

[1] | [2] | [3] | [4] | [5] | [6]

--

--