Программирование систем защиты

Досуг сайт www.volgograd-indi.info | Досуг сайт www.yaroslavl-indi.com


 

Сравнительный анализ способов реализации защиты

В табл. 11 дается сравнительный анализ реализаций средств защиты относительно следующих факторов:

  1. 1. Объем контролируемых данных. Этот фактор определяет, какие данные проходят через средство защиты, и, следовательно, могут им контролироваться и обрабатываться.
    2. Сложность реализации. Определяет сложность реализации средства защиты, как с точки зрения ее недокументированности, так и сложности отладки. Этот фактор оценивается по 3-х бальной шкале: высокая, средняя, низкая. Низкая сложность означает, что при разработке средства защиты используются хорошо документированные интерфейсы и доступные средства отладки. Средняя - означает, что используются документированные интерфейсы, но отладка средства защиты уже не столь проста, в связи с тем, что данное средство исполняется в режиме ядра, а, следовательно, большинство ошибок в нем приводят к падению ОС, и, кроме того, при отладке приходится иметь дело с ассемблерным кодом. Высокая сложность означает, что к проблемам с отладкой прибавляется еще частичное или полное отсутствие документации для разработки средства защиты.
    3. Возможность встраивания защиты. Этот фактор определяет, предоставляет ли операционная система возможность встраивания средства защиты и расширения своей функциональности на данном уровне.
    4. Прозрачность защиты означает, должен ли пользователь предпринять какие-либо действия для того, чтобы защитить свои данные с помощью средства защиты.
    5. Возможности, предоставляемые ОС коду средства защиты. В зависимости от того, исполняется ли средство защиты в режиме пользователя, или в привилегированном режиме - режиме ядра, ему предоставляются различные возможности. В режиме ядра разрешено выполнение всех команд процессора и доступна системная область памяти и оборудование, тогда как в пользовательском режиме некоторые команды запрещены, а системные области памяти недоступны.

Таблица 11. Сравнительный анализ реализаций средств защиты

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

Средства защиты уровня ядра могут использовать внутренние интерфейсы для взаимодействия с компонентами исполнительной системы. Модуль защиты, исполняющийся в режиме ядра, может повышать или понижать текущий IRQL процессора, маскируя тем самым прерывания с равными или меньшими IRQL.
Модуль защиты, исполняющийся в режиме пользователя, не может получить доступа к системным данным иначе, как, вызвав предоставляемые операционной системой функции, которые в свою очередь вызывают системные сервисы, осуществив предварительную проверку параметров вызова.
Следовательно, относительно этого фактора логично оценивать средства защиты по 2-х бальной системе: если средство защиты реализуется как компонент уровня ядра, то ему будут предоставлены максимальные возможности со стороны ОС, если средство защиты реализуется как компонент уровня пользователя, то - минимальные.
Если для реализации защиты на уровне системной DLL или сетевого сервиса был разработан компонент, исполняющийся в режиме ядра, то это средство защиты также может использовать максимальные возможности, предоставляемые ОС. Для реализации защиты на уровне «родного» API в любом случае должен использоваться компонент уровня ядра.

 
Назад Начало Вперед