Npcap — драйвер захвата сетевых пакетов для Windows¶
Npcap — это программный драйвер (фильтрованный NDIS-драйвер) для операционных систем семейства Windows, обеспечивающий захват сетевых пакетов (пакетный снifferинг) в режиме promiscuous mode. Он является преемником устаревшего Npcap-предшественника WinPcap и входит в состав популярных сетевых инструментов, прежде всего Wireshark и Nmap. Проект разрабатывается как свободное программное обеспечение с открытым исходным кодом (лицензия Microsoft Public License) и поддерживается сообществом, основным разработчиком выступает Гуохуа Ван (Guohua Wang), автор Nmap.
¶История и происхождение
¶WinPcap и его ограничения
До появления Npcap основным кроссплатформенным решением для захвата пакетов в Windows был драйвер WinPcap, разработанный в конце 1990-х годов в Лаборатории прикладной криптографии (LACE) Университета Турина. WinPcap состоял из ядерного драйвера NPF (Netgroup Packet Filter), библиотеки wpcap.dll и утилиты Packet.dll. Проект долго не обновлялся: последняя стабильная версия 4.1.3 вышла в 2013 году, поддержка 64-битных систем и новых версий Windows оставалась ограниченной, а драйвер не был совместим с современными механизмами безопасности Windows.
¶Создание Npcap
В 2013 году Гохуа Ван, сотрудник проекта Nmap, начал работу над форком WinPcap под названием Npcap. Целью было создать более быстрый, безопасный и совместимый с современными Windows драйвер. Первые публичные версии появились в 2013—2014 годах, а с выпуском Nmap 7.00 (2015) Npcap стал стандартным компонентом дистрибутива Nmap на Windows. В 2021 году Npcap версии 1.00 был официально включён в состав Wireshark для Windows, заменив устаревший WinPcap.
¶Технические особенности
¶Архитектура
Npcap построен на технологии NDIS (Network Driver Interface Specification) версии 6.x и выше, в отличие от WinPcap, использовавшего устаревший NDIS 5. Основные компоненты:
- npf.sys — ядерный режим драйвера, перехватывающий сетевые фреймы на уровне NDIS-фильтра;
- wpcap.dll — библиотека, совместимая с API WinPcap/Pcap, обеспечивающая вызовы из пользовательских приложений;
- Packet.dll — низкоуровневый API доступа к драйверу.
Благодаря использованию NDIS 6 драйвер работает в режиме Light-Weight Filter (LWF), что позволяет перехватывать трафик без модификации сетевых стеков и без конфликтов с другими драйверами.
¶Режимы работы
Npcap поддерживает захват пакетов в нескольких режимах:
- Loopback-захват — перехват локального трафика (127.0.0.1), что в WinPcap было реализовано лишь частично и с ограничениями;
- Promiscuous mode — перехват всех пакетов на сегменте сети, включая адресованные другим узлам;
- AirPcap-режим — поддержка беспроводного захвата (ограниченно, зависит от оборудования);
- WinPcap-совместимость — возможность установки поверх или вместо WinPcap без изменений в приложениях.
¶Производительность и безопасность
По заявлениям разработчика, Npcap демонстрирует производительность на уровне или выше WinPcap, особенно на многопоточных системах. Драйвер поддерживает многопоточный захват (multi-core capture), что критично при работе с высокоскоростными каналами. С точки зрения безопасности Npcap реализует механизм «Admin-only Mode», ограничивающий доступ к захвату пакетов только пользователям с правами администратора, а также поддерживает цифровую подпись драйвера, что требуется для загрузки в 64-битных версиях Windows, начиная с Windows Vista x64.
¶Установка и распространение
Npcap распространяется в виде установщика (npcap-<версия>.exe), доступного на официальном сайте nmap.org. При установке предлагается выбор режима: установка в режиме «Npcap only» (рекомендуется) или «WinPcap API-compatible Mode» для обеспечения обратной совместимости со старыми приложениями. Драйвер поддерживает все актуальные версии Windows, включая Windows 10 и Windows 11, а также серверные редакции Windows Server 2012 и новее.
Npcap включён в состав дистрибутивов Nmap и Wireshark для Windows. Ряд других сетевых инструментов, таких как Colasoft Packet Builder, Microsoft Network Monitor (устаревший) и различных коммерческих анализаторов трафика, также могут использовать Npcap как бэкенд захвата.
¶Лицензия
С 2021 года Npcap распространяется под лицензией Microsoft Public License (Ms-PL), что делает его свободным программным обеспечением. Ранее проект использовал проприетарную лицензию с ограничениями на коммерческое использование, что вызывало критику со стороны сообщества. Текущая лицензия позволяет свободно использовать, модифицировать и распространять драйвер, в том числе в коммерческих продуктах.
¶Применение
Основные сценарии использования Npcap:
- Анализ сетевого трафика — в связке с Wireshark для пакетного анализа, отладки сетевых протоколов и расследования инцидентов информационной безопасности;
- Сетевое сканирование — в составе Nmap для обнаружения хостов и служб;
- Мониторинг сети — в системах сетевого мониторинга и SIEM, использующих pcap-совместимые API;
- Образовательные цели — изучение работы сетевых протоколов на курсах информатики и кибербезопасности.
¶См. также
- Wireshark
- Nmap
- WinPcap
- libpcap
- Захват сетевого трафика
¶Источники
- Официальный сайт Npcap / Nmap (nmap.org)
- Документация Wireshark: установка Npcap на Windows
- Guohua Wang. Npcap Developer's Guide
- RFC 1761 — Snoop Packet Capture File Format
