- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SELinux使用了分级的强制访问控制,是Linux内核的重要安全措施。SELinux的安全策略工具可从/projects下载。本章分析了SELinux的安全机制,介绍了安全策略配置语言、内核策略库的结构,简述了SELinux内核模块的实现,还分析了用户空间的客体管理器。3.1? SELinux概述SELinux是安全增强了的Linux,是Security-enhanced Linux的简写,SELinux改进了对内核对象和服务的访问控制,改进了对进程初始化、继承和程序执行的访问控制,改进了对文件系统、目录、文件和打开文件描述的访问控制,还改进了对端口、信息和网络接口的访问控制。早期的Linux内核只提供了经典的UNIX自主访问控制(root用户,用户ID,模式位安全机制),以及部分地支持了POSIX.1e标准草案中的capabilities安全机制,这对于Linux系统的安全性是不够的,NSA(the National Security Agency)和SCC(Secure Computing Corporation)共同开发了强大的基于类型加强(Type Enforcement)的强制访问控制(mandatory access control,简称MAC)机制,提供了动态的安全策略机制。Linux内核增加了一个通用的安全访问控制框架,它通过hook函数来控制程序的执行,这个框架就是Linux安全模块(LSM),在LSM上可使用各种安全控制机制(如:Flask机制)来实现对程序的控制。SELinux应用了类型加强(Type Enforcement,TE)和基于角色访问控制(role-based access control,RBAC)技术。TE给每个主体(进程)和系统中的客体定义了一个类型,这些类型定义在SELinux的安全策略文件中,以安全标签形式存放在文件本身的扩展属性(extended attributes,简称xattrs)里。当一个类型与一个进程相关时,这个类型称为域(domain),例如:后台进程httpd的域为httpd_t。主体(subject)对客体(object)的操作在SELinux中默认下是不允许的,而由策略定义允许的操作。TE使用主体的域和客体类型从策略文件中查找操作许可。例如:策略中的一条规则如下:allow httpd_t net_conf_t:file { read getattr lock ioctl };这条规则表示httpd_t域对net_conf_t类型客体的文件有“{}”中所表示的操作权限。SELinux的访问控制规则存放在安全策略文件中,策略文件分为二进制和源代码文件,源代码以策略配置语言的形式描述,由编程者创建和维护。源代码经策略配置工具编译后生成二进制文件。二进制策略被装载到内核空间,形成在内存中的策略库及缓存,内核就可以使用访问控制规则了。SELinux可以实现非常小颗粒的访问控制,这些细小颗粒的访问控制也造成了安全策略的复杂性。Linux内核的SELinux安全体系由Flask和LSM框架共同组成,LSM是由hook函数组成的安全控制框架,Flask框架将SElinux的策略规则转换成访问控制许可。在安全策略配置语言中经常用到的名称术语说明如下。subject 主体,常指一个进程object 客体,常指一个文件object class客体的类permission 许可context上下文user? 用户role? 角色type 类型Type Attributes 类型属性Type Enforcement 类型增强dormain 域,它是一个进程的类型source type? 源类型 target type? 目标类型labeling? 标识access vector cache (AVC) 访问向量缓存access decision 访问决策3.1.1? Linux与SELinux在安全管理上的区别在传统的Linux自由访问控制(Discretionary Access Controls,DAC)之后,SELinux在内核中使用强制访问控制机制(MAC)检查允许的操作。在DAC下,文件客体的所有者提供了客体上的潜在风险控制。用户可以通过错误配置的chmod命令和一个非期望的访问权限传递,暴露一个文件或目录给一个恶意信任者。这个用户启动的进程,如:CGI脚本,可在这个用户拥有的文件做任何的操作。DAC实际上仅有两个主要的用户分类:管理者和非管理者。为了解决权限分级,它使用了访问控制列表(access control lists,简称ACL),给非管理者用户提供不同的权限。而root用户对文件系统有完全自由的控
文档评论(0)