我知道Bob是系统pipe理员。 Bob需要将软件Foo部署到基于Windows NT(从XP开始)的Alice工作设备上。 Foo是安全软件。 这不是恶意的。
Alice在她的设备上拥有本地pipe理员权限。 鲍勃想要禁止爱丽丝杀死一个进程或卸载Foo。 但是,鲍勃应该能够卸载Foo,如果他愿意的话。
假设有一种方法可以阻止本地pipe理员Alice终止特定的进程Foo。 我如何实现function,只允许Bob卸载Foo?
不可能。 无论你采取什么样的保护措施,爱丽丝总是能够取出pipe理员卡并绕过他们。
你唯一的select是从pipe理员组中删除Alice,因为从个人的经验,如果域名推送到我的电脑,如果我不想要它,我只是通过服务或杀死的过程,虽然我不是域pipe理员我是networking上每个其他设备的pipe理员。
你想要的不是很实际。 如果供应商修改其服务以注册为受保护进程(Windows 8.1 / 2012 R2),则尽可能接近。
使用早期启动防恶意软件(ELAM)驱动程序保护防恶意软件服务
https://msdn.microsoft.com/en-us/library/windows/desktop/dn313124%28v=vs.85%29.aspx
“在Windows 8.1中引入了受保护服务的新概念,允许反恶意软件用户模式服务作为受保护的服务启动。在服务启动后,Windows使用代码完整性仅允许可信代码加载进入受保护的服务,Windows也保护这些进程免受代码注入和其他来自pipe理进程的攻击。
[…]
“更新和服务
“反恶意软件服务启动后受保护,其他未受保护的进程(甚至是pipe理员)无法停止服务。在更新服务二进制文件的情况下,反恶意软件服务需要接收回复安装程序自行停止,以便可以进行维护服务停止后,防恶意软件安装程序可以执行升级,然后按照上述注册服务和启动服务作为受保护的部分中的步骤注册证书,并启动服务作为保护。
“请注意,该服务应确保只有可信的呼叫者可以停止服务,允许不可信的呼叫者这样做会破坏保护服务的目的。
取消注册服务
“卸载受保护的服务时,服务必须通过调用ChangeServiceConfig2 API将其自身标记为不受保护。请注意,因为系统不允许任何非受保护的进程更改受保护服务的configuration,所以对ChangeServiceConfig2的调用必须是由受保护的服务本身提供,在服务被重新configuration为不受保护的情况下运行后,卸载程序可以简单地采取适当措施从系统中移除反恶意软件。