Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЛР_БС ЭВМ .doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
272.38 Кб
Скачать

Лабораторная работа № 7 Захват и анализ пакетов стека tcp/ip с использованием WinPcap.

1. Цель работы

Изучение структуры стека протоколов TCP/IP, а также технологии захвата и анализа пакетов с использованием WinPCAP с целью изучения основ функционирования средств анализа сетевого трафика для защиты от внешних атак.

2. Теоретические сведения

Transmission Control Protocol/Internet Protocol (TCP/IP) - это промышленный стандарт стека протоколов, разработанный для глобальных сетей. Стандарты TCP/IP опубликованы в серии документов RFC и описывающих внутреннюю работу сети Internet.

Основные сведения по стеку протоколов, включая форматы заголовков и особенности функционирования, подробно рассмотрены в курсе лекций и специальной литературе. Здесь приводятся сведения, необходимые для работы с архитектурой WinPCAP.

Архитектура WinPCAP состоит из двух библиотек.

1) libpcap, предоставляет приложению пользователя интерфейс высокого уровня для взаимодействия с драйвером захвата пакетов. Она позволяет принимать и отфильтровывать пакеты.

2) packet.dll представляет собой динамически загружаемую библиотеку, с помощью которой приложение пользователя взаимодействует с драйвером захвата пакетов. Функции библиотеки обеспечивают выполнение таких операций, как получение дескрипторов сетевых адаптеров, прием и передачу пакетов произвольной структуры по сети, установку буферов и фильтров драйвера и т.д.

В этой и следующей лабораторных работах используется библиотека packet.dll. Здесь кратко рассмотрены структуры данных и основные функции, необходимые для захвата пакетов.

Структуры данных.

Здесь приведены основные структуры данных, описанных в библиотеке packet.dl.:

1.     Структура PACKET описывает принимаемый или передаваемый пакет. Состоит из следующих полей:

        OVERLAPPED OverLapped – структура, описанная в DDK Windows, используется для поддержки синхронных вызовов драйвера

        PVOID Buffer – указатель на буфер, содержащий пакет;

        UINT Length – размер буфера;

        PVOID Next – указатель на следующий пакет;

        UINT ulBytesReceived – размер части буфера, содержащей «верные» данные;

        BOOLEAN bIoComplete – показывает, содержит ли буфер «верные» данные после асинхронного вызова.

2.     Структура ADAPTER содержит описание сетевого адаптера:

        HANDLE hFile – указатель на дескриптор драйвера адаптера;

        TCHAR SymbolicLink – строка, содержащая имя сетевого адаптера, открытого в данный момент.

3.     Структура bpf_program является указателем на программу BPF-фильтра и используется функцией PacketSetBPF для установки фильтра в драйвере:

        UINT bf_len – размер программы-фильтра;

        struct bpf_insn *bpf_insns – указатель на первую инструкцию программы.

4.     Структура bpf_hdr описывает заголовок, используемый драйвером при передаче принятого пакета приложению:

        struct timeval (tv_sec – дата захвата в стандартном формате UNIX (число секунд, начиная с 1/1/1970), tv_usec – микросекунды захвата)

        UINT bh_caplen – длина снимка (захваченной порции данных);

        UINT bh_datalen – реальная длина захваченного пакета;

        USHORT bh_hdrlen – размер структуры bpf_hdr.

5.     Структура bpf_stat используется для получения статистической информации о текущей сессии:

        UINT bs_recv – число пакетов, принятых адаптером с момента начала сессии;

        UINT bs_drop – число потерянных пакетов с момента начала сессии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]