Настройка Windows для работы приложений с привилегиями стандартного пользователя

1. Для чего вообще нужно настраивать права доступа?

        Разделение привилегий — фундамент безопасности и защиты от вирусов. Обычно все пользователи компьютера имеют индивидуальные логины, которые делятся на две категории —административные, предназначенные для настройки системы; и стандартные, предназначенные для ежедневной работы. Администраторы могут всё — инсталлировать или убирать программы, менять драйвера, заражать компьютер вирусами и т.д. А рядовые пользователи могут бродить по Интернету, работать с документами и электронной почтой, смотреть фильмы. Вот только сломать в системе ничего не могут.

        Что делает работу столь безопасной? У рядовых пользователей недостаточно прав на инсталляцию программ, за счёт чего и в системе напортачить не получится. И вирусом её заразить не удастся, ведь вирус – такая же компьютерная программа, как и все остальные.

        Однако, постоянно приходится сталкиваться с программистами, далёкими от проблем безопасности. Написанные ими программы обязательно хотят себе нечто большее, чем им положено по статусу, за счёт чего работают некорректно, а иной раз вообще отказываются запускаться с привилегиями рядового пользователя. Заставить программиста переделать его продукт обычно не представляется возможным, поэтому в большинстве случаев такие проблемы несложно решаются отслеживанием и корректировкой прав с помощью Windows Auditing.

 

2. Что же такое Аудит и как он нам поможет?

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

        Что именно отличает программу, требующую повышенных привилегий, от обычных программ?

  • она хочет изменять данные в защищённых папках (Windows, Program Files);
  • она хочет изменять данные в защищённых областях реестра (ключ HKLM\Software).

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

        Система Аудита встроена во все операционные системы Microsoft Windows NT: Windows XP/Vista/7, Windows Server 2000/2003/2008. К сожалению, в системах серии Windows Home аудит спрятан глубоко, и его настраивать слишком сложно.

 

3. Отлично, как мне всё это включить и настроить?

        Для включения аудита зайдите в систему с правами администратора и выполните команду Start → Run → gpedit.msc. В разделе Computer Configuration раскройте папку Windows Settings → Security Settings → Local Policies → Audit Policies.

        Дважды щёлкните по политике Audit object access (Аудит доступа к объектам) и выберите галочку Failure. Этот параметр включает механизм слежения за неудавшимися попытками доступа к файлам и реестру. Действительно, ведь отслеживаемой нами программе, будучи запущенной со стандартными привилегиями, не удастся получить успешный доступ к тем или иным объектам. К каким именно — это мы и захотим узнать.

        Простого включения Аудита недостаточно, мы также должны указать, за доступом к каким именно объектам мы намерены следить. Обычно проблемные программы пытаются получить доступ к файлам, находящимся на системном диске (C:\) и реестру (HKEY_LOCAL_MACHINE\Software). Вызовите свойства системного диска и на закладке Security (Безопасность) → Advanced (Дополнительно) → Auditing (Аудит) добавьте слежение за неким пользователем, от лица которого вы будете тестировать работоспособность программы:

        Заранее угадать, каких именно прав не хватило, невозможно, поэтому укажите слежение за всеми событиями отказа в доступе (Failed: Full Control). Неудачные попытки любого типа доступа от лица этого пользователя будут заноситься в журнал.

        Также, включите слежение за неудачными попытками доступа к машинному реестру. Для этого выполните команду Start → Run → Regedit и, щёлкнув правой кнопкой мыши поверх папки HKEY_LOCAL_MACHINE\Software, вызовите команду Permissions. Действуя по аналогии с аудитом системного диска, назначьте слежение за безуспешными попытками любого типа доступа к ключу Software со стороны тестового пользователя:

        Событий отказа в доступе может быть довольно много, поэтому следует отрегулировать размер журнала Security (Безопасность), в который они будут записываться. Для этого выполните команду Start → Run → eventvwr.msc. В появившемся окне вызовите свойства журнала Security и укажите следующие параметры:

  • Maximum Log Size = 65536 KB (для рабочих станций) или 262144 (для серверов);
  • Overwrite events as needed.

        На самом деле, указанные цифры не являются гарантированно точными, а подбираются опытным путём для каждого конкретного случая.

 

4. Настройки выполнены, что делать дальше?

        Запустите просмотрщик журнала Security (Start → Run → eventvwr.msc). Заметив время на часах, попытайтесь один раз запустить проблемную программу от лица тестового пользователя. Это можно сделать, не выходя из сессии Администратора, щёлкнув правой кнопкой по ярлыку программы → Run As. Выполните все необходимые действия для воспроизведения сбоя программы или появления сообщения об ошибке. Увидев первые же признаки сбоя, работу с ней прекратите и переключитесь на просмотр журнала.

        Журнал может быть заполнен событиями, прямого отношения к проблеме не имеющими. Щёлкнув правой кнопкой по журналу Security, выберите команду View → Filter и отфильтруйте просмотр по следующим критериям:

  • Event Source: Security;
  • Category: Object Access;
  • Event Types: Failure Audit;
  • Event ID: 560;
  • User: Имя тестового пользователя.

 

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

  • Image File Name. Название программы, которой не хватило прав. Это должно быть имя исполняемого модуля искомой проблемной программы;
  • Object Name. Название той папки, файла или ключа реестра, доступ к которой не удался;
  • Accesses. Набор запрашиваемых программой прав.

        Программа может запрашивать у системы сразу несколько типов доступа — например, Read+Write+Delete. Однако, при нехватке разрешений на хотя бы одно из запрашиваемых прав, запрос на доступ может быть отклонён весь целиком. Просмотрите, каких именно разрешений и на какой именно объект может не хватать программе для успешной работы.

        Расширьте доступ к объектам согласно нуждам программы. Если программе требуется создавать новые файлы в определённом каталоге, укажите разрешения Read+Write для этого каталога. Если требуется изменять всё содержимое каталога, укажите разрешение Modify. Не применяйте разрешение Full Control для пользователей — оно включает в себя право изменять права доступа. Таковая функция должна быть доступна только членам группы Administrators и самой операционной системе (SYSTEM).

        Протестируйте, как внесённые в структуру разрешений изменения отразились на работоспособности программы. По окончании процедуры регулировки прав отключите Аудит, чтобы не нагружать систему ненужным уже слежением, а журнал — событиями, которые никто не читает. Задокументируйте новую структуру разрешений — возможно, эта информация пригодится в будущем вам или другим администраторам.

 

Last Content Update: 22-Sep-2010

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: