Служба новостей IDG, Бостон

В Microsoft утверждают, что новая модель предоставления полномочий доступа усложнит жизнь хакерам и авторам вирусов

Специалисты, которые примут участие в ежегодной конференции Microsoft Windows Hardware Engineering Conference, смогут впервые опробовать новую модель предоставления прав доступа. Это решение может серьезно изменить подход к разработке и использованию тысяч прикладных программ. Однако, хотя в Microsoft и готовятся к «финишному рывку» в создании Longhorn, о планах разработчиков корпорации относительно новой модели предоставления полномочий доступа, получившей название Least-Privilege User Account или LUA (произносится как «Лу-а»), пока ничего конкретного не известно.

В Microsoft утверждают, что LUA усложнит жизнь хакерам и авторам вирусов, ограничивая возможности доступа к полномочиям администрирования ОС Windows. Однако корпорация ничего определенного не сообщает о своих планах по реализации механизма LUA в Longhorn. По мнению многих аналитиков, Microsoft ищет способы убедить скептически настроенных независимых производителей программного обеспечения поддержать LUA. В частности, в Редмонде намерены предложить разработчикам новую систему маркировки программ, которая свидетельствовала бы о поддержке в них данного механизма.

Минимальные полномочия — хорошо известный принцип защиты компьютерных систем, который рекомендует предоставлять приложениям и их пользователям при работе в операционной системе только те полномочия, которые абсолютно необходимы. Джон Пескаторе, ведущий аналитик компании Gartner по вопросам информационной безопасности, считает, что моделью минимальных полномочий, широко известной в сообществе разработчиков, последние годы часто пренебрегали. Это происходило потому, что производители операционных систем и приложений стремились максимально упростить работу со своими продуктами.

В Microsoft заявляют, что применение в Longhorn модели минимальных полномочий будет поддерживаться таким образом, чтобы пользователям было удобно выполнять большинство действий без административных полномочий. Например, в организации могут настроить Windows таким образом, чтобы пользователи с ограниченными полномочиями могли поменять настройки дисплея и управления питанием на своих машинах, а также упростить им использование технологии виртуальных частных сетей. Другие изменения в операционной системе позволят разработчикам создавать индивидуальные настройки приложений для каждого пользователя, которые будут записываться в папку «Мои программы», а не в общедоступный каталог файлов программ, менять который могут только пользователи с полномочиями администратора.

Кроме того, в Microsoft предлагают создавать так называемые «манифесты приложений», в которых разработчики смогут указывать полномочия, необходимые приложению для корректной его работы. Для гарантии их целостности производители программного обеспечения могут заверять эти манифесты цифровой подписью. Манифесты установки, аналогичным образом заверенные ИТ-отделами, позволяют сетевым администраторам предписывать, насколько новому приложению можно доверять работать с сетью.

Эти изменения, как предполагается, позволят возродить важную концепцию построения защиты, которую сейчас практически игнорируют многие пользователи и разработчики Windows-приложений.

«Не думаю, что понятие уровня приложения так уж очевидно и корректно поддерживается, — заметил Джейсон Риммер, главный архитектор компании Vertex, специализирующейся на разработке Web-приложений. — Те, кто работал с ОС Unix, привыкли спрашивать, нужны ли данной программе полномочия суперпользователя. Но пользователи, имевшие дело с Windows, никогда этим не интересовались. LUA заставляет делать такой выбор».

В апреле Кит Браун, один из основателей компании Pluralsight, опубликовал в форуме MSDN документ, посвященный LUA. В нем он, в частности, подчеркивает, что в Windows программы, как правило, записывают пользовательские файлы в критически важные области операционной системы, такие как каталог программных файлов или защищенные части системного реестра. В таких областях размещается конфигурационная информация, и доступ к ним обычным пользователям запрещен.

