Открыть сервисСервис

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
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru