Редактирование DACL объекта
По умолчанию, если вы еще не отключили механизм UAC, большинство ветвей реестра подраздела HKEY_LOCAL_MACHINE и системных файлов доступны администраторам только для чтения. Полный же доступ на них имеет пользователь TrustedlnstaLLer, который также является и их владельцем. Поэтому администраторы не смогут изменить права доступа на ветвь реестра или файл, пока не сменят владельца на него.
Операция смены владельца проходит так же, как и в Windows ХР. Например, для смены владельца файла нужно отобразить окно Свойства данного файла, перейти на вкладку Безопасность и нажать кнопку Изменить. После этого отобразится копия окна Безопасность, в которой нужно нажать кнопку Дополнительно, чтобы отобразилось еще одно окно, имеющее вкладку Владелец. Чтобы сменить владельца файла, нужно перейти на данную вкладку и в поле Изменить владельца на: выбрать нового владельца. После нажатия кнопки ОК владелец файла будет изменен, и вы сможете изменить разрешения на доступ к файлу. Похожим образом выполняется изменение владельца ветви реестра.
Программа для работы с DACL icacls.exe
Вы, наверное, знаете, что в предыдущих версиях операционной системы Windows присутствовала программа командной строки cacls.ехе, с помощью которой можно изменять DACL определенного файла. Данная программа присутствует и в Windows Vista, однако, кроме нее, в новой операционной системе есть еще одна программа для работы с DACL – icacls.ехе. Основные возможности данной программы лучше всего рассмотреть на примерах ее использования. Полное же описание ее возможностей можно увидеть, введя в командной строке команду icacls /?.
Архивирование и восстановление DACL файла или нескольких файлов и каталогов
Интересной возможностью данной программы является возможность архивирования DACL файлов или каталогов с целью их дальнейшего восстановления на локальном или удаленном компьютере.
Для архивирования DACL файла достаточно воспользоваться командой icacls.ехе <путь к файлу и его имя> /save <путь к архиву и его имя>. Например:
• Icacls c: \windows\system32\cmd.exe/save d: \cmd ACL old – копирует ACL файла cmd.ехе в файл cmd_ACL_old;
• Icacls c: \windows\system32\* /save d: \System32 ACL old – копирует ACL всех файлов и каталогов папки %systemroot%\system32 в файл System32_ACL_old.
Не забывайте, что если какая-нибудь программа, DACL которой нужно скопировать, в данный момент открыта другой программой, то icacls.ехе не сможет получить к ней доступ и завершит свою работу. В этом случае, если вы копируете DACL содержимого целого каталога, нужно использовать параметр /С, чтобы программа icacls.ехе не завершала свою работу, а продолжила, не копируя DACL занятого файла. Также при копировании DACL содержимого каталога можно использовать параметр /Т, чтобы также копировалось содержимое всех вложенных в выбранный каталог подкаталогов.
Если же вы хотите восстановить DACL из созданного ранее файла, то нужно воспользоваться командой icacls.exe <путь к файлу и его имя> /restore <путь к архиву и его имя>.
Например, Icacls c: \windows\system32\ /restore d: \System32 ACL old /С. Команда восстанавливает DACL для всех файлов, подкаталогов и содержимого подкаталогов папки %systemroot%\system32 из файла System32_ACL_old. Если какой-то файл в данный момент заблокирован, то он будет пропущен программой (благодаря параметру /С). Заметьте, что в команде при указании каталога не нужно указывать маску *.
Смена владельца файлов и каталогов
С помощью данной программы также очень легко сменить владельца для определенного файла или для всего содержимого каталога. Для этого применяется командаicacls.exe <путь к файлу и его имя или путь к каталогу> /setowner <логин нового владельцах
Например, leads c: \windows\system32\* /setowner administrator /С. Команда изменяет владельца всего содержимого каталога %systemroot% на владельца Администратор. Заметьте, что в команде применяется параметр /С. Он имеет такое же действие, что и в предыдущих командах. При смене владельца можно также использовать параметр /Т. Точнее, параметры /С и /Т можно использовать во всех командах программы icacls.ехе.
Поиск файлов, в DACL которых есть упоминание о SID определенного пользователя
Для реализации этой возможности используется команда icacls.ехе <путь к файлу и его имя или путь к каталогу> /findsid
Изменение DACL
Изменение DACL можно выполнить не только с помощью программы cads.ехе, но и с помощью новой программы icacls.ехе. Но перед изменением DACL сначала вспомним обозначения прав пользователей, которые применяются в программах cacls.ехе и icacls.ехе:
• F – определяет право на полный доступ к объекту;
• М – указывает право на изменение объекта;
• RE – определяет право на чтение и выполнение объекта;
• R – указывает право только на чтение объекта;
• W – определяет право на запись объекта;
• D – указывает право на удаление объекта;
• RC – определяет разрешение на чтение разрешения;
• WDAC – указывает разрешение на запись DAC;
• W0 – определяет разрешение на смену владельца;
• S – указывает разрешение на синхронизацию;
• AS – определяет разрешение на доступ к системе безопасности;
• МА – указывает разрешение на полный доступ к объекту;
• RD – определяет разрешение на просмотр содержимого папок и чтение данных;
• WD – указывает разрешение на создание файлов и запись данных;
• AD – определяет разрешение на создание папок и дозапись данных;
• REA – указывает разрешение на чтение дополнительных атрибутов;
• WEA – определяет разрешение на запись дополнительных атрибутов;
• ЕХ – указывает разрешение на обзор папок и выполнение файлов;
• DC – определяет разрешение на удаление;
• RA – указывает разрешение на чтение атрибутов;
• WA – определяет разрешение на запись атрибутов.
Для добавления DACL, разрешающих определенное действие, нужно использовать командуicacls.ехе <путь к файлу и его имя или путь к каталогу> /grant Например, такая команда, как Icacls c: \windows\system32\* /grant: r administrator: (D, WO) /С, изменяет разрешения для администратора на разрешение удаления и разрешение смены владельца всех файлов и папок каталога %systemroot%\system32. Как обычно при изменении DACL нескольких файлов, в команде используется параметр /С. Для добавления DACL, запрещающих определенное действие, нужно использовать команду icacls.ехе <путь к файлу и его имя или путь к каталогу> /deny Например, Icacls c: \windows\system32\* /deny administrator: (D,WO) /С. Данная команда запрещает администратору удалять или изменять владельца для всех файлов и папок каталога %systemroot%\system32. Как обычно при изменении DACL нескольких файлов, в команде используется параметр /С. Для удаления DACL используется команда icacls.ехе <путь к файлу и его имя или путь к каталогу> /remove Например, Icacls c: \windows\system32\* /remove administrator /С. Удаляет DACL, упоминающий SID учетной записи Администратор, для всех файлов и папок каталога %systemroot%\system32. Вы также можете сбросить DACL всех файлов определенного каталога или только определенного файла. В этом случае для него будет применяться наследуемый DACL. Для этого применяется команда icacls.ехе <путь к файлу и его имя или путь к каталогу> /reset. Программа смены владельца takeown.exe Наверное, вам знакома ситуация, когда после запрещения полного доступа к файлу вы больше не можете изменить его DACL, так как это запрещено вами же. В этом случае можно попробовать заново получить файл во владение, чтобы сбросить все элементы DACL. Для этого можно использовать программу takeown.ехе. С помощью данной программы администраторы могут сменить владельца определенного файла или каталога локального или удаленного компьютера на группу Администраторы или пользователя, от имени которого было выполнено подключение к компьютеру. Синтаксис данной программы следующий: takeown /s <удаленный компьютер> /и <пользователь, от имени которого выполняется подключение к компьютеру> /р <пароль> /F <путь к файлу или каталогу, владельца которых нужно изменить> – <дополнительные параметры>. • /А – по умолчанию владельцем указанных в команде файлов становится пользователь, от имени которого выполнено подключение к компьютеру. Если же вы укажете этот параметр, то владельцем станет группа Администраторы. • /R – по умолчанию владелец файлов сменяется только в файлах указанного в команде каталога. Если же нужно, чтобы владелец сменился для всех файлов, каталогов и содержимого вложенных каталогов, необходимо использовать данный параметр. • /D Работа с SACL объекта Как вы, наверное, уже знаете, включить аудит доступа к различным категориям объектов операционной системы можно с помощью оснастки Редактор объектов групповой политики, которая также входит в стандартную консоль gpedit.msc. Для этого нужно перейти в ее подраздел Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Политика аудита. После этого можно указать определенный файл или ветвь реестра , аудит доступа к которым будет отслеживаться (если соответствующий тип аудита установлен в групповых политиках). Например, включить аудит для файла можно следующим образом. После отображения окна Свойства файла нужно перейти на вкладку Безопасность и нажать кнопку Дополнительно. Это приведет к отображению нового окна, содержащего вкладку Аудит. Вам достаточно перейти на нее и нажать кнопку Добавить. После этого отобразится окно Выбор: «Пользователь» или «Группа» для выбора учетной записи пользователя, для которого нужно установить аудит доступа к файлу. А после этого отобразится окно Элемент аудита для, с помощью которого можно выбрать действия над файлом, сведения о выполнении которых пользователем будут заноситься в стандартный журнал Windows Vista. Похожим образом устанавливается аудит доступа к ветвям реестра. Просмотреть же события аудита можно в стандартном журнале операционной системы Безопасность, отображаемом в оснастке Просмотр событий (входит в консоль eventvwr.msc). Однако это не единственный способ работы с функциями аудита операционной системы. В состав операционной системы Windows Vista входит программа командной строки, назначением которой является аудит доступа к объектам и его настройкам. Эта программа является нововведением операционной системы Windows Vista, однако мы не будем полностью описывать ее параметры, так как о них всегда можно прочитать, введя в командной строке auditpol.ехе /? или auditpol.ехе <команда> /?. Рассмотрим лишь основные способы применения данной программы. Просмотр состояния аудита доступа к компонентам операционной системы С помощью данной программы можно определить, включен или нет аудит доступа к тем или иным категориям или подкатегориям доступа операционной системы. Для просмотра состояния аудита подкатегорий определенной категории доступа используется команда auditpol.ехе /get /Category: «категория». Здесь вместо категории можно использовать следующие значения. • Account Logon – определяет аудит событий аутентификации пользователей в системе. В нее входят следующие подкатегории: – Kerberos Ticket Events – аудит использования билетов Kerberos; – Other Account Logon Events – аудит других событий; – Credential Validation – аудит входа в систему с использованием учетных записей. • Account Management – определяет аудит событий изменения параметров настройки учетных записей пользователей. Например, изменения членства в группах, создание и удаление новых учетных записей. В нее входят следующие подкатегории: – Computer Account Management – изменение системных учетных записей; – Security Group Management – смена системных групп пользователей; – Distribution Group Management – изменение в распределении групп пользователей; – Application Group Management – смена групп приложений; – Other Account Management Events – изменение других групп пользователей; – User Account Management – смена пользовательских учетных записей. • Object Access – определяет аудит событий доступа к объектам (файлам, папкам, принтерам, разделам реестра , системным службам и т. д.). Именно к этой категории относится аудит, который назначается с помощью вкладки Аудит окна Дополнительные параметры безопасности (данное окно отображается после нажатия кнопки Дополнительно окна Свойства папки, файла, принтера или подраздела реестра ). В нее входят следующие подкатегории: – File System – объекты файловой системы; – Registry – ветви реестра ; – Kernel Object – объекты ядра; – SAM – объекты базы данных локальной безопасности SAM; – Certification Services – объекты служб сертификации; – Application Generated – объекты генерирования приложений; – Handle Manipulation – объекты работы с указателями на окна; – File Share – объекты доступа к общим файлам и папкам; – Filtering Platform Packet Drop – список утерянных пакетов; – Filtering Platform Connection – список соединений; – Other Object Access Events – другие объекты операционной системы. • Policy Change – определяет аудит изменения настроек безопасности операционной системы. Например, таких настроек, как изменение доверительных отношений, политики Kerberos, файловой системы EFS и параметров работы протокола QpS. В нее входят следующие подкатегории: – Authentication Policy Change – изменение политик аутентификации; – Authorization Policy Change – смена политик авторизации; – MPSSVC Rule-Level Policy Change – изменение политик MPSSVC; – Filtering Platform Policy Change – смена политик фильтрации пакетов; – Other Policy Change Events – изменение других политик; – Audit Policy Change – смена политик аудита. • DS Access – определяет аудит изменения объектов Active Directory и их свойств. Поскольку в Active Directory учетные записи пользователей и группы также считаются объектами, некоторые события аудита, заносимые в категорию Account Management, могут заноситься и в эту категорию. В нее входят следующие подкатегории: – Directory Service Changes – события изменения служб каталога; – Directory Service Replication – события репликации каталога; – Detailed Directory Service Replication – расширенные сведения о событиях репликации каталога; – Directory Service Access – события доступа к службам каталога. • Logon /Logoff – определяет события аудита входа и выхода из системы, а также регистрации в ней. В отличие от категории Account Logon, которая также содержит информацию об аутентификации, Logon/Logoff хранит события, позволяющие определить протекание всего сеанса регистрации в операционной системе. В нее входят следующие подкатегории: – Logoff – события выхода из системы; – Account Lockout – события политики блокировки окна входа при неправильном введении пароля учетной записи; – IPSec Main Mode – события использования основного режима IPSec; – IPSec Quick Mode – события использования быстрого режима IPSec; – IPSec Extended Mode – события использования расширенного режима IPSec; – Special Logon – события специального входа в систему; – Other Logon/Logoff Events – другие события данной категории; – Logon – события входа в систему. • Privilege Use – определяет аудит использования привилегий, предоставленных службе или пользователю. К данной категории относятся события, описывающие применение пользователем конкретной привилегии, а также описание этой привилегии (некоторые привилегии могут использоваться очень часто, поэтому они генерируют лишь событие при первом использовании). В нее входят следующие подкатегории: – Non Sensitive Privilege Use – использование редко изменяемых привилегий; – Other Privilege Use Events – применение других привилегий; – Sensitive Privilege Use – использование часто изменяемых привилегий. • Detailed Tracking – определяет категорию аудита отслеживания работы процессов и служб. Например, к данной категории относятся события создания служб и назначенных заданий, а также открытие и закрытие процессов. В нее входят следующие подкатегории: – Process Termination – завершение работы процесса; – DPAPI Activity – активация DPAPI; – Other Detailed Tracking Events – другие изменения в процессах; – Process Creation – создание процесса. • System – определяет категорию слежения за системными событиями, касающимися системы безопасности Windows. Например, в данную категорию входят события о процессах начальной загрузки, выключения компьютера, аутентификации пользователя. В нее входят следующие подкатегории: – Security System Extension – аудит расширений безопасности; – System Integrity – аудит целостности системы; – IPSec Driver – аудит драйвера IPSec; – Other System Events – аудит других компонентов системы; – Security State Change – аудит изменения параметров безопасности. Подкатегории категорий аудита описывались выше не только для того, чтобы было более точно понятно, аудит чего именно выполняют данные категории. Вы можете просмотреть непосредственно состояние определенной подкатегории аудита. Для этого применяется команда audi tpol /get /Subcategory: «подкатегория». Кроме того, в командах просмотра состояния аудита вы можете использовать параметр /г. При его использовании будет отображаться не только состояние аудита, но и такие дополнительные параметры, как имя компьютера, CLSID-номер подкатегории (его можно использовать в командах вместо названия подкатегории). Можно также использовать параметр /user:, чтобы определить пользователя, состояние аудита для которого будет отображаться. Например, чтобы просмотреть состояние аудита системных событий для пользователя Администратор (в расширенном варианте), нужно воспользоваться командой auditpol /get /user: administrator /category: «system» /r. Редактирование состояния категорий аудита С помощью данной программы можно не только просматривать состояние аудита категорий, но и устанавливать новое состояние. Для этого применяются команды auditpol /set /category: «категория» или auditpol /set /subcategory: «подкатегория». При этом будет устанавливаться аудит успеха применения определенных категорией или подкатегорией прав. Если же нужно установить аудит неудачных попыток применения определенных категорией или подкатегорией прав, то нужно воспользоваться следующими командами: auditpol /set /category: «категория» /failure: enable или auditpol /set /subcategory: «подкатегория» /failure: enable. Если нужно установить аудит как удачных, так и неудачных попыток применения определенных категорией или подкатегорией прав, то нужно воспользоваться следующими командами: auditpol /set /category: «категория» /success: enable /failure: enable или auditpol /set /subcategory: «подкатегория» /success: enable /failure: enable. Кроме того, можно отключить состояние определенных категорий аудита. Для этого в параметрах /success и /failure вместо значения enable нужно указать значение disable. Вы также можете использовать параметр /user:, чтобы указать пользователя, для которого устанавливается данное состояние аудита. Работа с дополнительными параметрами аудита С помощью данной программы можно также включать или отключать дополнительные настройки работы аудита. Для этого применяются следующие значения параметра /option программы. • CrashOnAuditFail – определяет, будет ли выполняться перезагрузка компьютера при невозможности записи события аудита. Это значение определяет значение параметра REG_DWORD-типа CrashOnAuditFail ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. • FullPrivilegeAuditing – указывает, будет ли производиться аудит операций архивирования и восстановления. Данное значение определяет значение параметра REG_BINARY-типа FullPrivilegeAuditing ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentContrо1Set\Control\Lsa. • AuditBaseObjects – определяет, будет ли выполняться аудит доступа глобальных системных объектов. Оно определяет значение параметра REGDWORD-типа AuditBaseObjects ветви системного реестра HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Lsa. • AuditBaseDirectories – указывает, будет ли выполняться расширенный аудит доступа к каталогам. Определяет значение параметра REGDWORD-типа AuditBaseDirectories ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Lsa. Чтобы просмотреть текущее значение одного из приведенных выше параметров, нужно воспользоваться командой auditpol /get /option: «параметр». Чтобы установить новое значение параметра, нужно воспользоваться командой auditpol /set /option: «параметр» /value: значение. Если значение параметра /value равно enable, то данный параметр аудита будет включен. Если же значение равно disable, то параметр аудита будет отключен. Архивирование и восстановление настроек аудита Программа auditpol.ехе позволяет сохранить текущее состояние аудита доступа в файл, чтобы потом восстановить их из этого файла. Для сохранения настроек аудита в файл применяется команда auditpol /backup /file: путь к файлу с расширением CSV. Настройки аудита доступа сохраняются в обычный текстовый файл, в котором они разделяются между собой запятой. Для восстановления настроек аудита из файла применяется команда auditpol /restore /file: путь к файлу с расширением CSV. Удаление политик аудита Последней возможностью данной программы является возможность удаления настроек аудита для определенных учетных записей пользователей. Чтобы очистить состояние всех категорий и подкатегорий аудита доступа для всех пользователей, нужно воспользоваться командой auditpol /clear. При этом очищается состояние как категорий аудита, так и параметров аудита ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa.