我在Windows 2003 Server上运行Apache Tomcat,并将数据存储在mySQL数据库中。
我怎样才能防止服务器pipe理员可以看到任何数据?
你不能,真的。
Windows机器上的“pipe理员”用户可以完全控制该机器。 这就是来龙去脉”。
有人可能会build议你encryption数据库中的数据。 假设该encryption密钥位于该计算机的某个位置(因为您将让应用程序访问它们),那么“pipe理员”就可以取得该密钥并解密数据。
别人会build议你使用某种文件权限。 这也行不通 – “pipe理员”可以改变他们。
如果你不能给你的“pipe理员”用户一个有限的帐户,他们可以完成所有的日常活动,但不是“pipe理员”,唯一的答案是“不要在那里存储那种数据”。 涉及“pipe理员”用户保留其“pipe理员”权限的任何“答案”都不会给你任何真正的保护。
为JimB而编辑:
JimB留下了一些我认为值得回应的评论,所以我在这里放下一个修改。
我回答了招贴师的问题,技术准确性和尊重授予Windows“pipe理员”组的权限。 海报当然可以自由花费所有时间,他想调整操作系统中的默认安全权限,试图(a)剥离“pipe理员”组的根等效权限(我期望的是,微软会告诉你不要这样做)或者(b)创build一个可以执行所有必要的日常服务器pipe理function,但不会成为“pipe理员”的权限较低的组。
除非海报的“服务器pipe理员”的需求是非常基本的,否则我猜测海报将会进入未知的和无证的领域。
也许海报需要一个“服务器pipe理员”,只能对服务器计算机执行非常基本的操作,而“pipe理员”密码可以设置为任意复杂的string并存储在locking的保险箱中。 这是一个可能的策略,如果海报的业务要求是:“服务器pipe理员”允许这样的事情。
如果发布者的要求更为复杂,我认为需要更改许多ACL(至less在文件系统,registry,全局对象pipe理器和服务控制pipe理器中)以适应给予非“pipe理员”组成员密切近似的“pipe理员”组成员的能力。 海报也将失去知名的BUILTIN \ Administrators SID的效用。
如果没有对Windows NT操作系统深入分析“pipe理员”组成员的开箱即用权限的假设,我会感到震惊的 。 试图从BUILTIN \ Administrators组中删除特权,我想,要求操作系统的不稳定性和问题。
我没有对“经营政策”强制执行安全做出任何表态。 我不知道JimB从我的post或者评论中得出了什么想法。 业务策略不能改变代码的工作方式,我的所有陈述都与代码的工作方式有关。
审计发生违规事件并不能减轻违规事件的发生。 你可以知道有人违反保密规定,但没有任何审计机制可以告诉你,在保密性被破坏之后,有多less或几个保密位被复制。 这是布尔值 – 保密性已被违反或没有。 审计可以告诉你,只是没有更多。
一个企业可以试图在他们所希望的所有“商业政策”中“强制执行安全”,但是除非这个“商业政策”与代码和现实的运作一致,否则这真的是毫无意义的。
以上,但我会补充说,一个不道德的pipe理员是没有价值的。 如果你不相信你的系统pipe理员不要偷看(除非完成他的职责),那么你真的需要find一个替代品。
一般来说,你可以这样做pipe理帐户不能做的事情,但pipe理员可以通常启用它,所以他们可以。
例如,您可以拒绝对用户Administrator的目录进行读取访问,但pipe理员可以根据需要再次访问自己的访问权限。
所以有了这个,我认为你可以(但不是很确定),只要通过编辑MySQL数据库中的root用户的MySQL权限来拒绝对所述数据库的读取访问。 但这不是真正的安全。 或者,你不能给pipe理员任何密码的MySQL,但他们可能会find一种方式来查看数据,如果他们有权访问服务器(甚至重置根密码)。
埃文提出的观点是系统pipe理员在我的工作中得到如此严重的背景检查的原因之一。 每个人最终都必须相信他们的数据给我们,而且每个人都有自己的“信任”要求。 在某些系统上可以locking系统pipe理员,但是Windows不是这样一个系统。
在应用程序级别上,您可以执行一些操作,使您的系统pipe理员的数据混淆,比如使用encryption数据的表。 这依赖于不同的系统pipe理员域中的encryption密钥和数据,否则没有多大意义。 一个例子就是在Linux服务器上运行的Tomcat / PHP应用程序,在Linux系统pipe理员的年龄之下,MS-SQL中的数据库在Microsoft系统pipe理员的年龄之下。 假设Linux / MSpipe理员不勾结,数据不太可能被窥探到。
你可以拒绝pipe理员访问任何你想要的。 pipe理员默认只拥有一切权利。 你不能删除(至less我从来没有这样做 – 它可能是可能的,但我不会推荐它)是pipe理员的权利,以获得有关文件的所有权,并阅读它们 – 然而,这是可审计和不可逆转 – 没有授予所有权。
pipe理员是一个特殊的帐户,但它不等同于一个unix框上的根。 这是常见的误解。
2008 R2发布时,您也可以在一个月左右使用文件分类基础架构 。
大多数主stream的操作系统(Linux,Windows,Mac OS X)都无法直接进行这一操作。 总是有一个帐户可以在系统上执行所有操作(pipe理员或root),并且该帐户对于许多pipe理任务是必需的。 没有办法,真的。
为了实现这一点,您需要像多级安全操作系统或支持强制访问控制的操作系统。 像Windows Vista下的SELinux或Trusted Solaris或Mandatory Integrity Control 。
不过,这个设置非常复杂,并且可能会导致与没有考虑到限制的应用程序的兼容性问题。 最终还是有人需要改变安全设置。
所以尽pipe在技术上是可行的,但您应该仔细评估是否值得额外的复杂性和费用。
从指定的工作站访问该工作站,该特定pipe理员没有任何权限或物理访问权限。
encryption/解密数据客户端,所以当它到达/离开服务器时,它总是被encryption的。 它只在客户端没有encryption,只有当用户提供适当的密码或密钥时才encryption 。
构build一个客户端程序,在发送数据之前encryption数据,或从OpenSource ClipperZ密码pipe理项目复制代码。 ClipperZ使用JavaScript在浏览器中执行此encryption。 不用说,只使用一个非常locking的selinux沙盒networking浏览器与firefoxconfiguration专门设置为工资。 不是电子邮件 没有其他的。
您甚至可以考虑让服务器对其进行encryption,以缓解某些forms的客户端rootkit – 尤其是浏览器中的man。