Управление учетными записями пользователей

Мы обещали, что этот блог станет окном в процесс разработки Windows 7. Это значит, что мы намерены осветить данную тему с разных сторон – от производительности до интерфейса, с технической и не технической точек зрения , как простые, так и неоднозначные темы. И эта статья посвящена управлению учетными записями пользователей ( UserAccountControl ‑ UAC ). И сегодня в качестве нашего автора дебютирует Бен Фази ( BenFathi ), вице-президент группы CoreOSDevelopment . UAC является такой функцией, в которая пересекаются многие аспекты архитектуры Windows – безопасность, учетные записи, интерфейс, дизайн и так далее. В это сообщение внесли вклад и еще несколько участников нашей команды.

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

На серверах blogs . msdn . comвключена защита от спама, поэтому некоторые из комментариев могут пропасть. Мы не контролируем это и не проверяем комментарии. Сточки зрения безопасности я не буду публиковать правила спам-фильтра, однако, заранее приношу свои извинения, если ваш комментарий остался неопубликованным. -- Стив

Функция User Account Control (далее просто UAC) является одной из самых неоднозначных функций Windows Vista. С какой целью Microsoft добавила эти навязчивые всплывающие окна в Windows? На самом ли деле это улучшает безопасность? Разве не все при возникновении диалога UAC щелкают «Продолжить»? Слышали ли в Редмонде о негативных отзывах пользователей? Видел ли кто-нибудь рекламу этой функции в прессе и на ТВ?

Вопросов очень много, поэтому при разработке Windows 7 мы решили уделить пристальное внимание UAC – переоценить отзывы пользователей, собранную статистику, программную экосистему и саму Windows. Давайте сначала рассмотрим причины появления UAC и наш подход к ее разработке для Vista.

Почему UAC ?

Если оставить в стороне технические подробности, UAC представляет собой функцию, информирующую пользователя обо всех изменениях, носящих системный уровень, обеспечивая полный контроль над происходящим. Такими «нежелательными» изменениями могут послужить действия вредоносного ПО. Тем не менее, нежелательным может оказаться вмешательство других пользователей с ограниченными привилегиями, к примеру, детей, желающих обойти ограничения родителей, или сотрудников, устанавливающих запрещенные приложения. Windows NT всегда поддерживала учетные записи различных типов, в том числе и запись «стандартного пользователя», не имеющего администраторских привилегий для выполнения задач системного уровня. В организациях, как правило, предоставляют пользователям учетные записи именно стандартных пользователей, обеспечивая администраторскими привилегиями лишь системных администраторов. Стандартные пользователи не могут вносить изменения системного уровня даже случайно, посетив, к примеру, вредоносный сайт или установив вредоносное приложение. Контроль над изменениями, вносимыми большинством пользователей, значительно снижает степень риска, сокращая количество обращений в службу поддержки и, в результате, общую стоимость владения компьютером для компании. Дома родители могут создавать стандартные учетные записи для своих детей, используя для их защиты инструменты родительского контроля.

Однако, за стенами компаний, исключая случаи родительского контроля, большинство компьютеров (75%) имеют одну учетную запись с полными администраторскими привилегиями. Частично это обусловлено тем, что первый создаваемый пользователь по умолчанию является администратором, поскольку компьютеру администратор необходим, а также тем, что пользователям всегда хочется располагать полным контролем над своими компьютерами. Так как большинство пользователей работают в учетной записи администратора, исторически образовалась среда, в которой большинство приложений и компонентов Windows получили возможность вносить изменения в систему. При этом приложения, написанные с учетом этого, не работали для учетных записей стандартных пользователей – тех, которые используются в организациях и при настройке родительского контроля. Кроме того, полный доступ любого приложения к компьютеру являлся серьезной угрозой системе, будь то злонамеренные действия (вредоносное ПО) или приложения со случайными ошибками в коде.

clip_image002

Доля компьютеров (не включая серверов) с одной и более учетными записями пользователей с января по июнь 2008 г.

В Windows Vista функция UAC была введена с целью устранить две проблемы: несовместимость приложений среди различных типов учетных записей и неосведомленность пользователей об изменениях, вносимых в систему. Мы расширили базу учетных записей, добавив запись защищенного администратора (Protected Admin ‑ PA), которая автоматически применяется к первому из созданных пользователей. Когда пользователь с такой учетной записью авторизуется в системе, ему присваиваются сразу две метки безопасности (или токена), одна из которых соответствует метке стандартного пользователя и подходит для большинства выполняемых операций, а вторая снабжает его полными администраторскими привилегиями. Таким образом, стандартные пользователи получают лишь базовую метку, но в случае необходимости могут устанавливать метку администратора из другой учетной записи.

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

Что мы поняли?

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

UAC оказал значительное влияние на программную экосистему, пользователей Vista и саму Windows. Как уже упоминалось в предыдущих статьях, существует множество способов для добровольной и анонимной отправки статистической информации об использовании тех или иных функций (программы Customer Experience Improvement Program и Windows Feedback Panel, опросы пользователей, лабораторное тестирование, публикации в блогах и внутренние тестирования). Собранная статистика и отзывы пользователей позволяют расставлять приоритеты и принимать верные с точки зрения дизайна решения. И благодаря этим данным стали очевидны результаты внедрения UAC.

Влияние на программную экосистему

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

В первые месяцы после релиза Vista пользователи сталкивались с UAC в 50% сессий (времени между авторизацией в системе и завершением работы). Более того, было зарегистрировано 775312 уникальных приложений, приводящих к возникновению диалога (инсталляторы и непосредственно программы считаются разными приложениями). Число громадное лишь потому, что большая часть программной экосистемы требует наличия администраторских привилегий. По мере выхода обновленных версий все меньше и меньше приложений требует наличия прав администратора. Статистика, собранная через программу CEIP в августе 2008 года, показывает, что за 18 месяцев количество приложений и задач, приводящих к возникновению диалогов UAC, сократилось с 775312 до 168149.

clip_image004

Количество уникальных приложений и задач, приводящих к появлению диалогов UAC

Это сокращение означает, что все больше и больше приложений могут работать в режиме стандартных пользователей и, как следствие, не могут нанести системе серьезного вреда. По мере использования Windows количество диалогов в значительной степени сокращается, поскольку большинство необходимых приложений установлены и настроены должным образом. Вернемся к результатам, полученным через программу CEIP: с релизом Vista SP1 количество сессий с зарегистрированными диалогами UAC снизилось с 50% до 33%.

clip_image006

Количество сессий с диалогами UAC

Влияние на Windows

Прямым следствием UAC является увеличение инженерного качества Windows. На сегодняшний день количество компонентов Windows, имеющих полный доступ к системе существенно сократилось. А компоненты, которым все-таки требуется полный доступ, должны запросить подтверждение пользователя. Судя по результатам, Windows сама по себе является причиной около 40% диалогов UAC. Ситуация ухудшается, если взглянуть на самые часто появляющиеся диалоги: компоненты Windows являются причиной 17 из 50 наиболее часто возникающих диалогов UAC в Vista, и 29 из 50 в Vista SP1. Некоторые изменения в Vista SP1 помогли сократить число диалогов, появляющихся при использовании самых популярных компонентов Windows (таких как подсистема копирования), но очевидно, что мы можем сделать (и сделаем) больше. Наши партнеры тоже работают над сокращением количества диалогов, собственно, поэтому в списке увеличилось число компонентов Windows. В Windows 7 внесены более глубокие архитектурные изменения, поэтому число диалогов, вызванных компонентами Windows, будет значительно ниже. Сокращение количества диалогов в программной экосистеме и самой Windows дает пользователям уверенность в том, что устанавливаемое ими программное обеспечение не может нанести вреда системе, позволяет четко идентифицировать критические уведомления, обеспечивая полный контроль.

Мы часто слышим о количестве диалогов, возникающих при загрузке из Internet Explorer. Это характерный пример общей ситуации, когда диалог какого-либо приложения сопровождается диалогом User Account Control. С момента релиза XP SP2 в IE появился специальный диалог, предупреждающий пользователей об опасности запуска приложений, загруженных из Интернета. В Vista вслед за диалогом IE на экране появлялся диалог UAC. Это лишь одна из проблем, которую нам предстоит решить.

clip_image008

Количество компонентов, требующих полного доступа к системе

Влияние на пользователей

Как оказалось, один дополнительный щелчок при выполнении таких действий, как открытие диспетчера устройств, установки приложения или отключения брандмауэра, огорчает и расстраивает пользователей. Вот фрагменты отзывов пользователей, полученных через программу Windows Feedback Panel:

  • Мне не нравится, что меня постоянно спрашивают, действительно ли я хочу сделать то, что поручил компьютеру.
  • У меня создается впечатление, что Vista просит подтвердить буквально каждое из выполняемых мною действий, и это меня раздражает.
  • Постоянные вопросы выведут из себя кого угодно. Но хорошо, что это вынуждает детей спрашивать меня пароль, когда они пытаются что-то изменить.
  • Пожалуйста, упростите управление User Account Control, которое порой озадачивает и раздражает.

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

Делает ли это систему более безопасной? Если бы каждый пользователь Windows был экспертом, понимающим последствия любой выполняемой операции, диалог UAC оказался бы еще более полезным и ничто вредоносное не смогло бы проникнуть на компьютер. В действительности многие попросту не читают, что сообщается в диалоге, поэтому в таких случаях от UAC нет никакой пользы, а лишь сплошное раздражение. В Vista некоторые из опытных пользователей предпочитают отключать UAC, а сделать это не так-то просто, поскольку опция отключения спрятана достаточно глубоко. Мы, со своей стороны, настоятельно не рекомендуем этого делать, хотя и понимаем, что для многих из вас в этом есть смысл. Остальные, кто действительно читает, о чем сообщается в диалоге UAC, выигрывают от использования этой функции. Но и им частенько бывает сложно понять сообщение, скрытое в диалоге. В одном из сотен проводимых нами лабораторных исследований всего 13% участников смогли объяснить причину возникновения того или иного диалога UAC в Vista. Другие же, когда их спросили об этом, не смогли вспомнить, когда они видели такой диалог. Согласно статистике, администраторы компьютеров подтверждают около 89% диалогов в Vista и 91% – в SP1. Мы, конечно же, понимаем, что в большинстве случаев срабатывает привычка пользователей, вызванная большим количеством диалогов, а не осознанным выбором. Многие скажут, что это было вполне предсказуемо.

clip_image010

Доля диалогов UAC от числа всех диалогов

clip_image012

Доля диалогов UAC, получивших подтверждение пользователей

Заглядывая в будущее

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

Итак, судя по статистике и отзывам наших пользователей, в Windows 7 нам следует устранить следующие проблемы:

  • До минимума сократить количество ненужных и повторяющихся диалогов, вызываемых Windows и сторонними приложениями.
  • Обеспечить пользователей уверенностью в том, что они имеют полный контроль над своими системами.
  • Сделать всплывающие диалоги более информативными, чтобы пользователи могли делать более осознанный выбор.
  • Сделать контроль над механизмом более очевидным и простым.

Преимущества UAC для экосистемы и для Windows очевидны, поэтому мы должны продолжить ранее начатую работу. Увеличив число компьютерных систем со стандартными учетными записями, система UAC достигла своей главной цели – обеспечить ИТ-администраторов и родителей полным контролем над компьютерами. И как показывает статистика, количество сторонних приложений и компонентов Windows, требующих для своей работы администраторских привилегий в значительной степени сократилось. В результате сокращается количество диалогов, которые видят пользователи, а это, как вы знаете, является основной причиной недовольства UAC. При разработке Windows 7 мы намерены учесть накопленный опыт, уделив пристальное внимание тем сценариям, которые наиболее важны для пользователей, и сведём к минимуму количество необходимых диалогов UAC. Кроме того, мы продолжим стимулировать сторонних и наших внутренних разработчиков сокращать количество диалогов UAC.

Еще более важно то, что по мере эволюции UAC в Windows 7 мы, наконец-то, сможем ответить на отзывы пользователей по поводу бессметного количества диалогов. Мы осознали ваше огорчение, вызванное частотой, навязчивостью и неопределенностью диалогов. Мы не отказываемся от ранее поставленной цели обеспечить полный контроль пользователей над происходящим в их компьютерах, но хотим сделать это более удобным способом. Мы искренне верим, что добиться этого можно следуя двум основным принципам:

1) Расширить контроль над уведомлениями UAC. В Windows 7 вы сможете самостоятельно настраивать тип всплывающих уведомлений, при условии, что являетесь администратором компьютера.

2) Снабдить пользовательский интерфейс дополнительной и более понятной информацией. Мы намерены сделать диалог UAC более информативным, чтобы каждый мог понять причину и сделать осознанный выбор. На текущий момент у нас есть несколько подходов к решению этой проблемы и мы тестируем их в юзабилити-лабораториях. Следует отметить, что первые результаты положительны: 83% участников смогли объяснить причину возникновения диалога. Им понравились новые идеи, поскольку они оказались «проще», потому что в них были «выделены доверенные издатели», было «указано происхождение файла», а «задаваемый диалогом вопрос был логичным».

Ну а если короче, то да, мы постоянно видим реакцию пользователей на UAC, причем как негативную, так и позитивную. Мы планируем и далее совершенствовать этот механизм, отвечая на отзывы наших пользователей, чтобы сделать систему более безопасной и удобной.

Бен Фази (Ben Fathi),

вице-президент группы Core OS Development