Форум системных администраторов: Software Restriction Policies & registry path rules - Форум системных администраторов

Перейти к содержимому

  • (4 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете начинать новые темы
  • Вы не можете отвечать в этой теме

Software Restriction Policies & registry path rules

#1 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 14:59

ОС Win XP SP2 + все критические fix'ы

Настраиваю SRP.

Уровень безопасности: по дефолту - "Не разрешено"

Создаю дополнительное правило registry path rule: %HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%*.lnk. Проверяю, все "ок", работает. Т.е. на уровне %USERPROFILE%\Главное меню\Программы ярлыки заработали. Но этого, как вы понимаете, мало, хотелось бы разрешить запускать ярлыки из папок %USERPROFILE%\Главное меню\Программы\Стандартные, %USERPROFILE%\Главное меню\Программы\Служебные и т.п.
Создаю дополнительное правило registry path rule:%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%*\*.lnk. Проверяю - не работает.
Создаю правило :%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%Стандартные\*.lnk Проверяю - не работает.
Создаю правило :%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%QIP\*.lnk Проверяю - не работает.

В результате, вместо правила registry path rule, приходится использовать обычное path rule: %USERPROFILE%\Главное меню\Программы\*\*.lnk, которое успешно отрабатывает.

Ну, и вопрос - а почему не работает? И какой тогда смысл в стандартном правиле (создаваемом системой): %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe, ведь, выходит, что и оно не будет работать?

ЗЫ В статье Camelot'а приводится такой пример:

Цитата

%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*\*.lnk
Правда речь идет о Win Vista. Так что же? Выходит подобные registry path rule работают только под Vista? (висты нет под рукой, чтоб проверить)

#2 Пользователь не на сайте   Camelot 

  • Генерал-флудер
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 15:28

Просмотреть сообщениеshs, 11.12.2008, 13:59, сказал(а):

Ну, и вопрос - а почему не работает? И какой тогда смысл в стандартном правиле (создаваемом системой) %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe, ведь, выходит, что и оно не будет работать?

а никто и не говорил, что оно работает :D

#3 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 15:39

Просмотреть сообщениеCamelot, 11.12.2008, 15:28, сказал(а):

а никто и не говорил, что оно работает
ок, тогда, вообще, непонятно, а нафига оно надо? :D

Ну, а как быть с этим :lol::

Цитата

В статье Camelot'а приводится такой пример:

Цитата

%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*\*.lnk
Правда речь идет о Win Vista. Так что же? Выходит подобные registry path rule работают только под Vista?


#4 Пользователь не на сайте   CyberNet 

  • Я нашел эту опцию!!
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 15:44

Просмотреть сообщениеshs, 11.12.2008, 14:59, сказал(а):

И какой тогда смысл в стандартном правиле (создаваемом системой): %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe

Странно у меня работает. Правило разрешает запуск любых ехе из папки C:\WINDOWS\system32, так у меня там все и запускается. Или я что-то не понял?

Просмотреть сообщениеshs, 11.12.2008, 14:59, сказал(а):

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

Параметр Programs в реестре имеет значение "C:\Documents and Settings\user_name\Главное меню\Программы", думаю следует попробовать %HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%\*\*.lnk

Хотя %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe ведь работает :D

#5 Пользователь не на сайте   Camelot 

  • Генерал-флудер
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 16:24

Просмотреть сообщениеshs, 11.12.2008, 14:39, сказал(а):

ок, тогда, вообще, непонятно, а нафига оно надо?

хороший вопрос. Дело в том, что в Windows XP/2003 по дефолту создано 4 правила из них в 2-х используется продолжение пути и .exe а конце. В висте их уже нету, там только 2, которые без дополнительных суффиксов. Что касается моего примера:

Просмотреть сообщениеshs, 11.12.2008, 13:59, сказал(а):

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

прошу прощения. Это не будет работать и это моё сильное недопущение. Дело в том, что в дополнительных суффиксах нельзя использовать обратный слеш, а только прямой - /
%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*/*.lnk
Для ярлыков, которые в Accessories и других папок первого уровня меню Пуск - %HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*/*/*.lnk

вот так можно будет запускать ярлыки из любой вложенной в Start Menu папки (по умолчанию там только папка Programs). Когда писал статью, выяснил этот момент (в черновике он отображён) и почему-то (из-за спешки, видимо) в финальную версию статьи он не попал. Ещё раз приношу извинения.

#6 Пользователь не на сайте   CyberNet 

  • Я нашел эту опцию!!
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 16:39

Просмотреть сообщениеCamelot, 11.12.2008, 16:24, сказал(а):

Дело в том, что в дополнительных суффиксах нельзя использовать обратный слеш, а только прямой - /

О, как. А если не секрет где бы про это почитать, почему оно именно так работает в данном случае? Ведь к примеру в адресной строке будет работать и C:/WINDOWS/system32 и C:\WINDOWS\system32

#7 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 16:41

Просмотреть сообщениеCyberNet, 11.12.2008, 15:44, сказал(а):

Параметр Programs в реестре имеет значение "C:\Documents and Settings\user_name\Главное меню\Программы", думаю следует попробовать %HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs%\*\*.lnk
Думаю не следует, т.к.

Цитата

The registry path format is:

%[Registry Hive]\[Registry Key Name]\[Value Name]%

Note

A registry path rule suffix must not contain a backslash (\) character immediately after the last percent sign (%) in the rule. The registry hive name must be written out; abbreviations will not work.

http://technet.micro...y/cc786941.aspx

Просмотреть сообщениеCyberNet, 11.12.2008, 15:44, сказал(а):

Хотя %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe ведь работает
Я в этом не уверен, это правило может и не работать и никто этого не заметит, т.к. есть более общее правило, которое включает и область System32\*: %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%.
Зачем, вообще, в стандартные правила включили %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe и %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%*.exe, при наличии %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot% - не понимаю.

#8 Пользователь не на сайте   Camelot 

  • Генерал-флудер
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 16:49

Просмотреть сообщениеCyberNet, 11.12.2008, 15:39, сказал(а):

О, как. А если не секрет где бы про это почитать, почему оно именно так работает в данном случае?

нигде. когда я писал статью сам же столкнулся с этой проблемой. Просто ткнул пальцем в небо и повезло.

shs

Просмотреть сообщениеshs, 11.12.2008, 15:41, сказал(а):

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

это правило действительно перекроет остальные 2 с суффиксами. И, повторяю, в висте и 2008 их уже выкинули и оставили этот: %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%

#9 Пользователь не на сайте   CyberNet 

  • Я нашел эту опцию!!
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 16:56

Просмотреть сообщениеCamelot, 11.12.2008, 16:49, сказал(а):

нигде. когда я писал статью сам же столкнулся с этой проблемой. Просто ткнул пальцем в небо и повезло.


Просмотреть сообщениеshs, 11.12.2008, 16:41, сказал(а):

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


Где-то должно быть 100% ибо в "пуск -> выполнить" написать %SystemRoot%System32 то не откроется, но %SystemRoot%\System32 заработает. Ну да понимаю что там речь идет про SRP, но ведь когда через Выполнить открываешь этот путь то значение %SystemRoot% тоже берется из реестра...

Поправьте если ошибаюсь.

#10 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 17:02

Просмотреть сообщениеCyberNet, 11.12.2008, 16:56, сказал(а):

Где-то должно быть 100% ибо в "пуск -> выполнить" написать %SystemRoot%System32 то не откроется, но %SystemRoot%\System32 заработает. Ну да понимаю что там речь идет про SRP, но ведь когда через Выполнить открываешь этот путь то значение %SystemRoot% тоже берется из реестра...
вы путаете переменные окружения и путь реестра, это не одно и то же.

#11 Пользователь не на сайте   CyberNet 

  • Я нашел эту опцию!!
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 17:04

Просмотреть сообщениеshs, 11.12.2008, 17:02, сказал(а):

вы путаете переменные окружения и путь реестра, это не одно и то же.

Вот про это я и хочу почитать более детально, всего знать нельзя, а сейчас было бы конкретно это не плохо изучить.

#12 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 17:09

Просмотреть сообщениеCamelot, 11.12.2008, 16:24, сказал(а):

прошу прощения. Это не будет работать и это моё сильное недопущение. Дело в том, что в дополнительных суффиксах нельзя использовать обратный слеш, а только прямой - /
%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*/*.lnk
Для ярлыков, которые в Accessories и других папок первого уровня меню Пуск - %HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Start Menu%*/*/*.lnk
Ёлы-палы. А я два дня пролюбил на эти registry path rule, но нигде (нигде!) ничего подобного не нагуглил (может глаз замылился? :D). Надо судорожно об этом в твоем блоге записать :lol:

Upd. тем более, если верить ms, то употребляться должен все таки символ "обратный слеш" (\), т.к. это косвенно следует из фразы, которую я цитировал выше: A registry path rule suffix must not contain a backslash (\) character immediately after the last percent sign (%) in the rule.

#13 Пользователь не на сайте   Camelot 

  • Генерал-флудер
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 17:10

Просмотреть сообщениеCyberNet, 11.12.2008, 16:04, сказал(а):

Вот про это я и хочу почитать более детально, всего знать нельзя, а сейчас было бы конкретно это не плохо изучить.

а что там изучать?
правило пути %systemroot% будет равносильно правилу %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%. И это так же равно переменной %windir%.
В первом случае берётся значение из переменной окружения, которые определены во вкладке Environment Variables свойств компьютера, а во втором случае - из реестра.

#14 Пользователь не на сайте   CyberNet 

  • Я нашел эту опцию!!
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 17:20

Угу и я про то. %systemroot% равно %windir% равно %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot% равно "C:\WINDOWS" (слеша _нет_), а в правиле мы имеем путь %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe иными словами C:\WINDOWSSystem32\*.exe (без слеша). Ну както так.

#15 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 17:33

Просмотреть сообщениеCyberNet, 11.12.2008, 17:20, сказал(а):

Угу и я про то. %systemroot% равно %windir% равно %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot% равно "C:\WINDOWS" (слеша _нет_), а в правиле мы имеем путь %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe иными словами C:\WINDOWSSystem32\*.exe (без слеша). Ну както так.
Для переменных окружения действуют обычные соглашения пространства имен файловой системы. А для пути реестра действуют какие-то другие правила, вон и слэш там, оказывается должен быть прямым. (не,... ну, мне даже это в голову не приходило)

#16 Пользователь не на сайте   CyberNet 

  • Я нашел эту опцию!!
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 17:37

Просмотреть сообщениеshs, 11.12.2008, 17:33, сказал(а):

А для пути реестра действуют какие-то другие правила

Именно это и хотелось бы почитать :D

#17 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 17:49

Просмотреть сообщениеCyberNet, 11.12.2008, 17:37, сказал(а):

Именно это и хотелось бы почитать
вот, Camelot в своем блоге напишет об этом, там и почитаешь :D возможно, что его блог будет единственным местом с этой инфой

#18 Пользователь не на сайте   Camelot 

  • Генерал-флудер
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 20:43

Написал. Заодно подкинул хороших мыслей для затравки (уверен, большинство будет сильно озадачено) :
http://www.sysadmins.lv/PermaLink,guid,47e...208b269621.aspx

#19 Пользователь не на сайте   shs 

  • Многописатель
  • PipPipPipPipPipPip

Отправлено 11 December 2008 - 21:19

Просмотреть сообщениеCamelot, 11.12.2008, 20:43, сказал(а):

Заодно подкинул хороших мыслей для затравки (уверен, большинство будет сильно озадачено)
Озадачился тем, что не понимаю, какое отношение лишние правила
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%*.exe и
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe

имеют к разрешениям, установленным на папку %windir%\temp ? Они (эти правила) не оказывают никакого влияния ни на что.

О том, что рядовые пользователи имеют черезмерные права в %windir%\temp, относительно недавно говорил WindowsNT на этом форуме:

Просмотреть сообщениеWindowsNT, 26.11.2008, 13:59, сказал(а):

2. Проблемы SRP, когда-то уже были рассмотрены на форуме:
- пользователь может переименовать программу в .txt и выполнить её командой cmd start myprogram.txt
- папка Windows/Temp мало того, что открыта пользователям на запись, так ещё и разрешается дефолтными SRP для исполнения. Боритесь с ней


Upd.

Цитата

Вобщем, подумайте, господа администраторы - а вы точно хорошо разобрались в вопросе Software Restriction Policies? У вас ещё есть время подумать, пока ваши пользователи читают эту статью
На самом деле думаю, что надо, рассматривать SRP, как средство борьбы с вредоносным ПО (в первую очередь), пока еще это вредоносное ПО не начали затачивать на то, что оно должно пытаться обойти возможную SRP-защиту. А умный пользователь и так сумеет обойти наши правила, раз мы разрешаем ему запускать на исполнение ярлыки из папок, в которые он (пользователь) имеет право на запись/выполнение. Выход тут один, IMHO, надо перекрывать при помощи SRP все (абсолютно!) папки, в которые пользователь имеет право на запись исполнение. Для этого придется оказаться от ярлыков на "Рабочем столе" или запретить запись/выполнение на него. Плюс организовать для пользователей ресурс с необходимыми им для работы ярлыками (причем отобрать права на запись в этом ресурсе). Это, конечно, технически возможно, но нагрузит админа заботой о содержании в порядке ярлыков пользователей.

#20 Пользователь не на сайте   Camelot 

  • Генерал-флудер
  • PipPipPipPipPipPipPip

Отправлено 11 December 2008 - 21:26

Просмотреть сообщениеshs, 11.12.2008, 20:19, сказал(а):

О том, что рядовые пользователи имеют черезмерные права в %windir%\temp, недавно говрил WindowsNT на этом форуме:

до сегодняшнего дня я не афишировал эту информацию. Тем более, кроме Temp есть и другие папки.

Просмотреть сообщениеshs, 11.12.2008, 20:19, сказал(а):

%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%*.exe и
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%System32\*.exe
имеют к разрешениям, установленным на папку %windir%\temp ? Они (эти прваила) не оказывают никакого влияния ни на что.

а вот будут оказывать, как только удалите вот это:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%. Т.е. тот факт, что оставили именно это исключение, а не те 2, которые чётко говорят, что папка Windows и System32 разрешены для исполнения .exe вводит в сильное заблуждение. Я склоняюсь к тому, что следует удалить исключение %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
и добавить свои необходимые для работы исключения, чем осталять исключение, которое открывает всю папку Windows и внутренности.

  • (4 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете начинать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых