扫一扫
关注微信公众号

SELinux 问题集锦
2008-03-06   

概述

1、什么是SELinux?
SELinux是Security-enhanced Linux的缩写,它最开始是在Linux社区作为Linux®内核研究的原型和一些增强安全的工具一起证实强制访问控制的价值,以及如何将这些控制增加到Linux中去,目前SELinux已经集成到Linux 2.6内核的主线和大多数Linux发行版上,SELinux内核包括了新的架构组件,提升了Flask框架操作系统的安全性,这些架构组件提供许多强制访问控制策略的支持,包括那些基于类型增强(TE)、基于角色的访问控制和多级安全。

2、SELinux能给我们带来什么传统Linux没有的东西?
SELinux内核强制访问控制策略限制用户程序和系统服务正常工作需要的最小权限,当使用这种方法进行限制后,有效地减低了或消除了这些用户程序和系统服务泄密引起的危害,这个限制机制与传统访问控制机制互相独立,谁也不妨碍谁,它没有超级用户的概念,也不会共用传统的Linux安全机制的缺陷(例如一个依赖setuid/setgid的二进制文件)
一个没有修改过的Linux系统的安全依赖于内核的正确性、所有应用程序的权限和它们的配置,这些地方任何一个问题都有可能造成全部系统泄密,相反,一个基于SELinux的经过修改的系统的安全主要依赖于内核的正确性和它的安全策略配置,当正确性或应用程序的配置出现了问题,个别应用程序或系统进程造成了泄密,也不会对其他应用程序或系统进程的安全造成安全威胁。

3、有什么好处?
SELinux的新特性是基于机密性和完整性需求进行设计,它们被设计成阻止进程读取数据、数据被篡改、绕过应用程序安全机制,执行不可信任的程序,或干涉其它违背系统安全策略的进程,它们还帮助限制由于恶意或有缺陷的程序引起的潜在危险,它们还可以用于一个单个系统对不用需求的用户访问进行不同的安全认证。

4、我如何得到一份拷贝?
你可以在http://www.nsa.gov/selinux/code/下载它或者使用一个已经包括了SELinux支持的发行版,有关详细信息可以在SELinux Sourceforge project找到。

5、你的发行版包括了什么?
NSA SELinux发行包括了核心的SELinux应用程序代码,SELinux支持已经包括在Linux2.6内核的主线里,可以从kernel.org下载最新的内核,核心的SELinux应用代码由一个为二进制策略操作的库(libsepol)、一个策勒编译器(checkpolicy)、一个为安全感知应用程序准备的库(libsemanage)和几个与策略有关的工具(policycoreutils).
除此之外,对于一个启用了SELinux的内核和SELinux核心应用代码,你将需要一个策略和SELinux补丁包,策略可以从SELinux参考策略项目获取,在SELinux Sourceforge project可以获取大多数发行版的SELinux补丁包。

6、我可以在一个已经装好的Linux系统上安装SELinux吗?
是的,你可以在一个已经装好的Linux系统上仅仅只安装SELinux或者直接全新安装一个包括SELinux支持的发行版。SELinux由一个启用了SELinux的内核、一套核心库和工具、一些修改了的应用程序包和一个策略配置组成,要在一个没有SELinux支持的系统上安装它,你必须编译软件及其他需要的软件包,如果你的系统可以支持SELinux,你不需要编译或安装NSA SELinux发行包,除非你想将它更新到最新状态。

7、SELinux与未改动的Linux兼容性如何?
SELinux提供与现有Linux应用程序和Linux内核模块二进制兼容性,但是一部分内核模块需要修改以便与SELinux正确地进行交互,下面详细讨论这两方面的兼容性:

A.应用程序兼容性
SELinux提供与现有应用程序二进制兼容性,我们已经扩展了内核数据结构以包含新的安全属性,并且我们为安全感知应用程序增加了新的API调用,但是我们并没有对应用程序改变任何数据结构的可视性,也没有改变现有系统调用的任何接口,因此现有应用程序可以不用修改就可以运行,只要安全策略认证了它们的操作就行。

B.内核模块兼容性
最初,SELinux仅仅为内核模块提供源代码兼容,那些修改了内核头的模块为了获取新的增加到内核数据结构的安全属性而不得不必须重新编译,自从LSM和SELinux集成到Linux2.6内核主线依赖,SELinux就提供了与内核模块二进制兼容性,但是,仍然有一些内核模块需要修改才能与SELinux进行交互,例如:如果一个内核模块没有使用正常的内核核心功能来分配并设置一个内核对象,那么这个对象将缺少特有的安全信息,一部分内核模块也可能缺少正确的安全控制,任何现有的调用都将触发SELinux权限检查,最细粒度的控制或传统控制都需要强制MAC策略。
SELinux不会引入常规Linux共有的问题,只要所有请求的操作都经过了安全策略配置的认证即可。

8、样例安全策略配置的目标是什么?
高级的目标是证明强制访问控制的灵活性和安全以及提供一个最小应用程序修改的工作系统,低级的目标在策略文档中有一些目标描述,这些目标包括对数据的原始访问控制,内核完整性、系统软件、系统配置信息和系统日志的保护,限制那些由于开发的原因造成的有潜在危险的权限,保护由于执行恶意代码的特权进程,保护管理员角色和未经用户认证而进入的域,阻止常规用户进程干涉系统进程或管理进程,保护用户和管理员在他们的浏览器里执行恶意的移动代码。

9、为什么是Linux被选做为基础平台?
Linux被选做为基础平台是因为它正在走向成功并开放了开发环境,Linux提供了一个极好的机会来证明这个功能能在主流的操作系统上是可以成功的,同时,帮助提高了广泛使用的系统的安全,Linux平台也为接收大量的评价提供了极好的机会,并为传统安全研究提供了基础。