Разработчики приложений при создании кода регистрируются на своих рабочих машинах как администраторы и пишут программы, предполагающие именно такой уровень полномочий. Однако эти программы не работают, когда их запускает пользователь с ограниченными полномочиями. По оценкам Брауна, 90% программ для платформы Windows невозможно установить, не имея прав администратора, а 70% таких программ не будут работать, если пользователь не имеет полномочий администратора.

Сетевые администраторы заставляют уменьшать полномочия пользователей в сети и ограничивать доступ к серверам и другим ресурсам. Однако пользователи часто регистрируются в своих Windows-системах с правами локального администратора, поскольку с правами обычного пользователя иногда невозможно запустить даже некоторые распространенные программы. Авторы вирусов, червей и программ-шпионов стремятся использовать эти завышенные полномочии, чтобы установить свои вредоносные программы. Более того, они пытаются изменить конфигурацию Windows, чтобы не дать обнаружить, отключить или удалить свои творения.

Механизм LUA может стать серьезным препятствием на пути проникновения в Windows-системы червей и вирусов. Однако, как считают эксперты, Microsoft будет непросто убедить пользователей и разработчиков изменить привычные для них методы работы. Сделать это крайне непросто, даже учитывая новые возможности, которые поддерживает режим LUA в Longhorn.

«Среда с минимальными полномочиями, о которой идет речь, существует уже девять лет... Фактически производители выбрали путь наименьшего сопротивления и продолжают записывать программные настройки в каталог файлов программ. Создатели программного обеспечения, в том числе Microsoft, должны отказаться от разработки кода на основе такого ?ленивого? подхода», — считает Брайан Бергин, президент компании Terabyte Computers.

По словам Боба Корригана, менеджера компании Macrovision по продуктам семейства InstallShield, чтобы способствовать внедрению возможностей и принципов LUA, Microsoft совместно с Macrovision создает специальные программы для разработки и установки приложений. Эти решения предназначены для использования совместно с Longhorn, в которой будет реализован механизм LUA.

Установку программы в среде Windows наиболее сложно реализовать при использовании модели LUA, поскольку ОС требует, чтобы при инсталляции файлы записывались в разные области файловой системы Windows и менялась конфигурация в системном реестре, который часто недоступен пользователям с обычными правами.

«Появление LUA заставит предприятия и независимых производителей программного обеспечения тщательно анализировать, что именно делают приложения в момент их установки», — сказал Корриган.

В Macrovision надеются в своих приложениях избавиться от некоторых сложностей, присущих LUA. Так, будущие версии InstallShield позволят независимым производителям программного обеспечения создавать программы установки и настройки приложений, которые изолируют друг от друга функции пользователя и администратора. Благодаря этому для установки некоторой программы пользователям не понадобятся права администратора, а административные полномочия не будут случайно предоставлены пользователям, не имеющим на это прав.

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

Microsoft также большое значение придает программе сертификации приложений, аналогичной программе сертификации программ для Windows, которая будет гарантировать особый статус приложениям, соответствующим принципам LUA.

«Если проведена проверка того, что данное приложение соответствует принципам LUA, то в рамках программы сертификации Microsoft будет помогать производителям на крайне важном этапе — при создании инсталляционного пакета приложения», — сказал Корриган.

По информации из ряда источников, в Microsoft работают над программой сертификации и выдачи логотипа, аналогичной той, что описал Корриган.

Кроме того, в Microsoft, не сообщая ничего определенного о роли LUA в Longhorn, подтверждают, что рассматривают LUA для новых версий операционных систем как часть общей многоуровневой защиты, своего рода «глубоко эшелонированной обороны». Об этом говорится в заявлении Эмми Робертс, директора подразделения Microsoft Security Business and Technology Unit.

Microsoft исподволь дает понять независимым производителям, что у нее есть определенные планы относительно LUA.

