c# - 将 Windows 服务作为 "Local System"运行有哪些安全风险?

标签 c# windows-services

我编写了一个作为“本地系统”运行的 .NET Windows 服务。最近我读到,作为本地系统运行可能会将系统凭据暴露给黑客,使他们能够接管系统。 当我将服务作为本地系统运行时,会涉及哪些风险以及如何预防这些风险。

最佳答案

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

因此,您服务中的任何缺陷——传递给系统函数的未经过滤的输入、错误的 dll 搜索路径、缓冲区溢出等等——都会成为一个严重的安全漏洞。这就是为什么如果服务在 LocalSystem 下运行,企业环境中没有系统管理员会允许安装您的服务。使用 LocalServiceNetworkService 帐户。

关于c# - 将 Windows 服务作为 "Local System"运行有哪些安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1449946/

相关文章:

c# - 检测视频中存在音频的帧

c# - 使用 RegEx 将字符串转换为 Pascal 大小写

.net - 检测代码是否正在作为服务运行

c# - 如何从 Windows 服务访问 SQL 数据库?

java - Tomcat作为windows服务运行时加载webapp失败

c# - 如何在 C# 注释中添加 xaml 代码?

c# - MySqlCommand 似乎没有传递参数

c# - 如何在 WPF 中强制显示工具提示

ruby-on-rails - 将 delay_job 作为 Windows 服务运行

c# - 在不重启服务的情况下更换WCF服务库