Технология захвата сетевого трафика

модемные протоколы (физический уровень) и канальные протоколы соединений «точка-точка», такие как SLIP, HDLC и PPP. Эти протоколы используются для передачи по телефонным сетям пакетов сетевого и других протоколов верхних уровней. Таким образом, осуществляется полноценная связь удаленного узла с остальными узлами сети. Сервис удаленного узла обеспечивает ему транспортное соединение с локальной сетью, поэтому на удаленном узле могут использоваться все сервисы, которые доступны локальным клиентам сети, например файл-сервис NetWare, сервис telnet или X-Window ОС UNIX, администрирование Windows NT.

Наибольшие сложности вызывает удаленное управление популярными настольными операционными системами семейства Windows, OS/2 и т.п. Это связано с тем, что для данных систем нет стандартного протокола эмуляции терминала, подобного telnet или X-Window для UNIX или LAT для VAXVMS. Кроме того, эти операционные системы наиболее знакомы конечному пользователю, и ему было бы очень удобно использовать привычный графический интерфейс Windows при управлении удаленным хостом. Поэтому именно разработка средств удаленного управления для ОС семейства Windows стала основной целью данного проекта.

В рамках проекта по созданию системы удаленного управления рабочими станциями реализован программный комплекс, содержащий два модуля - «Сервер» (устанавливается на удаленном персональном компьютере) и «Клиент» (устанавливается на рабочей станции администратора сети), задачами которых является передача защищенной информации между удаленными компьютерами с наименьшими потерями во времени. Эта программа позволяет работать с файлами на удаленном компьютере (операции сетевого и локального копирования и перемещения, локального переименования и удаления файлов, открытие файлов в соответствии с файловыми ассоциациями), осуществлять доступ к реестру и редактирование его параметров, выполнять просмотр списка работающих процессов и программ на удаленном компьютере с возможностью запуска и останова процессов, блокировать и завершать работу удаленного пользователя или компьютера, а также получать доступ к средствам ввода/вывода удаленной станции.

Работа поддержана грантом РФФИ №03-07-90075.

Е.В. Хандыго, О.Ю. Пескова

Россия, г. Таганрог, ТРТУ

ТЕХНОЛОГИЯ ЗАХВАТА СЕТЕВОГО ТРАФИКА

В настоящее время аппаратная архитектура Ethernet завоевала большую часть рынка локальных сетей. Из-за особенностей ее построения пакет, отправленный в широковещательной сети одним из узлов, принимается всеми находящимися в этом сегменте сети машинами, но только узел назначения, указанный в заголовке пакета, "смотрит" на него и начинает его обработку. Благодаря этому свойству существует большой класс программ, предназначенных для перехвата всех сетевых пакетов и дальнейшего их анализа - так называемых снифферов. Такие средства используются как для мониторинга сетей, так и для перехвата секретной информации. Алгоритм работы снифферов несложен. В локальной сети, организованной на основе хабов, можно перехватывать все отправляемые пакеты со всех машин, так как там практикуется широковещание. По умолчанию сетевой интерфейс “видит” пакеты, предназначенные только для него. Однако анализаторы устанавливают его в режим приема всех пакетов - promiscuous mode, прослушивают сеть и заставляют сетевой интерфейс принимать все фреймы, вне зависимости от того, кому они адресованы в сети. После этого происходит непосредственно ана-

лиз перехваченных пакетов на основе данных из заголовка пакета и непосредственно его содержимого. Несмотря на простоту алгоритма, вся сложность заключается именно в переводе сетевой карты в необходимый режим. В Win9x нет возможности напрямую работать с сетевым адаптером, однако можно обойти Microsoft Для этого необходимо написать свой драйвер для работы с сетевым адаптером или использовать готовую библиотеку, которых достаточно много в свободном доступе, и сосредоточиться именно на анализе пакетов.

Базовой технологией для захвата пакетов является BPF-технология. BPF, или Berkley Packet Filter (пакетный фильтр Беркли), описанный Стивеном МакКейном и Ван Якобсоном (McCane and Jacobson 1993) - это архитектура ядра для захвата пакетов, созданная для работы с ядрами ОС UNIX. BPF представляет собой драйвер устройства, который может использоваться приложениями ОС UNIX для передачи и приема пакетов, передаваемых по сети.

BPF состоит из двух основных элементов: сетевая ловушка (network tap) и пакетный фильтр (packet filter). Сетевая ловушка - это петлевая функция, являющаяся частью кода BPF, однако не вызываемая самим BPF. Ее вызывает драйвер сетевого адаптера, когда принимает очередной входящий пакет. Сетевая ловушка копирует поступившие пакеты и передает их копии приложению верхнего уровня, каковым для нее является пакетный фильтр.

BPF назначает фильтр и два буфера на каждый процесс, запросивший его функции. Первый буфер (store buffer - буфер сохранения) используется для приема данных от адаптера, второй (hold buffer - буфер задержки) используется для копирования пакетов для приложений.

Приложение взаимодействует с драйвером BPF при помощи библиотеки захвата пакетов libpcap (packet capture library).

Архитектура PCAP (Packet Capture - захват пакетов) - это архитектура ядра для захвата пакетов напрямую через сетевой интерфейс высокоэффективным методом, созданная для работы с ядрами ОС UNIX.

Программная реализация архитектуры PCAP была выполнена в виде NDIS-драйвера.

Процесс переноса PCAP на Windows заключался в адаптации pcap-драйвера для работы под Win32. Libpcap для Win32 взаимодействует с аппаратным обеспечением через интерфейс, предоставляемый динамической библиотекой packet.dll.

Архитектура WinPCAP дополняет стандартные функции операционных систем семейства Win32 возможностью принимать и передавать данные по сети, минуя стек протоколов операционной системы и взаимодействуя непосредственно с сетевым адаптером компьютера. WinPCAP состоит из трех компонентов: драйвер устройства захвата пакетов (paсket.vxd), низкоуровневая динамическая библиотека (packet.dll) и статическая библиотека высокого уровня (libpcap).

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

Динамическая библиотека packet.dll «изолирует» программу пользователя от драйвера и предоставляет приложению независимый от вида ОС семейства Win32 интерфейс. Библиотека packet.dll работает на уровне пользователя, но отдельно от приложения.

Для нормальной работы драйверу захвата пакетов необходимо взаимодействовать как с драйвером сетевого устройства (для передачи и приема данных), так и с приложением пользователя (для получения от него данных или передачи ему принятых от сетевого устройства пакетов). Поэтому драйвер захвата пакетов разработай как драйвер протокола в структуре NDIS.

В рамках проекта по созданию системы обнаружения сетевых атак реализован программный модуль, взаимодействующий с WinPCAP, задачей которого является перехват сетевых пакетов и извлечение из заголовков протоколов сетевого и транспортного уровней модели OSI данных, необходимых для дальнейшего анализа модулем-анализатором. Параллельно с анализом заголовков осуществляется анализ непосредственно данных из тела пакета. Таким образом, в приложении функционируют 3 потока (thread) - перехват пакетов, анализ заголовков и анализ данных. За счёт подобного распараллеливания достигается более высокая производительность приложения и понижается вероятность потери данных.

Работа поддержана грантом РФФИ №03-07-90075.

О.Б. Макаревич, И.А. Шелудько

Россия, г. Таганрог, ТРТУ

РЕГИСТРАЦИЯ И АНАЛИЗ СОБЫТИЙ БЕЗОПАСНОСТИ В ИНФОРМАЦИОННЫХ СИСТЕМАХ

Одним из направлений развития средств обеспечения безопасности информационных систем является создание и усовершенствование средств регистрации и анализа событий безопасности. Обычно процесс регистрации событий безопасности в ИС принято называть аудитом. Возможности аудита существуют во многих операционных системах (ОС) и прикладном программном обеспечении (ПО). Часто подсистемы аудита обеспечивают лишь регистрацию информации о различных событиях, возможности анализа зачастую отсутствуют, а если и существуют, то очень ограниченные. Поэтому для эффективного решения задачи регистрации и анализа событий безопасности требуется специальное программное обеспечение, которое использует данные встроенных подсистем аудита операционных систем и прикладного программного обеспечения.

Средства управления доступом, существующие практически в каждой ИС, предназначены для противодействия угрозам, однако они часто не могут обеспечить безопасность ИС в полной мере, поскольку всегда существует вероятность неквалифицированных или злонамеренных воздействий со стороны пользователей, имеющих необходимый доступ к ИС, позволяющий реализовать угрозу и нарушение безопасности. Под угрозой безопасности ИС будем понимать ситуацию, в результате развития которой может быть нарушена безопасность информационной системы и нанесен вред ИС в целом, ее отдельным компонентам, хранящейся и обрабатываемой информации. Под событием безопасности будем понимать любое событие, которое может повлиять на безопасность ИС, к таким событиям чаще всего относятся запуск и останов ИС, подключение и отключение компонентов и пользователей ИС, доступ к информации, запуск и прекращение процессов обработки информации, изменение параметров ИС, изменение параметров системы управления доступом и пр.

Требования наличия подсистем регистрации событий безопасности присутствуют во всех современных стандартах по информационной безопасности компьютерных систем и определяют классы событий, подлежащих регистрации. Эти требования относятся к техническим требованиям, поэтому они, как правило, выполняются производителями программного обеспечения. Однако поэтому большинство производителей программного обеспечения информационных систем пренебрегают разработкой средств анализа зарегистрированных событий безопасности, зачастую ограничиваясь элементарными средствами просмотра событий. Если принять во внимание типичные объемы регистрационной информации (сотни и