安全特权服务<=>用户空间命名管道WCF-Connection

时间:2019-06-10 17:30:52

标签: c# windows wcf named-pipes privileges

我有这样的事情: Architecture

((有一个客户端,该客户端需要使用具有一些自定义参数的Admin-Privileges启动第三方.exe。为了避免使UAC-Dialogs不断困扰用户,我做了运行具有SYSTEM特权的服务。客户端和服务通过 WCF和NetNamedPipeBinding 进行通信。)


那很好,我只担心安全性。风险是我不控制第三方.exe,因此我不知道某些未记录的参数可能会做什么。 (也许它允许启动某些进程,这将允许从用户空间将特权升级为SYSTEM权限)

我看不到任何可以将客户端身份验证为有效客户端的内容。鉴于命名管道是已知的安全风险/问题(请参阅http://www.blakewatts.com/namedpipepaper.html / https://hackinparis.com/data/slides/2017/2017_Cohen_Gil_The_forgotten_interface_Windows_named_pipes.pdf),因此我一直在寻找最佳实践/安全清单,但没有找到。


所以问题基本上是:如何确保只有我的客户端(而不是其他未提升的程序)才能连接到特权服务?并且在使用WCF时该如何做?

到目前为止我想到的是:
Service.exeClient.exe都将位于C:\Program Files\<some name>中。其他未提升的程序无法写入此路径,那么也许让客户端在其中的某个文件中写入参数,然后让服务读取它?可以使用类似的方法来验证整个WCF连接吗?

0 个答案:

没有答案