Защита службы Windows от ненадежных пользователей - PullRequest
4 голосов
/ 24 ноября 2010

Как я могу предотвратить вмешательство пользователей, остановку или сбой службы Windows, которая выполняет работу в фоновом режиме, выполнение которой может занять некоторое время?

После получения запроса на остановку служба должна подождать доработа завершается до остановки.

Для сервисов есть флаг CanStop, но я не уверен, как ответить на сообщение OnStop.И если пользователь пытается завершить работу службы, как я могу предотвратить дальнейшее вмешательство?


Редактировать: Обобщенный вопрос из родительского контроля для любого фонового процесса.

Ответы [ 3 ]

3 голосов
/ 24 ноября 2010

Пользователи должны иметь права администратора, чтобы остановить службы. Я не думаю, что есть надежный способ защитить программу от кого-то, у кого есть админ на коробке. Если вы не хотите, чтобы «ненадежные пользователи» прекращали обслуживание, не предоставляйте «недоверенным пользователям» права администратора.

Похоже, что по этому вопросу возникли некоторые ошибки, поэтому позвольте мне немного уточнить. Предположим, администратор решает, что хочет удалить вашу программу. Обычно это всего несколько щелчков мышью. Собираетесь ли вы принять меры, чтобы предотвратить это?

Тщательно продумайте свой ответ здесь. Любая программа, которая намеренно пытается предотвратить удаление администратором, по определению является вредоносным ПО .

Я знаю, что с момента выхода NT все домашние пользователи ПК получили права администратора, чтобы они могли устанавливать игры и играть в них по душе. Однако в Vista и Win7 это больше не нужно, и людям следует избавиться от этой привычки. Это очень плохая практика безопасности, даже для «доверенного» пользователя.

Говорить своим пользователям о том, что они должны действительно следовать некоторым правилам безопасности, - это не плохо. Они также обнаружат, что таким образом они должны удалять гораздо меньше вредоносных программ и вирусов со своих компьютеров.

2 голосов
/ 06 мая 2014

Использование групповой политики поможет

попробуйте http://social.technet.microsoft.com/Forums/en-US/2758d69a-60e8-4a5b-83dd-fc7d8e15bdc1/preventing-users-from-stopping-a-particular-service-with-a-gpo

1 голос
/ 24 ноября 2010

Какая у вас модель угрозы ?Без модели угроз невозможно найти правильный способ потратить свои усилия.

На данный момент давайте просто рассмотрим предотвращение остановки службы, а не предотвращение, вмешательство или сбой.

TED правильно сказал, что если какой-либо администратор хочет остановить службу, обычно вы не должны пытаться предотвратить это.Иначе как администратор может изолировать ошибки, запустить Windows в обычном режиме и т. Д.

Как вы говорите, свойство ServiceBase.CanStop используется для предотвращения остановки службы.Это свойство обычно используется только критически важными для ОС службами, которые должны работать.

В главном служебном потоке вы можете просто игнорировать событие OnStop и цикл навсегда.Таким образом, SCM подумает, что служба остановлена, хотя она все еще работает.Это довольно неприятно, но должно работать.SCM просто выдает запрос на остановку, а не принудительно останавливает ее.

...