首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止windows服务的代码注入/交换?

如何防止windows服务的代码注入/交换?
EN

Server Fault用户
提问于 2019-03-28 18:55:52
回答 1查看 97关注 0票数 0

嘿哟!

作为我们产品的一部分,我们在客户端的服务器上有一个与他们的数据库交互的就地安装程序。我们目前正在将其转换为windows服务。我们已经找到了如何使用nssm制作windows服务,但我们遇到的一个问题是,如何通过允许攻击者将我们的代码与他们的代码进行切换来确保我们的客户端不面临安全风险(例如提升的权限)。

更具体地说,该服务将运行一个类似于%SOME_DIR%\node.exe my_javascript.js的命令,我们希望避免让外部播放器只切换出node.exe或javascript文件。

所以我的问题有三个:

  • 没有管理权限的攻击者是否有可能切换服务使用的文件?
  • 这是一个安全问题,还是我们可以假设,如果攻击者有能力达到一个点,他们可以切换文件的内容,这几乎是游戏结束了?
  • 如果这是一个安全问题,我们如何才能避免这成为一个问题/降低风险?是否有一种方法可以锁定文件,以便只有特权用户(或服务本身)才能更改文件的内容?解决方案应允许服务自动更新其代码。

非常感谢你的回答!

干杯☀️

菲尔

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-04-20 19:58:49

看看我能不能回答你的三个问题。

  1. 假设您的服务可执行文件和.js文件位于普通用户可以访问的目录(写访问权限)中,它可以轻松地修改.js文件(以添加/删除代码),将.js文件替换为一个全新的同名文件(覆盖合法文件),甚至删除它(阻止服务正常启动)。对于可执行文件也可以这样说。它甚至可以被恶意的替代。
  2. 这是一个安全问题,因为您并不总是需要系统上的管理权限才能修改文件。您所呈现的情况可能被具有用户权限的攻击者用来获取Admin权限(权限升级)。
  3. 您应该将服务可执行文件和.js文件放在只有具有管理员权限的用户才有写访问权限的目录(Ies)中。这应该可以减轻风险。此外,请确保将服务命令放入引号(“")中,以防止Windows未引用的service枚举(滥用没有用引号包装的命令行的服务,并且其中有空格)。

如果你需要我的任何一个答案的更多细节,请随时询问!

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/960507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档