Linux 在政府部门的应用:安全增强型 Linux - 未来已来

作者:Tom Adelstein

如果说 Linux 的未来可行性存在一项必备的、必须了解的创新,那您不妨将所有赌注都押在安全增强型 Linux 上。SELinux 被严重误解和低估,但它提供了一个营销差异化因素,可以将 Linux 深入推广到目前为止对开源操作系统反应冷淡的基础设施中。SELinux 将标准的 Linux 从一个经济高效且安全的操作系统转变为一个庞然大物。

2000 年 12 月,美国国家安全局 (NSA) 的研究人员与 Network Associates 和 MITRE 合作发布了一个 B1 级 操作系统,向公众公开,名为 SELinux。尽管许多 Linux 专业人士都听说过 SELinux,但很少有人意识到它的历史可以追溯到 David Bell 和 Leonard LaPadula 在 1973 年开始的工作。Bell 和 LaPadula 的工作帮助定义了构成 美国政府可信计算机系统评估标准 (TCSEC) 的标准。

在 SELinux 发布四年后,包括 Red Hat、SUSE、Debian GNU/Linux 和 Gentoo Linux 在内的几家 Linux 发行商终于宣布了支持它的计划。

与许多新技术一样,缺乏易于理解的信息阻碍了对 NSA 的 Linux 的理解和使用。因此,当 BillMcCarty 最近的书籍《SELinux NSA 的开源安全增强型 Linux》上个月上市时,我立刻买了一本。在他的所有书籍中, Bill 都以逻辑清晰、简单易懂的方式解释了 Linux 安全模型。我快速浏览了他的书,并立即开始使用 SELinux。

我发现 Bill 的指导清晰明了,他采用循序渐进的方法,帮助读者获得知识,然后帮助他们应用这些知识。他的新书帮助您理解 SELinux 模型,安装必要的组件,并排除可能出现的问题。加上一个关于管理 SELinux 的精彩章节,您就拥有了一本完整的指南,可以引导您进入 SELinux 专家领域。虽然不常见,但读者应该可以在不到 200 页的可读页面中找到 SELinux 所需的标准信息和知识体系。

我联系了 O'Reilly & Associates 的 Bill 的编辑 Andy Oram,并安排了对作者的采访。和他的书一样,Bill 渊博的知识和以清晰的方式阐述主题的能力也让我感到惊讶。

与 Bill McCarty 的访谈

Linux Journal: 我读了您的书,对 SELinux 感到非常兴奋。是什么启发您写这本书的?

Bill McCarty: 一种解释是,我是一个写作成瘾者;也就是说,一个有写作强迫症的人。我已经写了十几本技术书籍。另一方面,我确实有一些非常具体的原因要写关于 SELinux 的书。

除了写作之外,我还在南加州阿祖萨太平洋大学的一所文理学院教书并做 IT 研究。我主要的研究兴趣是蜜罐网络,这是一种让我们了解我称之为“坏人”的工具、战术和动机的技术,他们也被称为黑客、破解者、黑帽等(参见 www.honeynet.org)。作为一名蜜罐网络研究人员,我看到了很多被入侵的系统,所以我特别意识到我们的信息高速公路变得多么危险。

我相信,对于 Linux 用户来说,SELinux 可以降低我们的计算风险。正如汽车安全带使我们在驾驶时更安全一样,SELinux 有潜力使我们在计算时更安全。SELinux 不会阻止事故发生,但它可以大大减少重伤和死亡。

LJ: 包括我在内的许多人认为 SELinux 是 Linux 的未来。您同意吗?是什么让您有这种感觉?

BM: SELinux 现在是几个 Linux 发行版的组成部分,例如 Fedora Core、Gentoo 和 Red Hat Enterprise Linux 4 的 beta 版本。我预计其他发行版的发布者很快会效仿,并且 SELinux 将变得几乎无处不在。鉴于此,我认为 SELinux 是 Linux 非常接近的未来,几乎是现在而不是未来。

因此,那些决定 Linux 发行版内容的人似乎已经得出结论,SELinux 是有价值的。然而,出于谨慎的本性,我并不认为这一个事实就解决了问题。用户是否会抓住机会有效地使用 SELinux 还有待观察。在某些发行版中,用户必须显式启用 SELinux。在其他发行版中,SELinux 默认启用,但用户可以选择禁用它。SELinux 成功的真正试金石不是安装了它的 Linux 主机的数量,而是启用了它的 Linux 主机的数量。

