站内搜索: 子类: 关键词:
网站导航
信息化建设
规章制度
网络信息安全
官方文件
常用下载
联系我们
 
 
网络信息安全
  当前位置:首页 > 网络信息安全 搜索结果
操作系统安全知识
作者:李家驹 来源:本站 时间:2019-09-30 15:44:00 访问次数:5873


信息安全领域以网络安全最为吸引眼球,神马木马病毒,Sql注入XSS攻击,让大家是眼花缭乱,其实说白了,无非是两种类型:一是利用的操作系统上自身的系统程序的漏洞,来个溢出之类的攻击;二是针对OS上跑的花样繁多的各种应用,有单机应用也有Web应用,其开发时的各种漏洞和bug形成的攻击。所以归根结底,网络攻击之所以能够成功,还是得益于OS上跑的APP的漏洞导致的,这里的APP当然包括各种Web程序和DBMS了。自己突然想到,手机上现在流行的各种java应用,不断翻新的APP市场,这里面没有严格的漏洞检查机制,得有多少有缺陷的APP呢?呵呵,自己突然都不敢往下想了…

言归正传。任何APP运行的基础平台还是我们的OS,因此如何设计研发更加安全的OS,也是非常关键的一环,更何况,当今的主流OS都掌握在国外,搞不定在某个地方安了一个“天窗”呢!国家政关键部门府当然不会用windows之类的系统来办公,大多使用自主开发的定制Linux,但是国内自主研发OS的道路上还是有很多路程要走。今天先来简单看看安全的OS中要考虑的安全机制。

OS的安全机制大致可以分为硬件安全机制、标识与鉴别、访问控制、最小特权管理、可信路径和安全审计几个部分,今天先来重点看看其中的部分机制,更多的内容留待日后的学习补充完善。
一、硬件安全机制

计算机硬件安全的目标是:保证其自身的可靠性和为系统提供基本的安全机制,这些基本的安全机制具体指的是存储保护、运行保护和I/O保护。
1.
存储保护

顾名思义,存储保护就是保护用户在存储器中的数据的完整性,简单来说就是数据没有损坏,没有被非法访问。存储保护与存储器管理使紧密相联的,存储保护是负责保证系统各个任务之间互不干扰,存储器管理则是为了更有效地利用存储空间。

对于存储保护来说,常用的有两种实现机制。第一种是为进程访问的物理内存页分配密钥,每个进程也分配密钥,只有当进程的密钥和内存页的密钥相互匹配并且访问控制信息(读写等模式)与该物理页的读写模式匹配时,才允许该进程访问该页内存,否则禁止访问。这样做法考虑比较自然,但是有两点缺陷:一是需要分配管理大量的密钥;二是每次进程切换、挂起重启时可能导致访问控制信息的频繁修改,导致系统开销的增大和性能的降低。

第二种则避免上述的问题,基于描述符的地址解释机制。其关键在于在描述符中含有了内存页的访问信息和访问模式,每次解析地址时会自动验证描述符,从而极大降低了系统的开销。

2.运行保护

存储器中的用户数据需要保护,运行中的用户数据也需要保护,避免其他用户进程的干扰和破坏。这里通过对于用户进程运行域进行分层设计,抽象为一个保护环来实现。最内层最小号码的环具有最高权限,最外层最大环号的环视最小的特权环。这种等级域机制保护某一环不被其外层侵入,并且允许在某一环内的进程能够有效地控制和利用该环以及低于该环特权的环,即不允许下级访问,但是可以操纵下级。

一种实现的机制是借助环界来实现。每个进程的运行域中的段描述符中使用环界区分特权,只标注出最大特权即可,比如:

Write:R1——Read:R2——Execute:R3

所有特权高于R1的段中的进程都可以写该段,所有特权高于R2的段的进程都可以读该段,依次类推。如果一个环内的进程可以写某段,那就不必限制器对该段的读和执行;如果进程对某段具有读操作的特权,那么当然也允许其运行该段的内容,即:

R1<特权包含关系) 二、标识与鉴别

这部分的作用主要是控制外界对于系统的访问。其中标识指的是系统分配、提供的唯一的用户ID作为标识,鉴别则是系统要验证用户的身份,一般多使用口令来实现。这里自己感觉需要特别说的是,一旦系统验证了用户身份,就要开始赋予用户唯一标识用户id、组id,还要检查用户申请的安全级、计算特权集、审计屏蔽码;赋予用户进程安全级、特权集标识和审计屏蔽码。系统负责检查用户的安全级在其定义时规定的安全级之内,否则系统拒绝用户的本次登陆。 三、访问控制

OS安全机制的主要内容就是访问控制,说白了就是针对制定的资源要说明:

谁可以访问;

怎样访问(读写执行删除追加等);

访问控制主要针对登陆系统的用户及其进程,控制外界系统访问的技术是标识与鉴别。访问控制主要有两类:自主访问控制和强制访问控制。

1.自主访问控制:

“自主”主要体现在客体(访问的对象)的所有者有权可以指定其他主体对该客体的访问权限,这里的所有者也可以是专门具有授予权限的主体,将权限的子集授予其他主体。基于访问控制矩阵,一般有基于行和列的访问控制机制,但是由于基于行的访问控制机制实现较为困难,所以现在实际中使用的是基于列,即基于客体的访问控制机制,最常见的就是ACLAccess Control List)。每个客体维护自己的一张ACL

主体1.rx——主体2.r——主体3.x——… …——主体N.rwx

主体1只具有读和执行权限,主体3只有执行权限,依次类推。后期由于可能主体数目很多造成ACL很大,因此又引入了Group的概念,针对一个Group进行ACL记录。

2.强制访问控制:

“强制”体现在每个进程、文件、IPC客体都被adminOS赋予了不可改变的安全属性,这些安全属性不再能由用户自己进行修改,实际中常常将二者结合起来使用。用户使用自主访问控制访问其他用户非法入侵自己的文件,强制访问控制则作为更有力的安全保护方式,是用户不能通过意外事件和有意识的误操作逃避安全控制。

三、最小特权管理

最小特权管理的思想是系统不应该给用户/管理员超过执行任务所需特权以外的特权,一般可以通过设置管理员角色分割权限,或者使用POSIX权能机制来实现。权能(Capability)是一种用于实现恰当特权的能力令牌。POSIX权能与传统的权能机制类似,但是它为系统提供了更为便利的权能管理和控制:一是提供了为系统进程纸牌一个权能去调用或执行受限系统服务的便捷方法;二是提供了一种是进程只能调用其特定任务必须权能的限制方法,支持最小特权安全策略的实现。因此POSIX权能机制提供了一种比超级用户模式更细粒度的授权控制。每个进程的特权动态管理,通过进程和程序文件权能状态(许可集、可继承集、有效权能集)共同决定子进程的权能。

开发设计一个安全的操作系统,首先要明确安全需求,一般来说,操作系统的安全需求可以归纳为四个方面:机密性(confidentiality)、完整性(integrity)、可追究性(accountability)和可用性(availability)。上述安全需求转化为一系列的安全策略,比如访问控制策略(ACP)和访问支持策略(ASP),前者反应系统的机密性和完整性需求,后者反应系统的可追究性和可用性需求。我们说一个系统是安全的,并非指该系统就是绝对安全,而是说这个系统的实现达到了当初设计时所制定的安全策略。

为了进一步设计我们的安全操作系统,我们还需要将安全需求、安全策略抽象为安全模型。安全模型是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略关联上对应的实现机制,从而为开发安全系统提供方针,即安全模型描述了对于某个安全策略需要使用什么样的机制来实现,模型的实现则描述了如何把特定的机制应用于实际的系统当中。安全模型除了具备精确无歧义、简易抽象、容易理解的特点之外,还具有一般性,即安全模型只是关注安全相关的问题,不过度涉及系统的功能和实现。

安全模型可以分为形式化和形式化两种安全模型。非形式化模型仅模拟系统的安全功能,形式化安全模型则借助数学模型,精确地描述安全性及其在系统中使用的情况。J.P.Anderson曾指出,开发安全系统首先必须建立系统的安全模型,完成安全系统的建模之后,再进行安全内核的设计和实现。一般高等级安全操作系统开发时都要求使用形式化安全模型来模拟安全系统,因为形式化模型可以正确地综合系统的各类因素,如系统的使用方式、使用环境类型、授权的定义、共享的客体资源等,所有这些因素构成安全系统的形式化抽象描述,使得系统可以被证明是完整的、反映真实环境的、逻辑上能够实现程序可以受控执行的。

上面简单地介绍了安全需求—-安全策略—-安全模型的基本知识,介绍了形式化安全模型的优势,接下来,我们来具体看几个安全模型,加深对于安全模型的了解和认识。

一、机密性安全模型:BLP

之所以叫机密性模型,自己的理解是BLP主要关注的是信息的机密性,即信息不能由高安全等级流向低安全等级,一句话来概括BLP就是“下读上写”,什么意思?不着急,等我慢慢道来。

BLP模型是由D.Elliott BellLeonard J. LaPadula1973年提出的一种适用于军事安全策略的计算机操作系统安全模型,它是最早、也是最常用的一种计算机多级安全模型之一。BLP将主体定义为能够发起行为的实体,如进程;将客体定义为被动的主体行为承担者,如数据、文件等;将主体对客体的访问分为r-只读、w-读写、a-只写、e-执行与c-控制等访问模式,其中c-控制是用来描述该主体用来授予或者撤销另一主体对某一个个客体的访问权限的能力。BLP的安全策略包括两个部分:自主安全策略和强制安全策略。自主安全策略借助访问矩阵实现,强制安全策略包括简单安全特性和*特性,系统对所有的主体和客体都分配一个访问类属性,包括密级和范畴,系统通过比较主体和客体的访问类属性来控制主体对客体的访问。
BLP
的几个重要公理

1.公理,就是理所应当承认成立的判断。BLP主要有以下几个:

(1). 简单安全性
  我们说一个状态v=(b, M, f, H)满足简单安全性,iff
  任意的主体s(属于主体集合S),若s对客体o(属于客体集合O)有读写权限,那么主体s的安全级一定支配客体o的安全级,这里的安全级支配意思是指主体的密级L(s) > 客体的密级L(o),并且s的范畴Domain(s)包含o的范畴Domain(o),一句话说就是显而易见的道理:A可以对B读写,那么A的安全级一定高于B(强制安全策略体现)。
  (2). *特性
  这类似一个分段函数,分情况来说就是,对于状态v=(b, M, f, H)满足相对于S子集S1*特性,iff
  任意属于S1s,都有:
  若s对于o只有只写权限,那么o的安全级支配s的安全级,即客体安全级高于主体安全级;
  若s对于o有读写权限,那么客体o的安全级等于主体s的安全级;
  若s对于o只有只读权限,那么主体s的安全级支配客体o的安全级;
  看到了吧,其实BLP就是“下读上写”:信息只能由高等级读低等级,写操作可以由低等级到高等级,可读可写一定安全级相同
  (3). 自主安全性:
   若主体s可以对于客体o有访问属性A(r/w/a/c),则该访问属性一定满足访问矩阵M(i)(j)
  (4). 兼容性公理:
  对于客体o,如果oO-1的叶节点,则叶结点的安全级支配O-1的安全级。

BLP模型的分析

从上面的介绍可以看出,BLP模型的安全策略包括强制存取控制和自主存取控制两部分,前者由简单安全性和特性组成(安全级),通过安全级强制性约束主体对客体的存取;自主存取控制通过存取控制矩阵按用户的意愿进行存取控制。虽然BLP在建立安全系统的活动中一直占据主导地位,但是严格实施BLP模型的系统往往是不实际的。这是因为真实的系统中,用户可能会违背特性,但是并不会违背系统的安全性。比如特性规定只能由高安全等级读取低安全等级,但是一个用户可能需要读取机密文件中的非机密信息,并且应用到另一份非机密文件中。因此为了增加系统的可用性,BLP模型添加了一类可信主体,这些主体是可信的,当且仅当他们可以违背特性,但是不能违背系统的安全性。

BLP模型的不足:

(1). BLP模型中,可信主体不受*特性约束,访问权限太大,不符合最小特权原则,应对可信主体的操作权限和应用范围进一步细化;

(2). BLP模型注重保密性控制,控制信息从高安全级传向低安全级,但是却缺少完整性控制,不能控制“上写”操作,可能导致隐蔽通道;因此大多数基于BLP模型实现的多级安全系统,规定只能向具有和主体安全级相同的客体写入信息,对BLP模型进行了修改。

(3). BLP模型使用了与可信主体相关的安全规则,导致很难确定系统执行的安全规则到底是哪个;

(4). BLP仅处理单极客体,缺乏处理多级客体(如磁盘);

(5). 没有支持应用相关的安全规则;

二、完整性安全模型:Biba模型

这部分我们来介绍下完整性安全模型,BLP模型注重了机密性,但是忽略了完整性保护,于是后人对BLP模型进行了一些改进。1977Biba等人提出了第一个完整性安全模型——Biba模型,主要应用类似BLP模型的规则来保护信息的完整性。Biba模型提出的不是一个唯一的安全策略,而是一个安全策略系列。比如非自主安全策略里的对于主体/客体的下限标记策略,使得主体、客体的完整级别动态变化;自主安全策略里的ACL和环机制等等,这里不再详述,有兴趣的童鞋可以去度娘谷歌。

Biba模型的优势在于其简单性以及和BLP模型相结合的可能性。简单性体现在Biba的严格完整性策略师BLP机密性策略的对偶,所以它的实现是直观和易于理解的;基于BibaBLP的相似性,二者有可能结合产生机密性完整性一身的安全模型。但是其不足是:1. 完整性标签确定的困难性;2. Biba模型最主要的完整性目的是用于保护数据免受非授权用户的恶意修改,同时其认为内部完整性威胁应该通过程序验证来解决,但是在模型中并没有包括这个要求;3. BibaBLP模型的结合看似容易,实则困难,而且即使结合之后,也无法低于病毒攻击。

三、完整性安全模型:Clark-Wilson完整性模型

1987David ClarkDavid wilson提出的完整性模型具有里程碑意义,它是完整意义上的完整性目标、策略和机制的起源。为了体现用户完整性,CW模型提出了职责隔离目标;为了保证数据完整性,CW模型提出了应用相关的完整性验证进程;为了建立过程完整性,CW定义了对于转换过程的应用相关验证;为了约束用户、进程和数据之间的关系,CW使用了三元组结构。

CW模型的核心在于以良构事务(well-formal transaction)为基础实现在商务环境中所需的完整性策略。良构事务是指一个用户不能任意操纵数据,只能用一种能够确保数据完整性的受控方式来操作数据。为了确保数据项仅仅能被良构事务操作,首先得确认一个数据项仅仅能被一组特定的程序来操作,而这些程序是经过验证特殊构造,并且被正确安装的。
四、多策略安全模型:中国墙模型

1988年,BrewerNash根据现实的商业策略提出了中国墙(Chinese Wall)模型,该模型试图解决的问题是:为了保护相互竞争的客户,咨询公司需要在代理间建立密不可透的“墙”,比如分析员面对客户:银行A,石油公司A,石油公司B,则一旦分析员访问了石油公司AB,则都不能再访问石油公司BA,因为AB处于竞争关系,因而用户只能访问其中之一;初始之时用户可以随意访问任意一个客体,但是一旦访问过一个客体,就不能再访问与该客体有竞争关系的其他客体,或者叫做不能访问其利益冲突类。这里体现了自由选择和强制控制的微妙组合。

 

上一篇: 【安全预警】关于GoogleChrome代码执行漏洞… 下一篇: 网络诈骗的识别与防范
辽宁农业职业技术学院信息中心 版权所有 地址:辽宁省营口鲅鱼圈区 邮编:115009