Pcap

Bilgisayar ağ yönetimi alanında, pcap ağ trafiğini yakalama için bir API'dir. Bu isim packet capture kelimesinin kısaltması olsa da, API'nin özel ismi bu değildir. Unix benzeri sistemler pcap'i libpcap kütüphanesinde uygular; Windows için, libpcap'in artık desteklenmeyen veya geliştirilmeyen WinPcap adlı bir uyarlaması ve Windows 7 ve sonrası için hala desteklenen Npcap adlı bir uyarlaması vardır.

Herhangi bir izleme yazılımı, libpcap, WinPcap veya Npcap'i bir bilgisayar ağı üzerinde dolaşan ağ paketi yakalamak ve daha yeni sürümlerde paketleri bağlantı katmanı üzerinde bir ağa iletmek ve libpcap, WinPcap veya Npcap ile olası kullanım için ağ arayüzlerinin bir listesini almak için kullanabilir.

Pcap API, C ile yazılmıştır, bu nedenle Java, .NET dilleri ve betik dili gibi diğer diller genellikle bir sarmalayıcı kütüphane (wrapper) kullanır; libpcap veya WinPcap'in kendisi tarafından böyle bir sarmalayıcı sağlanmamıştır. C++ programları doğrudan C API'sine bağlanabilir veya bir nesne yönelimli sarmalayıcı kullanabilir.

Özellikler 
libpcap, WinPcap ve Npcap, protokol analizörleri (paket çözümleyicileri), ağ izleme sistemleri, ağ saldırı tespit sistemleri, trafik oluşturucular ve ağ test cihazları dahil olmak üzere birçok açık kaynak kodlu ve ticari ağ araçlarının paket yakalama ve filtreleme motorlarını oluşturur.

libpcap, WinPcap ve Npcap ayrıca yakalanan paketlerin bir dosyaya kaydedilmesini ve kaydedilen paketleri içeren dosyaların okunmasını da destekler; libpcap, WinPcap veya Npcap kullanılarak, ağ trafiğini yakalayıp analiz edebilmek veya kaydedilmiş bir yakalamayı okuyup aynı analiz kodunu kullanarak analiz edebilmek için uygulamalar yazılabilir. libpcap, WinPcap ve Npcap'in kullandığı biçimde kaydedilen bir yakalama dosyası, tcpdump, Wireshark, CA NetMaster veya Microsoft Ağ İzleyicisi 3.x gibi bu biçimi anlayan uygulamalar tarafından okunabilir.

libpcap, WinPcap ve Npcap tarafından oluşturulan ve okunan dosya biçimi için MIME türü application/vnd.tcpdump.pcap'dir. Tipik dosya uzantısı .pcap'tir, ancak .cap ve .dmp de yaygın olarak kullanılmaktadır.

Tarihçe 
libpcap ilk olarak tcpdump geliştiricileri tarafından Lawrence Berkeley Ulusal Laboratuvarı'ndaki Ağ Araştırma Grubu'nda geliştirilmiştir. Tcpdump'ın düşük seviyeli paket yakalama, yakalama dosyası okuma ve yakalama dosyası yazma kodu, kod içerisinden çıkartıldı ve tcpdump'ın bağlandığı bir kütüphane haline getirildi. pcap şu anda tcpdump'ı geliştiren aynı tcpdump.org grubu tarafından geliştirilmektedir.

Windows için pcap kütüphaneleri 
libpcap başlangıçta Unix benzeri işletim sistemleri için geliştirilmiş olsa da, Windows için WinPcap adı verilen başarılı bir uyarlama yapılmıştır. 2013'ten beri bakımı/geliştirmesi yapılmamaktadır, ve Windows'un daha yeni sürümleri için yeni özellikler ve destek ile birkaç rakip çatal projeler piyasaya sürülmüştür.

WinPcap 
WinPcap şunlardan oluşur:

 Windows NT ailesi için x86 ve x86-64 sürücüleri (Windows NT 4.0, 2000, XP, Server 2003, Vista, 7, 8 ve 10) için Network Driver Interface Specification (NDIS) 5.x kullanan ve paketleri doğrudan ağ bağdaştırıcısından okuyan sürücüler;
 Bu sürücülerle iletişim kurmak için listelenen işletim sistemleri için daha düşük seviyeli bir kütüphanenin uygulamaları;
 Düşük seviyeli kütüphane uygulamaları tarafından sunulan API'yi kullanan bir libpcap uyarlaması.

Orijinal kodu Politecnico di Torino'daki programcılar yazdı; 2008 itibariyle WinPcap geliştiricilerinden bazıları tarafından kurulan bir şirket olan CACE Technologies ürünü geliştirdi ve sürdürdü. CACE, 21 Ekim 2010 tarihinde Riverbed Technology tarafından satın alındı.

WinPcap eski NDIS 5.x API'lerini kullandığından, daha yeni NDIS 6.x API'leri lehine bu API'leri kullanımdan kaldıran veya onaylamayan bazı Windows 10 yapılarında çalışmaz. Ayrıca Ethernet başlıklarında 802.1Q VLAN etiketleri yakalayamamak gibi bazı sınırlamalara da neden olur.

WinPcap projesi geliştirmeyi durdurdu ve WinPcap ile WinDump artık sürdürülmüyor. Son resmi WinPcap sürümü 8 Mart 2013'te yayınlanan 4.1.3 idi.

Npcap 
Npcap Nmap Project'in Windows için paket koklama kütüphanesidir. WinPcap tabanlıdır, ancak Network Driver Interface Specification sürüm 6'daki Windows ağ geliştirmelerinden yararlanmak için yazılmıştır. Yazarları WinPcap NDIS 5 Protokol Sürücüsünü Hafif Filtre (LWF: Light-Weight Filter) sürücüsü olarak yeniden yazmışlardır, bu değişiklik işlem yükünü azaltmaktadır. Npcap bakım sürümleri, yazılım yazarlarının Linux yazılımının zaten desteklediği daha yeni API özelliklerini kullanmasına olanak tanıyarak, dahil edilen libpcap kütüphanesinin sürümünü mevcut en son sürüme güncelledi. WinPcap kullanan çoğu yazılım, minimum değişiklikle Npcap kullanmak için kolayca uyarlanabilir.

Npcap, WinPcap'te bulunmayan çeşitli yenilikler getirmiştir:
 Npcap, yalnızca Admin kullanıcılar paketleri koklayabilecek şekilde kısıtlanabilir.
 Npcap, Windows Filtreleme Platformu kullanarak loopback paketlerini (aynı makinedeki hizmetler arasındaki iletimler) koklayabilir ve enjekte edebilir.
 Npcap, yaygın olarak kullanılan çeşitli ağ adaptörlerinde WiFi 802.11 çerçeveleri yakalayabilir.

Win10Pcap 
Win10Pcap uygulaması da NDIS 6 sürücü modeline dayanır ve Windows 10 ile kararlı bir şekilde çalışır. Ancak proje 2016 yılından beri aktif değildir.

libpcap kullanan veya kullanmış olan programlar 
 Bit-Twist, BSD, Linux ve Windows için libpcap tabanlı bir Ethernet paket üreticisi ve düzenleyicisi.
 Cain and Abel, Microsoft Windows için geliştirilmesi durdurulmuş bir şifre kurtarma aracı
 EtherApe, ağ trafiğini ve bant genişliği kullanımını gerçek zamanlı olarak izlemek için grafiksel bir araç.
 Firesheep, Firefox web tarayıcısı için paketleri yakalayan ve oturum kaçırma gerçekleştiren durdurulmuş bir uzantı
 iftop, bant genişliği kullanımını görüntülemek için bir araç (ağ trafiği için top gibi)
 Kismet, 802.11 kablosuz LAN'lar için bir araç
 L0phtCrack, bir şifre denetim ve kurtarma uygulaması.
 McAfee ePolicy Orchestrator, Rogue System Detection özelliği
 ngrep, diğer adıyla "network grep", paketlerdeki dizeleri izole eder, paket verilerini insan dostu çıktıda gösterir.
 Nmap, bir port tarama ve fingerprinting ağ yardımcı programı
 Pirni, jailbreak yapılmış iOS cihazları için geliştirilmiş ancak durdurulan bir ağ güvenlik aracı.
 Scapy, Philippe Biondi tarafından Python dilinde yazılmış, bilgisayar ağları için bir paket manipülasyon aracı.
 Snort, bir ağa izinsiz giriş tespit sistemi.
 Suricata, bir ağ saldırı önleme ve analiz platformu.
 Symantec Veri Kaybı Önleme (Data Loss Prevention), Hassas verileri izlemek ve tanımlamak, kullanımını ve konumunu izlemek için kullanılır. Veri kaybı ilkeleri, hassas verilerin ağdan çıkmasının veya başka bir cihaza kopyalanmasının engellenmesini sağlar.
 tcpdump, daha fazla analiz için paketleri yakalamak ve dökmek amacıyla geliştirilmiş bir araç. WinDump, tcpdump'ın Windows uyarlaması.
 Zeek, bir saldırı tespit sistemi ve ağ izleme platformu.
 URL Snooper, ses ve video dosyalarının kaydedilmesine izin vermek için URL'leri bulur.
 WhatPulse, istatistiksel (giriş, ağ, çalışma süresi) ölçüm uygulaması.
 Wireshark (eski adıyla Ethereal), grafiksel bir paket yakalama ve protokol analiz aracı.
 XLink Kai Çeşitli LAN konsol oyunlarının çevrimiçi oynanmasını sağlayan yazılım
 Xplico, bir ağ adli tıp analiz aracı (NFAT - network forensics analysis tool).

libpcap için sarmalayıcı kütüphaneler 
 C++: Libtins, Libcrafter, PcapPlusPlus
 Perl: Net::Pcap
 Python: python-libpcap, Pcapy, WinPcapy
 Ruby: PacketFu
 Rust: pcap
 Tcl: tclpcap, tcap, pktsrc
 Java: jpcap, jNetPcap, Jpcap, Pcap4j, Jxnet
 .NET: WinPcapNET, SharpPcap, Pcap.Net
 Haskell: pcap
 OCaml: mlpcap
 Chicken Scheme: pcap
 Common Lisp: PLOKAMI
 Racket: SPeaCAP
 Go: Andreas Krennmair tarafından pcap , pcap Miek Gieben tarafından bir öncekinin çatalı, pcap gopacket paketinin bir parçası olarak geliştirilmiştir.
 Erlang: epcap
 Node.js: node_pcap

Pcap dosyalarını okuyabilen pcap dışı kütüphaneler 
 Python: 
 Python:

pcap veya pcapng dosyalarını okuyan veya yazan diğer uygulama veya cihazlar 
 Apache Drill, büyük ölçekli veri kümelerinin etkileşimli analizi için açık kaynaklı bir SQL motoru.
 Endace EndaceProbe, haftalarca veya aylarca süren ağ trafiğini sürekli olarak kaydeden yüksek ölçekli bir paket yakalama sistemi.

Kaynakça

Dış bağlantılar 
 , libpcap, tcpdump
 , Npcap
 , WinPcap, WinDump
 List of publicly available PCAP files

Ağ analizi yazılımları
Unix ağ yazılımları
Windows ağ yazılımları
macOS ağ yazılımları
Windows güvenlik yazılımları
Mac OS X güvenlik yazılımları
C ile programlanmış ücretsiz yazılımlar
Ücretsiz çapraz platform yazılımları
Özgür ağ yönetimi yazılımları
BSD lisansı kullanan yazılımlar