Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf
Добавлен: 29.10.2018
Просмотров: 32988
Скачиваний: 742

Утилиты системы безопасности
Глава 8 267
строгого имени не связано с цифровой подписью на основе сертификата
и не соответствует какому-либо уровню доверия).
• Original Name (Исходное имя) Поле Original Name из внедренных
сведений о версии файла (если есть).
• Internal Name (Внутреннее имя) Поле Internal Name из внедренных
сведений о версии файла (если есть).
• Copyright (Авторское право) Поле
Copyright из внедренных сведений
о версии файла (если есть).
• Comments (Комментарии) Поле
Comments из внедренных сведений о
версии файла (если есть).
Хеш — это статистически уникальное значение, сгенерированное по бло-
ку данных с использованием такого криптографического алгоритма, кото-
рый при малейшем изменении данных приводит к генерации совершенно
иного хеша. При использовании надежного хеш-алгоритма на современном
уровне технологий практически невозможно изменить данные, оставив не-
изменным хеш, поэтому хеш-значения применяют для выявлении случай-
ных повреждений или несанкционированной модификации данных. При
добавлении в командную строку параметра -h SigCheck вычисляет и отобра-
жает хеш для проверяемых файлов по алгоритму MD5, SHA1 или SHA256.
Эти хеши можно сравнивать с хеш-значениями, рассчитанными для заве-
домо целых данных, чтобы убедиться в целостности проверяемого файла.
С помощью хеш-значения можно проверить и неподписанные файлы при
наличии заведомо целой версии последних. Некоторые системы проверки
файлов проверяют именно хеш-значения, а не подписи.
Манифест приложения — это документ в формате XML, который можно
внедрять в файл программы. Впервые их использовали в Windows XP, где
они помогали различать различные версии одних и тех е сборок. В Windows
Vista и Windows 7 схема манифеста была дополнена возможностями про-
верки совместимости с разными версиями Windows, а также требования
прав администратора. Наличие манифеста, совместимого с Windows Vista,
также отключает виртуализацию файла и реестра для процесса. Для полу-
чения дампа внедренного в файл манифеста добавьте в командную строку
параметр -m. Ниже приводится вывод SigCheck с собственным манифестом
этой программы:
c:\program files\sysinternals\sigcheck.exe:
Verified: Signed
Signing
date:
19:14
6/7/2010
Publisher:
Sysinternals
-
www.sysinternals.com
Description: File version and signature viewer
Product:
Sysinternals
Sigcheck
Version:
1.70
File
version:
1.70
Manifest:
SIN_ch_08.indd 267
27.12.2011 14:31:47

268 Часть
II
Работа с утилитами
<assembly xmlns=»urn:schemas-microsoft-com:asm.v1» manifestVersion=»1.0»>
<trustInfo xmlns=»urn:schemas-microsoft-com:asm.v3»> <security>
<requestedPrivileges>
<requestedExecutionLevel
level=»asInvoker»
uiAccess=»false»></
requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Для того чтобы вывести только номер версии файла, добавьте в команд-
ную строку параметр -n. SigCheck отображает только значение поля File
Version из внедренного в файл ресурса с версией файла (если таковой име-
ется), в противном случае выводится строка n/a. Этот параметр полезен для
использования в командных файлах, лучше использовать его при проверке
конкретных файлов.
Разумеется, параметры командной строки можно сочетать. Например,
приведенная ниже команда выполняет поиск в папке system32 и вложенных
в нее папках неподписанных исполняемых файлов с выводом хеш-значения
и подробной информации о версии:
sigcheck -u -s -e -a -h c:\windows\system32
Формат вывода данных
Как правило, SigCheck выводит данные в виде форматированного списка
(рис. 8-1). Чтобы получить данные в формате CSV для импорта в электрон-
ную таблицу или базу данных добавьте в командную строку параметр –v.
SigCheck выводит заголовки столбцов в соответствии с информацией о фай-
ле, запрошенной посредством других параметров командной строки. За име-
нами столбцов следует строка значений, разделенных запятой, для каждого
проверяемого файла. Имейте в виду, что параметр -v не может использовать-
ся совместно с параметрами -i и -m.
Вывод заголовка SigCheck можно отключить с помощью параметра -q.
Удаление этих строк облегчает обработку вывода SigCheck в командных
файлах и вывод CSV.
AccessChk
AccessChk — это консольная программа, которая отображает действующие
разрешения на доступ к защищенным объектам, права учетных записей
пользователей и групп, а также подробности маркера процесса. Программа
может просматривать вложенные папки и разделы реестра, содержащие
объекты, для которых у пользователей или групп есть (или, наоборот, от-
сутствуют) разрешения на доступ для чтения или записи. Также программа
может отображать неструктурированный список управления доступом к за-
щищенным объектам.
SIN_ch_08.indd 268
27.12.2011 14:31:47

Утилиты системы безопасности
Глава 8 269
Что такое «действующие разрешения»?
Действующие разрешения — это разрешения на доступ к объекту, которыми
обладает пользователь или группа в зависимости от принадлежности к той
или иной группе, а также разрешения, в которых может быть отказано явно.
В качестве примера рассмотрим папку C:\Documents and Settings на компью-
тере под управлением Windows 7, где эта папка представлена символической
ссылкой, обеспечивающей совместимость приложений. Разрешением «пол-
ный доступ» для нее обладают группа Администраторы и процесс System, а
также группа Everyone (Все) — разрешения на доступ для чтения. При этом
у группы Все явно отозвано разрешение List Folder (Содержимое папки) для
этой папки. Соответственно, если пользователь MYDOMAIN\Abby являет-
ся членом группы Администраторы, его действующие разрешения включа-
ют все разрешения, кроме Содержимое папки. Если же MYDOMAIN\Abby
является обычным пользователем и, следовательно, членом группы Все, его
действующие разрешения содержат только разрешение на чтение без воз-
можности просмотра содержимого папки.
В Windows имеется средство Effective Permissions (Действующие разре-
шения), доступное в окне Advanced Security Settings, которое открывается
щелчком кнопки Advanced в редакторе разрешений для некоторых типов
объектов. Средство Effective Permissions проверяет и отображает действую-
щие разрешения на доступ к выбранному объекту для указанного пользова-
теля или группы. AccessChk использует те же API-функции, что и Windows,
и может выполнять те же операции, но для гораздо более широкого разноо-
бразия объектов, причем ее можно использовать в сценариях. AccessChk мо-
жет отображать разрешения на доступ к файлам, папкам, разделам реестра,
процессам, а также к любым типам объектов, объявленным в пространстве
имен Диспетчера объектов, включая каталоги, разделы реестра и семафоры.
Имейте в виду, что действующие разрешения в Windows — это всего
лишь приблизительный набор реальных разрешений, которыми может об-
ладать пользователь, выполнивший вход в систему. Реальные разрешения
могут отличаться, поскольку они предоставляются или отзываются на осно-
вании способа входа пользователя (под записью интерактивного пользова-
теля или службы). При определении же действующих разрешений способ
входа в систему не учитывается. При определении разрешений на доступ к
удаленным объектам разрешения на общий доступ, членство в локальных
группах и их привилегии не учитываются. Кроме того, есть аномалии, свя-
занные с включением или исключением встроенных локальных групп (см.
статью Knowledge Base по адресу http://support.microsoft.com/kb/323309).
В частности, я недавно обнаружил новую ошибку в определении разреше-
ний для группы Администраторы. Наконец, действующие разрешения могут
зависеть от наличия прав у записи, под которой определяются разрешения,
доступа к информации о проверяемом объекте в Active Directory (см. статью
Knowledge Base под номером 331951 по адресу http://support.microsoft.com/
kb/331951).
SIN_ch_08.indd 269
27.12.2011 14:31:47

270 Часть
II
Работа с утилитами
Использование AccessChk
Базовый синтаксис AccessChk имеет следующий вид:
accesschk [параметры] [имя_пользователя_или_группы] имя_объекта
Параметр имя_объекта
— это защищенный объект, который нужно про-
верить. Если объект является контейнером как, например, папка файло-
вой системы, или раздел реестра, AccessChk покажет все объекты в данном
контейнере, а не сам контейнер. Если указать параметр имя_пользовате-
ля_или_группы, AccessChk покажет действующие разрешения для данного
пользователя или группы, в противном случае программа будет отображать
набор действующих прав для всех учетных записей, содержащихся в списке
управления доступом (ACL) объекта.
По умолчанию параметр имя_объекта интерпретируется как объект фай-
ловой системы и может включать подстановочные знаки ? и *. Если объ-
ект является папкой, AccessChk показывает действующие разрешения на
доступ ко всем вложенным в нее файлам и папкам. Если объект является
файлом, AccessChk отображает действующие разрешения на доступ к нему.
Ниже в качестве примера приводятся действующие разрешения на доступ к
c:\windows\explorer.exe на компьютере под управлением Windows 7:
c:\wi ndows\explorer.exe
RW NT SERVICE\TrustedInstaller R
BUILTIN\Administrators R NT
AUTHORITY\SYSTEM
R
BUILTIN\Users
AccessChk суммирует разрешения на доступ ко всем отображаемым объ-
ектам для каждого пользователя или группы из ACL. Если учетная запись
обладает разрешением на чтение, выводится буква R, а если разрешением на
запись — W; если разрешения отсутствуют, не выводится ничего.
Именованные каналы считаются объектами файловой системы.
Используйте префикс “\pipe\”, чтобы указать путь к именованному кана-
лу, или просто “\pipe\”, чтобы указать контейнер, в котором находятся все
именованные каналы: команда accesschk \pipe\ показывает действующие
разрешения на доступ ко всем именованным каналам на компьютере, а ac-
cesschk \pipe\srvsvc
— действующие разрешения на доступ к каналу srvsvc,
если он существует. Имейте в виду, что поиск с подстановками, например \
pipe\s*, не поддерживается из-за ограничений Windows.
Тома также считаются объектами файловой системы. Для проверки ло-
кальных томов служит синтаксис \\.\X:, где X — буква диска. Например, ко-
манда accesschk \\.\C: показывает разрешения на доступ к тому C. Заметьте,
что разрешения на доступ к тому
— это не то же самое, что разрешения на
доступ к его корневому каталогу. Разрешения на доступ к тому определяют,
кто может выполнять задачи по обслуживанию тома с использованием, на-
пример, дисковых утилит, описанных в Главе 12.
SIN_ch_08.indd 270
27.12.2011 14:31:47

Утилиты системы безопасности
Глава 8 271
Параметр параметры позволяет задавать типы объектов и разрешений,
необходимость рекурсивного обхода иерархии контейнеров, выводимые дан-
ные, а также необходимость отображения действующих разрешений или ACL
объекта. Список параметров приводится в табл. 8-2, подробнее о них — ниже.
Табл. 8-2. Параметры командной строки AccessChk
Параметр
Описание
Указанный тип объекта
-d
Задан контейнер и вывод разрешений на доступ к нему без права
доступа к его содержимому
-k
Раздел реестра
-c
Служба Windows
-p
PID, полное или частичное имя процесса
-f
В сочетании с -p отображает полную информацию маркера
указанного процесса
-0
Объект в пространстве имен Диспетчера объектов Windows
-t
В сочетании с -o указывает тип объекта, в сочетании с -p —
уведомляет о разрешениях на доступ к потокам процесса
-a
Право учетной записи
Поиск прав доступа
-s
Выполняет рекурсивный обход иерархии контейнера
-n
Отображает только объекты, не предоставляющие прав доступа
(обычно в сочетании с имя_пользователя_или_группы)
-w
Отображает только объекты, предоставляющие право на запись
-r
Отображает только объекты, предоставляющие право на чтение
-e
Отображает только объекты с явно заданными IL (только в Windows
Vista и выше)
Вывод данных
-1
Отображает ACL вместо действующих разрешений
-u
Не показывает ошибки
-V
Вывод подробных данных
-q
«Тихий» режим (не показывает заголовок)
Тип объекта
Как сказано выше, если именованный объект является контейнером, напри-
мер, папкой файловой системы, разделом реестра или каталогом Диспетчера
объектов, AccessChk отображает объекты из данного контейнера, а не сам
контейнер. Чтобы программа AccessChk показывала разрешения для кон-
тейнера, добавьте в командную строку параметр -d. Например, accesschk c:\
SIN_ch_08.indd 271
27.12.2011 14:31:47