第九章操作系统安全操作系统2主要内容操作系统安全性基本概念操作系统主要安全机制安全操作系统设计与实现9.1操作系统的安全性操作系统的安全需求系统安全的评估与标准Unix/Linux操作系统安全349.1.1操作系统的安全需求计算机信息系统安全性保密性。安全保密是指防止信息的非授权修改,这也是信息安全最重要的要求。完整性。完整性要求信息在存储或传输过程中保持不被修改、破坏和丢失。可靠性。可靠性是指系统提供信息的可信赖程度。可用性。可用性是指当需要时是否能存取所需信息,保护信息的可用性的任务就是防止信息失效或变得不可存取。操作系统安全的目标为用户信息处理提供安全的软件环境,为应用程序运行提供安全可靠的运行环境。操作系统的安全需求系统边界安全认证和鉴别禁止非法用户进入系统;系统使用权限管理机制不同用户配置不同的权限,每个用户只拥有他能够工作的最小权利;应用和数据的访问控制机制用户只能按照指定的访问控制安全策略访问数据;为系统用户提供可信通路保证系统登陆和应用层提供的安全机制不被旁路;系统操作的安全审计和管理检查错误发生的原因,或者受到攻击时攻击者留下的痕迹;569.1.2系统安全的评估与标准计算机信息系统(computerinformationsystem)由计算机及其相关的和配套的设备、设施(含网络)构成;可信计算基(trustedcomputingbase)计算机系统内保护装置的总体,包括硬件、固件、软件和负责执行安全策略的组合体。主体(subject)即主动实体,导致信息在系统中流动及改变系统状态的用户或进程等;客体(object)能包含或接受信息的被动实体,如文件、内存块等;敏感标记(sensitivitylabel)表示客体安全级别并描述客体数据敏感性的一组信息;安全策略(securitypolicy)系统资源使用和管理的安全规定和约定;系统安全的评估与标准TCSEC:TrustedComputerSystemEvaluationCriteria标准是计算机系统安全评估的第一个正式标准,具有划时代的意义。1970年由美国国防科学委员会提出,并于1985年12月由美国国防部公布。国标GB17859-1999:《计算机信息系统安全保护等级划分准则》该准则参照TCSEC标准规定了计算机信息系统安全保护能力的五个等级。用户自主保护级,系统审计保护级,安全标记保护级,结构化保护级,访问验证保护级POSIX.1e(PortableOperatingSystemInterfaceforComputerEnvironment))POSIX.1e是POSIX系列标准的一部分。它定义了POSIX.1规范的安全扩展部分;POSIX.1e只规定了安全特性的函数接口(SecurityAPIs)。71.TCSEC-共分A、B、C、D四类八个级别D:非安全保护C:自主保护级C1:允许客体拥有者决定该客体的访问控制权,是否可以被其他主体访问;C2:自主访问控制更加细致。考虑客体重用和系统审计;B:强制安全B1:标记安全保护,标记和强制访问控制;B2:结构安全保护,强制访问控制的范围扩大到所有的系统资源,给出证明,要求考虑隐蔽信道(存储),并计算出带宽。B3:安全区域保护,TCB不包含与安全无关的代码,并足够小到可以被测试、分析、证明,系统具有恢复能力。A:验证安全保护A1:验证设计级,设计可以被形式化的证明;A2:验证实现级保护,实现可以被形式化的证明。8系统安全的评估与标准9不分等级,无口令和权限控制,MSDOS主体自主决定的安全保护,UNIX/WINDOWSD级C1级C2级B1级B2级B3级A级C1+访问控制,广泛审核,Linux/WINDOWSNT标记安全保护,如SystemV等结构化内容保护,正式安全策略模型,MULTICS安全内核,高抗渗透能力,TrustedMach形式化校验级保护,SNS9.1.3Unix/Linux操作系统安全-机制用户标识和身份鉴别每个用户一个唯一的标识符(UID);系统给每个用户组也分配有一个唯一的标识符(GID);登录需要密码口令;基于保护位的自主访问控制安全机制用户:owner/group/other)访问权限:read/write/executable。日志信息包括:连接时间日志、进程统计和错误日志。10Unix/Linux操作系统安全-弱点用户数据保护机制并不能保证严格安全要求;超级用户成为系统安全瓶颈;缺乏必要的系统审计机制;用户认证方面的要求不够严格;系统自身的完整性保护问题,一旦加载恶意的核心模块,整个系统可能完全被非法控制。119.2操作系统安全机制标识和鉴别可信路径管理禁止客体重用最小特权管理访问控制技术隐蔽信道检测与控制安全审计129.2.1标识与鉴别用户标识(useridentification)——信息系统用以标识用户的一个独特符号或字符串;鉴别(authentication)——验证用户,设备,进程和实体的身份;Unix/Linux实现了基本的标识和鉴别机制。一般系统中有三类用户:超级用户,普通用户和系统用户。超级用户:root普通用户是指那些能够登录系统的用户系统用于特定的系统目的。例如用户nobody和lp13标识与鉴别UID和GID通常是唯一的,不同的用户拥有不同的UID,不同的用户组拥有不同的GID;用户登录到系统时,须输入用户名标识其身份;用户属性的信息主要存储在/etc/passwd和/etc/shadow系统文件中;系统会分配好用户目录。这块空间与系统区域和其他用户的区域分割开来。149.2.2可信路径管理任何进入系统都需要进行用户认证,同时进行相应的用户鉴别;可信路径-该路径上的通信只能由该用户初始化。实现可信路径能够准确辨认出用户登录的意图;提供无法冒充的用户界面;在用户认证和鉴别过程中,限制无关进程的活动;保证通信路径上的可靠性。1516禁止客体重用含义一个主体在释放资源时,一定要清除上面的信息。思考WINDOWS/LINUX内存释放后内容被清空了吗?WINDOWS/LINUX文件删除后硬盘上没有了吗?9.2.3最小特权管理最小特权管理系统不应给予用户超过执行任务所需特权以外的特权。实现将超级用户的特权划分为一组细粒度的特权,使得各种操作员或者管理员只具有完成其任务所必需的特权。一般系统的三种管理角色安全管理员,审计管理员,系统管理员。179.2.4访问控制技术访问控制功能管理所有资源访问请求,即根据安全策略的要求,对每个资源访问请求作出是否许可的判断;主要访问控制策略最小权益策略:按主体执行任务所需权利最小化分配权利。最小泄漏策略:按主题执行任务时所知道的信息最小化原则分配权利。多级安全策略:主体和客体按普通、秘密、机密、绝密等级别划分,进行权限控制。主要访问控制技术自主访问控制,强制访问控制181.自主访问控制(DiscretionaryAccessControl)访问控制方法它由资源拥有者分配访问权,在辨别各用户的基础上实现访问控制。实现方式基于行的DAC:这种方法在每个主体上都附加一个该主体可访问的客体的明细表;基于列的DAC:在客体上附加了一个主体明细表来表示访问控制矩阵的列;弱点权限管理比较分散,安全性差,不能抵御特洛伊木马的攻击。192.强制访问控制(MandatoryAccessControl)访问控制方法每个主体和每个客体都有既定安全属性,是否能执行特定的操作取决于二者之间的关系。实现方式由特定用户(管理员)实现授权管理;通常指TCSEC的多级安全策略:安全属性用二元组表示,记作(密集,类别集合),密集表示机密程度,类别集合表示部门或组织的集合。弱点应用的领域比较窄,使用不灵活,一般只用于军方等具有明显等级观念的行业或领域,完整性方面控制不够。20BLP多级强制访问控制策略两个重要的安全特性(公理)SimpleSecurityCondition:主体读客体,当且仅当用户的安全等级必须大于或等于该信息的安全级,并且该用户必须具有包含该信息所有访问类别的类别集合;*-Property(StarProperty):一个主体/用户要写一个客体,当且仅当用户的安全等级不大于该客体安全等级,并且该客体包含该用户的所有类别。安全特性保证了信息的单向流动,即信息只能向高安全属性的方向流动,219.2.5隐蔽信道检测与控制定义在强制式访问控制下,主体间以违背安全策略的形式传递信息的通信信道”。分类隐蔽存储通道(CovertStorageChannel)隐蔽时间通道(CovertTimingChannel)相关研究搜索:静态或动态计算带宽消除、减低带宽22隐蔽信道检测与控制隐蔽存储通道存在场景信息发送者直接或间接地修改某存储单元,信息接收者直接或间接地读取该存储单元。其产生的必要条件有以下四条1.发送和接收进程必须能够对同一存储单元具有存取能力;2.发送进程必须能够改变共享存储单元内容;3.接收进程必须能够探测共享存储单元内容的改变;4.必须有对通信初始化和发送与接收进程同步的机制;23隐蔽信道检测与控制时间隐蔽信道的存在场景信息发送者依据机密信息有规律地调节它对系统资源的使用,信息接收者通过观察系统来推断信息。产生的必要条件有以下四条1.发送和接收进程必须能够对同一广义存储单元具有存取能力;2.发送和接收进程必须具有时间参照物;3.接收进程必须能够探测到发送进程对广义存储单元内容的改变;4.必须有对通信初始化和发送与接收进程同步的机制;249.2.6安全审计(auditing)功能要求是一种通过事后追查增强系统安全性的安全技术;对涉及系统安全的操作做完整记录,并对这些记录进行必要的分析。审计处理记录系统中主体对受保护的客体的违规访问情况;系统中主体对某些特定客体的违规访问情况。审计机制在系统调用的总入口处设置审计点,审计系统调用,也就审计了所有使用内核服务的事件。要选择最主要的事件加以审计,不能设置太多的审计事件,以免过多影响系统性能。25安全审计Linux系统的审计连接时间日志——login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。进程统计——由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。错误日志——各种系统守护进程、用户程序和内核通过syslog向文件/var/log/messages报告值得注意的事件。2627主要内容操作系统安全性基本概念操作系统主要安全机制安全操作系统设计与实现9.3.1访问监视器(ReferenceMonitor)28主体审计数据库引用监视器客体访问控制数据库—安全策略访问监视器是一种负责实施安全策略的软件和硬件的结合体访问监视器只是一个理论上的概念,并没有一种实用的实现方法。一般人们把访问监视器的概念和安全内核和可信软件等同起来。9.3安全操作系统设计与实现9.3.2安全策略与安全模型常用安全策略自主存取控制策略强制存取控制(BLP)策略BIBA策略中国墙策略常用安全模型有限状态机模型访问控制矩阵基于角色的访问控制模型(RBAC)29安全体系结构——GFAC通用访问控制框架30安全体系结构——Flask结构31典型安全操作系统分析在TCSEC促进下研制了多种具有B1级别以上的安全操作系统产品IBM的安全Xenix、Bell实验室的SystemV/MLS、加拿大多伦多大学的安全TUNIS等早期的安全操作系统基本上是按照TCSEC中的要求为蓝本研制根据单一的整体安全策略对系统进行访问控制和防护。现代安全操作系统中已逐步实现了多种安全策略(SecurityPolicy)典型的是RSBAC和SELi