10、为什么你要做这个工作?
NSA的信息保障研究组专门负责研究和开发需要的高级技术,让NSA能提供解决方案、产品和完成美国国家安全部门提供信息保障服务,。
创建一个有生命力的安全操作系统留下了一个重要的研究问题,我们的目标是创建一个有效的为安全提供必须的支持的系统架构,通过这个方法执行一个应用程序对于用户来说基本上是透明的,并且对开发商是有吸引力的,我们认为达到这个目标必要的步骤是如何将强制访问控制集成到主流的操作系统中去。

11、它与早先的NSA OS研究是如何联系的?
NSA的信息保障研究组的研究人员与安全计算公司(SCC)一起工作,共同开发一个基于类型增强的强壮的、灵活的强制访问控制架构,首先是为LOCK系统开发的一个结构,NSA和SCC开发了两个基于Mach的架构原型:DTMach和DTOS(http://www.cs.utah.edu/flux/dtos/)。NSA和SCC后来与犹他州立大学研究组合作将这个架构移植到Fluke操作系统上,在移植过程中,架构为更好地提供动态安全策略支持进行了增强。这个增强的架构就是今天的Flask(http://www.cs.utah.edu/flux/flask/),NSA现在已经将Flask架构集成到Linux操作系统中了,并将这个技术转移给大型的开发者和用户社区。

12、SELinux是一个可靠的操作系统吗?
短语“可靠的操作系统”通常是相对于提供充足的多级安全支持和满足政府部门特殊需求的操作而言,SELinux吸取了这些系统有用的想法,但主要集中在强制访问控制,SELinux开发最初的焦点是为真实环境创建一个有用的保护措施,SELinux本身并不是一个可信赖的操作系统,但是它提供了一个重要的安全特性 – 强制访问控制 – 可信赖操作系统需要的。SELinux已经被集成到依靠标记安全保护配置文件通过评估的Linux发行版,有效的产品信息和评估中的产品信息可以在http://niap-ccevs.org/找到。

13、它安全吗?
一个安全的系统概念包括很多属性(如物理安全,个人安全等),SELinux仅仅访问一套非常有限的属性(如在操作系统上强制访问控制),安全系统意味着足够安全地保护现实世界的信息,这些信息是信息所有者的敌人和/或用户关心的。SELinux仅仅想证明在类似Linux的现代操作系统中的强制访问控制,我们认为这个技术在SELinux中被证明是有用的,这对创建安全系统的人们来说是非常有价值的。

14、在提高保障方面你都做过什么?
这个项目的目标是给Linux增加强制访问控制并做最小的改动,后来的目标大大限制了提高保障能做的事情,没有将精力集中在提高Linux保障方面的工作,另一方面,增强依靠先前设计一个高保障的安全架构工作,并且这些设计原则大部分都在SELinux中得到了延续。

15、SELinux将被CCEVS评估吗?
单独地,SELinux没有被设计成访问一套完整的安全体系,虽然它可能独立地评估目前的功能,我们认为这样一个评估可能限制了它的价值,但是,我们已经和其他发行商合作将这个技术集成到Linux发行版中去了,可以在http://niap-ccevs.org/看到有关的产品信息和评估信息。

16、你尝试过修复任何缺陷吗?
没有,我们在我们的工作中还没有找到或发现过任何缺陷,我们仅仅为增加新的结构进行了大量改动。

17、它被政府认可使用吗?
SELinux没有为政府使用指定特殊的或额外的认可,超越了其他的Linux版本。

18、它与其他成就有何不同?
SELinux有一个为灵活的强制访问控制定义的非常好的架构,它已经经过几个原型系统(DTMach, DTOS, Flask)得到了证实,架构支持非常多的安全策略,请参考http://www.cs.utah.edu/flux/dtos/http://www.cs.utah.edu/flux/flask/
架构提供了细粒度的控制超过了其他没有访问控制的系统的内核抽象概念和服务,一些SELinux系统的不同特征如下:
从强制清楚策略的区别
定义良好的策略接口
独立于特殊的策略和策略语言
独立于特殊的安全标记格式和内容
为内核对象和服务特殊标记和控制
为提升效率缓存访问决策
支持策略改变
控制进程初始化和继承以及程序执行
控制文件系统、目录、文件和打开文件描述
控制套接字、消息和网络接口
控制功能的使用

19、在它上面有什么许可限制?
在这个站点上发行的所有源代码都具有相同的条款和条件,例如:linux内核补丁和这里现有的工具的补丁都是基于GPL发行的。

20、它有出口控制吗?
没有为SELinux设置额外的出口控制,超过了其他Linux版本。

21、NSA计划在内部使用它吗?
由于众所周知的原因,NSA不对操作使用上做解释。

22、2002/7/26日安全计算公司关于保障的陈述改变了NSA的位置,使得SELinux使用GPL协议发布吗?
NSA的位置没有改变,NSA继续遵循GPL协议使用,拷贝,发布和对SELinux的修改,请查看2001/1/2日的NSA发行注记

23、NSA赞成开放源代码吗?
NSA在提高软件安全方面同时兼顾了专有技术和开放源代码,在我们的研究活动中可以同时使用它们,NSA的工作提升软件的安全出于一个简单的考虑:有效地使用我们的资源尽可能地给NSA的客户提供最好的安全选项,NSA的研究目标是开发能与软件开发社区共享的高级技术,NSA不赞成或宣传任何特殊的软件产品或商业模块,当然,NSA正在促进安全增强。


热词搜索:

上一篇:安全宝典:保障Linux系统的临时文件安全
下一篇:Linux安全之道:安全部署的五个步骤(1)

分享到: 收藏