Windows Vista: безопасность vs. удобство

Автор: Topol Суббота, Май 5th, 2012 Нет комментариев

Рубрика: Операционные системы

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

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

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

Однако мы все же значительно усовершенствовали защиту Windows Vista и полагаем, что она является на сегодня лучшей из существующих систем, хотя я не отрицаю, что она не является ошибкоустойчивой или неломающейся, да и вообще я не видел такого программного обеспечения. Кроме того, имеются более глубокие уровни защиты, о которых некоторые думают, что они «непроходимы», хотя они такими не являются. Нам пришлось решать непростой вопрос: как много приложений должна была останавливать такая система защиты и как много пользователей могли отключить её, чтобы повысить удобство работы с системой.

Одной из лучших иллюстраций решения этого вопроса в Windows Vista является система управления учетными записями пользователей (UAC). Если объяснить по-простому, то в UAC вы можете устанавливать, как будет работать обычный пользователь или, по-другому, что может делать пользователь, не являющийся администратором. До Windows Vista существовали действия, которые были важны для стандартного пользователя и, которые он не мог сделать. Так, например, он не мог изменить системное время и многие другие вещи, для изменения которых вы должны иметь права администратора. В результате почти все использовали для входа в систему учетную запись администратора для того, чтобы работать с программными средствами (в том числе и от Майкрософт), которые предполагали, что пользователь должен быть администратором. Конечно, существовали также и обычные пользователи, но это было связано с большими затратами и некоторым уменьшением функциональности.

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

Чтобы решить её, мы должны были рассмотреть различные системные задачи, решаемые пользователем, и для каждой поставить вопросом: «придется ли пользователю быть администратором, чтобы совершить это действие?». Мы обнаружили, что в Windows XP имеется множество случаев, когда пользователь должен обладать привилегиями администратора, чтобы выполнить действия, закрепленные за системой. Мы поняли, что это идет вразрез со здравым смыслом и можно защитить систему так, что она будет оставаться удобной в использовании. Мы также обнаружили, что в предыдущих версиях Windows имелось много случаев, в которых мы смешивали все задачи в кучу, хотя среди них были такие, которые действительно требовали того, чтобы пользователь был администратором. Например, в Windows XP вы должны были быть администратором, чтобы изменить время или часовой пояс системы. Причиной этого ограничения являлось предупреждение некоторых неправомерных действий, например, для обмана файлов регистрации системы или для отправки электронной почты задним числом. Однако в случае изменения часового пояса компьютера, например, когда пользователь из сферы бизнеса путешествует с западного побережья в Нью-Йорк, надобность в такой защите отпадает, и поэтому в Windows Vista обычному пользователю позволяется изменять часовой пояс.

В результате нашей работы вы обнаружите, что в Windows Vista, если вы не выполняете каких-то установочных действий, вы можете прекрасно работать и как обычный пользователь. Проблемой было сделать так, чтобы пользователь мог завершить действие, требующее прав администратора. Чтобы ее разрешить, в Windows Vista мы ввели новую возможность, когда пользователь пробовал сделать нечто, требующее привилегий администратора, система позволяла пользователю завершить задачу, если есть разрешение от администратора (или подтверждение, если администратор – вы).

Когда мы ввели такую возможность в Windows Vista, система требовала, чтобы пользователь ввел последовательность Control-Alt-Delete (C-A-D) (которая известна как безопасная последовательность, способная сопротивляться перехвату), чтобы администратор мог ввести свои имя и пароль. Причиной использования этой последовательности заключается в том, чтобы у пользователя была единственная возможность получить разрешение, для того, чтобы знать наверняка, что запрос исходит от системы, как если бы вас, например, просили сообщить персональную информацию, утверждая, что запрос исходит от банка, и вы хотели бы дать ваш пароль, только если бы знали, что об этом просит именно система. Точно так же, как вы сообщили бы информацию банку, если бы точно знали, что запрос исходит от него, так и C-A-D – единственный путь взаимодействия с системой, обеспечивающий секретность и уверенность в том, что на другом конце связи именно система. Когда пользователь нажимает C-A-D, открывается безопасный рабочий стол, в котором может работать только система, где он спрашивает пользователя о наличии у него разрешения. Выгода от использования безопасного рабочего стола заключается в том, что становится труднее осуществлять неправомерные действия и пользователь знает, что он находится в безопасном рабочем столе, потому что на заднем плане высвечивается выполняющееся диалоговое окно.

Когда мы проверяли такой подход на удобство использования, то выяснили две вещи: во-первых, система спрашивает разрешение слишком часто, а во-вторых, использование C-A-D запутывало многих пользователей, особенно домашних, для которых C-A-D ассоциировалась с диспетчером задач. Для того, чтобы решить первую проблему мы исследовали систему и тщательно проанализировали каждую ситуацию, чтобы удостовериться, что разрешение запрашивается только тогда, когда это действительно необходимо. Также мы проверили прикладное программное обеспечение от сторонних производителей, чтобы оно не требовало прав администратора, когда это не нужно. Мы рассмотрели случаи, когда приложение требовало перехода к режиму администратора, когда это не столь необходимо, и создали модификации, заставляющие приложение оценивать свои действия, чтобы они по возможности не требовали повышения в уровне доступа.

Вторую проблему было решить труднее, так как C-A-D действительно единственный способ удостовериться, что вы — не злоумышленник. В итоге, мы пришли к выводу, что ели бы мы не устранили потребность в C-A-D, то большинство пользователей входили бы в систему с правами администратора, что в итоге привело бы к большему риску. В то же время, хотя C-A-D по умолчанию заблокирована, система все еще запрашивает согласие в безопасном рабочем столе, чтобы пользователь знал, что это – специальный запрос системы. В конце концов, мы оставили интеграцию C-A-D в UAC и отключили ее использование по умолчанию. Если пользователь хочет включить использование C-A-D для повышения уровня в UAC, то он может это сделать через локальную связь или рабочую группу. Подключением C-A-D через рабочую группу могут также воспользоваться сетевые администраторы. Поэтому если вы хотите повысить базовую безопасность Windows Vista, то включите C-A-D для повышения уровня в UAC.

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

Как я уже говорил выше, мы хотим помочь тем пользователям, которые хотели получить права администратора, чтобы сделать свою работу с системой столь же гибкой, но в то же время более защищенной, чем в Windows XP. Для этого мы сделали в UAC режим под названием «режим, одобренный администратором» (admin approval mode). В этом режиме (который по умолчанию включен для локальной группы администраторов) каждый пользователь с привилегиями администратора в основном работает как обычный пользователь, но когда система или приложение собираются выполнить действие, требующее прав администратора, пользователь должен запросить разрешение на это. В отличии от подобной функции в Unix, которая отключается после поднятия уровня доступа для пользователя, admin approval mode допускает использование привилегий только на время выполнения задачи, после чего автоматически возвращая пользователя к стандартному режиму.

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

Когда мы начинали работать с admin approval mode для UAC, по умолчанию требовался ввод пользователем пароля (это было дополнением к последовательности Control-Alt-Delete (C-A-D), которая обсуждалась выше). Нужно было обеспечить и обратную применимость, когда для пользователей было удобнее заранее нажать C-A-D и ввести пароль, чем постоянное его набирать при каждом обращении. При этом снова возникал риск того, что пользователи будут выключать admin approval mode и далее использовать все административные привилегии без какой-либо защиты и предупреждений. Стало ясно, что использование admin approval mode ставило под угрозу безопасность системы, делало ее уязвимой. Но все равно, хотя система становилась менее ошибкоустойчивой, работа в admin approval mode все же лучше, чем в Windows XP. Хотя в admin approval mode и возможно требование пароля, но по умолчанию оно отключено. Это свойство может быть установлено конечным пользователем или установлено группой администрирования.

Другим хорошим примером противостояния удобства и защищенности является наша стратегия, касающаяся использования Data Execution Prevention (DEP) в Windows Vista. Если объяснить по-простому, DEP обрабатывает данные как данные, а код как код, и затем блокирует любое выполнения действий данными. Польза такого подхода в том, что, если в системе есть уязвимость, позволяющая переполнить буфер данных, то с DEP становиться сложнее выполнить вредоносный код, помещенный в буфер, так как он блокирует его выполнение и, тем самым, препятствует выполнению атаки. DEP для ядра включен по умолчанию и это является серьезной защитой для других частей системы (таких как Internet Explorer) и от переполнения буфера. Однако есть проблема: возможно добавление и хранение динамического кода от третьего лица в область данных, и DEP не может найти различия между добавляемыми данными и вредоносным кодом. Таким образом, вы либо получаете больше защиты, либо больше потенциальных проблем совместимости.

Обратите внимание, что вы можете включить DEP для всех программ и услуг. Естественно, это увеличит безопасность системы, но может вызвать некоторые проблемы совместимости приложений. Я, конечно же, рекомендую пользователям, работающим в сфере бизнеса, использовать DEP для всех программ и услуг. В некоторых случаях это необходимо, в других – нет. Опять компромисс!

Особенно трудно было с Internet Explorer, так как мы хотели, чтобы IE извлекал бы выгоду из защиты, предоставляемой DEP. Но до выпуска Windows Vista существовала проблема совместимости IE с дополнениями от третьих лиц, установка которых приводила к тому, что DEP для IE выключался по умолчанию. Однако, есть две хорошие новости. Во-первых, появилась возможность использования динамически получаемого кода, который может быть совместим с DEP (для этого требуется лишь добавить несколько новых строчек кода и обновить имеющийся). Мы ожидаем, что большинство производителей дополнений поддержат нас в этом. Во-вторых, Adobe, чьи программы-дополнения Acrobat и Flash Player раньше были несовместимы с DEP, объявила, что модифицировала свое программное обеспечение и исправила этот факт.

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

