Сравнительный анализ реализаций средств защиты
Таблица 11. Сравнительный анализ реализаций средств защиты
Реализация защиты на уровне: | Объем контролируемых данных | Сложность реализации | Возможность встраивания защиты | Прозрачность защиты | Возможности, предоставляемые ОС
| ||||||
Приложения | Только данные самого приложения | Низкая | Да | - | Минимальные | ||||||
Собствен ной DLL | Данные приложений, использующих эту DLL | Низкая | Да | Минимальные | |||||||
Системной DLL | Данные приложений, использующих сис темную DLL | Высокая | Нет | + | Зависит от способа реализации | ||||||
Сетевого сервиса | Зависит от сетевого сервиса | Высокая | Нет | + | Зависит от способа реализации | ||||||
"Родного" API | Данные всех прило- жений | Высокая | Нет | + | Максимальные | ||||||
Драйвера файловой системы | Данные приложений, использующих соот- ветствующее сетевое API | Высокая | Да | + | Максимальные | ||||||
Транс- портного драйвера | Данные приложений, использующих этот транспорт + приложений, взаимодействующих с др. транспорта напрямую | Высокая | Да | + | Максимальные | ||||||
Драйвера Ndis.sys | Данные всех приложений | Высокая | Нет | + | Максимальные | ||||||
Промежуточного драйвера | Данные приложений, использующих транспорты, привя- занные снизу к этому промежуточному драйверу + приложе- ний, взаимодейст- вующих с промежу- точным драйвером напрямую | Средняя | Да | + | Максимальные | ||||||
Драйвера сетевого устройства | Данные всех приложений | Средняя | Да | + | Максимальные |
Средства защиты уровня ядра могут использовать внутренние интерфейсы для взаимодействия с компонентами исполнительной системы. Модуль защиты, исполняющийся в режиме ядра, может повышать или понижать текущий IRQL процессора, маскируя тем самым прерывания с равными или меньшими IRQL.
Модуль защиты, исполняющийся в режиме пользователя, не может получить доступа к системным данным иначе, как, вызвав предоставляемые операционной системой функции, которые в свою очередь вызывают системные сервисы, осуществив предварительную проверку параметров вызова.
Следовательно, относительно этого фактора логично оценивать средства защиты по 2-х бальной системе: если средство защиты реализуется как компонент уровня ядра, то ему будут предоставлены максимальные возможности со стороны ОС, если средство защиты реализуется как компонент уровня пользователя, то - минимальные.
Если для реализации защиты на уровне системной DLL или сетевого сервиса был разработан компонент, исполняющийся в режиме ядра, то это средство защиты также может использовать максимальные возможности, предоставляемые ОС. Для реализации защиты на уровне «родного» API в любом случае должен использоваться компонент уровня ядра.