Самоучитель по программированию систем защиты
ВведениеГлава 1. Что такое драйвер
Что такое драйвер
Типы драйверов и характеристики
Среда разработки
Утилита BUILD
С и C++. Интегрированная среда разработки
Самоучитель по программированию систем защиты
Глава 2. Общая архитектура Windows NT
Общая архитектура Windows NT
Вытесняющая многозадачность (preemptive multitasking)
Виртуальная память с подкачкой страниц по требованию
Симметричная мультипроцессорная обработка
Интегрированная поддержка сети
Структура Windows NT
Общая архитектура ОС Windows NT
Защищенные подсистемы
Подсистемы среды
Подсистема среды Win32
Рисование (drawing). Например
Вызов системных сервисов через "родной" API. (ntdll.dll)
«Родной» API для ОС Windows NT (Native Windows NT API)
Неотъемлемые подсистемы
Исполнительная система (The Executive)
Исполнительная система (The Executive) - 2
Таблица 1. Подсистемы Исполнительной Системы NT и их предназначение
Диспетчер Объектов
Таблица 2. Типы объектов и подсистемы исполнительной системы, которые ими управляют
Понятия «пользовательский режим» и «режим ядра»
Система ввода/вывода
Ядро
Слой абстрагирования от оборудования
Система приоритетов
Система приоритетов
Уровни запросов прерываний (IRQL)
Приоритеты планирования
Динамические приоритеты и приоритеты реального времени
Базовый приоритет. Класс приоритета и относительный приоритет
Таблица 3. Классы приоритетов
Таблица 4. Относительный приоритет
Как используются IRQL
Таблица 5 представляет символические
Таблица 5. Символические и числовые определения IRQL
IRQL PASSIVE_LEVEL, APC_LEVEL и DISPATCH_LEVEL
Ограничения, налагаемые на код с уровнем IRQL большим или равным DISPATCHJLEVEL
DIRQLs
Прерывания и планирование
Определение текущего уровня IRQL
Организация памяти в защищенном режиме работы процессора
Иллюстрация
Некоторые понятия защищенного режима
Организация системного адресного пространства
Типы адресов в NT
Совместное использование памяти
Иллюстрация
Объект Секция
Функции работы с памятью
Выделение памяти
Список заранее выделенных блоков памяти (Lookaside List)
Пространства ввода/вывода и отображение памяти устройств
Управление памятью и MDL
Унифицированная модель драйвера
Объект-файл (файловый объект)
Объект-драйвер
Объект-устройство
Имя устройства и символическая связь
Основные характеристики Windows NT
Взаимосвязь основных объектов
Иллюстрация
Установка, удаление, запуск и установка драйвера
Точки входа драйвера
Контекст исполнения и уровень IRQL
Ограничения, налагаемые на драйвер
Точка входа DriverEntry
Определение конфигурации аппаратного устройства
Создание объекта-устройства и символической связи
Передача данных от приложения к драйверу. Асинхронная обработка
Иллюстрация
Выполнение асинхронного запроса
Характеристики подсистемы ввода/вывода
Структура пакета запроса ввода/вывода (IRP)
Поля в фиксированной части IRP
Поля в стеке размещения ввода/вывода IRP
Описание буфера данных
Таблица 6. Характеристики Прямого
Коды функции ввода/вывода
Модель модифицированного микроядра
Диспетчерские точки входа драйвера
Запросы чтения и записи IRP_MJ_READ и IRPJVLMVRITE
Пример обработки запросов чтения/записи
Запросы IRP_MJ_DEVICE_CONTROL и IRP^MJJNTERNA^DEVICE^CONTROL
Задание кода управления вводом/выводом (IOCTL)
Формат кода управления вводом/выводом
Получение буфера
Таблица 7
Пример обработки
Многоуровневая модель драйверов
Таблица 9 Объект синхронизации
Таблица доступна только из режима
Реализация уровневых драйверов
Объединение драйверов в стек
Обработка запросов IRP стеком драйверов
Получение драйвером вышележащего
Реализация драйверов-фильтров
Подключение фильтра к устройству
Сериализация
Задержка обработки запросов IRP и постановка запросов IRP в очередь
Системная очередь запросов IRP (System Queuing)
Обработка пакетов IRP в функции Startlo
Очереди, управляемые драйвером
Функции управления очередью низкого уровня
Функции управления очередью высокого уровня - «Очередь Устройства» (Device Queue)
Отмена запросов ввода/вывода
Отмена IRP и Системная Очередь
Отмена IRP и очереди, управляемые драйвером
Механизмы синхронизации
Спин-блокировки
Использование обычных спин-блокировок
Проблема взаимоблокировок (deadlocks)
Диспетчерские объекты
Таблица 8. Диспетчерские объекты
Ожидание (захват) диспетчерских
Семафоры
События
Быстрые мьютексы
Эмуляция нескольких ОС
Ресурсы Исполнительной системы
Обобщенная таблица механизмов синхронизации
Таблица 9
Необходимость в создании рабочих потоков
Системные рабочие потоки
Таблица 10. Число Системных Рабочих Потоков
Создание потоков драйвером
Потоки как диспетчерские объекты
Введение в обработку прерываний
Объекты - прерывания
описывает типичный
Отложенный вызов процедуры (Deferred Procedure Call, DPC)
Вначале ISR запрашивает
DPC-объекты Вызов DPC описывается
DPC на многопроцессорных системах
Характеристики Объекта DPC
Важность DPC (DPC Importance)
Таблица 11. Ситуации, инициирующие
Целевой процессор для DPC (DPC Target Processor)
DpcForlsr
Независимость от архитектуры процессора
Самоучитель по программированию систем защиты
Объектная модельМногопоточность
Самоучитель по программированию систем защиты
Глава 3. Сетевая архитектура Windows NTСетевая архитектура Windows NT
Средство динамического обмена данными (Network Dynamic Data Exchange, NetDDE)
Иллюстрация
Сервисы удаленного доступа (Remote Access Services, RAS)
RAS
TAPI (Telephony Application Programming Interface)
Интерфейс DLC (Data Link Control)
Протокол SNMP (Simple Network Management Protocol)
DCOM
Сетевые сервисы
Сетевые файловые системы
Редиректор
Сетевой сервер
Соответствие сетевой архитектуры Windows NT модели OSI
Соответствие сетевой архитектуры ОС Windows NT модели OSI
Распределенная файловая система (Distributed File System, DFS)
Маршрутизатор многосетевого доступа
Многосетевой UNC
Интерфейс TDI
Транспортные протоколы
Среда STREAMS
Среда NDIS
Типы NDIS драйверов
Драйверы протоколов верхнего уровня
Драйверы протоколов промежуточного уровня
Промежуточные драйверы ndistapi.sys и ndiswan.sys
Драйверы сетевых карт
Обобщенная схема сетевой архитектуры Windows NT
Связь между сетевыми программными компонентами
Сетевые API
Index4
Сетевые API Win32 (Wnet и Net)
API NetBIOS (Network Basic Input/Output System)
Интерфейс NetBIOS
Win32 API именованных каналов (named pipes) и почтовых ящиков (mailslots)
Интерфейс именованных каналов и почтовых ящиков
API Windows Sockets
Интерфейс WinSockets
Средство удаленного вызова процедур (Remote Procedure Call, RFC)
Интерфейс RPC
Самоучитель по программированию систем защиты
Глава 4. Анализ сетевой архитектурыАнализ сетевой архитектуры ОС
Драйверы - фильтры
Реализация защиты на уровне драйвера MUP
Реализация защиты на уровне драйверов файловых систем
Реализация защиты на уровне транспортного драйвера
Реализация защиты с помощью перехвата функций NDIS - библиотеки
Реализация защиты на уровне сетевого драйвера промежуточного уровня, поддерживающего интерфейс NDIS
Иллюстрация
Реализация защиты на уровне драйверов сетевых устройств
Сравнительный анализ способов реализации защиты
Таблица 11. Сравнительный анализ реализаций средств защиты
Зависимость способа реализации средства защиты от предъявляемых к нему требований
Таблица 12
Особенности реализации NDIS-драйвeров
Используемые средства построения
Синхронизация
Структура NDIS-пакетов
Структура NDIS-пакета и NDIS-буфера
Завершающие функции
Точки входа промежуточного NDIS- драйвера
Расположение промежуточных NDIS-драйверов
Точки входа ProtocolXxx
Точки входа MiniportXxx
Пример реализации драйвера шифрования
Расположение драйвера шифрования
Структуры NDIS-пакетов
Объем информации, проходящей через средство защиты
Возможности реализации средств защиты сетевой информации на пользовательском уровне
Реализация защиты на уровне приложений и собственных DLL
Реализация защиты на уровне системных DLL, предоставляющих приложениям различные сетевые интерфейсы
Реализация защиты на уровне сетевых сервисов
Реализация защиты на уровне «родного» API для ОС Windows NT
Самоучитель по программированию систем защиты
Глава 5. Общие вопросы обеспечения безопасности в операционной среде Windows NT/2000Механизм идентификации и аутентификации в ОС Windows NT.Общее описание
Определение имени процесса
Вывод сообщений на «синий» экран
Процедура распределения IRP_MJ_DEVICE_CONTROL драйвера контроля доступа
Модифицированная библиотека Gina
Основные сведения о процессе Winlogon
Временная диаграмма процессов аутентификации
Протокол взаимодействия процесса Winlogon и библиотеки GINA
Локальная аутентификация пользователя в Windows NT
Сетевая аутентификация пользователя в Windows NT
Основные подходы к созданию изолированной программной среды
Макет системы защиты от несанкционированного доступа
Перехват операций открытия, создания и удаления файлов
Собственный обработчик создания файла и собственный обработчик открытия файла
Содержание раздела