从设计上讲,SELinux 在很大程度上对用户是透明的。但是,与任何相对年轻的软件产品一样,SELinux 也存在一些小故障,因此那些想要有效使用它的人必须学习一些关于它的知识。有些人宁愿避免问题和学习。当遇到即使是小问题时,他们也会想办法禁用 SELinux 并这样做。另一些人则意识到问题只是一个小问题,并发现如何解决或规避它。幸运的是,Linux 社区主要由那些对学习充满热情和天赋,并有动力将他们的系统[朝着]最佳性能和安全性发展的的人们组成。我写这本书是为了帮助这些人克服在使用 SELinux 时可能出现的任何小问题,并帮助他们尽可能有效地使用 SELinux。

LJ: 国家安全局在创建 SELinux 方面发挥了重要作用。您认为这种安全模型会在联邦政府中部署吗?在何处以及何时?

BM: 作为一名加利福尼亚居民,我似乎与美国联邦政府的距离就像在美国本土四十八个州中的任何人一样远。但是,偶尔去东海岸旅行,并与那些比我更参与联邦事务的人交谈,让我相信联邦政府意识到了 SELinux 中固有的潜力,并且正在迅速采取行动以利用它。

NSA,一个联邦机构,一直是——并将继续是——SELinux 社区的资源。它赞助了产生 SELinux 底层 Flask 安全模型的理论研究。并且,他们资助了 SELinux 的初始开发。NSA 继续托管可以从中获得参考实现的网站。并且,一些主要的 SELinux 开发人员,例如 Stephen Smalley 和 James Carter,通过使用 .mil 电子邮件地址在 SELinux 电子邮件列表中进行通信。此外,国家科学基金会向几所大学授予了大量拨款,这些大学计划鼓励和促进在学术界使用 SELinux,而学术界因其据称松懈的计算安全性而多次受到批评。

我对 SELinux 在联邦机构中的具体应用只有有限的了解。尽管我之前已经意识到 SELinux 的存在一段时间了,但我第一次遇到实际使用 SELinux 的人是在 NASA 的一个办公室,我怀疑 NASA 的 SELinux 使用范围很大。即使安全不应该仅仅依赖于默默无闻,默默无闻仍然是一种有用的安全措施。我邀请任何不相信这一点的人将他们的密码张贴在他们的工作站上方。

因此,作为默默无闻对安全做出增量贡献的信徒,如果 NASA 和其他机构特别公开他们所依赖的任何安全产品或技术,无论是 SELinux 还是其他技术,我会感到有点失望和不安。我认为,如果我们让潜在的攻击者猜测他们的攻击可能会遇到哪些对策,那对我们的利益最有利。

LJ: Linux 已经在其安全模型中包含了最小特权的概念。您能否简要解释一下 SELinux 如何添加到这个概念中?

BM: 嗯,我同意知识渊博的 Linux 系统管理员拥抱并应用了最小特权的概念。但是,我对 Linux 对最小特权的支持质量并不那么乐观。在标准 Linux 环境中,root 作为特权用户的概念削弱了最小特权。一旦入侵者获得对 root 帐户的访问权限,游戏就结束了。

SELinux 甚至可以对 root 用户强制执行最小特权原则,强制执行限制 root 用户可以执行的操作的策略。在 SELinux 下,入侵者获得对 root 帐户的访问权限确实取得了进展。但是,入侵者尚未拥有主机。入侵者延迟拥有主机的每一秒都为主机的管理员提供了检测入侵的机会。并且,入侵者在尝试完全控制主机时必须执行的每个操作都会使入侵者的任务复杂化,并增加其被检测到的风险。SELinux 不是标准 Linux 安全模型提供的单股带刺铁丝网,而是提供了一个相对较深的雷区,潜在的入侵者必须快速而安静地穿过,否则就会失败。

LJ: SELinux 大大减少了 0-day 漏洞。您将如何用简短的片段向企业或政府 CIO 解释这一点,以便他或她能够理解?

BM: 我认为我不会说 SELinux 减少了 0-day 漏洞,而是减少了此类漏洞的后果。漏洞存在于目标程序中,并且继续存在。SELinux 将目标程序与系统的其余部分隔离开来。因此,使用 0-day 漏洞来入侵程序的攻击者不会因其成功而获得非常大的立足点。

