Контакты
Подписка
МЕНЮ
Контакты
Подписка

Компьютерная безопасность: доверенная нагрузка или контроль защищенности?

Компьютерная безопасность: доверенная нагрузка или контроль защищенности?

В рубрику "Защита информации" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Компьютерная безопасность:
доверенная нагрузка или контроль защищенности?

Д.т.н., проф. А.Ю.Щеглов
ЗАО «НПП «Информационные технологии в бизнесе»

В наиболее ответственных приложениях, например, при защите информационных серверов, либо при защите компьютеров, на которых обрабатывается наиболее критичная информация, как правило, используются прогрраммно-аппаратные СЗИ НСД. Это обусловливается тем, что все механизмы защиты в СЗИ НСД реализованы программно и защита осуществляется до тех пор, пока программное средство защиты активно и корректно функционирует. Другими словами, в критичных приложениях дополнительно решается задача защиты собственно СЗИ НСД. Поскольку нет никакого резона осуществлять защиту одной программы другой программой, с этой целью на практике используются дополнимтельные аппаратные средства, как правило, плата, размещаемая в свободном слоте защищаемого компьютера. Большинством производителей средств защиты реализуется аппаратное решение, заключающееся в обеспечении доверенной загрузки системы в защищенном исполнении. На наш взгляд, это лишь одна из задач, решение которых должно возлагаться на аппаратную составляющую средства защиты. В данной работе рассмотрим альтернативное решение рассматриваемой задачи, состоящее в реализации аппаратной составляющей средства защиты контроля активности программной компоненты СЗИ НСД на всех этапах ее загрузки и функционирования.

Рассмотрим интересующую нас проблему. СЗИ НСД в основе своей представляет собою программный комплекс (драйверы и приложения), реализующий программно основные механизмы защиты от НСД. Это означает, что при установке СЗИ НСД защита добавочным средством осуществляется до тех пор, пока компоненты СЗИ НСД активны (запущены), при этом СЗИ НСД корректно функционирует настолько, насколько корректны ее настройки. Таким образом, в качестве основной задачи защиты можем выделить задачу обеспечения активности и корректности функционирования программной компоненты СЗИ НСД (т.е. в любой момент времени функционирования защищаемого объекта все компоненты СЗИ НСД должны быть активны, настройки корректны).

Естественно, что осуществлять подобный контроль одной программы другой программой занятие бессмысленное, поэтому на практике с этой целью может использоваться аппаратная компонента СЗИ НСД (плата), при условии, что реализованы соответствующие организационные меры, предотвращающие несанкционированное удаление платы из компьютера (в частности, корпуса компьютеров должны быть опечатаны).

На сегодняшний день широкое использование для решения рассматриваемой задачи нашла так называемая технология доверенной загрузки. Данную технологию реализуют различные производители средств защиты, технические решения которых несколько различаются. Рассмотрим основные и наиболее общие задачи, решаемые аппаратной компонентой защиты, реализующей технологию доверенной загрузки. Как собственно и следует из названия, данные средства призваны решить задачу загрузки ОС только после проведения некоторых контрольных процедур, обеспечивающих доверенность загрузки ОС и СЗИ НСД, в частности, авторизации пользователя (для пользователей разграничиваются права на модификацию BIOS), проверки целостности технических и программных средств защищаемого компьютера (в том числе исполняемых файлов и файлов настроек безопасности), предотвращения загрузки ОС с внешних устройств ввода (как правило, посредством их физического отключения до завершения процедур авторизации и контроля). Предполагаемым результатом реализации данных процедур является гарантия того, что проведена санкционированная загрузка ОС и СЗИ НСД, т.е. компьютер загружен в штатном защищенном режиме.

