如何防止服务器管理员看到数据?

CL2*_*L23 6 mysql security tomcat apache-2.2

我在 Windows 2003 Server 上运行 Apache Tomcat,我的数据存储在 mySQL 数据库中。

如何防止服务器管理员看到任何数据?

Eva*_*son 23

你不能,真的。

Windows 机器上的“管理员”用户可以完全控制该机器。这就是来龙去脉”。

有人可能会建议您加密数据库中的数据。假设该加密的密钥位于该计算机上的某个位置(因为您希望应用程序可以访问它们),“管理员”可以只获取该密钥并解密数据。

其他人会建议您使用某种文件权限。这也行不通——“管理员”可以更改它们。

如果你不能给你的“管理员”用户一个有限的帐户,他们可以用它来完成他们所有的日常活动,但不是“管理员”,唯一的答案是“不要在那里存储那种数据”。任何涉及“管理员”用户保留其“管理员”权限的“答案”都不会为您提供任何真正的保护。

为了 JimB 的编辑:

JimB 留下了一些评论,我认为这些评论应该比我在评论中给出的回复时间更长,所以我在这里放弃编辑。

我以技术准确性回答了海报的问题,并尊重授予 Windows“管理员”组的权限。发帖人当然可以自由地花费所有时间来“调整”操作系统中的默认安全权限,以尝试 (a) 剥夺“管理员”组的 root 等效权限(我希望 Microsoft会告诉您不要这样做)或 (b) 创建一个特权较低的组,该组可以执行所有必要的日常服务器管理功能,但不会成为“管理员”。

除非海报的“服务器管理员”需求非常基本,否则我猜海报最终会进入未知和未记录的领域。

也许发帖人需要一个“服务器管理员”,只能对服务器计算机执行非常基本的操作,“管理员”密码可以设置为任意复杂的字符串并存储在锁定的保险箱中。这是一种可能的策略,如果发布者的业务要求是:“服务器管理员”允许这样的事情。

如果发布者的要求更为复杂,我希望是一个LOT的ACL(在文件系统,注册表,全局对象管理和服务控制管理器,至少)将需要改变以适应给人一种非“Administrators”组成员 非常接近“管理员”组成员的能力。海报也将失去众所周知的 BUILTIN\Administrators SID 的效用。

如果在 Windows NT 操作系统中没有一些关于分配给“管理员”组成员的现成特权的假设,我会感到震惊。在我看来,试图从 BUILTIN\Administrators 组中剥夺特权是要求操作系统不稳定和出现问题。


我没有就强制执行安全性的“业务策略”发表任何声明。我不知道 JimB 从我的帖子或评论中得到了什么让他有了这个想法。业务策略不能改变代码的工作方式,我所有的陈述都与代码的工作方式有关。

审核发生的违规行为并不能减轻违规行为的发生。您可以知道有人违反了机密性,但没有任何审计机制可以告诉您在违反机密性后制作了多少机密位副本。它是布尔值——要么已经违反了机密性,要么没有。审计可以告诉你,仅此而已。

企业可以尝试在他们想要的所有“业务策略”中“强制执行安全性”,但除非该“业务策略”与代码和现实的运行方式一致,否则它真的毫无意义。

  • @Ernie:绕过 Windows 摆在您面前的几乎所有“保护”真的非常非常容易。GUI“保护”您,但如果您使用命令行工具或脚本,您确实可以作为“管理员”“做任何事情”。(一旦您使用“管理员”级别的访问权限来获得系统级别的命令提示符,所有赌注都将关闭。想删除注册表“本地用户和组”部分的内容吗?有!它曾经是完全开放的你到了那个点......) (4认同)
  • @Jim:RID 500“管理员”或任何授予“SeTcbPrivilege”权限的帐户的“大问题”是能够颠覆任何操作系统控制。审计是好的,前提是 (a) 您可以将收集到的审计数据量筛选到可管理的级别,并且 (b) 有人实际监视审计数据。就违反机密性而言,审计发生的违反行为并不能减轻违反行为的影响。任何被授予“SeTcbPrivilege”的帐户都可以对操作系统做任何它想做的事情,而且你无法阻止它——只能在事后检测到它。 (2认同)