我会这样对 CIO 说。计算机入侵在某些方面类似于入室盗窃。您无法真正希望消除 0-day 漏洞,就像您无法希望为您的房屋配备防盗窗一样。但是,您可以做的是在所有室内门上安装双缸锁。当窃贼通过打开的浴室窗户进入时,他不会很快或轻易地找到主卧室壁橱里的保险箱。相反,他必须撬开或打破一系列锁。如果锁安装得当且门是实心的,则需要花费一些时间才能被击败,并且入侵者知道在打破它们时会发出很大的噪音。因此,他更有可能从浴室拿走他能拿走的东西然后离开,希望在其他地方找到更好的赃物。您可能不会觉得更换窃贼偷走的备用卫生纸卷很麻烦。当然,您会比丢失保险箱里的东西更少感到惋惜。

LJ: 您列出了管理员在使用 SELinux 策略文件时会遇到的一些问题。您建议使用 permissive 模式来排除这些问题。您认为开源社区需要做些什么才能提供成熟的模板?人们可以去哪里寻求帮助?

BM: 好的策略创建起来并非易事。它们既需要对相关程序有相当深入的了解,也需要对生成的策略进行广泛的测试。具有编程技能的人最适合承担初始策略设计和实施工作。但是,缺乏或不喜欢运用编程技能的系统管理员可以通过向 SELinux 邮件列表或与其 Linux 发行版相关的邮件列表报告问题来提供重大帮助。大多数策略问题都很容易解决。但是,策略开发人员无法解决他们不知道的问题。当报告问题的人包括相关的日志条目时,这是最有帮助的,因为这些条目通常可以查明问题。

使用 permissive 模式是一种有用的方法,因为在该模式下,SELinux 会在最初的小故障后继续报告问题。在 enforcing 模式下,SELinux 会立即禁止未经授权的操作,这可能会导致相关程序终止。终止的程序无法告诉我们它可能遇到的后续问题。因此,修复已发现的问题可能不足以实现完整、正确的策略。

LJ: RHEL 4 会增加还是加速 SELinux 的采用?

BM: 基于 RHEL 4 的 beta 版本,我预计 SELinux 将在 RHEL 4 的生产版本中默认启用。从这个意义上讲,SELinux 的采用将在 RHEL 4 发布后大幅增加,就像它已被纳入 Fedora Core 2 和 3 所产生的结果一样。但是,采用的增加可能发生在用户甚至没有意识到 SELinux 的情况下。从某种意义上说,这将是好事。许多人将受益于一种无痛、透明的机制,该机制可以提高系统安全性。但是,使用 SELinux 可以实现更多。我不知道有多少人会倾向于改进 SELinux。但是,由于我们正在考虑 Linux 用户——他们非常好奇和有能力——我乐观地认为这个数字会很大。

LJ: 您认为其他 Linux 发行版为什么没有采用 SELinux?

BM: 我自己的看法是,SELinux 大约在六个月前才达到了可用质量的临界质量。在此之前,需要相对较高的技能和动力才能成功部署和使用 SELinux。现在情况发生了变化,将 SELinux 纳入发行版进一步降低了门槛。所以,我的看法是,六个月并不是很长的时间。我认为某些 Linux 发行版中缺少 SELinux 既没有对这些发行版产生负面影响,也没有对 SELinux 产生负面影响。我的布丁的证明可能在接下来的六个月内到来。到那时,我预计包含 SELinux 的发行版的数量将大幅增加。我怀疑任何领先的 Linux 发行版都无法合理地承担在那个时间范围内或不久之后不包含 SELinux 的后果。

LJ: 您认为正在考虑职业发展的​​人可能会考虑 SELinux 咨询吗?现在是进入这个领域的合适时机吗?

BM: 我不是营销专家,但我不认为当前的 IT 环境有利于狭隘的专家。我确实认为 SELinux [知识] 可能是顾问工具包中一个有用且有利可图的工具。特别是,为专有的内部应用程序开发 SELinux 策略可能会成为 Linux 咨询市场的重要组成部分。但是,我认为大多数顾问最好通过拥有和提供更广泛的技能和产品来为自己的利益服务。因此,我建议顾问们了解 SELinux,并向可能对此感兴趣的客户提供相关服务。但是,我不建议顾问们扔掉他们现有的工具或乱涂乱画他们当前招牌上的技能清单。对于许多顾问来说,业务仍然紧张,因此范围和灵活性对于维持收入至关重要。

Tom Adelstein 与妻子 Yvonne 住在德克萨斯州达拉斯市,并在总部位于纽约市的 Hiser+Adelstein 担任 Linux 和开源软件顾问。他是《探索 JDS Linux 桌面》和即将出版的《Essential Linux System Administration》的合著者,后者由 O'Reilly and Associates 出版。Tom 曾作为客座编辑为多家出版物撰写了大量关于 Linux 技术和营销问题的文章。

加载 Disqus 评论