SELinux常见问题(FAQ)

大家好! 特别是对于Linux安全课程的学生我们准备了SELinux官方FAQ的译文。 在我们看来,这种翻译不仅对学生有用,因此我们与您分享。



我们试图回答有关SELinux项目的一些最常见问题。 当前,问题分为两个主要类别。 在FAQ页面上提供所有问题和答案。


复习


复习


  1. 什么是具有增强安全性的Linux?
    具有高级安全性的Linux(SELinux-增强安全性的Linux)是Flask安全体系结构的参考实现,可实现灵活的强制访问控制。 创建它的目的是演示灵活的强制访问控制机制的有用性以及如何将这些机制添加到操作系统中。 Flask架构随后被集成到Linux中,并移植到其他几个系统中,包括Solaris操作系统,FreeBSD操作系统和Darwin内核,从而引起了大量相关工作。 Flask体系结构为多种类型的强制访问控制策略的应用提供了通用支持,包括基于类型强制,基于角色的访问控制和多级安全性等概念的策略。
  2. 是什么使Linux具有更高的安全性,而标准Linux无法提供这些安全性呢?
    具有增强安全性的Linux内核设置了强制访问控制策略,该策略将用户程序和系统服务器限制为执行工作所需的最小特权集。 由于存在此限制,这些用户程序和系统守护程序在受到危害(例如,由于缓冲区溢出或错误的配置)而造成损害的能力将降低或消除。 这种限制机制独立于传统的Linux访问控制机制起作用。 它没有根超级用户的概念,也没有共享传统Linux保护机制的众所周知的缺点(例如,对setuid / setgid二进制文件的依赖)。
    未经修改的Linux系统的安全性取决于内核,所有特权应用程序以及每个配置的正确性。 这些领域中的任何一个问题都可能导致整个系统的受损。 相反,基于Linux内核且具有改进的安全性的修改后系统的安全性主要取决于内核的正确性及其安全策略的配置。 尽管应用程序正确性或配置问题可能会限制单个用户程序和系统守护程序的有限损害,但它们不会对其他用户程序和系统守护程序或整个系统的安全性构成安全风险。
  3. 这有什么用?
    具有增强安全性的新Linux功能旨在根据机密性和完整性要求提供信息共享。 它们旨在防止读取数据和程序,伪造数据和程序,绕过应用程序安全机制,执行不可靠的程序或干扰其他违反系统安全策略的过程。 它们还有助于限制恶意软件或错误程序可能造成的潜在损害。 它们还应该用于确保具有不同安全权限的用户可以使用同一系统访问具有不同安全要求的不同类型的信息,而不会影响这些要求。
  4. 我如何获得副本?
    许多Linux发行版都包含SELinux支持,已经作为默认功能或附加软件包内置。 Userland的主要代码SELinux在GitHub可用 。 最终用户通常应使用其发行版提供的软件包。
  5. 您的发行版中包含什么?
    NSA SELinux版本包含SELinux用户域核心代码。 SELinux支持已包含在主要的Linux 2.6内核中,可从kernel.org获得。 SELinux用户级核心代码包括一个用于操作二进制策略的库(libsepol),一个策略编译器(checkpolicy),一个用于安全应用程序的库(libselinux),一个用于策略管理工具的库(libsemanage)以及几个与策略相关的实用程序(policycoreutils)。
    除了支持SELinux的内核和主要的userland代码之外,您还需要为SELinux使用SELinux修复的策略和一些用户空间软件包。 该策略可以从SELinux参考策略项目中获得
  6. 我可以在现有Linux系统上安装具有增强保护功能的Linux吗?
    是的,您只能在现有Linux系统上安装SELinux修改,或者可以安装已经包含SELinux支持的Linux发行版。 SELinux由具有SELinux支持的Linux内核,一组核心的库和实用程序,一些修改的自定义程序包以及一个策略配置组成。 要将其安装在缺少SELinux支持的现有Linux系统上,您必须能够编译该软件以及其他必要的系统软件包。 如果您的Linux发行版已包含SELinux支持,则无需构建或安装NSA SELinux版本。
  7. Linux与未经修改的Linux增强的安全性如何兼容?
    增强安全性的Linux提供了与现有Linux应用程序和现有Linux内核模块的二进制兼容性,但是某些内核模块可能需要修改才能与SELinux一起正常使用。 下面将详细讨论这两个兼容性类别:
    • 应用程序兼容性
      SELinux提供与现有应用程序的二进制兼容性。 我们已经扩展了内核数据结构,以包括新的安全属性,并为安全应用程序添加了新的API调用。 但是,我们没有更改应用程序可见的任何数据结构,也没有更改任何现有系统调用的接口,因此,如果安全策略允许它们运行,则现有应用程序可以正常工作而无需更改。
    • 内核模块兼容性
      最初,SELinux仅提供对现有内核模块的初始兼容性。 有必要根据修改后的内核头重新编译此类模块,以捕获添加到内核数据结构中的新保护字段。 由于LSM和SELinux现在已集成到主要的Linux 2.6内核中,因此SELinux现在提供了与现有内核模块的二进制兼容性。 但是,某些内核模块可能无法与SELinux很好地交互。 例如,如果内核模块直接分配和安装内核对象而不使用常规的初始化功能,则内核对象可能没有适当的安全性信息。 一些内核模块可能还缺少对其操作的适当安全控制; 现有的对内核函数或权限函数的任何调用也将运行SELinux权限检查,但可能需要更详细或附加的控件来实施MAC策略。
      如果安全策略配置允许所有必要的操作,则具有增强安全性的Linux不应与常规Linux系统产生互操作性问题。
  8. 安全策略配置示例的目标是什么?
    从高层次上讲,目标是证明强制访问控制的灵活性和安全性,并提供一种对应用程序进行最少更改的简单工作系统。 在较低级别,策略具有策略文档中描述的许多目标。 这些目标包括:管理原始数据访问,保护内核,系统软件,系统配置信息和系统日志的完整性,限制在需要特权的进程中利用漏洞可能造成的潜在损害,保护特权进程免于执行恶意代码,保护管理员和域角色无需用户认证即无需登录,避免了普通用户进程对系统进程的干扰 管理员的流程,以及保护用户和管理员免于利用恶意移动代码利用其浏览器中的漏洞。
  9. 为什么选择Linux作为基础平台?
    由于Linux日益成功和开放的开发环境,因此选择Linux作为该工作的初始参考实现的平台。 Linux提供了一个绝佳的机会来证明此功能可以在主要操作系统中成功实现,同时又有助于广泛使用的系统的安全性。 Linux平台也为这项工作提供了一个极好的机会,以进行尽可能广泛的概述,并有可能成为其他发烧友进行附加安全性研究的基础。
  10. 你为什么要做这个工作?
    国家安全局的国家信息安全研究实验室负责研究和先进技术开发,以便NSA可以为对美国国家安全利益至关重要的信息基础架构提供信息安全解决方案,产品和服务。
    创建可行,安全的操作系统仍然是关键的研究挑战。 我们的目标是创建一个有效的体系结构,为安全性提供必要的支持;运行程序对用户基本上是透明的,对供应商具有吸引力。 我们认为,实现此目标的重要一步是展示强制访问控制机制如何成功地集成到主要操作系统中。
  11. 这与先前的NSA研究有何关系?
    美国国家安全局国家信息可靠性研究实验室的研究人员与安全计算公司(SCC)一起,开发了一种强大而灵活的体系结构,用于基于Type Enforcement的强制访问控制,该机制最初是为LOCK系统开发的。 NSA和SCC开发了基于Mach的体系结构的两个原型:DTMach和DTOS( http://www.cs.utah.edu/flux/dtos/ )。 然后,NSA和SCC与来自犹他大学的Flux研究团队合作,将架构移植到Fluke研究操作系统。 在此迁移过程中,对体系结构进行了改进,以为动态安全策略提供更好的支持。 这种改进的体系结构称为Flask( http://www.cs.utah.edu/flux/flask/ )。 NSA现在已经将Flask体系结构集成到Linux操作系统中,以将该技术转移到更广泛的开发人员和用户社区。
  12. 具有增强安全性的Linux是可靠的操作系统吗?
    通常,短语“受信任的操作系统”是指为多级保护和验证提供足够支持以满足一组特定的政府要求的操作系统。 具有增强安全性的Linux包括这些系统中的有用想法,但重点在于强制访问控制。 开发具有增强的安全性的Linux的最初任务是创建有用的功能,这些功能可以在各种实际环境中提供切实的安全优势,以演示该技术。 SELinux本身不是受信任的操作系统,但是它提供了受信任的操作系统必需的关键安全功能-强制访问控制。 SELinux已集成到Linux发行版中,这些发行版已根据Labeled Security Protection Profile进行了评级。 有关经过测试和验证的产品的信息,请访问http://niap-ccevs.org/
  13. 她真的受到保护吗?
    安全系统的概念包括许多属性(例如,物理安全性,人员安全性等),而具有增强安全性的Linux只能解决这些属性中非常狭窄的一组(即,操作系统中的强制访问控制)。 换句话说,“安全系统”意味着足够安全,可以保护现实世界中的某些信息免遭真正的对手的攻击,从而警告信息的所有者和/或用户。 具有增强安全性的Linux仅用于演示现代操作系统(例如Linux)中的基本控件,因此,就其本身而言,不太可能满足安全系统的任何有趣定义。 我们相信,Linux中展示的具有改进的安全性的技术将对创建安全系统的人有用。
  14. 您做了什么以增加保修?
    该项目的目标是通过对Linux进行最小的更改来添加强制访问控制。 最后一个目标严重限制了增加保修的措施,因此没有任何工作可以提高Linux的保修。 另一方面,这些增强功能是基于先前开发高度可靠的安全体系结构的工作而来的,这些设计原理中的大多数已移植到具有改进安全性的Linux上。
  15. CCEVS是否会评估具有增强安全性的Linux?
    具有增强的安全性的Linux本身并非旨在解决安全概要文件所代表的所有安全问题。 尽管仅可能评估其当前功能,但我们认为这种评估的价值有限。 但是,我们已经与其他人合作,将该技术整合到已评估的Linux发行版和正在评估的发行版中。 有关经过测试和验证的产品的信息,请访问http://niap-ccevs.org/
  16. 您是否尝试修复任何漏洞?
    不,我们在工作过程中未进行搜索,也未发现任何漏洞。 我们只做了最小的添加新机制的工作。
  17. 此系统是否已批准供政府使用?
    增强安全性的Linux与其他任何版本的Linux相比,没有获得政府特殊或额外的许可;具有增强安全性的Linux对于任何其他版本的Linux,都没有政府特殊或额外的许可。
  18. 这与其他计划有何不同?
    具有增强安全性的Linux具有定义明确的体系结构,用于灵活的强制访问控制,该体系结构已使用多个原型系统(DTMach,DTOS,Flask)进行了实验测试。 已经对该架构支持广泛的安全策略的能力进行了详细的研究,并且可以在http://www.cs.utah.edu/flux/dtos/http://www.cs.utah.edu/flux/flask/上找到
    该体系结构提供了对许多不受其他系统控制的内核抽象和服务的详细控制。 增强的安全性Linux系统的一些显着特征是:
    • 净政策与申请权的分离
    • 明确定义的策略接口
    • 独立于特定政策和政策语言
    • 独立于安全标签的特定格式和内容
    • 内核对象和服务的单独标签和控件
    • 缓存访问解决方案以提高效率
    • 政策变更支持
    • 监视流程初始化以及程序继承和执行
    • 管理文件系统,目录,文件和打开的文件描述
    • 套接字,消息传递和网络接口管理
    • 控制“机会”的使用
  19. 该系统的许可限制是什么?
    https://www.nsa.gov找到的所有源代码都在与原始源代码相同的条件下分发。 例如,Linux内核的补丁程序和此处可用的许多现有实用程序的补丁程序均根据GNU通用公共许可证(GPL)的条款发布
  20. 有出口管制吗?
    对于具有增强安全性的Linux,与任何其他版本的Linux相比,没有其他导出控件。
  21. 国家安全局是否计划在国内使用它?
    出于明显的原因,国家安全局未对操作用途发表评论。
  22. 2002年7月26日的安全计算公司担保声明是否改变了SELinux根据GNU通用公共许可证授予的NSA的地位?
    国家安全局的立场没有改变。 NSA仍然认为,GNU通用公共许可证的条款和条件支配着SELinux的使用,复制,分发和修改。 参见NSA新闻稿,2001年1月2日
  23. NSA是否支持开源软件?
    NSA的软件安全计划涵盖专有和开源软件,并且我们在研究活动中成功使用了专有和开源模型。 NSA改善软件安全性的努力是出于一个简单的考虑:尽可能高效地利用我们的资源,以便为NSA客户提供最广泛使用的产品中最好的安全选项。 NSA研究计划的目的是开发可以通过各种传输机制与软件开发社区共享的技术进步。 NSA不支持或推广任何特定的软件产品或业务模型。 相反,NSA增强了安全性。
  24. NSA是否支持Linux?
    如上所述,NSA不支持或促销任何特定的软件产品或平台; NSA仅有助于提高安全性。 SELinux参考实现中展示的Flask架构已移植到其他几个操作系统,包括Solaris,FreeBSD和Darwin,移植到Xen虚拟机管理程序,并应用于X Window System,GConf,D-BUS和PostgreSQL等应用程序。 烧瓶体系结构概念可广泛应用于各种系统和环境。

协同合作


  1. 我们计划如何与Linux社区进行交互?
    NSA.gov上有一组网页,这些网页将成为我们发布Linux信息并增强安全性的主要方式。 如果您对具有增强安全性的Linux感兴趣,建议您加入开发人员邮件列表,查看源代码,并提供反馈(或代码)。 要加入开发人员邮件列表,请参见SELinux开发人员邮件列表页面
  2. 谁能帮忙?
    现在,开源Linux软件开发社区支持并进一步开发SELinux。
  3. 国家安全局是否资助任何后续工作?
    目前,国家安全局(NSA)不在考虑进一步工作的建议。
  4. 有哪些类型的支持?
    我们打算通过selinux@tycho.nsa.gov邮件列表解决问题,但是我们将无法回答与特定站点有关的所有问题。
  5. 谁帮了 他们做了什么?
    NSA与NAI Labs,Secure Computing Corporation(SCC)和MITER Corporation的研究合作伙伴合作开发了增强的安全性Linux原型。 首次公开发布后,随后出现了许多其他材料。 请参阅参与者列表
  6. 我如何找到更多?
    我们建议您访问我们的网页,阅读文档和以前的研究,并参加我们的邮件列表selinux@vger.kernel.org

您觉得翻译有用吗? 发表评论!

Source: https://habr.com/ru/post/zh-CN459598/


All Articles