SRP или Sotware Restriction Policies - мощный инструмент управления безопасности и контроля запуска приложений в ОС Windows. Политики ограниченного использования программ достаточно просты и состоят из менее, чем 2-х десятков настроек. Но в то же время политика SRP требует очень серьёзного понимания предмета. Я в своё время сделал 2 попытки популяризировать SRP среди администраторов постсоветского пространства как в своём предыдущем блоге, так и в журнале "Системный администратор", где я старался более подробно рассказать про технологию:

Однако, к великому сожалению, в журнальной статье был упущен один момент, который обнаружили сегодня на форуме: http://forum.sysfaq.ru/index.php?showtopic=14462

В статье говорится:

Для унификации работы с папками профилей пользователей политика SRP предлагает возможность чтения значений из реестра. Ветка реестра: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\ содержит пути для большинства пользовательских папок профиля. Для указания пути к Start Menu рекомендуется использовать значения реестра для каждой локальной машины. Чтобы использовать значения реестра, его ключ нужно заключить в знаки процента «%», как это показано на примерах:

%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%*.lnk

%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*\*.lnk

Тут всё почти верно, кроме последнего примера. Дело в том, что данный пример не будет работать по одной простой причине:

http://technet.microsoft.com/en-us/library/cc786941.aspx

A registry path rule suffix must not contain a backslash (\) character immediately after the last percent sign (%) in the rule

Тут, конечно же, неточность есть и в статье TechNet'а, поскольку обратный слеш ( \ ) нельзя использовать не только сразу после завершающего ключ реестра знака процента ( % ), но и далее, когда используется дополнительный суффикс. Дополнительный суффикс используется для продолжения пути извлечённого из реестра (об этом прочитаете в статье журнала). К сожалению, нигде в интернете (а так же и в документации TechNet) я не смог найти решения данной проблемы, когда суффикс состоит из 2 и более уровня папок (вида %regkey%folder\subfolder1\subfolder2\etc). Ещё в момент написания статьи для журнала я быстро нашёл решение - если нельзя использовать обратный слеш ( \ ), то почему бы не попробовать использовать прямой слеш ( / )? И попал пальцем в небо. Особого криминала здесь нету, просто при составлении правил политик SRP учтите, что при использовании относительных путей в виде ключей реестра и продолжении пути суффиксами для вложенных папок используйте только прямой слеш - ( / ), тогда всё будет работать прекрасно. Напоминаю, что вы так же можете использовать подстановочные знаки как, например ( * ) Данный момент не был учтён в статье по моей невнимательности.

А теперь поговорим о том, чего я тогда ещё не знал. И, уважаемые администраторы, убедитесь, что ваши пользователи не прочитали материал ниже раньше вас ;)

По умолчанию в Windows XP/Windows Server 2003 установлено 4 исключения для действия по умолчанию:

  • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%
  • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%*.exe
  • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe
  • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%

Это исключения для папок Windows и Program Files. Эти правила вполне обоснованы, поскольку обычные пользователи не имеют права записи ни в папку Windows, ни в Program Files. При этом видно, что третье правило использует обратный слеш! По всей видимости разработчики Microsoft сами себя ввели в заблуждение? Вполне возможно. Далее мы видим, что первое правило перекрывает второе и третье! Можно сказать, что эти правила лишние и достаточно первого. Действительно, если взять систему с Windows Vista или Windows Server 2008, то мы увидим только 2 исключения по умолчанию:

  • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%
  • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%

Но на самом деле всё не так и просто. Я бы в жизни не догадался об этом, если бы не Александр Станкевич (MVP Enterprise Security)! Я так и не смог найти внятного объяснения этому факту:

TempACL

Полагаю, что комментировать тут нечего, на картинке всё и так видно, к чему я клоню ;) Вам мало? Получите ещё:

SpoolACL

Вобщем, подумайте, господа администраторы - а вы точно хорошо разобрались в вопросе Software Restriction Policies? У вас ещё есть время подумать, пока ваши пользователи читают эту статью :-D

Thursday, December 11, 2008 7:44:05 PM (FLE Standard Time, UTC+02:00)   Comments [6]    

 

Tuesday, February 24, 2009 4:22:15 AM (FLE Standard Time, UTC+02:00)
Ещё в Win 2000k я обнаружил, что система странно расставляет NTFS права на своём каталоге. Поэтому я всегда NTFS права ставлю по-своему. И на диск системный диск и на Program Files. Я даже порывался написать инструмент - сканер, который бы тупо от имени пользователей рекурсивно обходил дерево каталогов и пытался создавать каталоги и файлы их модифицировать и удалять. И пробовать изменять каталоги и файлы которые уже там находятся и сравнивать это со внутренним шаблоном разрешений. Но потом ограничился сканером от Sysinternals.com

Попробуйте AccessEnum. Он сканирует дерево каталогов и регистри и показывает всех пользователей и группы которым разрешена запись в соответствующие каталоги файлы и узлы.

Но на Ваш сайт я попал в поисках проблем использования SRP. А проблемы следующие.
- с десктопа пользователя запускаются инсталляционные пакеты такие как FireFox. Если стартануть через FAR ошибка будет сразу, если через Windows Explorer он распакуется.
- я смог установить OpenVPN с десктопа из сессии администратора. При этом администратор подчиняется тем же правилам что и пользователи задано в SRP.
- не могу воспроизвести, но точно было, я переименовывал far.exe в far.exe.doc и элементарно запускал его из каталога %temp% как пользователя так и администратора. запускал так.
run - cmd
там cd %temp%
start %temp%\far.exe.doc
И это работало. Причём не имело значение во что переименовать файл, лишь бы его расширение не попадало в список запрещённых в SRP.
Сейчас вероятно установка сервиспака повлияла.

Есть у Вас объяснения этим явлениям? Возможно с инсталляционными файлами как-то влияет то что это делает инсталятор Windows. И возникает вопрос а не выполняет ли он какой-то код из инсталлятора? Но с другой стороны сколько таких скользких скрытых моментов может быть ещё?

Из-за проблем описанных выше я всегда пользовался и пользуюсь утилиткой TrustNoExe. Сейчас снова вернулся к тестирования SRP но всё же сомневаюсь в её надёжности.
Tuesday, February 24, 2009 9:37:25 AM (FLE Standard Time, UTC+02:00)
Вы слишком перетягиваете. На самом деле не всё так просто. Видите ли, разрешения NTFS расставляются не от балды (хотя, нам может так казаться), а в соответствии с определёнными требованиями. Ведь логично предположить, что папка спулера печати будет открыта для записи пользователям, чтобы они могли складывать документы в очередь печати.

Что касается Temp, то она требуется для установки (обновления) драйверов, куда временно копируются INF файлы драйвера. Это не проблема выставить явный запрет на папку спулера (или вообще перенести спулер на другой диск) и на папку Temp. Про AccessEnum я знаю и он вполне годится, чтобы отследить, где в системных папках у пользователей есть права на запись.

Относительно трюка с переименованием разрешения и запуска файла - да, это подтверждённый баг в ранних версиях Windows XP и Windows Server 2003 и не вы первый, кто мне говорит об этом баге. Но он был закрыт в одном из сервис-паков (1 или 2, точно не скажу), поскольку в Windows XP SP3 и Windows Server 2003 SP2 и выше это уже гарантированно не сработает. Так что сторонние утилиты использовать далеко не обязательно. Тем более, ваша утилита вряд ли умеет интегрироваться с GPO и обеспечивает удобочитаемость правил при разрешении проблем с блокировкой программ.

Я думаю, что напишу ещё один пост по теме, покажу ещё один трюк и дам кое-какие советы по более эффективному управлению политикой.
Thursday, June 02, 2011 5:27:43 PM (FLE Daylight Time, UTC+03:00)
Добрый день Вадим!
Столкнулся со следующей проблемой:
Необходимо разрешить запуск из пользовательского темпа файлы по маске run_allow_*.bat
Как не старался, не смог подобрать варианты :(
проверены: %TEMP%run_allow_*.bat %TEMP%\run_allow_*.bat %TEMP%/run_allow_*.bat
Если взять прамой путь (без %TEMP%) - работает.
Есть совет?
pam3ec
Tuesday, June 28, 2011 11:08:12 AM (FLE Daylight Time, UTC+03:00)
Все еще актуально...
pam3ec
Monday, August 15, 2011 2:38:44 PM (FLE Daylight Time, UTC+03:00)
UP :)
pam3ec
Monday, August 15, 2011 2:47:13 PM (FLE Daylight Time, UTC+03:00)
Дело в том, что в контексте SRP переменная %temp% разворачивается в C:\Windows\Temp, а не пользовательский темп.
OpenID
Please login with either your OpenID above, or your details below.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview
 · 

All content © 2008 - 2012, Vadims Podāns
"Spaces" Theme provided by: Vadims Podāns
About


E-mail - Send mail to the author(s)
Live Messenger -
For english language visitors
Библиотека
Календарик
<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Карта расположения посетителей
Favorites





Fan list



Disclaimer
Вся информация на сайте предоставляется на условиях «как есть», без предоставления каких-либо гарантий и прав.

При использовании материалов c данного сайта ссылка на оригинальный источник обязательна.
Protected by Copyscape Online Plagiarism Scanner