Saya akan menggunakan Wireshark untuk memonitor lalu lintas di komputer Windows saya . Saat mengerjakannya, saya bertanya-tanya bagaimana Wireshark berhasil menangkap paket jaringan tingkat rendah sebelum Windows melakukannya.
Pertama-tama, antarmuka jaringan di NIC saya menerima paket. NIC kemudian melakukan beberapa pemeriksaan awal (CRC, alamat MAC yang tepat, ... dll.). Dengan asumsi bahwa verifikasi berhasil, NIC meneruskan paket. Tapi bagaimana dan dimana?
Saya mengerti bahwa driver adalah perekat antara NIC dan OS atau aplikasi lainnya. Saya selanjutnya menebak bahwa ada driver terpisah untuk Windows dan Wireshark ( WinPcap ?). Jika tidak, Wireshark tidak akan dapat menerima frame Ethernet . Apakah ada dua atau lebih driver NIC yang ada bersamaan? Bagaimana NIC tahu, mana yang harus digunakan?
sumber
Jawaban:
Model I / O di Windows didasarkan pada tumpukan komponen. Data harus mengalir melalui berbagai komponen tumpukan yang ada antara kartu jaringan fisik, dan aplikasi yang akan mengkonsumsi data. Kadang-kadang berbagai komponen memeriksa data (paket TCP misalnya,) ketika mereka mengalir melalui tumpukan, dan berdasarkan isi paket itu, data dapat diubah, atau paket tersebut dapat dibuang seluruhnya.
Ini adalah model yang disederhanakan dari "tumpukan jaringan" yang mengalir paket untuk mendapatkan dari aplikasi ke kabel dan sebaliknya.
Salah satu komponen paling menarik yang ditunjukkan pada tangkapan layar di atas adalah API Callout WFP (Windows Filtering Platform). Jika kami memperbesarnya, mungkin terlihat seperti ini:
Pengembang bebas memasukkan modul mereka sendiri ke tempat yang sesuai dalam tumpukan ini. Misalnya, produk antivirus biasanya menggunakan "driver filter" yang terhubung ke model ini dan memeriksa lalu lintas jaringan atau menyediakan kemampuan firewall. Layanan Windows Firewall juga jelas cocok untuk model ini juga.
Jika Anda ingin menulis aplikasi yang merekam lalu lintas jaringan, seperti Wireshark, maka cara yang tepat untuk melakukannya adalah dengan menggunakan driver Anda sendiri, dan memasukkannya ke dalam tumpukan serendah mungkin sehingga dapat mendeteksi paket jaringan sebelum modul firewall Anda memiliki kesempatan untuk menjatuhkannya.
Jadi ada banyak "driver" yang terlibat dalam proses ini. Berbagai jenis driver juga. Juga, bentuk input / output lain pada sistem, seperti hard disk drive membaca dan menulis, mengikuti model yang sangat mirip.
Satu catatan lain - info WFP bukan satu-satunya cara untuk menyindir diri Anda ke tumpukan jaringan. WinPCap sebagai contoh, antarmuka dengan NDIS langsung dengan driver, yang berarti memiliki kesempatan untuk mencegat lalu lintas sebelum penyaringan telah terjadi sama sekali.
Driver NDIS
WinPCap
Referensi:
Stack TCP / IP Generasi Selanjutnya di Vista +
Arsitektur Platform Penyaringan Windows
sumber
Seperti yang dikatakan oleh Ryan Ries:
dan ini adalah deskripsi, dalam dokumentasi WinPcap, tentang cara kerjanya .
sumber