Мы пытаемся рассмотреть эту задачу несколько шире. В отличие от ОС, для защиты которой может использоваться технология доверенной загрузки, СЗИ НСД содержит в своем составе внешние по отношению к ОС системные драйверы, запускаемые в режиме «ядра», но не включаемые в состав ядра ОС. Поэтому ОС не обеспечивает в полном объеме их защиту и контроль активности в процессе функционирования системы, и, как следствие, данные компоненты СЗИ НСД могут быть переведены в пассивное состояние в процессе функционирования системы, что приведет к отключению механизмов защиты. С учетом сказанного, применительно к защите СЗИ НСД аппаратными средствами, на наш взгляд, следует говорить не только о доверенной загрузке СЗИ НСД, но и контроле ее активности и корректности функционирования в процессе работы защищаемого компьютера в части противодействия группе потенциально возможных атак уже собственно на отключение (перевод в пассивное состояние) СЗИ НСД или ее компонент.

Для решения данной задачи, нами предлагаются рассматриваемые в работе технологии доверенной загрузки, контроля активности и корректности функционирования СЗИ НСД. Прежде, чем приступить к описанию предложенного подхода, сформулируем основные требования к его реализации:

  • Контроль активности и корректности функционирования СЗИ НСД должен осуществляться внешними по отношению к СЗИ НСД средствами, в частности, аппаратной компонентой, доступ к которой пользователям должен быть невозможен, причем, как физический доступ (например, плата, расположенная в компьютере, корпус которого опечатан), так и доступ, осуществляемый с использованием программных средств (в частности, должно предусматриваться противодействие любому потенциально возможному способу отключения платы программными средствами);
  • Контроль активности и корректности функционирования СЗИ НСД должен осуществляться на всех стадиях функционирования системы (загрузка, штатный и нештатный режимы работы системы);
  • Контроль активности и корректности функционирования СЗИ НСД должен осуществляться в общем виде - применительно к любому потенциально возможному способу загрузки системы без СЗИ НСД (с любого внешнего устройства, из сети и т.д.) и к любому потенциально возможному способу перевода компонент СЗИ НСД в пассивное состояние в любом режиме функционирования системы;
  • С учетом модульности структуры СЗИ НСД (как правило, СЗИ НСД содержит в своей составе некоторое число механизмов защиты, каждый из которых выполнен в качестве отдельного модуля – системного драйвера или приложения), контроль активности и корректности функционирования СЗИ НСД должен включать в себя контроль всех модулей в составе СЗИ НСД;
  • Результатом контроля активности и корректности функционирования СЗИ НСД должна быть реакция, не позволяющая загружаться и функционировать компьютеру в незащищенном виде. Причем реакция должна осуществляться таким образом, чтобы в общем виде оказывалось противодействие возможности блокировки реакции пользователем.

Основу предлагаемого подхода, реализующего сформулированные выше требования, составляет реализация двух предлагаемых нами технологий: технологии доверенной загрузки ОС и СЗИ НСД и технологии контроля активности и корректности функционирования СЗИ НСД.

1. Технология доверенной загрузки ОС и СЗИ НСД.

Основу предлагаемой технологии составляет синхронный контроль этапов загрузки ОС и СЗИ НСД. В общем случае можем выделить три этапа контроля загрузки: начало загрузки ОС (может осуществляться контроль, откуда загружается система), завершение загрузки ОС и СЗИ НСД (может контролироваться загрузилась ли СЗИ НСД, а также продолжительность загрузки (как следствие, контроль действий, осуществляемых при загрузке, в частности, обращений к BIOS), контроль корректности загрузки ОС и СЗИ НСД (может контролироваться корректность загрузки системы и СЗИ НСД, и корректность их настроек). Продолжительность этих этапов, относительно момента включения питания компьютера, может быть однозначно определена (несмотря на то, что она может быть различной для различных компьютеров и различных способов загрузки системы). Следовательно, можно обеспечить пассивность аппаратной компоненты защиты (платы) – аппаратная компонента является лишь приемной стороной во взаимодействии с программной компонентой защиты, так как их действия могут быть жестко синхронизированы относительно единого события – включения питания компьютера.

В порядке замечания отметим, что обеспечение пассивности аппаратной компоненты защиты (платы) является важнейшим требованием к реализации аппаратной защиты. Это обусловливается тем, что при подобном подходе к ее реализации, практически предотвращается сама возможность какой либо атаки на аппаратную компоненту, связанной с попыткой перевода в пассивное состояние уже собственно аппаратной компоненты защиты.

С учетом сказанного, получаем структуру системы доверенной загрузки ОС и СЗИ НСД (программно-аппаратного комплекса), см. Рис.1, которая содержит аппаратную и программную компоненты, в состав последней входят следующие модули: модуль контроля начала загрузки ОС и СЗИ НСД (система еще не загружена) и модуль контроля завершения и корректности загрузки ОС и СЗИ НСД. Каждый из этих двух модулей взаимодействует с аппаратной компонентой, посредством передачи ей тестового сигнала (парольного слова), подтверждающего корректность выполненного этапа загрузки. Аппаратная компонента пассивна, лишь получает тестовые сигналы от модулей программной компоненты (например, через заданный порт). Неполучение тестового сигнала означает некорректность загрузки, на что аппаратная компонента должна вырабатывать реакцию, например, выдача сигнала «Reset», «Разрыв» шины данных и т.д. (принцип формирования реакции следующий – реакция должна выполняться на аппаратном уровне внутри корпуса защищаемого компьютера, что противодействует возможному ее отключению). Опционально аппаратная компонента может выполнять функцию подключения внешних устройств ввода, при условии, что начало загрузки системы выполнено корректно – с жесткого диска.

Рис. 1. Структура программно-аппаратного комплекса защиты загрузки ОС и СЗИ НСД

Работу программно-аппаратного комлекса проиллюстрируем временной диаграммой, см. Рис.2.

Рис. 2. Временная диаграмма работы программно-аппаратного комплекса защиты загрузки ОС и СЗИ НСД

Модуль контроля начала загрузки ОС и СЗИ НСД располагается в BUUT секторе жесткого диска. В задачи этого модуля входит контроль фазы начала загрузки с жесткого диска. В случае корректной загрузки (загрузка системы осуществляется с жесткого диска), модуль выдает тестовый сигнал на плату. Плата в течение тайм-аута T1 ожидает тестовый сигнал. Если сигнал не получен, плата отключает компьютер (например, генерирует сигнал «Reset»), в противном случае, сигнал не выдается, опционально могут подключаться внешние устройства (например, питание на них может быть заведено через реле, установленные на плате).

Заметим, что в данном случае задача контроля загрузки решается в общем виде, т.к. компьютер будет функционировать только в том случае, если загружен с жесткого диска, на котором установлен модуль контроля начала загрузки ОС и СЗИ НСД.

После завершения загрузки ОС и СЗИ, модуль контроля завершения и корректности загрузки ОС и СЗИ НСД (СЗИ НСД запущена), выдает тестовый сигнал на плату. Неполучение этого сигнала в течение времени T2 (продолжительность загрузки ОС и СЗИ НСД), приводит к вырабатыванию платой реакции.

Следующий этап контроля загрузки – это контроль корректности загрузки ОС и СЗИ НСД. На этом этапе СЗИ НСД осуществляет контроль целостности (корректности) ключевых исполняемых файлов и настроек ОС и СЗИ НСД (соответствующих файлов настройки и ключей реестра ОС), а также контроль событий – запущенные процессы, драйверы и т.д. После завершения контроля корректности модуль выдает тестовый сигнал на плату. Неполучение этого сигнала в течение времени T3 (продолжительность контроля корректности загрузки ОС и СЗИ НСД), приводит к вырабатыванию платой реакции.

Рассмотрим преимущества данного подхода, ответив на вопрос: чем обеспечивается доверенность загрузки ОС и СЗИ НСД?

    1. Возможна загрузка системы только с жесткого диска, причем, даже при несанкционированной модификации BIOS – задача защиты здесь решается в общем виде (любой иной способ загрузки невозможен, так как реализуется разрешительная разграничительная политика). Тоже можем сказать и о возможной загрузке в безопасном режиме (Safe Mode для ОС Windows), позволяющем отключать внешние по отношению к ОС (это внешние для ОС сервисы, она не обеспечивает их защиту) драйверы и приложения.

    2. Контроль загрузки системы осуществляется на всех ее значимых этапах.

    3. Работа защищаемого компьютера возможна только в том случае, если СЗИ НСД загружена и, если ОС и СЗИ НСД загружены корректно, в том числе, корректны настройки системы и СЗИ НСД.

    4. Аппаратная компонента пассивна, любая попытка ее программного отключения приведет к отключению платой компьютера. Единственная возможность атаки на плату состоит в несанкционированной подаче тестового сигнала на плату. Однако подобная возможность предотвращается парольной защитой (тестовый сигнал представляет собой парольное слово, дополнительно на плате фиксировано число неверных попыток выдачи парольного слова), и одним из основных механизмов защиты СЗИ НСД – механизмом замкнутости программной среды (на компьютере разрешается запуск лишь фиксированного набора программ). Эффективная защита аппаратной компоненты от возможных атак достигается тем, что все настройки платы, в частности, тайм-ауты (T1, T2, T3, см. Рис. 2) задаются не программно, а непосредственно на плате, например, джамперами при ее установке в компьютер.

    5. Невозможна атака на реакцию, вырабатываемую платой, с целью ее блокирования, т.к. реакция формируется на аппаратном уровне внутри корпуса компьютера.

2. Технология контроля активности и корректности функционирования СЗИ НСД.

Данная технология является развитием подхода, описанного выше, и состоит в контроле активности и корректности функционирования СЗИ НСД уже во время работы системы (после ее доверенной загрузки). Здесь с аппаратной компонентой взаимодействует модуль контроля активности и корректности функционирования СЗИ НСД.

Структура программно-аппаратного комплекса, решающего данную задачу, представлена на Рис.3.

Рис. 3. Структура программно-аппаратного комплекса контроля активности и корректности функционирования СЗИ НСД

Работу программно-аппаратного комплекса проиллюстрируем временной диаграммой (рис.4).

В задачи модуля контроля активности и корректности функционирования СЗИ НСД входит периодический контроль состояния компонент СЗИ НСД, с выдачей тестового сигнала (парольного слова) на плату, в случае успешного результата контроля. Аппаратная компонента с тайм-аутом Tк (рис.4), после получения тестового сигнала, ожидает следующего тестового сигнала от программной компоненты. Неполучение тестового сигнала приводит к вырабатыванию платой реакции, например, к выдаче сигнала «Reset», не позволяющего функционировать компьютеру в незащищенном исполнении (при некорректном функционировании, либо при отключении СЗИ НСД - при ее неактивности).

Рассмотрим, что дает данный подход.

1. Возможна работа защищаемого компьютера только при активности и корректности функционирования СЗИ НСД. Задача защиты здесь решается в общем виде, т.к. неважно, каким программным способом (какая атака) будет совершена попытка воздействовать на СЗИ НСД (например, системным администратором, пользователем в режиме Safe Mode и т.д.), при переводе в пассивное состояние или модификации СЗИ НСД, аппаратная компонента блокирует работу компьютера.

2. Возможно распределение задач между системным администратором и администратором безопасности (которые должны быть определены, как администраторы в ОС). Это достигается следующим образом. СЗИ НСД собственными средствами реализует всю разграничительную политику доступа к ресурсам, поэтому администратор безопасности средствами СЗИ НСД может задавать функции системного администратора (например, разрешить ему только устанавливать и удалять программы и т.д.). При этом ограничения для системного администратора действуют только в случае активности СЗИ НСД. Системный же администратор, обладая учетной записью администратора в ОС, может перевести компоненты СЗИ НСД (как приложения, так и драйверы) в пассивное состояние, что будет невозможным при реализации программно-аппаратного комплекса.

Рис. 4. Временная диаграмма работы программно-аппаратного комплекса контроля активности и корректности функционирования СЗИ НСД

Естественно, что в данном случае также можно совместить периодический контроль активности программной компоненты защиты с периодическим контролем корректности настроек системы и СЗИ НСД, которая уже собственно реализуется программной компонентой (сигнал на плату с заданным периодом выдается после контроля корректности настроек; если они некорректны и восстановить некорректные настройки не представляется возможным, то тестовый сигнал не будет выдан в аппаратную компоненту – компьютер находится в незащищенном виде, работа на нем должна быть прекращена).

Теперь остановимся на вопросах контроля корректности функционирования СЗИ НСД, определим, в чем состоит эта задача, рассмотрим, как решение данной задачи влияет на структуру СЗИ НСД. В части контроля будем разделять два его вида: контроль объектов и контроль событий.

Под объектами будем понимать объекты файловой системы, реестра ОС и т.д., целостность (неизменность) которых следует проверять в процессе функционирования системы.

Необходимость контроля событий вызвана следующими соображениями. Исходя, как из требований соответствующих нормативных документов, так и из практики построения СЗИ НСД, можем заключить, что СЗИ НСД имеет модульную, в идеале – хорошо структурированную, структуру. Как правило, можно выделить две большие группы модулей в составе СЗИ НСД: драйверы, реализующие разграничительную политику доступа к ресурсам, и приложения, на которые возлагаются функции контроля и иные задачи. Очевидно, что весьма затруднительно и не эффективно обеспечивать взаимодействие с аппаратной компонентой всех модулей СЗИ НСД, поэтому, в части решения задачи контроля, программно-аппаратную СЗИ НСД предлагается строить по схеме, приведенной на рис.5.

Как следует из рис.5, в структуре СЗИ НСД выделяется главный модуль – это модуль ответственный за взаимодействие с аппаратной компонентой (выдает ей тестовые сигналы), что гарантирует невозможность перевода программным способом данного модуля в пассивное состояние. Для того, чтобы невозможно было перевести в пассивное состояние другие запущенные компоненты СЗИ НСД, главный модуль осуществляет контроль событий. Контролировать, прежде всего, целесообразно запущенные в системе драйверы и приложения на соответствие спискам разрешенных к запуску и обязательных при функционировании системы (в обязательных должны быть указаны все драйверы и приложения СЗИ НСД). При запуске в системе неразрешенного драйвера или приложения, а также при остановке обязательного драйвера или приложения, главный модуль зафиксирует критичную ситуацию и не выдаст очередной тестовый сигнал в аппаратную компоненту, что приведет к аппаратному отключению компьютера. Контроль же объектов (настройки ОС и СЗИ НСД – соответствующие файлы и ключи реестра ОС, необходимых исполняемых файлов и др.) осуществляется соответствующими приложениями СЗИ НСД (активность которых обеспечивается главным модулем). Данные модули СЗИ НСД могут осуществлять собственные программные реакции, например, восстановление файлов и ключей реестра ОС из резервной копии.

Рис. 5. Структура программно-аппаратной СЗИ НСД

Таким образом, видим, что реализация рассмотренных в работе технологий обусловливает реализацию определенных требований к структурной организации СЗИ НСД.

В порядке иллюстрации приведем интерфейс настройки параметров взаимодействия саппаратной компонентой защиты, реализованный в КСЗИ «Панцирь-К». (рис.6).

Рис. 6. Интерфейс настройки параметров взаимодействия с аппаратной частью СЗИ НСД

В порядке замечания отметим, что альтернативным решением является реализация контроля активности СЗИ НСД с сервера безопасности (удаленно с выделенного компьютера в сети, в том числе, решающего задачи удаленного администрирования СЗИ НСД). Рассмотрим реализованный нами подход к данному способу решения задачи.

Следуя структуре СЗИ НСД, представленной на рис.5, сервер безопасности должен заменить аппаратную компоненту защиты, а основной его функциональной задачей (в рамках рассматриваемой нами проблемы) становится удаленный контроль активности СЗИ НСД. Соответственно, система защиты в данном случае должна быть сетевой, в основу реализации которой положена технология клиент-сервер.

Основу удаленного контроля активности СЗИ НСД составляет возможность различать три состояния защищаемого объекта: штатный режим функционирования (защищаемый объект включен по питанию, находится в сети, на нем активна система защиты); режим отключения объекта – объект отключен либо по питанию, либо находится не в сети (например, отсоединен сетевой кабель); опасный режим функционирования (объект включен, находится в сети, но на нем не активна система защиты).

Предлагаемое нами решение в части удаленного контроля активности системы защиты с целью различия трех состояний защищаемого объекта состоит в следующем. После установления соединения клиентской части системы защиты с сервером безопасности (реализуется по защищенному протоколу (с сеансовой авторизацией и шифрованием трафика) сервер безопасности находится в режиме установленного соединения с клиентской частью. При разрыве соединения, сервер безопасности осуществляет попытку установить тестовое соединение с клиентской частью с использованием какого-либо встроенного в состав ОС сервиса, реализуемого на уровне ядра ОС. Если активность компьютера подтверждена, то делается вывод о том, что она находится в опасном режиме – включена по питанию, в сети (т.к. отвечает на стандартный запрос), на ней система защиты не активна (т.к. не устанавливается клиент-серверное соединение сетевой системы защиты).

Таким образом, с использованием данного решения администратору безопасности предоставляется возможность контроля реального времени состояния защищаемых объектов, в частности контроля активности СЗИ НСД на защищаемых объектах.

В качестве замечания отметим, что данный альтернативный подход позволяет лишь частично решать рассматриваемые в работе задачи защиты СЗИ НСД. Однако будем помнить, что использование аппаратной компоненты – это дополнительные и весьма существенные затраты на безопасность, кроме того, аппаратная компонента не всегда может применяться, например, при защите ноутбуков. В этом случае остается единственный способ контроля – с сервера безопасности.

В порядке иллюстрации приведем интерфейс контроля активности СЗИ НСД удаленно с сервера безопасности в сетевой системе защиты КСЗИ «Панцирь-К» (рис.7), где отображены возможные варианты отображения состояния защищаемого компьютера - станции: 1) станция выключена (по питанию) или не подключена к сети; 2) станция подключена к сети, но при соединении аутентификация не прошла; 3) станция подключена к сети, но КСЗИ на ней не активна; 4) станция подключена к сети и на ней активна КСЗИ.

Станция в состоянии (1) обозначается темно-зеленым, в состоянии (2) – красно-желтым, в состоянии (3) – красным, и в состоянии (4) – ярко-зеленым цветом. Данный механизм позволяет определить с сервера безопасности в реальном времени критичные станции (т.е. те станции, которые работают, но на них не активна КСЗИ - состояние (3) или станции, не прошедшие аутентификацию при соединении с сервером безопасности - состояние (2)).

Рис. 7. Отображение состояния защищаемых объектов на сервере

В порядке замечания отметим, что дополнительной возможностью удаленного контроля, реализуемого данным механизмом, является контроль несанкционированных подключений компьютеров к сети (например, к какому-либо концентратору). Данный компьютер сразу же отобразиться красным кружком в папке «Новые» (рис.7) на сервере безопасности. Важность подобного контроля обусловливается тем, что данный компьютер, на котором не установлено средство защиты, может быть использован злоумышленником в качестве инструментария для осуществления удаленной атаки на защищаемые ресурсы (на защищенные компьютеры в составе корпоративной сети). Подобные подключения конечно же должны отслеживаться администратором безопасности в реальном времени.

В заключение, вновь возвращаясь к вопросу, сформулированному в заголовке статьи: «Доверенная загрузка или контроль активности?», отметим, что, на наш взгляд, контроль активности как механизм защиты, является более общим решением, в котором доверенная загрузка ОС и СЗИ НСД может рассматриваться лишь в качестве одной из функциональных задач защиты, возлагаемой на внешние средства, в том числе, на аппаратную компоненту защиты из состава СЗИ НСД. С учетом же того, что контроль активности программной компоненты СЗИ от НСД, которой собственно и реализуются все механизмы защиты, должен осуществляться и в процессе функционирования защищаемого объекта (а не только при загрузке системы), на наш взгляд, именно реализация данного решения позволяет строить эффективные СЗИ НСД.

Опубликовано: Сайт ITSec.Ru-2007

Приобрести этот номер или подписаться

Статьи про теме