【问题标题】:What are the security risks in running a Windows Service as "Local System"?将 Windows 服务作为“本地系统”运行有哪些安全风险?
【发布时间】:2009-09-20 00:38:10
【问题描述】:

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

【问题讨论】:

    标签: c# windows-services


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      对于您运行的任何服务,或者我相信任何应用程序,您应该让应用程序删除不需要的权限,以减少黑客的影响。

      因此,如果服务不需要写入本地目录或删除,则删除该权限。

      此外,您可以查看是否需要访问注册表项。

      您可以删除各种权限以限制可能造成的损害。

      编辑:您可能想要为 S2 进行查找。 Window Services 以查找有关本地系统风险的更多信息。 http://www.sans.org/top20/

      【讨论】:

        【解决方案3】:

        我认为主要问题是,如果有人在您的服务中发现一个安全漏洞,让他可以访问系统资源和/或执行代码 - 它使用本地系统权限访问/执行(与内置管理员相同) . 问题是——你完全确定你的服务是防黑客的吗? :P

        【讨论】:

        • NT 4以后,内置管理员默认没有SeTcbName,所以LocalSystem的权限比本地管理员还要多。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-27
        • 2015-06-12
        • 1970-01-01
        • 2019-08-19
        • 2020-06-25
        • 2018-09-09
        • 2013-10-08
        相关资源
        最近更新 更多