|
|
Обзор подготовлен |
При поддержке |
|
|
Уязвимости больше не страшны ОС?
Одной из ключевых задач создания средств добавочной защиты операционной системы является устранение уязвимостей, основанных на архитектурных недостатках систем. Всего лишь одна уязвимость данного вида может породить целый класс атак «на расширение привилегий». Основу предлагаемого подхода к реализации механизма контроля доступа к ресурсам составляет включение субъекта доступа «процесс», что кардинально меняет возможности и эффективность обеспечения компьютерной безопасности.
Уязвимость, порождающая атаки «на расширение привилегий», состоит в невозможности корректного разграничения в современных ОС прав доступа для системных пользователей (субъектов доступа), в частности, для пользователя «System» (ОС Windows) и для пользователя «Root» (ОС Unix). Получив права системного пользователя, используя ошибку в приложении, запускаемом с системными правами (подобный сервис разработчикам приложений предоставляют ОС), злоумышленник практически получает полное управление компьютером, как следствие, неограниченный доступ к защищаемым ресурсам.
Надо отметить, что соответствующее требование к корректности реализации разграничительной политики доступа к ресурсам сформулировано в отечественных нормативных документах в области защиты информации к средствам вычислительной техники (СВТ), начиная уже с 6-го класса защищенности. Оно гласит, что для каждой пары (субъект—объект) в СВТ должно быть задано явное и недвусмысленное перечисление допустимых типов доступа, т.е. тех типов доступа, которые являются санкционированными для данного субъекта к данному ресурсу СВТ (объекту).
К сожалению, большинством современных средств добавочной защиты ОС, представленных на отечественном рынке, в лучшем случае, решаются задачи добавления механизмов защиты в соответствии с условиями применения ОС (например, мандатного механизма контроля доступа для приложений, связанных с обработкой категорированной информации), т.е. решаются вопросы полноты набора механизмов защиты, но никак не корректности их реализации. Подчас добавочными средствами вообще используются встроенные механизмы ОС. С учетом же того, что современные ОС развиваются в большой мере именно в части расширения функциональных возможностей защиты информации (в первую очередь, это относится к ОС семейства Windows), у конечного потребителя средств защиты порой складывается ложное мнение о целесообразности практического использования добавочных средств.
Защитное звено
Основу предлагаемого подхода к реализации механизма контроля доступа к ресурсам, составляет включение в схему разграничения прав доступа к ресурсам, наряду с субъектом доступа «пользователь», субъекта доступа «процесс», в предположении, что права доступа этих субъектов могут не совпадать (в ОС процесс запускается с правами пользователя, его запустившего).
Алгоритм контроля доступа к ресурсам
Предлагаемое решение состоит в следующем. В общем случае при управлении доступом к ресурсам следует различать два самостоятельных субъекта доступа — «пользователь» и «процесс». При этом предлагается управлять доступом (разграничивать права доступа) не только для субъекта «пользователь», но и для субъекта «процесс», причем могут быть выделено несколько схем задания разграничительной политики доступа к ресурсам.
Во-первых, можно разграничивать права доступа к объектам процессов вне разграничений пользователей. В этом случае доступ к объекту разрешается, если он разрешен процессу, а права доступа пользователя, запустившего процесс, не учитываются. Данная схема разграничений может использоваться в том случае, когда процессу следует расширить права доступа к ресурсам, по сравнению с пользователем, запустившим процесс.
Вторым возможным способом является разграничение прав доступа к объектам пользователей вне разграничений процессов, когда доступ к объекту разрешается, если он разрешен пользователю, права доступа процесса не учитываются. Это обычная схема разграничений прав доступа, используемая современными ОС, не позволяющая учитывать свойства отдельных процессов, в частности, уровень доверия к ним.
Также возможно комбинированное разграничение прав доступа. В таком случае разграничение прав доступа к объектам процессов происходит в рамках разграничений пользователей. Иначе это можно назвать совместным разграничением доступа процессов и пользователей: доступ к объекту разрешается, если он разрешен и пользователю, и процессу. Данная схема разграничений может использоваться в том случае, когда процессу следует сузить права доступа к ресурсам, по сравнению с пользователем, запустившим процесс.
В соответствии с описанием решения, могут использоваться различные механизмы управления доступом к ресурсам процессов (как избирательный, так и полномочный). Суть данного решения состоит в том, что права доступа процесса к ресурсу могут отличаться от прав доступа пользователя.
Контролируем системных пользователей
Применительно к задаче корректности реализации разграничительной политики доступа к ресурсам, в части задания разграничений для всех пользователей, в том числе, и системных, речь пойдет о назначении эксклюзивных прав доступа, так называемым, привилегированным процессам, то есть таким процессам, доступ которых к ресурсам должен разграничиваться вне прав доступа, устанавливаемых для пользователей.
Попытка установить запрет доступа «на запись» к системному диску и к значимым ветвям и ключам реестра ОС для пользователя «System» (рассматриваем ОС Windows) штатными средствами ОС, приведет к неработоспособности системы, т.к. при этом будет запрещен подобный доступ всем процессам, включая системные. Решение вопроса в нашем случае связано с включением в схему разграничения прав доступа привилегированных процессов.
Здесь рассматриваются системные процессы и процессы системы защиты (далее СЗИ НСД), для которых устанавливаются права доступа вне прав пользователя. В частности, этим процессам для корректного функционирования системы и СЗИ НСД вне прав пользователя «System» необходимо разрешить запись на системный диск. При этом надо отметить, что данные процессы не имеют интерфейса взаимодействия с пользователем, т.е. не могут быть использованы для несанкционированного доступа злоумышленником к системному диску.
Аналогично могут быть сформированы и права доступа к объектам реестра ОС, отличие здесь состоит в наборе системных процессов, которым следует разрешить полный доступ к системному диску вне прав пользователей.
Очевидно, что при данных настройках системы защиты теряется в принципе какой-либо смысл атак на расширение привилегий, с целью получения привилегий пользователя «System» т.к. у пользователя «System» становится прав на доступ к ресурсам меньше, чем у любого другого пользователя, зарегистрированного в системе. Другими словами, предложенный подход позволяет устранить ключевой архитектурный недостаток встроенной защиты ОС и решить вопрос противодействия атакам на расширение привилегий в общем виде.
С защитой системного диска связаны и вопросы корректности реализации механизма обеспечения замкнутости программной среды, т.к. на системном диске находятся исполняемые файлы системных процессов, возможность модификации которых необходимо предотвратить, а также расширение его функциональных возможностей, за счет того, что появляется возможность контроля запуска процесса процессом.
Использование данного подхода несет в себе и возможность распределения задач администрирования между администратором безопасности и системным администратором Права системного администратора СЗИ НСД могут быть сведены на нет, либо в значительной мере ограничены. До тех пор, пока активна СЗИ НСД, системный администратор сможет выполнять только те функции, которые средствами СЗИ НСД разрешены ему администратором безопасности.
Доверяй, но проверяй
Выше рассмотрены вопросы включения в схему контроля доступа субъекта процесс, с целью расширения прав доступа пользователя. Рассмотрим альтернативный вариант применения предложенного подхода.
Как было отмечено, основу существующих принципов контроля доступа к ресурсам, реализованных в современных ОС, составляет задание прав и разграничений на основании определенных правил доступа субъектов (пользователей) к объектам. Однако именно процесс, и может нести в себе уязвимость, используемую для несанкционированного доступа к информации. Тому может быть несколько причин, которые могут быть положены в основу классификации процессов, которые можно разбить на четыре типа: несанкционированные, критичные, скомпрометированные и процессы, априори обладающие не декларированными свойствами.
Процессы первого типа не требуются пользователю для выполнения своих служебных обязанностей и могут несанкционированно устанавливаться на компьютер (локально, либо удаленно) с различными целями, в том числе, и с целью осуществления НСД к информации.
|
|