«Архитектурная концепция минимальных полномочий существует давно, поэтому мне необходима более подробная информация от Microsoft. Я рассчитываю, что наряду с ограничениями, которые накладывает защита, для каждого уровня полномочий мне предложат четко сформулированный список возможностей. Например, что-то вроде ?пользователи могут добавлять других пользователей, устанавливать программы или получать информацию о производительности?», — сказал Риммер.

Недостаток информации привел к появлению различных слухов о том, что некоторые основные компоненты LUA пересматриваются по мере того, как разработчики Longhorn готовятся к созданию альфа-версии своего продукта.

«Можно предположить, что это не пустые разговоры, поскольку сейчас время принятия решения... Microsoft получает отзывы от крупных заказчиков и пытается представить, как предлагаемые концепции воплотить в соответствующем компоненте продукта», — убежден Риммер.

Некоторые аспекты LUA могут быть также связаны с Windows File System следующего поколения, которая, согласно сделанному в августе заявлению Microsoft, не будет выпущена с первой версией Longhorn в конце 2006 года.

Так или иначе, поддержка LUA для многих разработчиков приложений будет весьма серьезным шагом, и Microsoft необходимо начать формирование основы для такого изменения.

«Им следует прямо сейчас сформулировать свои предложения и дать независимым разработчикам программного обеспечения полтора года ?на адаптацию?, — считает Пескаторе. — Вспомните ситуацию с Windows XP SP2 и сетевым экраном, активированным по умолчанию. Они попытались предложить это решение за год до выпуска окончательной версии и получили немало жалоб от независимых производителей, утверждавших, что приложение не работает».

Кроме того, компании нужно иметь в виду следующее: независимые производители сначала должны убедиться в том, что ориентация на LUA дает определенные преимущества, которые стоят дополнительных усилий, затраченных на разработку.

«LUA — это изменение, которое независимые производители программных продуктов могут принять в штыки», — сказал Риммер.

Пока же Риммер поддерживает действия Microsoft, несмотря на то что конкретные планы корпорации еще не ясны.

«В Microsoft работают неглупые люди, и уже существует архитектурная основа для этого шага. Они пытаются использовать и усовершенствовать данную основу применительно к своей платформе, как они это сделали при внедрении активного каталога», — заметил Риммер, имея в виду реализацию корпорацией Microsoft протокола LDAP.

Кроме того, корпорация имеет возможность придать LUA дополнительный вес, предлагая свои дружественные к пользователю возможности и интерфейсы. Последние, как считает Пескаторе, могли бы сделать Windows значительно удобнее и проще, чем такие платформы, как, скажем, Sun Trusted Solaris. 


Догоняющий маркетинг

Операционные системы Microsoft часто повторяют в своем развитии профессиональные разработки прежних лет. И реализуя в своих продуктах идеи, уже реализованные, к примеру, в Unix, корпорация придумывает какое-нибудь новое маркетинговое слово; одно из таких слов — буквосочетание LUA.

Собственно, принцип минимальных полномочий был присущ Unix изначально, поскольку этой операционной системой могли пользоваться сразу несколько человек и каждый из них имел свои полномочия. Поэтому для пользователей Unix нужно было организовать работу так, чтобы устанавливал и настраивал приложение администратор, а исполнять его могли любые другие пользователи.

Как реализуется принцип минимальных полномочий в Unix? Он базируется на двух механизмах — на локальных настройках и бите SUID. Для приложений в Unix предусматривается несколько каталогов, в которые принято помещать файлы конфигурации. Наиболее общие настройки ОС располагаются в каталоге /etc, а конфигурационные файлы отдельных приложений хранятся в специальных разделяемых каталогах. Оба эти места обычному пользователю доступны только на чтение, поэтому в них хранятся общие настройки, изменять которые может только администратор.

Персональные конфигурационные файлы хранятся в домашнем каталоге пользователя и, как правило, начинаются с символа точки, то есть по умолчанию являются скрытыми. Приложение во время загрузки просматривает сначала персональные настройки, а если их нет, то общие. Все изменения конфигурации, которые выполняет пользователь, отражаются только на его персональных настройках. В таких графических средах, как KDE и GNOME, есть средства, которые позволяют снять с разработчика бремя написания кодов для управления глобальными и персональными настройками приложений.

Важной особенностью Unix, которая позволяет реализовать принцип минимальных полномочий, является атрибут изменения полномочий при запуске приложения — бит SUID. Если у приложения этот бит установлен, то оно запустится от имени того пользователя, которому оно принадлежит, а не того, кто его запустил. Таким образом, администратор может пометить этим атрибутом те приложения, которым он доверяет и которые выполняют для непривилегированных пользователей от его имени определенные задачи — скажем, такие, как выключение системы или подключение к Internet. Без этих двух функциональных возможностей соблюдение принципа минимальных полномочий невозможно.

В то же время изначально в Windows, наследнице DOS, пользователь был один. Он мог творить в системе все. Писать программы для однопользовательского режима проще, и у такой «простоты» появилось немало поклонников среди программистов. К тому времени, когда появилась операционная система Windows NT, где было реализовано разделение полномочий и появилась роль администратора, разработчики уже привыкли не задумываться о принципах разделения доступа. Затем эти же механизмы без существенных доработок были перенесены в Windows 2000, XP и 2003. Однако многие разработчики писали — и до сих пор пишут — программы фактически для однопользовательского режима.

В результате даже установка в Windows XP программы для работы с цифровым диктофоном требует права администратора, а будучи установлена, не запускается от имени других пользователей. В то же время популярные многоплатформенные программы, такие как Mozilla или OpenOffice.org, корректно соблюдают правила минимальных полномочий, в том числе и для Windows. Собственно, проблема в том, что разработчики помещают настройки приложений не в пользовательский реестр HKEY_CURRENT_USER, а в глобальный HKEY_LOCAL_MACHINE, доступ к которому требует административных полномочий. Это же рассуждение относится и к каталогу файлов программ.

В апреле Кит Браун опубликовал в MSDN статью о принципах LUA, о которых он узнал после предварительного ознакомления с Longhorn. Судя по его сообщению, в Microsoft решили реализовать оба механизма, используемые для минимизации полномочий в Unix. Для управления персональными настройками предлагается механизм управления проблемами приложения (Application Impact Management, AIM), а для повышения полномочий для отдельно взятых программ (аналог атрибута SUID) разработана концепция защищенного администратора (Protected Administrator, PA). Собственно, сам термин LUA означает полномочия, средние между административными и гостевыми: такие полномочия будут выдаваться пользователям, которые работают с приложениями, но не занимаются администрированием компьютера.

Механизм AIM позволяет приложению хранить локальные копии глобальных настроек и файлов. Как только пользователь с минимальными полномочиями попытается изменить глобальные настройки реестра или данные в защищенном файле, то для него автоматически создается локальная копия записи реестра или файла, с которой приложение и будет работать в дальнейшем. Таким образом, непривилегированный пользователь получает возможность иметь персональные настройки, а иногда и персональные исполнимые файлы.

Концепция защищенного администратора PA не так прозрачна, как SUID, но придумана она для того же — для повышения полномочий для отдельных доверенных программ. Программы, которые помечены как доверенные, получают на время своего исполнения административные полномочия даже в том случае, если они были запущены пользователем с минимальными полномочиями. Для поддержки же обоих механизмов концепции LUA от разработчика требуется составить два XML-файла, которые являются манифестами приложения, наличие которого и является признаком соответствия LUA. Манифест приложения заверяется подписью разработчика, и его неизменность всегда можно будет проверить. Хотя сообщение Брауна является предварительным и, возможно, в конце концов в Longhorn механизмы защиты будут устроены по-иному, уже сейчас понятно, что без их реализации Microsoft уже не может обойтись.

Валерий Коржов, Computerworld Россия