Что такое формат файла PCAP?
.pcap - это бинарный формат файлов, используемый приложениями для мониторинга сетевого трафика. *Сниффер* - например, Wireshark - захватывает данные пакетов в реальном времени и сохраняет их в файл .pcap. Файлы PCAP позволяют пользователям проверять сетевой трафик для данной сессии захвата в автономном режиме, в отличие от режима реального времени. Анализ и аудит сетевого трафика является важной практикой, которая способствует оптимизации производительности сети и предотвращению кибератак.
Формат происходит из проекта libpcap/tcpdump и стал стандартом де-факто для хранения захваченных пакетов. Каждый файл начинается с 24-байтового глобального заголовка, чье магическое число (D4 C3 B2 A1 в порядке байтов little-endian) идентифицирует файл и сообщает порядок байтов инструментам чтения. Официальный MIME-тип - application/vnd.tcpdump.pcap. Более современный преемник - .pcapng - добавляет поддержку нескольких интерфейсов, блоков метаданных и комментариев; Wireshark автоматически определяет оба формата при открытии.
Что такое сниффер?
Сниффер - это тип программного инструмента, который может захватывать и анализировать сетевой трафик. Инструмент «слушает» сетевой трафик в данной сети, переводя сетевой интерфейс в *смешанный* режим (promiscuous mode), чтобы он мог видеть весь трафик в этой сети, включая данные, не адресованные этому конкретному интерфейсу. Запуск сниффера на роутере или компьютере, подключенном к сети, не требует смешанного режима. *Сниффер* также может относиться к электронному устройству, используемому для мониторинга сетевого трафика.
Wireshark
Wireshark - это бесплатный сниффер с открытым исходным кодом, доступный для Windows, Linux и macOS. Широта его функций сделала его самым популярным инструментом для анализа сетевого трафика, используемым профессиональными ИТ-командами и специалистами по безопасности, а также индивидуальными пользователями. Ethereal был первоначальным названием этого инструмента до мая 2006 года, когда он был переименован в Wireshark. Аналог для командной строки tshark и классический инструмент Unix tcpdump также нативно читают и записывают файлы .pcap, что делает формат универсально поддерживаемым на всех платформах.
Безопасность и защита
РИСК: MEDIUMФайл .pcap представляет собой пассивные данные и не может исполняться, но он чувствителен: дамп может содержать открытые пароли, сессионные куки, токены аутентификации, внутренние IP-адреса/имена хостов и другой частный трафик. Относитесь к дампам как к конфиденциальным и НЕ загружайте важные файлы в публичные онлайн-анализаторы. Захват трафика в сетях, которые вам не принадлежат или которые вы не уполномочены контролировать, может быть незаконным. Также убедитесь, что файл действительно является дампом - файл с расширением .pcap, который не соответствует магическим байтам libpcap/pcapng, может быть помечен неверно или иметь другой формат.
Детали формата
в двух словахПрограммы, открывающие файлы PCAP
Технические подробности
глубокая спецификация| Структура файла | 24-байтовый глобальный заголовок, за которым следуют последовательные записи пакетов, каждая с 16-байтовым заголовком пакета и необработанными данными захваченного кадра |
| Магическое число (little-endian) | 0xD4C3B2A1 по смещению 0, идентифицирующее файл и указывающее порядок байтов little-endian инструментам чтения |
| Магическое число (big-endian) | 0xA1B2C3D4 по смещению 0, используется, когда записывающее устройство использует порядок байтов big-endian |
| Варианты с наносекундным разрешением | Магические числа 0x4D3CB2A1 (LE) или 0xA1B23C4D (BE) помечают файлы, в которых временные метки хранятся в наносекундах, а не в микросекундах |
| Кодирование временных меток | Два 32-битных целых числа на пакет: секунды с начала эпохи Unix и микросекунды (или наносекунды в варианте с точностью ns) |
| Поле Snaplen | 32-битное поле в глобальном заголовке, ограничивающее максимальное количество байтов, сохраняемых для каждого пакета; значение по умолчанию - 65535 байт |
| Поле Network (тип канального уровня) | 32-битный код в глобальном заголовке, идентифицирующий уровень передачи данных: 1 = Ethernet, 105 = IEEE 802.11 Wi-Fi, 113 = Linux cooked capture |
| Поля заголовка пакета | ts_sec, ts_usec/ts_nsec, incl_len (фактически сохраненные байты), orig_len (оригинальная длина пакета в сети) |
| MIME-тип | application/vnd.tcpdump.pcap |
| Определение порядка байтов | Полностью автоматическое - инструменты считывают магическое число по смещению 0 для определения порядка байтов без участия пользователя |
| Формат-преемник | .pcapng (PCAP Next Generation) добавляет поддержку нескольких интерфейсов, блоки метаданных, комментарии к пакетам и расширенные записи пакетов |
| Сжатие | Формат по определению не сжат; файлы часто распространяются как .pcap.gz (gzip) или .pcap.xz для хранения и передачи |
| Основные инструменты захвата | tcpdump (командная строка, Unix/Windows); tshark (кроссплатформенная командная строка); Wireshark (графический интерфейс) |
| Лимит размера файла | Максимум не ограничен форматом; ограничен только лимитами файловой системы операционной системы и доступным хранилищем |
| Выпущен | Early 1990s (libpcap/tcpdump); IETF draft standard for the on-disk format |
| Открыть стандартное | Да · без роялти |
| Спецификация | datatracker.ietf.org |