我编写了一个作为“本地系统”运行的 .NET Windows 服务。最近我读到,作为本地系统运行可能会将系统凭据暴露给黑客,使他们能够接管系统。 当我将服务作为本地系统运行时,会涉及哪些风险以及如何预防这些风险。
最佳答案
作为 LocalSystem
运行的服务是系统可信空间的一部分。从技术上讲,他们拥有 SeTcbName
特权。这意味着,除其他外,此类服务可以更改任何安全设置,授予自己任何特权,并且通常可以执行 Windows 可以执行的任何操作。
因此,您服务中的任何缺陷——传递给系统函数的未经过滤的输入、错误的 dll 搜索路径、缓冲区溢出等等——都会成为一个严重的安全漏洞。这就是为什么如果服务在 LocalSystem
下运行,企业环境中没有系统管理员会允许安装您的服务。使用 LocalService
和 NetworkService
帐户。
关于c# - 将 Windows 服务作为 "Local System"运行有哪些安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1449946/