我如何才能防止服务器管理员查看数据?

我如何才能防止服务器管理员查看数据?

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

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

答案1

确实,你不能。

Windows 计算机上的“管理员”用户可以完全控制该计算机。这就是“事实”。

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

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

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

为了 JimB 的缘故进行编辑:

JimB 留下了一些评论,我认为这些评论值得我给出更长的回复,所以我在这里进行了编辑。

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

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

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

如果发帖人的要求更复杂,我期望很多需要更改 ACL(至少在文件系统、注册表、全局对象管理器和服务控制管理器中)以适应为非“管理员”组成员提供与“管理员”组成员能力非常接近的功能。发帖人还会失去众所周知的 BUILTIN\Administrators SID 的实用性。

我会震惊如果 Windows NT 操作系统中没有关于分配给“管理员”组成员的开箱即用权限的一些假设,那么在我看来,试图从 BUILTIN\Administrators 组中夺走权限会导致操作系统不稳定和出现问题。


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

审计是否发生了泄露并不能减轻泄露的严重性。您可以知道有人泄露了机密性,但没有审计机制可以告诉您在机密性泄露后复制了多少份机密信息。这是布尔值——机密性是否被泄露。审计只能告诉您这一点,仅此而已。

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

答案2

以上,但我想补充一点,不道德的管理员一文不值。如果你不相信你的系统管理员不会偷看(除非需要完成他的职责),那么你真的需要找一个替代者。

答案3

一般来说,您可以使管理帐户无法执行任何操作,但管理员通常可以启用此功能以便他们可以执行操作。

例如,您可以拒绝用户管理员对目录的读取访问权限,但管理员可以根据需要再次授予自己访问权限。

因此,我认为您可以(但不确定)通过在 MySQL 数据库中编辑 root 用户的 MySQL 权限来拒绝对所述数据库的读取访问。但这不是真正的安全。或者,您不能向管理员提供任何 MySQL 密码,但如果他们有权访问服务器(甚至重置 root 密码),他们可能会找到查看数据的方法。

答案4

您可以拒绝管理员访问任何内容。默认情况下,管理员几乎拥有所有权限。您无法删除(至少我从未这样做过 - 虽然实际上可能可以,但我不建议这样做)的是管理员拥有相关文件的所有权并读取它们的能力 - 但是,这是可审计且不可逆转的 - 没有授予所有权的权力。

管理员是一个特殊帐户,但它并不等同于 unix 机器上的 root。这是一个常见的误解。

您还可以使用文件分类基础设施2008 R2 发布后大约一个月。

相关内容