从不受信任的用户保护Windows服务

如何防止用户篡改,停止或崩溃在后台工作的Windows服务可能需要一段时间才能完成? 收到停止请求后,服务应等到工作完成后再停止。 服务有
CanStop
标志,但我不知道如何回应OnStop消息。如果用户确实尝试使服务崩溃,我该如何防止进一步篡改? 编辑:从家长控制到任何后台进程的广义问题。     
已邀请:
用户必须具有管理员权限才能停止服务。我不认为有一个万无一失的方法来保护程序免受管理员的攻击。如果您不希望“不受信任的用户”停止服务,请不要给“不受信任的用户”admin privs。 在这一点上似乎有些绊倒,所以让我澄清一下。假设管理员决定要卸载您的程序。这通常只需点击几下鼠标。你打算采取措施防止这种情况吗? 在这里仔细考虑你的答案。任何故意试图阻止管理员卸载的程序都是恶意软件。 我知道它已经非常标准,因为NT出来给所有家庭PC用户管理权限,以便他们可以安装和玩游戏到他们内心的内容。然而,对于Vista和Win7来说,这不再是真正的nessecary,人们应该摆脱这种习惯。这是非常糟糕的安全实践,即使对于“可信”用户也是如此。 告诉用户他们必须实际遵循一些安全措施并不是件坏事。他们会发现他们必须以同样的方式清除机器上的恶意软件和病毒。     
使用组策略会有所帮助 试试这个http://social.technet.microsoft.com/Forums/en-US/2758d69a-60e8-4a5b-83dd-fc7d8e15bdc1/preventing-users-from-stopping-a-particular-service-with-a-gpo     
你的威胁模型是什么?如果没有威胁模型,就无法找到合适的方式来花费你的精力。 目前,我们只考虑阻止服务停止,而不是防止或篡改或崩溃。 T.E.D是正确的说,如果任何管理员想要停止服务,你通常不应该试图阻止这一点。否则,管理员如何进行故障隔离,以简单模式启动Windows等等? 如您所说,ServiceBase.CanStop属性用于阻止服务停止。此属性通常仅由必须运行的OS关键服务使用。 在主服务线程中,您可以忽略OnStop事件并永远循环。所以SCM会认为服务已停止,即使它仍在运行。这是相当讨厌的,但应该工作。 SCM只是发出停止请求,而不是实际强制停止。     

要回复问题请先登录注册