...
...

Безопасность Windows XP. Окончание

Окончание. Начало в КГ №39

Настройка автоматического запуска программ

Редактор глобальных политик Windows XP/2000

Редактор политик Windows XP/2000 — это утилита для настройки различных параметров операционной системы. По своим возможностям редактор политик далеко превосходит все известные мне программы-"твикалки". Он позволяет изменять огромное количество параметров, отвечающих за внешний вид Windows и ее безопасность. Вы можете с его помощью разрешать или, напротив, запрещать запуск тех или иных программ, прятать от системы логические диски, более тонко настраивать параметры сети, да и вообще полностью изменять привычное поведение системы. Специально выкачивать эту программу из сети Интернет вам не нужно. Если вы работаете в Windows 2003, Windows XP Professional или Windows 2000 Pro, она уже имеется в вашей системе. Если же вы работаете на Windows XP Home, она вам ничем не поможет, так как в этой операционной системе ее работа блокируется. Давайте посмотрим, какие возможности эта утилита нам предложит для того, чтобы сделать нашу систему более безопасной. В подавляющем большинстве известных мне случаев вирусы вписывают вызов своего кода в следующие ветки реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run

Давайте посмотрим, как мы можем им помешать. С помощью редактора политик можно указать операционной системе не запускать никаких файлов из указанных списков автозапуска. Для того чтобы включить такой режим работы Windows, нажмите кнопку Пуск и вызовите окно Выполнить. В нем набираете название исполнимого файла: GPEDIT.MSC. В стартовавшем редакторе политик идете в раздел Local Computer Policies-> Computer Configuration-> Administrative Templates-> System-> Logon. В правом окне находите параметр Do not process the legacy run list. Устанавливаете его значение в Enabled, и в дальнейшем система будет тихо игнорировать все программы, которые будут вписываться в эти две ветки реестра.



Раз уж мы все равно сюда пришли, можете заодно заблокировать запуск программ из еще одной ветви реестра:
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunOnce

Она обеспечивает однократный запуск программ. Если некая программа впишется в этот список, Windows запустит ее, а затем удалит запись о ней из списка Run Once. Сделана эта возможность в основном для программ-установщиков, которым необходимо однократно отработать после перезапуска Windows. Мне не попадались пока вирусы, которые вписывались бы в это место реестра, но кто знает, что готовит нам день грядущий. За срабатывание программ из этой ветви автозапуска отвечает параметр редактора политик, называющийся Do not process the run once list. Точно так же устанавливаете значение этой политики в Enabled, и программы из ветви Run Once запускаться системой не будут.

Если вы самостоятельно отправитесь исследовать настройки в редакторе политик, то наверняка обнаружите братьев-близнецов указанных мной политик, расположенных в разделе User Configuration-> Admi-nistrative Templates-> System-> Logon. Оба комплекта политик срабатывают одновременно, причем политики, указанные вами в разделе Local Computer, имеют приоритет над политиками конкретного пользователя. То есть, если вы запретите запуск программ в пользовательских настройках, а затем разрешите их в настройках компьютера, то программы будут запускаться несмотря на запрет их запуска для текущего пользователя. О том, зачем нужны два комплекта, на первый взгляд, совершенно одинаковых настроек, мы с вами еще поговорим чуть ниже, когда будем обсуждать запуск программ от имени другого пользователя.

Настраиваем права на автозапуск через реестр
Способ с запретом запуска программ из стартовых списков надежно блокирует запуск вирусов, но его использование чревато для вас как пользователя компьютера некоторыми неудобствами. Помимо вирусов, теперь также не смогут запуститься и очень многие небольшие утилиты из разряда тех, что "висят" у нас всех на панели задач "рядом с часиками". Они, также как и вирусы, облюбовали для себя указанные списки автозапуска и вместе с ними будут выключены из процесса обычной загрузки операционной системы. Наиболее просто решить эту проблему создав ярлыки на эти программы в обычной папке Автозагрузка. Папка эта находится на глазах у пользователя, и не многие вирусы рискуют туда записываться: слишком уж заметным станет тогда их присутствие в системе. Поэтому вы можете просто посмотреть, какие программы перечислены в списках автозапуска вашей операционной системы, а затем создать на них ярлыки в папке автозагрузки. Затем периодически заглядывайте в эту папку, дабы убедиться в том, что в ней не появилось непрошеных "гостей". Один раз мне попался довольно любопытный вирус, который демонстративно вписался именно в эту лежащую у всех на глазах папку. Удивившись такой наглости, я попытался выбросить процесс вируса из памяти, и… мне это не удалось. Как выяснилось, автор вируса назвал файл SERVICES.EXE не случайно. При попытке уничтожить процесс с таким именем WINDOWS XP меня любезно проинформировал о том, что процесс с таким именем важен для работы операционной системы и удалению не подлежит. Вот тебе и раз! При этом в системе работало два процесса services: настоящий и этот — из папки автозагрузки. Неплохо придумано! — заметил я, переименовал папку автозагрузки и перезапустил компьютер. Во время загрузки Windows не нашел папки на своем положенном месте и поэтому не смог стартовать вирус. Тогда я и стер его файл с диска без каких-либо проблем.

На своем компьютере я использую другой метод защиты списков автозапусков от проникновения вирусов. Для него я использую предоставляемую Windows XP возможность устанавливать права доступа на ветви реестра. Если вы решите последовать моему примеру, запускайте редактор реестра и отыскивайте ветку реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run. Как вы, надеюсь, помните, из этой ветки стартует большинство распространенных вирусов. Встаете на нее и вызываете контекстное меню правой кнопкой мыши. В этом меню нам нужен пункт, называющийся Разрешения. После того как вы его выберете, перед вами появится следующий экран, на котором перечислены пользователи вашего компьютера и их права на эту ветвь реестра.



На самом деле большая часть показанных на этом экране прав не принадлежит ветви реестра HKEY_LOCAL_MACHI-NE\...\Run, а наследуется ею от вышележащих по дереву реестра ветвей. Поэтому первым делом нам необходимо отключить режим наследования прав для этой конкретной ветви. Нажимаете на кнопку Дополнительно и переходите к более развернутому экрану.



Снимаете галочку с поля, озаглавленного Наследовать от родительского объекта применимые к дочерним объектам разрешения… Перед вами появится всплывающее окошко, в котором будет подробно рассказано о том, что именно вы собрались делать, с тремя кнопками: Копировать, Удалить и Отмена. Выбирайте Копировать, и окошко закроется. Следующим шагом нажимаем на кнопку Добавить. В появившемся окне Выбор пользователь или группа нажмите на кнопку Дополнительно, а затем во вновь появившемся окне — на кнопку Поиск. Из заполнившегося списка внизу экрана выбираете группу пользователей Все и нажимаете кнопку OK. В принципе, можете не лазить по окнам диалогов, а сразу набрать слово "Все" в самом первом окне Добавить. Перед вами появится экран расширенного задания прав для ветви реестра Run всем группам пользователей. Пока ставьте в качестве временной заглушки "Полный доступ", позже мы зададим настоящий набор прав. Я привел вас к этому окну таким сложным путем не напрасно. Обратите внимание на список прав, которое можно настроить с его помощью. Их количество существенно превышает тот набор, который доступен через обычное окошко. Если вам понадобится тонкая настройка прав на тот или иной объект, всегда заходите в это окно диалога: тут возможностей побольше. А сейчас нажимаете кнопку OK и возвращаетесь к нашему начальному окну дополнительных параметров безопасности для ветви Run. В списке пользователей, помимо тех, что были тут ранее, появился вновь созданный нами пользователь по имени "Все". Теперь можно смело удалять всех других пользователей, кроме того, которого мы только что создали. Участник безопасности Windows "Все" — универсальная группа, которая заменит собой любую другую, поэтому можете без опасений нажимать кнопку Удалить даже на столь грозно называющихся участниках, как SYSTEM или Администраторы. После того как вы удалите всех лишних пользователей, окошко расширенных прав примет у вас примерно вот такой вид:



Устанавливаете галочку Заменить разрешения для всех дочерних объектов заданными здесь разрешениями и нажимаете кнопку Применить. Появится грозное окно, которое предупредит вас о том, что сейчас будут удалены все явно заданные разрешения для вложенных объектов. Соглашаетесь с этим и нажимаете кнопку Да. Галочка, которую мы с вами устанавливали, снова окажется сброшенной — не обращайте на это внимания — так оно и должно быть. Теперь нажимаем кнопку OK, закрывая тем самым окно дополнительных настроек прав. Вы вернетесь к окну разрешений для ветви реестра Run. Список пользователей в нем теперь состоит из одного пункта Все, и для него задан набор прав Полный доступ. Щелкаете мышью по пункту Запретить полный доступ, а затем — по пункту Разрешить чтение. Окно разрешений для ветви реестра Run после всех наших действий должно принять следующий вид:



Ну вот, с веткой реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run мы с вами разобрались, теперь проделайте все то же самое с веткой HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run. Что мы получили в результате? После наших настроек никто включая нас самих не сможет что-либо изменить в этой ветви реестра. Нельзя создавать новые пункты, удалять уже имеющиеся или модифицировать их значения. Таким образом, программа-вирус, попытавшаяся "заразить" нашу систему, не сможет сделать себя автоматически запускаемой, не получит управления при следующей загрузке и благополучно "скончается" естественным образом. Файл с телом вируса, конечно, останется лежать там, где он "упал" в вашей системе, но вреда он вам не принесет. Разумеется, если вы сами его впоследствии вручную не запустите. Но и в этом случае история повторится, и вирус будет активен лишь до тех пор, пока вы не выключите компьютер. Дорога в автозагрузку ему заказана.

Запуск приложений для работы в Интернет от имени непривилегированного пользователя
Когда я вам рассказывал про редактор политик, то обещал еще вернуться к теме двойного комплекта настроек в его меню. Этот двойной комплект необходим вам в том случае, если вы поддерживаете на своем компьютере модель безопасности, похожую на модель, используемую в операционной системе "Линукс". То есть у вас есть пользователь — системный администратор (root), в задачи которого входит настройка компьютера, и есть некоторое количество обычных пользователей. Эти обычные пользователи работают себе в Интернет, создают документы в MS Word и выполняют прочие повседневные задачи. В том случае, если ваш компьютер действительно персональный, и на нем работаете вы один, то вы один и выполняете роли всех других пользователей поочередно. Если вам нужно настроить что-либо в системе, заходите в нее как администратор. Если же вам просто нужно набить текст в Word, заходите в вашу систему как обычный пользователь. Если вы приверженец подобного разделения обязанностей, можете завести специального пользователя для того, чтобы ходить в Интернет. Заходите в систему под его именем и настраиваете указанные политики в разделе текущего пользователя, не трогая настройки в разделе локальной машины. При этом остальные пользователи будут работать со своим набором политик, и ваши изменения их не затронут. С точки зрения безопасности работы в Интернет подход, принятый в "Линукс" более предпочтителен. Широкого распространения он не получил в основном из-за того, что более сложен в исполнении для конечного пользователя. Многие из них включая меня самого привыкли заниматься привычным делом — игрой или программированием — параллельно с закачкой больших файлов из Интернет в качестве фоновой задачи. При подходе, принятом в "Линукс", вам придется дать пользователю, работающему в Интернет, достаточно прав для запуска обычных приложений. Но при такой системе теряется весь смысл создания подобного отдельного пользователя для работы в Интернет. Более умным способом решения этой проблемы является загрузка в качестве привычного для вас пользователя и запуск интернет-браузера от имени другого, специально созданного, или же текущего пользователя, но с усеченным набором прав. Подобную функциональность поддерживает и Windows XP. Щелкните по ярлыку IE правой кнопкой мыши, выберите пункт Запускать от имени... В появившемся окне мастера вы можете указать, от имени какого пользователя следует запускать данное приложение. Наиболее простым и вместе с тем достаточно надежным методом запуска приложений для работы в Интернет является запуск их с использованием усеченного набора прав текущего пользователя. Для этого режима на закладке мастера даже предусмотрена специальная галочка, включенная по умолчанию. Вам достаточно, ничего не исправляя, нажать кнопку OK, и приложение запустится с использованием усеченного набора прав. Интернет-браузер не сможет записывать файлы в системные папки вашего компьютера, а запущенные с его помощью программы не смогут получить доступ к реестру или совершать другие потенциально опасные действия. Но за большую защищенность вы платите усложнением работы с приложением. Недостаточно уже просто щелкнуть по ярлычку, чтобы запустить программу. Каждый раз перед ее запуском необходимо использовать указанный мастер, а это через некоторое время начинает раздражать.



Microsoft предлагает два способа сделать работу в этом режиме более простой. Во-первых, можно в свойствах ярлыка указать, что он должен запускаться с другим набором прав. В этом случае стоит вам щелкнуть по ярлыку обычным образом, и мастер выскочит на экран сам. После его появления щелкаете по кнопке OK, и готово: приложение запущено. Второй способ заключается в использовании консольной утилиты runas. Вы можете создать командный файл, в котором указываете, что нужное вам приложение должно запускаться от имени другого пользователя. Затем создаете ярлык на этот файл и запускаете этот ярлык вместо самого приложения. Создадим для примера командный файл, предназначенный для запуска браузера Internet Explorer от имени пользователя Internet User. Открываем Блокнот и записываем в нем следующую команду:
runas /user:InternetUser "C:\Program Files\Internet Explorer\iexplore.exe"

Сохраняете этот файл под именем IE.BAT, затем щелкаете мышкой по созданному файлу, запуская его на выполнение. После того как вы запустите этот файл вас попросят ввести пароль пользователя Internet User. Вводите пароль и нажимаете Enter. Вот и весь фокус: браузер запускается от имени указанного вами пользователя. Осталось лишь таким образом настроить права этого пользователя, чтобы его действия не могли нанести ущерб операционной системе.
К моему сожалению, обязательного ввода пароля мне избежать пока никак не удается. Утилита не содержит ключей, позволяющих задать пароль прямо в командной строке. Более того: вам не удастся просто так, без дополнительных настроек, использовать для запуска и пользователя с пустым паролем (а значит, просто нажимать Enter в ответ на подсказку). Для того чтобы система разрешила вам это сделать, придется воспользоваться редактором системных политик. Идете в Computer Configuration-> Win-dows Settings-> Security Settings-> Security Options и отыскиваете там параметр Accounts: Limit local account use of blank passwords to console logon only. По умолчанию значение этого параметра в Windows XP SP1 установлено в Enabled. Переставьте его в Disabled, и вы получите возможность использовать для запуска приложений учетную запись с пустым паролем.

Небольшое послесловие
Эту серию статей я написал довольно-таки давно — все никак было в редакцию не отправить. За это время вышел SP2 для Windows XP и принес с собой новые настройки безопасности. В следующих статьях я вам обязательно о них расскажу — дайте только самому сначала разобраться.

(с) Герман Иванов

© Компьютерная газета

полезные ссылки
Аренда ноутбуков