Лично я включил использование DEP на всех моих ПК, работающих под Windows Vista, и рекомендовал бы поступать также, если вы хотите усилить защиту. Я не обещаю, что все сайты будут работать, но при моей ежедневной эксплуатации, все работает хорошо. Через некоторое время, поскольку мы работаем со многими третьими фирмами, производящими программное обеспечение, я полагаю, что станет возможным включать DEP для всего остального ПО.

Как я уже говорил выше, мы все время улучшаем систему, что делает возможным для домашних пользователей и системных администраторов делать ее даже более безопасной, отключая принятые по умолчанию настройки, что было невозможно в предыдущих версиях Windows. Что же я могу посоветовать? Я распределю свои идеи на этот счет по категориям Хорошей, Лучшей и Наилучшей стратегии для домашних пользователей и корпоративных клиентов.

Для домашних пользователей

Хорошая стратегия: Делайте первую учетную запись пользователя родительской (на любой машине) и защитите ее хорошим паролем, принятым по умолчанию; эта первая учетная запись должна находиться в локальной группе администраторов и допускать использование режима одобрения администратором. Последующие учетные записи – особенно для детей – должны быть стандартными. Если обычный пользователь (например, ребенок) сталкивается с требование завершить администраторскую задачу, то администратор (например, мама или папа) может подтвердить разрешение на завершение этой задачи. С появлением сканеров отпечатков пальцев на большинстве портативных ПК, эта процедура сводится просто к сканирования пальца. Вы должны также осуществлять родительский контроль в Windows Vista, который помогает защитить и ограничить любые учетные записи от использования детей.

Лучшая стратегия: В дополнение к шагам «Хорошей стратегии», добавляется требование пароля от администратора, для поднятия уровня доступа, чтобы завершить задачу, выполняемую в admin approval mode. Это уменьшает возможность обмана системы и значительно усложняет действия человека, желающего завершить задачу admin approval mode на ПК, оставленном без присмотра, и не имеющего для этого достаточных прав. По умолчанию Windows Vista блокирует рабочий стол после определенного простоя (если, например, вы куда-то отошли и оставили компьютер), и если на учетной записи стоит пароль, то потребуется его ввод для входа в систему; вот почему мы рекомендуем, чтобы вы имели пароль на учетной записи из группы администраторов. Вы можете корректировать время бездеятельности перед выходом, чтобы оно было меньше при необходимости. Я также рекомендую, чтобы вы включили использование DEP для IE. В большинстве случаев, если у вас есть последние обновления от Adobe, у вас не будет много проблем. Вы можете отключить его в случае необходимости.

Наилучшая стратегия: Если вы очень заинтересованы в защите, то в дополнение к «Лучшей стратегии» требуется использование последовательности C-A-D для завершения администраторских задач. Это обеспечит дополнительную защиту для системы, когда на ней работает администратор или обычный пользователь нуждается в его согласии.

Для использования в сфере бизнеса

Хорошая стратегия: основным шагом является включение использования всеми пользователями admin approval mode, когда им это требуется для выполнения различных приложений. Это обеспечивает хороший обратный переход к стандартному пользователю, хоть и вызывает небольшую задержку в работе. (Обращаю внимание на то, что я настоятельно рекомендую для данной категории пользователей реализацию «Лучшей» и «Наилучшей стратегии»).

Лучшая стратегия: Требуйте, чтобы все пользователи были стандартными. Многие конечные пользователи должны быть переведены в категорию стандартных пользователей. Когда должно произойти повышение уровня доступа, нужно требовать C-A-D, прежде, чем администратор даст разрешение на завершение задачи. Также нужно, чтобы администраторы перевели разрешение на завершение процесса в admin approval mode. В случае домашнего пользователя, я рекомендую включить DEP для IE. Если различные приложения несовместимы с DEP, то постарайтесь найти последние обновления с исправлениями данной поблемы.

Наилучшая стратегия: Помимо изменения большинства пользователей на стандартных пользователей с C-A-D и паролем, требуемым от администратора для включения admin approval mode, нужно также предотвратить существование у конечных пользователей возможности завершать любые задачи, требующие повышения уровня доступа (например, программных установок или изменения конфигурации). Это лучше всего сделать организуя централизованное управление, включая групповую политику. Для осуществления локальных изменений, администратор может войти в отдельном сеансе (либо напрямую, либо с использованием Удаленного управления рабочим столом).

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

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты