Сборник тезисов докладов четвертой международной научной конференции студентов, аспирантов и молодых ученых "Компьютерний моніторінг та інформаційні технології (КМІТ - 2008)", Донецк, ДонНТУ - 2008. - с. 111-112

РЕАЛИЗАЦИЯ СРЕДСТВ ЗАЩИТЫ ИНФОРМАЦИИ НА УРОВНЕ ДРАЙВЕРА WINDOWS NT

А.Ю. Нечепуренко, Т.М. Муджири

Донецкий национальный технический университет

В архитектуре процессора Intel x86 определено четыре уровня привилегий, или колец, предназначенных для защиты кода и данных системы от случайной или умышленной перезаписи кодом с меньшим уровнем привилегий. Впервые концепция колец защиты появилась в процессоре i80386. Кольца – это не физическое устройство, а логический механизм. Всего процессоры x86 используют четыре кольца, обозначенных номерами от 0 до 3.

Код, выполняющийся на нулевом кольце, имеет наивысший приоритет. Программе "нулевого кольца" разрешено делать все – обрабатывать прерывания, работать напрямую с аппаратными средствами. На нулевом кольце выполняется ядро операционной системы.

Пользовательские программы выполняются на третьем кольце, поэтому их иногда называют "программами третьего кольца". Эти программы не имеют права напрямую работать с аппаратными средствами.

Изначально планировалось такое распределение колец:
0 – ядро операционной системы;
1 – драйверы операционной системы;
2 – программный интерфейс операционной системы;
3 – прикладные программы,
но сложилось так, что обычно используется только два кольца: нулевое с максимальными привилегиями и третье – с минимальными привилегиями. Linux, как и Windows, тоже использует только два кольца – нулевое (для режима ядра) и третье (для пользовательского режима).
Для чего нужно знание архитектуры ОС и понимание драйверов применительно к сфере защиты информации? Этот вопрос можно рассматривать с различных точек зрения:
Допустим, нам необходимо разработать средство защиты. Типовая структура такого средства на данный момент выглядит примерно так (зависимость слева направо):
Криптоядро Контроль доступа
Криптозащита данных Локальные, сетевые
Система выявления нарушителя Локальные, сетевые
Реализация почти всех перечисленных элементов системы защиты для ОС NT возможна только с применением драйверов:

Для специализированного оборудования должны быть разработаны драйвера для интеграции в эту схему.

При выборе способа реализации системы также жизненно важным может быть документированность этого способа, при том, что большая часть ОС NT не документирована.

Примеры драйверов:
  1. Архитектура NT исключает использование устройства, если для него нет драйвера. Прикладному ПО доступ к аппаратуре запрещен. Поэтому самым очевидным примером драйверов является драйвер устройства. В области защиты информации задача написания таких драйверов весьма актуальна.
  2. Драйвер виртуального устройства не работает с каким-либо специализированным аппаратным устройством, однако, предоставляет прикладным программам такие возможности по работе со стандартными ресурсами компьютера и ОС (процессор, память, порты, регистры, служебные структуры ОС), которые без драйвера были бы недоступны.
Системная архитектура NT представляет собой набор модулей, связанных друг с другом стандартными интерфейсами. Благодаря этим интерфейсам можно производить как замену стандартных модулей на собственные, так и вставлять новые модули в "разрыв" связей между старыми. Такое устройство ОС позволяет разрабатывать новые модули (драйвера или службы) для различных целей:

Таким образом, обеспечение безопасности любой операционной системы сводится к использованию решений, затрагивающих низкоуровневые особенности этих систем. Примерами программных комплексов, встречающихся в повседневной жизни практически любого современного пользователя и работающих "прозрачно" для него, могут служить антивирусы (контроль действий приложений, например, Антивирус Касперского), межсетевые экраны (контроль сетевой активности, например, интегрированный в ОС Windows брандмауэр). Подобное программное обеспечение реализует защиту пользовательской среды, используя для этого драйверы уровня ядра, встраиваемые в конкретную операционную систему в виде модулей. Менее распространены драйверы специальных шифрующих устройств, а также драйверы виртуальных зашифрованных контейнеров.

Литература

  1. Комиссарова В. Программирование драйверов для Windows. –СПб.Ж БХВ-Петербург, 2007. – 256с.
  2. Руссинович М. Соломон Д. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. Мастер-класс4-е изд. – М.: Издательско-торговый дом «Русская редакция»; СПб.: Питер; 2005. – 992 с.
  3. Сорокина С.И. и др. Программирование драйверов и систем безопасности: Учеб. Пособие/ Сорокина С.И., Тихонов А.Ю., Щербаков А.Ю. – СПб.: БХВ-Петербург, М.: Издатель Молгачева С.В., 2003. – 256с.