将Windows服务作为"本地系统"运行有哪些安全风险?

dev*_*ull 8 c# windows-services

我编写了一个运行为"本地系统"的.NET Windows服务.最近我读到,作为本地系统运行可能会向黑客公开系统凭证,使他们能够接管系统.涉及的风险是什么?当我作为本地系统运行服务时,如何防止它们.

Ant*_*hyy 7

作为LocalSystem系统可信空间的一部分运行的服务.从技术上讲,他们有SeTcbName特权.这意味着,除其他外,此类服务可以更改任何安全设置,授予自己任何权限,并且通常可以执行Windows可以执行的任何操作.

因此,您服务中的任何缺陷 - 传递给系统函数的未经过处理的输入,错误的dll搜索路径,缓冲区溢出等等 - 都成为一个关键的安全漏洞.这就是为什么企业环境中的系统管理员不允许在其下运行时安装服务的原因LocalSystem.使用LocalService和NetworkService帐户.