Windows 2000, благодаря своим современным
Операционная система Windows NT и ее следующий представитель Windows 2000, благодаря своим современным принципам построения, защищенности, гибкости, а также встроенной сетевой поддержке и мощным сетевым возможностям, получила широкое распространение. Поэтому встает насущная проблема реализации систем защиты, которые могли бы встраиваться в ОС Windows NT, расширяя ее возможности и обеспечивая функции защиты сетевой информации.Отметим сразу, что базовая архитектура ядра ОС Windows NT практически не изменилась при переходе к Windows 2000, поэтому почти все, что описано в этой книге верно как для ОС Windows NT, так и для Windows 2000.
В книге помимо базовых основ написания драйверов, являющихся неотъемлемыми компонентами средств защиты информации, представлена общая и сетевая архитектура ОС Windows NT. Описание архитектуры необходимо для определения предоставляемых возможностей по реализации и встраиванию средств защиты сетевой информации, а также для сравнения возможных способов реализации защиты и определения наиболее предпочтительных способов. Исследование архитектуры ОС Windows NT позволяет определить не только то, как и куда можно встроить средство защиты, но и то, как этому средству предоставить наибольшие возможности
со стороны операционной системы, поскольку от этого зависит решение конкретных задач по защите, которые оно сможет реализовать.
Знание архитектуры ОС и драйверов применительно к сфере защиты информации необходимо с различных точек зрения:
- С точки зрения средств защиты информации, в том числе и нестандартных (не упомянутых в документации к ОС).
- С точки зрения преодоления средств защиты.
Реализация почти всех перечисленных элементов системы защиты для ОС NT возможна только с применением драйверов:
- Защита локальных данных - либо драйвер шифрующей файловой системы, либо драйвер-фильтр для прозрачного шифрования, либо перехват вызовов системных сервисов.
- Защита сетевых данных - драйвер протокола, NDIS-драйвер промежуточного уровня, собственная сетевая служба, фильтр стандартной сетевой службы (такие службы реализованы как файловые системы), перехват вызовов системных сервисов.
- Выявление нарушителя для всех вышеприведенных вариантов - анализ событий, регистрация в журнале, запрос на подтверждение подозрительных действий.
В зависимости от конкретной постановки задачи должен быть выбран наиболее подходящий способ ее решения. Одного ответа на все случаи жизни быть не может, так как два основных критерия выбора решения:
- критерий максимальной простоты реализации;
- критерий максимальной универсальности противоречат друг другу: чем более универсальным может быть вариант реализации, тем сложнее его реализация и наоборот.
При выборе способа реализации системы жизненно важным может быть также вопрос документированности этого способа, при этом надо учитывать, что большая часть ОС NT не документирована.
Драйверы ядра можно разбить на 2 больших класса: драйверы аппаратных устройств и драйверы виртуальных устройств:
- 1. Архитектура NT исключает использование устройства,
если для него нет драйвера. Прикладному ПО доступ к аппаратуре запрещен.
Поэтому самым очевидным примером драйверов является драйвер аппаратного
устройства, предоставляющий прикладным программам интерфейс доступа
к устройству. В области защиты информации задача написания таких драйверов
весьма актуальна.
2. Драйвер виртуального устройства не работает с каким либо специализированным аппаратным устройством, однако, предоставляет прикладным программам такие возможности по работе со стандартными ресурсами компьютера и ОС (процессор, память, порты, регистры, служебные структуры ОС), которые без драйвера были бы недоступны.
Как будет видно из следующих разделов, системная архитектура NT представляет собой набор модулей, связанных друг с другом стандартными, но далеко не всегда документированными интерфейсами. Благодаря этим интерфейсам можно производить как замену стандартных модулей на собственные, так и вставлять новые модули
в «разрыв» связей между старыми. Такое устройство ОС позволяет разрабатывать новые модули (драйверы) для различных целей:
- «прозрачная», то есть невидимая для прикладных программ, обработка данных, например, шифрование и компрессия данных на диске или в компьютерной сети;
- расширение набора предоставляемых ОС сервисов;
- «прозрачное» сканирование на наличие вирусов;
- написание вирусов и закладок;
- средства сбора статистики о событиях для различных компонентов системы.
драйверов существуют специальные правила для особых типов драйверов. В качестве примера можно привести драйверы файловой системы FSD и сетевые драйверы - архитектура NDIS и TDI.
Необходимо остановиться на состоянии изученности данной области. Руководств по разработке драйверов для ОС Windows NT, изданных на русском языке, а также информации в области архитектуры ОС Windows NT гораздо меньше, чем для обычного программирования. В зарубежной литературе также очень мало книг, посвященных данной тематике. Что касается подмножества этой тематики - сетевой архитектуры, сетевых интерфейсов и сетевых драйверов, то соответствующей специализированной литературы практически нет. Основным источником информации является документация Microsoft Windows NT Device Driver Kit Version 4.0 и документация Microsoft Platform Software Development Kit.
Перечисленные источники дают информацию об общей и сетевой архитектуре, но никак не затрагивают вопросы реализации средств защиты сетевой информации.
При чтении этой книги настоятельно рекомендуется иметь под рукой:
- справочник по Visual C++;
- MSDN library;
- справочник по командам ассемблера.
Содержание |