На главную страницу
Форум txt.version   




Статья :: Программирование систем защиты: Реализация защиты на уровне сетевого драйвера промежуточного уровня, поддерживающего интерфейс NDIS
 

Реализация защиты на уровне сетевого драйвера промежуточного уровня, поддерживающего интерфейс NDIS

Разработка NDIS драйверов промежуточного уровня - это один из хорошо документированных механизмов расширения возможностей системы ввода/вывода ОС Windows NT. Библиотека NDIS является очень мощным средством, используемым для разработки драйверов сетевых карт глобальных и локальных сетей и промежуточных драйверов. С использованием библиотеки NDIS можно реализовать промежуточные драйверы, служащие самым разным целям, включая фильтрацию и шифрование пакетов. Промежуточные драйверы хорошо документированы в Windows NT DDK в главе Network drivers, в части Intermediate NDIS drivers and TDI drivers. Имеется пример промежуточного драйвера packet в DDK\src\ network\packet\driver. Типичные варианты реализации промежуточного драйвера рассмотрены на рис. 27.

Рис.27

В первых двух случаях промежуточный драйвер выглядит для драйвера транспорта как драйвер виртуальной сетевой карты. Используя механизм привязок можно все транспорты привязать снизу к требуемому промежуточному драйверу, который таким образом получит возможность контролировать все пакеты, идущие в/из сети. Это позволит ему реализовать функции защиты типа: преобразования форматов пакетов, преобразования пользовательских данных в пакетах, фильтрации пакетов, регистрации пакетов, контроля содержимого пакетов и т.п.
Во втором случае NDIS драйвер промежуточного уровня будет взаимодействовать посредством использования пакетов IRP с драйвером устройства, не являющимся сетевой картой (следовательно, этот драйвер устройства не поддерживается интерфейсом NDIS, им может быть, например, драйвер последовательного устройства). Подобные NDIS драйверы промежуточного уровня поставляются с Windows NT, например asyncmac.sys, взаимодействующий с драйвером последовательного порта. Поэтому необходимость в их реализации возникает только в случае разработки собственного сетевого устройства (но тогда придется разрабатывать и драйвер этого устройства, куда можно встроить функции защиты), или в случае, когда необходимо полностью заменить встроенный драйвер (но в этом случае лучше реализовать драйвер-фильтр, присоединенный к драйверу устройства).
Третий случай соответствует случаю реализации драйвера транспорта, рассмотренного выше.
Во всех этих случаях промежуточный драйвер может реализовать в свой верхней части закрытый интерфейс, посредством использования пакетов IRP с вышележащим драйвером или приложением. (Для подобного взаимодействия вышележащий драйвер или приложение должны открыть устройство, созданное промежуточным драйвером.) Этот механизм используется в сетевых анализаторах, являющихся программными комплексами, состоящими из приложения и драйвера.
В DDK подробно описано, какие функции интерфейсов верхнего и нижнего уровней промежуточный драйвер должен регистрировать обязательно, а какие по желанию разработчика. Благодаря таким четко оговоренным правилам взаимодействия посредством использования библиотеки NDIS, встраивание промежуточного драйвера между драйвером транспорта, поддерживающим интерфейс NDIS в своей нижней части, и NDIS драйвером сетевой карты не приводит к нарушению работы стека сетевых драйверов.
Промежуточный драйвер, расположенный над драйвером сетевой карты, фактически эквивалентен драйверу-фильтру, присоединенному к драйверу физического устройства. Только последний встраивается в цепь драйверов, взаимодействующих посредством пакетов IRP.
Надо отметить, что драйвер ndiswan.sys сам по себе является промежуточным драйвером, поставляемым Microsoft, и участвующим в поддержке взаимодействия по глобальным сетям типа ISDN, FR, Switched 56. Драйвер ndiswan.sys во взаимодействии с ndistapi.sys может служить провайдером сервисов TAPI. Для того чтобы контролировать трафик на уровне этих драйверов, необязательно заменять их собственными аналогами со встроенными функциями защиты, можно создать промежуточный драйвер, реализующий функции защиты, и расположить его выше или ниже этих драйверов.
Промежуточные драйверы являются неотъемлемой частью многих систем защиты сетевых ресурсов, реализующих пассивный мониторинг сетевых пакетов. Примером такой системы безопасности может служить программный анализатор сетевого трафика Microsoft Network Monitor. Также подобные драйверы являются частью многих систем безопасности, выполняющих фильтрацию и шифрование сетевого трафика, например, Guardian Windows NT Firewall.

 

Программирование систем защиты: Реализация защиты на уровне сетевого драйвера промежуточного уровня, поддерживающего интерфейс NDIS

страницы в данном разделе 
 Программирование систем защиты: Глава 4. Анализ сетевой архитектуры ОС Windows NT с точки зрения возможностей реализации средств защиты и анализа сетевого трафика  Программирование систем защиты: Анализ сетевой архитектуры ОС Windows NT с точки зрения возможностей реализации средств защиты и анализа сетевого трафика
 Программирование систем защиты: Используемые средства построения объединенных сетей и их влияние на уровень расположения средства защиты (согласно модели OSI)  Программирование систем защиты: Объем информации, проходящей через средство защиты
 Программирование систем защиты: Возможности реализации средств защиты сетевой информации на пользовательском уровне  Программирование систем защиты: Реализация защиты на уровне приложений и собственных DLL
 Программирование систем защиты: Реализация защиты на уровне системных DLL, предоставляющих приложениям различные сетевые интерфейсы  Реализация защиты на уровне сетевых сервисов
 Программирование систем защиты: Реализация защиты на уровне «родного» API для ОС Windows NT  Программирование систем защиты: Возможности реализации средств защиты сетевой информации на уровне ядра
 Программирование систем защиты: Драйверы - фильтры  Программирование систем защиты: Реализация защиты на уровне драйвера MUP
 Реализация защиты на уровне драйверов файловых систем  Реализация защиты на уровне транспортного драйвера
 Реализация защиты с помощью перехвата функций NDIS - библиотеки  Программирование систем защиты: Реализация защиты на уровне сетевого драйвера промежуточного уровня, поддерживающего интерфейс NDIS
 Программирование систем защиты: Реализация защиты на уровне драйверов сетевых устройств  Программирование систем защиты: Сравнительный анализ способов реализации
 Программирование систем защиты: Зависимость способа реализации средства защиты от предъявляемых к нему требований  Программирование систем защиты: Особенности реализации NDIS-драйвeров
 Программирование систем защиты: Синхронизация  Программирование систем защиты: Структура NDIS-пакетов
 Программирование систем защиты: Завершающие функции  Программирование систем защиты: Точки входа промежуточного NDIS- драйвера
 Программирование систем защиты: Точка входа DriverEntry  Программирование систем защиты: Точки входа ProtocolXxx
 Программирование систем защиты: Точки входа MiniportXxx  Программирование систем защиты: Точки входа MiniportXxx


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста