Drop My Rights: понижение привилегий браузера
Многие компании и независимые исследователи, занимающиеся компьютерной безопасностью, сделали карьеру и имя за счет нахождения уязвимостей в браузере Internet Explorer. В то время как программисты Microsoft вели праздный образ жизни, разработчики браузера Mozilla Firefox продолжали наращивать функциональность и обеспечивать надежный (на первый взгляд) программный код. Однако за второе полугодие 2005 г. в Firefox были найдены несколько критических ошибок, и его развитие приостановилось. Некоторые пользователи даже задались вопросом – не перейти ли на другой браузер, пусть он такой же уязвимый, как IE.
Одновременно с этими проблемами существует простое, но малоизвестное решение, позволяющее пользователям избежать неприятностей при пользовании любым браузером. Этим решением является программа “Drop My Rights” («Понизь Мои Права»), написанная сотрудником Microsoft Майклом Ховардом (Michael Howard). Хотя она была выпущена год назад и очень проста в использовании, она не получила популярности, несмотря на многочисленные уязвимости в IE, Firefox и некоторых почтовых клиентах. Поэтому, следует сначала понять, для чего нужна подобная программа. Мы протестируем ее в среде виртуальной ОС против определенных веб-ресурсов, известных как распространители spyware и вирусов, и посмотрим на полученные результаты.
наименьшие права
Системным администраторам важно следовать правилу наименьших прав. Это значит, что пользователи должны делать свою работу только с минимальным набором привилегий, необходимых для решения поставленных задач. Обычно это подразумевает пользование компьютером в качестве рядового пользователя и только в случае необходимости использование команд Run As или MakeMeAdmin для повышения привилегий. Иначе обычному пользователю необходимо выйти из системы и зайти обратно в качестве администратора, например для установки какого-либо приложения. Сталкиваясь с такими неудобствами, большинство пользователей продолжают работу в качестве администратора, и в этом заключается суть всех проблем.
Корпоративная политика, запрещающая доступ к машинам административным учетным записям, до сих пор является наилучшим способом решения этих проблем. Однако существуют дополнительные проблемы, связанные с «всемогущими пользователями» (начальством), а также пользователями в децентрализованных сетях и мобильными пользователями. Сами администраторы также подвержены угрозе при работе в Интернете. Понижение привилегий приложениям, работающим с Интернетом, является одним из подходов к решению этих проблем.
После опубликования совей программы, Майкл Ховард отметил, что «работая с административными правами, вы ставите под угрозу ваш компьютер и ваши данные». Однако вместо того, чтобы понижать права ваших пользователей, лучше и проще понизить в правах приложения.
drop my rights
Drop My Rights – это приложение, которое в качестве аргумента принимает путь к программе, чьи права следует понизить. Допустим, что администратору захотелось работать с IE или Firefox в более безопасном режиме. В случае с IE он бы выполнил такую операцию:
c:\path\dropmyrights.exe "C:\Program Files\Internet Explorer\iexplore.exe" C
Этим самым он скажет IE, чтобы тот работал с пониженными привилегиями уровня C, или “Constrained user” («ограниченный пользователь»). В этом случае при встрече с какой-либо уязвимостью или ошибкой, урон, который может нанести эксплойт, будет минимизирован. Список возможных уровней привилегий показан ниже:
- N – normal user (обыкновенный пользователь);
- C – constrained user (ограниченный пользователь);
- U – untrusted user (ненадежный пользователь).
Я думаю, вас интересует вопрос – а это работает? На него можно ответить несколькими простыми экспериментами. Смысл этих экспериментов – проверить защищенность систем с установленным Drop My Rights и систем без него.
процедура проверки
Прежде чем мы начнем проверку, необходимо сделать подготовительную работу. Эти эксперименты требуют контролируемую среду тестирования. Виртуальные машины от VMWare и Microsoft являются наилучшим вариантом для подобной среды. Они предоставляют возможность сделать «снимок» системы в нужный момент времени, позволяя делать изменения в системе, тестировать их, а затем возвращаться обратно в состояние «снимка». В этом эксперименте мы используем ОС Windows XP (без каких-либо обновлений) со снимком, сделанным сразу после установки.
Во время эксперимента мы будем использовать один из бесплатных антивирусных сканеров, доступных в сети, но прежде следует убедиться, что система изначально чистая. Для этого была проведена проверка на вирусы. Сканер не нашел вирусов, как и предполагалось, но для порядка мы вернули систему в исходное состояние.
Процедура первой проверки была следующая:
- получить список зловредных веб-ресурсов;
- открыть каждый из ресурсов на виртуальной машине с помощью IE;
- отметить какие-либо подозрительные моменты;
- после этих процедур произвести сканирование на вирусы;
- скопировать список посещенных ресурсов в отдельный список (пригодится позже).
Во время проверки были установлены несколько сторонних приложений. Были произведены изменения в графическом интерфейсе IE, включая добавление кнопок и поисковых форм. Невидимые окошки показывались и исчезали, также были несколько всплывающих окон (pop-up). Виртуальная машина стала работать заметно медленнее. Хотя была произведена проверка на вирусы, она не завершилась успешно. Она вообще прекратилась с ошибкой до завершения, хотя смогла найти 7 зловредных программ.
Процедура второй проверки следующая:
- возвратить систему в исходное состояние;
- использовать список посещенных в прошлом тесте ресурсов;
- установить Drop My Rights в соответствии с инструкциями (в этом тесте приложение запускалось с параметром N, который запускает IE в нормальном режиме, но все равно привилегии ниже, чем у администратора);
- посетить те же ресурсы;
- отметить какие-либо странности;
- запустить проверку на вирусы.
Единственным примечательным моментом в этой проверке были только всплывающие окна. Не было невидимых окошек или сторонних приложений. Однако сканер все же нашел 4 зловредные программы. Так как автор программы рекомендует использовать параметр C, в следующей проверке его мы и использовали.
Процедура последней проверки:
- возвратить систему в исходное состояние;
- использовать тот же список, что и в предыдущих тестах;
- установить Drop My Rights с параметром C;
- посетить е же ресурсы с помощью IE;
- отметить странные моменты;
- произвести проверку на вирусы.
В последнем эксперименте единственно странным показалось, что окно IE разворачивалось во весь экран, если оно не было развернуто до этого. Не было никаких всплывающих окон и ничего другого, что было в предыдущих тестах, а сканер не нашел ни одного вируса. Drop My Rights работает так, как автор и описывал.
упрощаем работу пользователей
Очень просто настроить ярлык приложения таким образом, чтобы оно работало с минимальными правами. Это идеальный вариант для «всемогущих» пользователей или пользователей, требующих права администратора. В свойствах ярлыка, закладке “Shortcut” («Ярлык») измените поле “Target” («Объект»), чтобы перед приложением стояло DropMyRights.exe, например, C:\windows\dropmyrights.exe "C:\Program Files\Mozilla Firefox\firefox.exe" N, как показано на рисунке 1.
Рис. 1: Настраиваем ярлык для работы с DropMyRights.
Заметим, что другие приложения, запущенные из браузера (например, Windows Media Player, Adobe Acrobat Reader и др.), будут наследовать права, то есть будут тоже работать с минимальными привилегиями. Это идеальный подход, однако он не обеспечивает полной безопасности, как мы увидим далее. С помощью инструмента типа Process Explorer от SysIntenals можно узнать привилегии нужного процесса, а также процессов, которые он порождает. Также существует панель для IE, которая называется PrivBar, она позволяет легко увидеть текущие привилегии IE. Очень удобно при тестировании DropMyRights.
недостатки
Как говорилось ранее, пониженные привилегии отражаются на функциональности. IE вообще не будет работать, если установить уровень “U” (ненадежный пользователь). К тому же, если работать на уровне “C” (ограниченный пользователь) некоторые сайты не будут работать, как положено.
Даже пользуясь уровнем “N” (обычный пользователь), вы получаете определенные ограничения, хотя здесь нет раздражений уровня “C”. SSL не работает в на уровне “C”, но работает нормально на уровне “N”. Существует длинный список приложений, которые не работают с пониженными привилегиями. В то время как IE работает достаточно хорошо, другие приложения, связанные с Интернет, работают еще лучше. Это относится к интернет-пейджерам, почтовым программам, проигрывателям медиа и т.п. Попробуйте поработать с ними при наименьших привилегиях и посмотрите на функциональность. Если хотите еще лучшей функциональности, сделайте по ярлыку для каждой программы со своими привилегиями.
Каждый раз, когда вы понижаете привилегии в своей операционной системе, вы жертвуете функциональностью. Возьмем, например, Macromedia ShockWave. ShockWave требует привилегии администратора для установки. Насколько я помню, в некоторых случаях ShockWave также требовал привилегии администратора для работы. Смысл в том, что принцип наименьших привилегий не всегда лучший способ обеспечения безопасности. Поэтому DropMyRights является идеальным вариантом решения этой задачи.
заключение
Для Интернета в целом будет лучше, если пользователи не будут запускать браузеры с привилегиями администратора. Вирусы, spyware и троянские кони часто устанавливаются на компьютер посредством использования уязвимостей в приложениях, работающих с Интернетом – либо при посещении злонамеренных веб-ресурсов, либо с использованием социальной инженерии и обмана. Однако, в связи с неудобным свойством приложений требовать при установке и работе права администратора, многие пользователи продолжают работать с привилегиями администратора. Использование простой программы DropMyRights снизит риск использования уязвимостей в браузерах.
Mark Squire, перевод SecurityLab.
Одновременно с этими проблемами существует простое, но малоизвестное решение, позволяющее пользователям избежать неприятностей при пользовании любым браузером. Этим решением является программа “Drop My Rights” («Понизь Мои Права»), написанная сотрудником Microsoft Майклом Ховардом (Michael Howard). Хотя она была выпущена год назад и очень проста в использовании, она не получила популярности, несмотря на многочисленные уязвимости в IE, Firefox и некоторых почтовых клиентах. Поэтому, следует сначала понять, для чего нужна подобная программа. Мы протестируем ее в среде виртуальной ОС против определенных веб-ресурсов, известных как распространители spyware и вирусов, и посмотрим на полученные результаты.
наименьшие права
Системным администраторам важно следовать правилу наименьших прав. Это значит, что пользователи должны делать свою работу только с минимальным набором привилегий, необходимых для решения поставленных задач. Обычно это подразумевает пользование компьютером в качестве рядового пользователя и только в случае необходимости использование команд Run As или MakeMeAdmin для повышения привилегий. Иначе обычному пользователю необходимо выйти из системы и зайти обратно в качестве администратора, например для установки какого-либо приложения. Сталкиваясь с такими неудобствами, большинство пользователей продолжают работу в качестве администратора, и в этом заключается суть всех проблем.
Корпоративная политика, запрещающая доступ к машинам административным учетным записям, до сих пор является наилучшим способом решения этих проблем. Однако существуют дополнительные проблемы, связанные с «всемогущими пользователями» (начальством), а также пользователями в децентрализованных сетях и мобильными пользователями. Сами администраторы также подвержены угрозе при работе в Интернете. Понижение привилегий приложениям, работающим с Интернетом, является одним из подходов к решению этих проблем.
После опубликования совей программы, Майкл Ховард отметил, что «работая с административными правами, вы ставите под угрозу ваш компьютер и ваши данные». Однако вместо того, чтобы понижать права ваших пользователей, лучше и проще понизить в правах приложения.
drop my rights
Drop My Rights – это приложение, которое в качестве аргумента принимает путь к программе, чьи права следует понизить. Допустим, что администратору захотелось работать с IE или Firefox в более безопасном режиме. В случае с IE он бы выполнил такую операцию:
c:\path\dropmyrights.exe "C:\Program Files\Internet Explorer\iexplore.exe" C
Этим самым он скажет IE, чтобы тот работал с пониженными привилегиями уровня C, или “Constrained user” («ограниченный пользователь»). В этом случае при встрече с какой-либо уязвимостью или ошибкой, урон, который может нанести эксплойт, будет минимизирован. Список возможных уровней привилегий показан ниже:
- N – normal user (обыкновенный пользователь);
- C – constrained user (ограниченный пользователь);
- U – untrusted user (ненадежный пользователь).
Я думаю, вас интересует вопрос – а это работает? На него можно ответить несколькими простыми экспериментами. Смысл этих экспериментов – проверить защищенность систем с установленным Drop My Rights и систем без него.
процедура проверки
Прежде чем мы начнем проверку, необходимо сделать подготовительную работу. Эти эксперименты требуют контролируемую среду тестирования. Виртуальные машины от VMWare и Microsoft являются наилучшим вариантом для подобной среды. Они предоставляют возможность сделать «снимок» системы в нужный момент времени, позволяя делать изменения в системе, тестировать их, а затем возвращаться обратно в состояние «снимка». В этом эксперименте мы используем ОС Windows XP (без каких-либо обновлений) со снимком, сделанным сразу после установки.
Во время эксперимента мы будем использовать один из бесплатных антивирусных сканеров, доступных в сети, но прежде следует убедиться, что система изначально чистая. Для этого была проведена проверка на вирусы. Сканер не нашел вирусов, как и предполагалось, но для порядка мы вернули систему в исходное состояние.
Процедура первой проверки была следующая:
- получить список зловредных веб-ресурсов;
- открыть каждый из ресурсов на виртуальной машине с помощью IE;
- отметить какие-либо подозрительные моменты;
- после этих процедур произвести сканирование на вирусы;
- скопировать список посещенных ресурсов в отдельный список (пригодится позже).
Во время проверки были установлены несколько сторонних приложений. Были произведены изменения в графическом интерфейсе IE, включая добавление кнопок и поисковых форм. Невидимые окошки показывались и исчезали, также были несколько всплывающих окон (pop-up). Виртуальная машина стала работать заметно медленнее. Хотя была произведена проверка на вирусы, она не завершилась успешно. Она вообще прекратилась с ошибкой до завершения, хотя смогла найти 7 зловредных программ.
Процедура второй проверки следующая:
- возвратить систему в исходное состояние;
- использовать список посещенных в прошлом тесте ресурсов;
- установить Drop My Rights в соответствии с инструкциями (в этом тесте приложение запускалось с параметром N, который запускает IE в нормальном режиме, но все равно привилегии ниже, чем у администратора);
- посетить те же ресурсы;
- отметить какие-либо странности;
- запустить проверку на вирусы.
Единственным примечательным моментом в этой проверке были только всплывающие окна. Не было невидимых окошек или сторонних приложений. Однако сканер все же нашел 4 зловредные программы. Так как автор программы рекомендует использовать параметр C, в следующей проверке его мы и использовали.
Процедура последней проверки:
- возвратить систему в исходное состояние;
- использовать тот же список, что и в предыдущих тестах;
- установить Drop My Rights с параметром C;
- посетить е же ресурсы с помощью IE;
- отметить странные моменты;
- произвести проверку на вирусы.
В последнем эксперименте единственно странным показалось, что окно IE разворачивалось во весь экран, если оно не было развернуто до этого. Не было никаких всплывающих окон и ничего другого, что было в предыдущих тестах, а сканер не нашел ни одного вируса. Drop My Rights работает так, как автор и описывал.
упрощаем работу пользователей
Очень просто настроить ярлык приложения таким образом, чтобы оно работало с минимальными правами. Это идеальный вариант для «всемогущих» пользователей или пользователей, требующих права администратора. В свойствах ярлыка, закладке “Shortcut” («Ярлык») измените поле “Target” («Объект»), чтобы перед приложением стояло DropMyRights.exe, например, C:\windows\dropmyrights.exe "C:\Program Files\Mozilla Firefox\firefox.exe" N, как показано на рисунке 1.
Рис. 1: Настраиваем ярлык для работы с DropMyRights.
Заметим, что другие приложения, запущенные из браузера (например, Windows Media Player, Adobe Acrobat Reader и др.), будут наследовать права, то есть будут тоже работать с минимальными привилегиями. Это идеальный подход, однако он не обеспечивает полной безопасности, как мы увидим далее. С помощью инструмента типа Process Explorer от SysIntenals можно узнать привилегии нужного процесса, а также процессов, которые он порождает. Также существует панель для IE, которая называется PrivBar, она позволяет легко увидеть текущие привилегии IE. Очень удобно при тестировании DropMyRights.
недостатки
Как говорилось ранее, пониженные привилегии отражаются на функциональности. IE вообще не будет работать, если установить уровень “U” (ненадежный пользователь). К тому же, если работать на уровне “C” (ограниченный пользователь) некоторые сайты не будут работать, как положено.
Даже пользуясь уровнем “N” (обычный пользователь), вы получаете определенные ограничения, хотя здесь нет раздражений уровня “C”. SSL не работает в на уровне “C”, но работает нормально на уровне “N”. Существует длинный список приложений, которые не работают с пониженными привилегиями. В то время как IE работает достаточно хорошо, другие приложения, связанные с Интернет, работают еще лучше. Это относится к интернет-пейджерам, почтовым программам, проигрывателям медиа и т.п. Попробуйте поработать с ними при наименьших привилегиях и посмотрите на функциональность. Если хотите еще лучшей функциональности, сделайте по ярлыку для каждой программы со своими привилегиями.
Каждый раз, когда вы понижаете привилегии в своей операционной системе, вы жертвуете функциональностью. Возьмем, например, Macromedia ShockWave. ShockWave требует привилегии администратора для установки. Насколько я помню, в некоторых случаях ShockWave также требовал привилегии администратора для работы. Смысл в том, что принцип наименьших привилегий не всегда лучший способ обеспечения безопасности. Поэтому DropMyRights является идеальным вариантом решения этой задачи.
заключение
Для Интернета в целом будет лучше, если пользователи не будут запускать браузеры с привилегиями администратора. Вирусы, spyware и троянские кони часто устанавливаются на компьютер посредством использования уязвимостей в приложениях, работающих с Интернетом – либо при посещении злонамеренных веб-ресурсов, либо с использованием социальной инженерии и обмана. Однако, в связи с неудобным свойством приложений требовать при установке и работе права администратора, многие пользователи продолжают работать с привилегиями администратора. Использование простой программы DropMyRights снизит риск использования уязвимостей в браузерах.
Mark Squire, перевод SecurityLab.
Сетевые решения. Статья была опубликована в номере 12 за 2005 год в рубрике software