(c) Peter Gubarevich, 2010
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: Имя тестового пользователя.
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).
Протестируйте, как внесённые в структуру разрешений изменения отразились на работоспособности программы. По окончании процедуры регулировки прав отключите Аудит, чтобы не нагружать систему ненужным уже слежением, а журнал — событиями, которые никто не читает. Задокументируйте новую структуру разрешений — возможно, эта информация пригодится в будущем вам или другим администраторам.
Конечно, следует даже на них работать простым пользователем. Создать его можете в Control Panel -> User Accounts. Если прочесть там три строчки, то рядового пользователя создать будет легко.
К сожалению у меня 7 домашняя,ак я поняла этот аудит где-то очень глубоко.
Но для первого раза может хотя бы поможет вход через пользователя,а не через администратора.
Сейчас я как администратор.Но у меня нет выбора кнопок,как на первой картинке-админ или пользователь.
Где я могла бы это исправить?
Заранее тыщастомильонов спасибо!
когда-то уже послушал Вас и перестал "сидеть под администратором". Это тоже пригодится
На уровень SSA не претендую.
https://partner.microsoft.com/40088053
На самом деле, с помощью Аудита можно ответить на вопрос "какая сука удалила мои файлы из общей папки??".
Но стоит ли расширять статью? Она уже сейчас шесть страниц А4 занимает.
Наверняка вы думали, что "аудит позволяет обнаружить доступ". Нет. Аудит позволяет обнаружить НЕЧТО ЭТО (что естьЭТО, разъясняется за запятой).