安全操作系统一、引言二、安全基础知识简介三、安全操作系统发展史四、安全操作系统的设计与开发五、安全评估准则的研究(TCSEC&CC)六、安全操作系统举例一、引言•操作系统是应用软件同系统硬件的接口,其目标是高效地、最大限度地、合理地使用计算机资源。•在信息系统安全涉及的众多内容中,操作系统、网络系统与数据库管理系统的安全问题是核心,没有系统的安全就没有信息的安全。作为系统软件中最基础部分的操作系统,其安全问题的解决又是关键中之关键。•若没有安全操作系统的支持,数据库就不可能具有存取控制的安全可信性,就不可能有网络系统的安全性,也不可能有应用软件信息处理的安全性。因此,安全操作系统是整个信息系统安全的基础。操作系统面临的安全威胁•保密性威胁•完整性威胁•可用性威胁•操作系统安全的主要目标•按系统安全策略对用户的操作进行访问控制,防止用户对计算机资源的非法使用•包括窃取、篡改和破坏•标识系统中的用户,并对身份进行鉴别•监督系统运行的安全性•保证系统自身的安全性和完整性•从安全的角度上看,操作系统应当提供哪些安全服务?•内存保护•文件保护•普通实体保护•存取鉴别•等主体审计数据库引用监视器客体访问控制数据库—安全策略•从六十年代,美国就开始了对安全操作系统体系结构的研究。提出一些安全模型。最为著名的是应用监视器(ReferenceMonitor)模型。应用监视器模型•主体:主体是主动的实体,是系统内行为的发起者,通常它是用户和代表用户的进程。系统的合法用户可分成:•普通用户(进程),•信息属主(进程),•系统管理员(进程),•客体:是一个被动的实体,是系统内所有主体行为的直接承担者,它常被分成:•1)一般客体,系统内以具体形式存在的信息实体,如文件、目录、数据和程序等。•2)设备客体,指系统内的硬件设备,如磁盘、磁带、显示器、打印机、网络节点等。•3)特殊客体,有时一些进程是另外一些进程行为的承担者,那么,这类进程也是客体的一部分。主体属性•它是用户特征,是系统用来决定访问控制的常用因素,一个用户的任何一种属性都可作为访问控制决策点,一般系统访问控制策略中常用的用户属性有:–a)用户ID/用户组ID:–b)用户访问许可级别:–c)用户需知属性:–d)角色:–e)权能列表:客体属性•与系统内客体相关联的属性也作为访问控制策略的一部分,客体安全属性有:–系统内信息的敏感性标记由等级与非等级两部分组成:敏感性级别和范畴。–敏感性标记:信息按“安全等级”进行分类,如“公开信息”、“机密信息”、“秘密信息”、“绝密信息”;–信息按非等级分类,进行模拟人力资源系统的划分,称“范畴”,如参谋部、作战部、后勤部等,访问控制列表•与客体相关联的有一个“访问控制列表”,用来指定系统中哪些用户和用户组可以以何种模式访问该客体的一种列表。用户与主体绑定•用户进程是固定为某特定用户服务的,它在运行中代表该用户对客体资源进行访问,其权限应与所代表的用户相同,这一点可通过用户与主体绑定实现。•系统进程是动态地为所有用户提供服务的,它的权限随着服实对象的变化而改变,这需要将用户的权限与为其服务的进程的权限动态地相关联。这也就是说,一个进程在不同时刻对一个客体有不同的访问权限,取决于它当时所执行的任务。当进程在执行正常的用户态应用程序时(用户进程),它所拥有的权限与其代表的用户有关;当进程进行系统调用时,它开始执行内核函数(系统进程),此时运行在核心态,拥有操作系统权限。•安全策略:–(1)军事安全策略主要目的是提供机密性。–(2)商业安全策略主要目的是提供完整性。二、安全基础•安全模型用来描述系统和用户的安全特性,是对安全策略所表达的安全需求简单、抽象、无歧义的描述,在安全策略与安全机制的关联之间提供一种框架。•安全模型分为:形式化和非形式化两种,非形式化安全模型仅模拟系统的安全功能,其开发过程为:从安全需求出发,推出功能规范,再实现安全系统,其间主要采用了论证与测试技术;而形式化安全模型使用数学模型来精确地描述安全性及其在系统中使用的情况,其开发途径为:建立抽象模型,推出形式化规范,通过证明方法来实现安全系统。•安全模型的讨论从70年代开始,基本思路是从系统的安全要求的规格或功能说明入手。这一努力在国际计算机系统安全界一直持续着。一个好的安全模型应该提供语义丰富的表达能力,以描述所讨论的系统在功能上和结构上的特性。(1)访问控制矩阵模型•Harrison、Russo和Ullman于1976年提出的DAC模型,也称HRU模型–MichaelA.Harrison,WalterL.Ruzzo,JeffreyD.Ullman:ProtectioninOperatingSystems.Commun.ACM19(8):461-471(1976)访问控制矩阵O1O2S1readread、writeS2read、write—访问主体访问客体访问控制矩阵AA[S2,O1]=“read,write”-S2具有对O1的读和写权限权限类型由DBMS定义访问控制矩阵•系统状态表示–Q=(S,O,A)•S:主体集合•O:客体集合•A:访问控制矩阵(2)自主访问控制•自主访问控制DAC(discretionaryaccesscontrol)是目前计算机系统中实现最多的访问控制机制。•DAC是在确认主体身份及所属组的基础上,根据访问者的身份和授权来决定访问模式,对访问进行限定的一种控制策略。•所谓自主,是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限的某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。•其基本思想是:允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。DAC将访问规则存储在访问控制矩阵。Take-Grant模型•1976年,Jonesetal.•系统状态描述为一个三元组(S,O,G)–S:主体集合–O:客体集合–G:描述系统授权状态的有向图基本符号主体客体主体或客体访问模式rABreadwABwrite主体或客体A可以从客体B中读信息主体或客体A可以向客体B中写信息访问模式tABtakegABgrant主体A可以从主体或客体B中获取其拥有的对其他主体或客体的权限主体A可以把其拥有的对其他主体或客体的权限赋予B操作•take(d,s,x,y):主体s从主体或客体x中取得其对主体或客体y的d权限–s必须具有对x的take权限–x必须具有对y的d权限操作tsxydtsxydtake(d,s,x,y)d操作•grant(s,d,x,y):将主体s对主体或客体y的d权限授予x–S必须具有对x的grant权限–S必须具有对y的d权限操作gsxygsxydgrant(d,s,x,y)ddDAC的优缺点•DAC的优点是其自主性为用户提供了极大的灵活性,从而使之适合于许多系统和应用。•由于这种自主性,在DAC中,信息总是可以从一个实体流向另一个实体,即使对于高度机密的信息也是如此,因此自主访问控制的安全级别较低。另外,由于同一用户对不同的客体有不同的存取权限,不同的用户对同一客体有不同的存取权限,用户、权限、客体间的授权管理复杂。DAC的局限性•首先,DAC将赋予或取消访问权限的一部分权力留给用户个人,管理员难以确定哪些用户对那些资源有访问权限,不利于实现统一的全局访问控制。•其次,在许多组织中,用户对他所能访问的资源并不具有所有权,组织本身才是系统中资源的真正所有者。•而且,各组织一般希望访问控制与授权机制的实现结果能与组织内部的规章制度相一致,并且由管理部门统一实施访问控制,不允许用户自主地处理。显然DAC已不能适应这些需求。(3)强制访问控制•强制访问控制MAC(mandatoryaccesscontrol)依据主体和客体的安全级别来决定主体是否有对客体的访问权。•最典型的例子是BellandLaPadula提出的BLP模型。•BLP模型以军事部门的安全控制作为其现实基础,恰当地体现了军事部门的安全策略,然后用到计算机的安全设计中去。它侧重于信息的保密性。•BLP模型已经成为许多系统或原型的实现的理论基础。安全级别•L=(C,S)–C:Classification,密级•一个安全层次分类,表示了主体(客体)的保密性要求•四级:绝密TS(TopSecret)机密S(Secret)保密C(Confidential)普通U(Unclassified)–S:Setofcategories,范围•依照某种特征将系统资源划分成若干类别的集合,依赖于具体应用和组织环境•例如:–在学校中,范围可以是教师,学生,后勤等–在军队里,范围可以是司令部,作战部等安全级别(SecurityLevel)•主体的安全级别代表了主体的可信度,客体的安全级别代表了客体的敏感度•支配(Dominance)–给定两个安全级别L1=(C1,S1)和L2=(C2,S2),若C1=C2,S1S2,称L1支配L2BLP的基本安全访问策略TSSCUInformationFlowDominancesecuritylevelsBLP的基本安全访问策略•简单安全特性(simplesecurityproperty)–只有当主体的安全级别支配客体的安全级别时,主体才能读客体,即“下读”•星号特性(starproperty)–只有当客体的安全级别支配主体的安全级别时,主体才能向客体中写数据,即“上写”不上读不下写BLP的基本安全访问策略允许读取绝密秘密允许写入绝密秘密“下读上写”的策略有效的防止了操作系统中的所有数据从高安全级流向低安全级,从而保证了敏感数据不外泄。(4)RBAC模型•基于角色的访问控制模型(Role-basedAccessModel)–流行的访问控制模型•操作系统:Windows,Solaris等–基本思想:将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权•RBAC与传统访问控制的差别在于在用户和访问许可权之间引入了角色这一层主流模型•RBAC96(Sandhuetal.1996):分层的RBAC基本模型–RBAC0:含有RBAC核心部分–RBAC1:包含RBAC0,增加了角色继承关系(RH)–RBAC2:包含RBAC0,增加了角色之间的约束(Constraints)–RBAC3:包含所有层次内容,同时提供继承和约束,是一个完整模型CoreRBAC•5个静态集合–用户集(users)•系统中可执行操作的用户集合–对象集(objects)•系统中需要保护的信息–操作集(operators)•定义在对象上的一组操作–权限集(permissions)•不可分割的一组操作的执行权限,是权限分配的最小单元–角色集(roles)•包含一组用户和一个特权集,指定了用户以及用户拥有的特权•1个动态集合–会话集(sessions)•用户每次通过建立会话来激活角色,得到相应的访问权限CoreRBAC•操作–用户分配(UA):•UAUSERS×ROLES•UA是用户集到角色集的多对多关系,记录了用户所拥有的角色。把用户u分配给角色r表示为UA=UA∪(u,r)–权限分配(PA):•PAPERMISSIONS×ROLES•PA是特权集到角色集的多对多关系,记录了角色所分配的特权。把权限p分配给角色r表示为PA=PA∪(p,r)CoreRBAC•操作–用户登陆:•user_sessionsUSERS×SESSIONS•记录了用户所拥有的会话。一个用户可以同时拥有多个会话–激活和去活(deactivate)角色•session_rolesSESSIONS×ROLES•用户在会话中可以激活某个角色,或者去活某个角色。激活的前提是用户拥有该角色并且未在当前会话中激活。一旦激活某角色,用户就拥有了该角色的所有特权。CoreRBACUSERSOPSROLESOBSPERMSUAPASESSIONSuser_sessionssession_roles三、国外安全操作系统的发展•1965年美国贝尔实验室和麻省理工学院的MAC课题组等一起联