Набор функциональных свойств защиты, с учетом уровня конфиденциальности защищаемой информации, формализован и прописан в соответствующих нормативных документах в области защиты информации [1]. В соответствии с данными документами и с учетом того, что защищаемый объект должен обладать заданным набором свойств защиты, естественно, что первоочередной задачей разработчиков СЗИ НСД является добавление свойств (соответственно механизмов, их реализующих), не реализуемых встроенными в ОС механизмами. В зависимости от класса защищенности, к таким свойствам можно отнести гарантированное удаление остаточной информации, полномочный (или мандатный) принцип контроля доступа к ресурсам и др. При определенных условиях (в частности, если не проведены соответствующие уровню конфиденциальности обрабатываемой информации сертификационные испытания встроенных в ОС механизмов защиты), к добавочным СЗИ НСД выдвигается требование по реализации своими собственными средствами всех механизмов защиты, регламентируемых нормативными документами (о встроенных в ОС механизмах защиты в этом случае можно забыть).
Кроме того, как правило, добавочные СЗИ НСД привносят и некоторые дополнительные возможности, не регламентируемые нормативными документами в области защиты информации, в большинстве случаев, это относится к подключению дополнительных устройств аутентификации пользователя – электронные ключи, Flash-устройства и др., а также контроля действий пользователя на защищаемых объектах (в дополнение к решению задач аудита).
Заметим, что сама по себе задача добавления новых свойств защиты весьма не тривиальна (отнюдь не только в части реализации механизма защиты) и требует серьезных исследований, в первую очередь, принципов построения самой ОС. В качестве примеров возникающих проблем, например, для упоминавшихся выше механизмов защиты, можем отметить следующее. Если речь идет о мандатном управлении доступом к ресурсам, можно говорить о проблемах назначения меток безопасности иерархическим объектам, о включении в иерархические уровни – уровня «система» (как субъекта, так и объекта доступа), о необходимости разделения средствами СЗИ НСД файловых объектов, не разделяемых системой и приложениями [2], без чего, на наш взгляд, вообще нельзя говорить о корректности реализации полномочного принципа контроля доступа, и т.д. Если, например, рассматриваем вопросы гарантированного удаления остаточной информации, то должны учитывать, что при сохранении информации небольшого объема (где-то менее 1Кб), она располагается ОС не только в соответствующем файле, но и в таблице MFT (NTFS), и в журналах изменений.
Заметим, что вопросы корректности реализации СЗИ НСД (корректности, в смысле, не внесения дополнительных уязвимостей в систему) требуют самостоятельного исследования, поэтому их рассмотрению мы посвятим отдельную часть нашей работы (естественно, ни в коей мере, не предполагается рассмотрение уязвимостей современных СЗИ НСД, речь идет лишь о требованиях к корректности их реализации, вытекающих из широко известных и опубликованных архитектурных особенностей ОС).
Обобщая сказанное выше, можем определить следующее функциональное назначение добавочных СЗИ НСД:
Дополнение встроенной защиты новыми механизмами, с целью выполнения требований к защите информации соответствующего уровня конфиденциальности, заданных в нормативных документах в области защиты информации.
Дополнение встроенной защиты новыми возможностями, не регламентируемыми нормативными документами в области защиты информации, в большинстве случаев, это относится к подключению дополнительных устройств аутентификации пользователя – электронные ключи, Flash-устройства и др., а также контроля действий пользователя на защищаемых объектах (в дополнение к решению задач аудита).
Для ряда приложений, к добавочным СЗИ НСД выдвигается требование по реализации своими собственными средствами всех механизмов защиты, регламентируемых нормативными документами (без учета встроенных в ОС механизмов).
Таким образом, видим, что выше речь шла о внесении добавочными средствами СЗИ НСД некоторых новых дополнительных механизмов защиты, в некоторых же приложениях – дополнительно требуется повторить (этот вопрос требует некоторых уточнений и мы вернемся к нему в одной из следующих частей работы, вместе с рассмотрением вопросов корректности реализации СЗИ НСД) функции встроенных механизмов защиты, присутствующих в ОС, добавочными средствами. Но попробуем ответить на вопрос – а сами то встроенные в ОС механизмы защиты хороши, их функционала достаточно для обеспечения надежной защиты информации от НСД.
Для ответа на эти вопросы можем, обратиться, например, к работе [3], где приведена (получена из открытых источников) и классифицирована современная статистика найденных уязвимостей в ОС и приложениях, соответственно, к работе [4], где проведен краткий анализ причин возникновения основных уязвимостей, во многом, на наш взгляд, возникновение которых связано именно с архитектурными недостатками и принципами построения встроенных в ОС средств защиты. Анализируя же известную статистику уязвимостей ОС и приложений, и, наверное, это ни для кого сегодня не секрет, можем сделать вывод о том, что свойства встроенных во многие ОС механизмов защиты не столь хороши, как хотелось бы.
Следуя сказанному, можем определить следующую важную (а, на наш взгляд, так важнейшую) функциональную задачу добавочных СЗИ НСД:
Устранение архитектурных недостатков встроенных в ОС механизмов защиты, с целью противодействия, атакам, использующим как известные, так и потенциально возможные уязвимости ОС и приложений.
В качестве замечания отметим, что, во-первых, здесь речь идет не о решении новых задач защиты, в дополнение к задачам, решаемым встроенными механизмами, а о добавлении новых свойств защиты для повышения эффективности решения тех задач, для которых предназначены встроенные механизмы защиты, во-вторых, важнейшим условием эффективной защиты является противодействие именно «потенциально возможным уязвимостям». Наличие потенциальной возможности уязвимости обнаруживается в результате анализа собственно архитектуры построения ОС, при этом известная уязвимость может натолкнуть исследователя на выявление причины. Средствами же СЗИ НСД нужно противодействовать самой причине (устранять причину) возникновения уязвимости – только в этом случае задача защиты может быть решена в общем виде. В противном случае – если будем противодействовать конкретным уязвимостям, получим решение задачи, очень близкое по своей сути к существующим подходам – устранение уязвимостей, за счет внесения обновлений ОС и приложений (о том, к чему это приводит, поговорим в следующей части нашей работы, которую посвятим вопросам исследования надежности защиты информации).
Теперь, чтобы нас не обвинили в голословности, рассмотрим всего лишь одно запатентованное нами решение (сегодня по реализации механизмов защиты нами подано 17 заявок на изобретение, уже получено 11 патентов), и посмотрим, какие новые свойства защиты информации оно в себе несет. Заметим, что данное решение нами практически реализовано и апробировано.
Основу принципов контроля доступа к ресурсам составляет задание прав и разграничение на основании определенных правил доступа субъектов (пользователей) к объектам, в частности, к файловым объектам. Данный способ контроля доступа реализуется современными средствами защиты информации от НСД, в частности ОС, и формализован в соответствующих нормативных документах.
При этом любой процесс, запускаемый пользователем (в том числе, и пользователем System), наследует права доступа пользователя, его запустившего. Другими словами, поток, порождаемый процессом, обращается к ресурсу с правами пользователя (если, естественно, не произведено олицетворения с маркером безопасности другого пользователя, но это отдельный вопрос).
Однако, именно процесс, может нести в себе уязвимость несанкционированного доступа к информации. Тому может быть несколько причин, во-первых, процесс априори может обладать недекларированными (документально не описанными) свойствами, в частности, это процессы, являющиеся средой исполнения (прежде всего, это виртуальные машины, являющиеся средой исполнения для скриптов и апплетов, и офисные приложения, являющиеся средой исполнения для макросов), во-вторых, процесс может быть скомпрометирован – содержать ошибки, использование которых позволяет осуществить несанкционированный доступ к информации (наиболее критичными сегодня являются ошибки переполнения буфера приложений и некорректность использования приложениями сервисов олицетворения, приводящие к расширению привилегий пользователей, как правило, получение привилегий пользователя System, с правами которого запускаются данные приложения).
Таким образом, может быть обозначена проблема осуществления контроля доступа к ресурсам с учетом доверия к процессам, а также с учетом решаемых задач и особенностей функционирования процесса. Естественно, что это возможно только в том случае, если процесс можно рассматривать, как самостоятельный субъект доступа, а не субъект, наследующий права доступа пользователя (в противном случае, следует говорить о доверии к пользователю, а не к процессу).
Основу предлагаемого нами механизма контроля доступа процессов к ресурсам, составляет включение в схему разграничения прав доступа к ресурсам, наряду с субъектом доступа «пользователь», субъекта доступа «процесс», в предположении, что права доступа этих субъектов могут не совпадать (еще раз напомним, что в системе процесс запускается с правами пользователя, его запустившего).