您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 安全协议与标准07c-SELinux
ΓВ安全协议与标准linfb@sdu.edu.cn2007,11ΓВSELinux•Accesscontrol–MAC(Mandatoryaccesscontrol)–DAC(Discretionaryaccesscontrol)•SELinuxinkernel2.6ΓВ安全操作系统•传输安全•系统安全•端系统安全•安全操作系统•TCSEC/CCΓВSELinux•Security-EnhancedLinux–byNSA(TheNationalSecurityAgency)&SCC(SecureComputingCorporation)•–Linux的一个强制访问控制(MAC)安全扩展模块–起源于Flux/Flask–2000年以GPL发布–2003Aug8mergedintothemainlinekernel2.6.0-test3ΓВ---FromNSASecurity-enhancedLinuxTeam•NSASecurity-enhancedLinuxisasetofpatchestotheLinuxkernelandsomeutilitiestoincorporateastrong,flexiblemandatoryaccesscontrol(MAC)architectureintothemajorsubsystemsofthekernel.Itprovidesamechanismtoenforcetheseparationofinformationbasedonconfidentialityandintegrityrequirements,whichallowsthreatsoftamperingandbypassingofapplicationsecuritymechanismstobeaddressedandenablestheconfinementofdamagethatcanbecausedbymaliciousorflawedapplications.Itincludesasetofsamplesecuritypolicyconfigurationfilesdesignedtomeetcommon,general-purposesecuritygoals.ΓВSELinux的直接来源•Flask(FluxAdvancedSecurityKernel)isanoperatingsystemsecurityarchitecturethatprovidesflexiblesupportforsecuritypolicies.ThearchitecturewasprototypedintheFlukeresearchoperatingsystem.•Itisacoreframeworkinsecurity-focusedoperatingsystemssuchasNSA'sSecurity-EnhancedLinux(SELinux)andTrustedBSD.ΓВ促成SELinux的其他相关项目•NSA&SCC:DistributedTrustedMach(DTMach),anoutgrowthoftheTMachprojectandtheLOCKproject.TheDTMachprojectwascontinuedintheDistributedTrustedOperatingSystem(DTOS)project•OthercontributorstotheSecurity-EnhancedLinuxsystemincludeNAILabs,SecureComputingCorporation,andMITRE.•OSKit(),aframeworkandasetof34componentlibrariesorientedtooperatingsystems,togetherwithextensivedocumentation,byUtah.ΓВOSKit•OSKIT是美国犹它大学计算机科学系FLUX研究组编写的一套用于架构操作系统内核、服务器和其他OS级软件的框架及模块化的部件和库程序。•OSKIT的编写者认为,操作系统中有很大一部分模块是系统必须的,但并不是开发者所感兴趣的,例如系统装入模块,各种标准驱动模块等。使用OSKIT的目的就是使操作系统的开发者集中精力开发他们操作系统中有特色的,或者他们感兴趣的部分,而不必考虑一些繁琐而乏味的细节。•为了达到这个目的,OSKit在设计时借用了COM的思想,把操作系统的各个部分设计成尽量独立的COM模块,以方便操作系统的开发者使用或替换。因此,当开发人员使用这套工具时,可以把它当作一个完整的操作系统来使用,也可以根据需要使用其中的一部分,它还可以作为一套动态链接库,由操作系统及支持程序对它进行调用。ΓВSubject/Object•主体–计算机中存在大量涉及安全的操作,凡是实施操作的作主体,如用户或者进程等。•客体–被操作的对象称为客体,如文件、设备、内存等•标识与鉴别–标识是系统要确认访问者的身份,如用户名。–鉴别是提供一种方法证实身份,如口令。•安全策略(SecurityPolicy)–描述用户对安全方面要求,根据系统安全需求制定。ΓВAccesscontrol•theabilitytopermitordenytheuseofsomethingbysomeone,includesauthentication,authorizationandaudit.•DiscretionaryAccessControl–DAC自主的–anaccesspolicydeterminedbytheownerofanobject.Theownerdecideswhoisallowedtoaccesstheobjectandwhatprivilegestheyhave.–AccesscontrolsmaybediscretionaryinACL-based,capability-based,orRole-basedaccesscontrolsystems.•MandatoryAccessControl–MAC强制的–anaccesspolicydeterminedbythesystem,nottheowner.–commonlyusedforapplyingmandatoryaccesscontrol:Lattice-basedaccesscontrols,Rule-basedaccesscontrolsΓВACL/ACM•Accesscontrollist(ACL)–alistofpermissionsattachedtoanobject.•AccessControlMatrix(ACM)–therightsofeachsubjectwithrespecttoeveryobjectinthesystem.ΓВMAC(mandatoryaccesscontrol)•SUSELinux(nowsupportedbyNovell)andUbuntu7.10haveaddedaMACimplementationcalledAppArmor.•Sun'sTrustedSolarisusesamandatoryandsystem-enforcedaccesscontrolmechanism(MAC),whereclearancesandlabelsareusedtoenforceasecuritypolicy.ΓВPrincipleofLeastPrivilege•最小特权–每一用户和进程只拥有最小的必需访问权的集合。这条原则限制了由于差错事故或者恶意攻击造成的破坏性影响。–进程只在完成其任务所必需的那些权限组成的最小保护域内执行,当进程的访问需求发生变化时,进程就应转换其保护域。•最小权限原则–要求计算环境中的特定抽象层的每个模块如进程、用户或者计算机程序只能访问当下所必需的信息或者资源。–赋予每一个合法动作最小的权限,就是为了保护数据以及功能避免受到错误或者恶意行为的破坏。ΓВ实施•最小特权–把传统的超级用户划分为安全管理员、系统操作员、系统管理员三种特权用户,安全管理员行使诸如设定安全等级、管理审计信息等系统安全维护职能,系统操作员行使诸如磁盘数据备份、启动和关闭系统等系统日常维护职能,系统管理员行使诸如创建和删除用户帐户、处理记帐信息等系统管理职能。传统的超级用户不复存在。ΓВSELinux•SELinux是2.6版本的Linux内核中提供的强制访问控制(MAC)系统。•对于目前可用的Linux安全模块来说,SELinux是功能最全面,而且测试最充分的,它是在20年的MAC研究基础上建立的。•SELinux在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。•ΓВ发行版中的SELinux•SELinux就绪的发行版,例如Fedora、RedHatEnterpriseLinux(RHEL)、Debian或Gentoo。它们都是在内核中启用SELinux的,•并且提供一个可定制的安全策略,•还提供很多用户层的库和工具,它们都可以使用SELinux的功能。ΓВΓВSELinux工作机制•每一个重要的内核对象,比如每个文件系统对象和每个进程,都有一个关联到它们的“安全上下文(securitycontext)”。•安全上下文可以基于军事安全层级(如不保密的、保密的和高度保密的)、基于用户角色、基于应用程序(这样,一个Web服务器可以拥有它自己的安全上下文),或者基于很多其他内容。•当它执行另一个程序时,进程的安全上下文可以改变。甚至,取决于调用它的程序,一个给定的程序可以在不同的安全上下文中运行,即使是同一个用户启动了所有程序。•管理员就可以创建一个指定哪些特权授与哪个安全上下文的“安全策略(securitypolicy)”。当发生系统调用时,SELinux去检查是否所有需要的特权都已经授与了—如果没有,它就拒绝那个请求。ΓВ例如•要创建一个文件,当前进程的安全上下文必须对父目录的安全上下文的“搜索(search)”和“add_name”特权,而且它需要有对于(要创建的)文件的安全上下文的“创建(create)”特权。•同样,那个文件的安全上下文必须有特权与文件系统“关联(associated)”(所以,举例来说,“高度保密”的文件不能写到一个“不保密”的磁盘)。•还有用于套接字、网络接口、主机和端口的网络访问控制。如果安全策略为那些全部授与了权限,那么请求就会被SELinux所允许。否则,就会被禁止。ΓВ普通的Linux与SELinux相比较•普通的Linux系统的安全性是依赖内核的,这个依赖是通过setuid/setgid产生的。在传统的安全机制下,暴露了一些应用授权问题、配置问题或进程运行造成整个系统的安全问题。这些问题在现在的操作系统中都存在,这是由于他们的复杂性和与其它程序的互用性造成的。•SELinux的权限检查完全独立于类UNIX系统中的通常的权限位,用户必须既有标准的类UNIX权限,又有SELinux权限才能去做一些事情。•SELinux检查可以做很多对传统的类UNIX权限来说难以完成的事情。使用SELinux,您可以方便地创建一个只能运行特定程序并且只能在特定的上下文中写文件的Web服务器。ΓВ配置策略•SELinux只单单依赖于系统的内核和安全配置政策。一旦你正确配置了系统,不正常的应用程序配置或错误将只返回错误给用户的程序和它的系统后台程序。其它用户程序的安全性和他们的后台程序仍然可以正常运行,并保持着它们的安全系统结构。•单一程序的配置错误不会造成整个系统的崩溃。如果有一个好的安全策略的话,即使一个攻击者攻入了Web服务器并成为root,攻击者也不会获得整个系统的控制权。•为了使SELinux有效,您需要有一个好的安全策略来由SELinux执行。大部分用户将需要
本文标题:安全协议与标准07c-SELinux
链接地址:https://www.777doc.com/doc-1256908 .html