受到ServerFault上更具体的问题的启发。
为了我们每天使用的系统的安全性和完整性,我们都必须相信大量的人员。 在这里,我正在考虑运行在服务器或PC上的所有代码的所有作者,以及参与devise和构build硬件的所有人员。 这可以通过声誉来减轻,并且在有可用来源的情况下进行同行评审。
你可能不得不相信的其他人,以前不太常提到的人是以前在系统上有根的人。 您的前任作为系统pipe理员在工作。 或者对于家庭用户来说,那个为您configuration系统的,精通Linux的朋友。 您的手机的以前的所有者(你真的相信出厂重置button?)
你必须相信他们,因为有尽可能多的方法来保持根目录,尽pipepipe理员尽力而为,而这些只是几分钟内我能想到的。 任何曾经拥有系统根基的人都可能会留下各种疯狂的后门,而你所看到的任何基于Linux系统的唯一真正的追求就是重新安装你的操作系统和所有可能以任何特权运行的代码。 说,用noexec
挂载/home
并重新安装其他的东西。 即使这样,如果任何数据保留的用户可能获得特权或影响特权用户足够的细节(认为shell别名和其他恶意configuration),这还是不够的。 持久的特权不是一个新问题 。
你将如何devise一个基于Linux的系统,在没有完全重新安装的情况下可以撤销最高级别的特权访问? 或者,像这样的系统已经存在? 另外,为什么创build这样一个系统在逻辑上是不可能的?
当我说Linux的时候,我指的是尽可能多地在Linux上运行的软件,尽可能less地修改软件。 物理访问传统上意味着游戏结束,因为像键盘logging器这样的东西可以传输,但是假设硬件足够可检查/防篡改,使得通过该路线的持续访问足够困难,仅仅因为我(和SO的用户)发现这个问题的软件方面比较有意思。 :-)你也可以假定BIOS的存在可以被证实是已知的,或者根本不能被刷新。
我意识到了SELinux的基础知识,我不认为这有什么帮助,但是我从来没有真正使用它:随时解释我的错误。
首先,你确实说过设计 :)我的答案将包含你现在可以使用的东西的引用,但是其中一些对于生产来说还不够稳定。 我的回答也将包含需要写的东西的暗示。
除非你(像user9876指出的那样)完全和完全信任进行初始安装的个人或公司,否则你不能完成这个任务。 如果你不能相信这个,你的问题是无限递归的。
我几年前在一个新的文件系统中非常活跃,叫做ext3cow ,一个写ext3版本的副本。 快照是廉价的,100%不变的,从Linux 2.4到2.6的端口打破了,并放弃了过去修改或删除文件的能力。
以磅为单位,它和ext3一样高效。 当然,这没什么可写的,但是(而且很大一部分)仍然是FS的生产标准。
使用这种类型的文件系统,在安装和配置完所有服务之后,假定快照是由原始安装构成的,那么很容易区分整个卷以查看更改内容和时间。
在这一点上,通过比较后,你可以决定没有什么有趣的,只是改变根密码,或者你可以去检查有点奇怪的事情。
现在,如果发现了一些有趣的东西,那么写出来的东西就是:
现在,考虑网络上的其他计算机。 其中有多少人正在运行一个已知易被利用和被感染的操作系统? 即使你的服务器是干净的,如果这个人在irc上加入#foo,并通过你自己的局域网攻击你的服务器呢? 大多数人会点击一个同事发送的链接,特别是如果它的一个关于公司的多汁的博客条目..社会工程是很容易的,如果你从内部做。
简而言之,你提出的建议是成立的,但是我怀疑大多数公司可能会强制实施需要的最佳实践。 如果最终的结果是你在工作中找到了BOFH ,并且需要他的帮助,那么你最好在整个工作期间把他遏制住。
随着我继续思考,我会更新这个答案。 这是一个非常有趣的话题。 到目前为止,我所发表的是我自己收集的想法。
编辑:
是的,我知道虚拟机和检查点,一个解决方案假设带来了一个全新的递归级别。 (现在已离开)管理员是否可以直接访问特权域或存储服务器? 也许,是的,这就是为什么我不考虑这个问题。
看可信计算 。 一般的想法是,BIOS加载引导加载程序,然后散列它,并将该散列发送到一个特殊的芯片 。 引导程序然后散列OS内核,然后散列所有的内核模式驱动程序。 然后你可以询问芯片是否所有的哈希值都如预期的那样。
假设你相信最初安装和配置系统的人,这将使你能够证明你的操作系统没有安装任何后来的系统管理员的rootkit。 然后,您可以手动在系统上的所有文件上运行散列(因为没有rootkit,值将是准确的),并将它们与原始安装程序提供的列表进行比较。 任何更改的文件都必须仔细检查(例如,由于新用户被合法添加,/ etc / passwd已经更改)。
我不知道如何在不破坏信任链的情况下处理这样的系统。
此外,请注意,应假定您的旧系统管理员知道任何用户输入到该系统的任何密码,以及任何用户在该系统上使用的任何私钥的未加密副本。 所以现在是时候改变你的所有密码。