1、12 操作系统安全问题、操作系统安全问题、 安全概念及安全机制安全概念及安全机制 2.1 操作系统安全问题 2.2 操作系统安全概念 2.3 UNIX/Linux安全机制 2.4 Windows安全机制2.5 安全操作系统发展历程2022年4月23日星期六北京交通大学计算机学院 翟高寿2操作系统安全问题q安全配置管理问题口令、特权用户、远程访问q访问控制机制问题访问控制机制类型授权颗粒度q功能模块漏洞缓冲区溢出漏洞缓冲区溢出漏洞q后门问题2022年4月23日星期六北京交通大学计算机学院 翟高寿3缓冲区溢出-概念q指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据
2、上。理想情况是程序检查数据长度且不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统使用“堆栈”来保存现场和实现进程或函数之间的跳转控制,相关数据或地址会被临时储存在“堆栈”中,亦存在溢出问题2022年4月23日星期六北京交通大学计算机学院 翟高寿4基于堆栈溢出的攻击机理q通过往程序缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。譬如,入侵者可以利用堆栈溢出,通过改变函数调用返回地址,从而在函数返回时让其跳转到特定地址,或者使程序崩溃导致拒绝服务
3、,或者控制跳转执行恶意代码,或者盗取提升权限、为所欲为。2022年4月23日星期六北京交通大学计算机学院 翟高寿5攻击机理示例一q问题代码void function(char *str) char buffer16; strcpy(buffer,str); . q溢出结果分段错误Segmentation fault攻击根用户程序,执行类似exec(sh)的代码2022年4月23日星期六北京交通大学计算机学院 翟高寿6攻击机理示例二-12022年4月23日星期六北京交通大学计算机学院 翟高寿void main()void test(char p)void callCmd()7攻击机理示例二-22
4、022年4月23日星期六北京交通大学计算机学院 翟高寿反汇编程序可执行文件,查找函数callCmd() 的入口地址 : 004010308攻击机理示例二-32022年4月23日星期六北京交通大学计算机学院 翟高寿9攻击机理示例二-42022年4月23日星期六北京交通大学计算机学院 翟高寿10攻击机理示例二-52022年4月23日星期六北京交通大学计算机学院 翟高寿11攻击机理示例二-62022年4月23日星期六北京交通大学计算机学院 翟高寿12攻击机理示例二-72022年4月23日星期六北京交通大学计算机学院 翟高寿13攻击机理示例二-82022年4月23日星期六北京交通大学计算机学院 翟高寿
5、14攻击机理示例二-9A2022年4月23日星期六北京交通大学计算机学院 翟高寿15攻击机理示例二-9B2022年4月23日星期六北京交通大学计算机学院 翟高寿16攻击机理示例二-102022年4月23日星期六北京交通大学计算机学院 翟高寿17缓冲区溢出防范措施q限定堆栈数据段不可执行特例:Linux信号传递&GCC在线重用功能q规范代码编写针对存在安全漏洞的库函数(如strcpy、sprintf、strcat、gets、vsprintf、scanf)进行安全改写(插入参数检查等)安全程序设计语言与编译器2022年4月23日星期六北京交通大学计算机学院 翟高寿182 操作系统安全问题、操作系统
6、安全问题、 安全概念及安全机制安全概念及安全机制 2.1 操作系统安全问题 2.2 操作系统安全概念 2.3 UNIX/Linux安全机制 2.4 Windows安全机制2.5 安全操作系统发展历程2022年4月23日星期六北京交通大学计算机学院 翟高寿192.2 操作系统安全概念操作系统安全概念 2.2.1 软件可信分类 2.2.2 标识、鉴别与可信通路 2.2.3 访问控制机制2.2.4 最小特权管理机制2.2.5 安全审计2022年4月23日星期六北京交通大学计算机学院 翟高寿20软件可信分类q可信软件软件保证能安全运行,但系统安全仍依赖于对软件的无错操作人的因素无法回避人的因素无法回避
7、q良性软件软件并不确保安全运行,但由于使用了特权或对敏感信息的访问权,因而必须确信它不会有意地违反安全规则;良性软件的错误被视为偶然性的,且这类错误不会影响系统的安全q恶意软件软件来源不明。从安全的角度出发,该软件必须被视为恶意的,即认为即将对系统进行破坏2022年4月23日星期六北京交通大学计算机学院 翟高寿21安全内核、安全周界和客体重用q安全内核系统中与安全实现相关的部分,包括引用验证机制、访问控制机制和授权管理机制等。q安全周界包围着用于处理敏感信息设施的空间,其处于有效的物理和技术控制之下,并可防止未授权进入或敏感信息泄漏q客体重用对曾经包含一个或若干客体客体的存储介质的重新分配和重
8、用;出于安全考虑,其中应不得包含重新分配前的残留数据或信息2022年4月23日星期六北京交通大学计算机学院 翟高寿22主体与客体q主体系统中能够发起行为的实体举例说明q客体系统中被动的主体行为承担者举例说明q主体与客体间关系主体使信息在客体间流动?2022年4月23日星期六北京交通大学计算机学院 翟高寿232.2 操作系统安全概念操作系统安全概念 2.2.1 软件可信分类 2.2.2 标识、鉴别与可信通路 2.2.3 访问控制机制2.2.4 最小特权管理机制2.2.5 安全审计2022年4月23日星期六北京交通大学计算机学院 翟高寿24基于系统运行安全管理的安全机制划分 2022年4月23日星
9、期六北京交通大学计算机学院 翟高寿25标识q所谓“标识”,是指系统通过某种手段来确定用户的身份,并为用户设定唯一的名称即用户标识符来一一对应,类似于“证件”的作用。q为了识别和确定用户的身份,必须使用户排他性地拥有能够证明其身份的特殊信息如口令、指纹、视网膜、数字签名或声音特征等,且有关信息对其它用户保密。 2022年4月23日星期六北京交通大学计算机学院 翟高寿26鉴别q“鉴别”就是将用户标识符与用户发生关联的动作,也即“门卫”检查“证件”的过程。q就计算机及操作系统而言,鉴别一般发生在用户登录时,通常采用口令验证或物理鉴定(如磁卡或IC卡、数字签名、指纹识别、声音识别、视网膜识别等)的方式
10、。 2022年4月23日星期六北京交通大学计算机学院 翟高寿27口令验证q对于口令验证,首先由系统提示用户输入口令,然后判断用户输入的口令是否与系统中存在的对应用户的口令完全相同和正确。其间,系统必须采用将用户输入的口令和保存在系统中的口令相比较的方式,因此系统口系统口令表应基于特定加密手段及存取控制机制来令表应基于特定加密手段及存取控制机制来保证其保密性保证其保密性。q以口令机制作为鉴别手段简便易行,但是比较脆弱。通常,7个个以上字符长度且兼有数字和字母的口令被认为是“可计算安全可计算安全”的。 2022年4月23日星期六北京交通大学计算机学院 翟高寿28可计算安全q所谓“可计算安全”,简单
11、而言就是指:在有效的时间内,利用目前的软硬件技术,无法破解。q举例来说,一个商业计划书的加密强度使得破解它需要1000年以上的时间,那么,这个商业计划书的加密就是“可计算安全”的,因为破解出来的时候已经没有什么价值了。 q“可计算安全”并没有准确的界定方法或者说“可计算安全”并非真正的安全。更为保险的对策是,每隔一定的时间间隔就改变一次口令,以确保口令的保密性。此外,还必须保证用户与系统间交互特别是登陆过程的安全性和可信性,以防止某些黑客利用特洛伊木马( Trojan horse )性质的假登录程序窃取口令。 2022年4月23日星期六北京交通大学计算机学院 翟高寿29可信通路(Trusted
12、 Path)q顾名思义,可信通路即指跳过应用层而直接在用户与安全内核之间开辟的一条的可信任的交互通道及功能实现。q总所周知,用户是通过应用程序及操作系统接口来与安全内核相互作用的。因此,当用户在执行系统登录、安全属性定义、文件安全级别改变等安全敏感操作时,应保证用户确确实实是在与安全内核而非特洛伊木马程序打交道。换句话说,系统必须通过提供可信通路的安全机制来防止特洛伊木马程序模仿登录过程以窃取用户口令,并保证特权用户执行特权操作时终端输入信息的非泄密性和输出信息的正确性。 2022年4月23日星期六北京交通大学计算机学院 翟高寿30关于可信通路的思考2022年4月23日星期六北京交通大学计算机
13、学院 翟高寿31可信通路构建中的系统层次考量2022年4月23日星期六北京交通大学计算机学院 翟高寿32关于可信通路的思考q操作系统层级q支撑软件层级q应用程序层级2022年4月23日星期六北京交通大学计算机学院 翟高寿33构建可信通路的两种方法q构建可信通路的简单方法是为每个用户提供两台终端,一台用于完成日常的普通工作,另一台用于实现与安全内核的硬连接及专职执行安全敏感操作。显然,此法具有代价昂贵的致命缺陷,同时还会引入诸如如何确保 “安全终端”的安全可靠及如何实现“安全终端”和“普通终端”的协调工作等新问题。q更为现实的方法是要求用户在执行敏感操作前,使用一般的通用终端和向安全内核发送所谓
14、的“安全注意符”(即不可信软件无法拦截、覆盖或伪造的特定信号)来触发和构建用户与安全内核间的可信通路。 2022年4月23日星期六北京交通大学计算机学院 翟高寿34安全注意符与安全注意键q现代操作系统中,安全注意符一般由安全注意键( Secure Attention Key,简记作SAK)即系统指定的一个或一组按键来激活。例如,x86平台的Linux环境中,规定“Alt+SysRq+K”为安全注意键。缺省情况下,安全注意键处于关闭状态,需要用命令 echo 1 /proc/sys/kernel/sysrq 来打开(即将CONFIG_MAGIC_SYSRQ设置为真值)。当然,也可将该命令写入登录
15、脚本中,以减少不必要的麻烦。其实,在WINNT/2000/XP系列操作系统中,也规定了具有类似作用的安全注意键(不过,微软公司称其为Secure Attention Sequence,简记作SAS),即“Ctrl + Alt + Del”按键组合,它们曾在DOS系统中充当热启动命令。 2022年4月23日星期六北京交通大学计算机学院 翟高寿35基于安全注意键的可信通路2022年4月23日星期六北京交通大学计算机学院 翟高寿36可信通路实现技术关键环节q截取键盘输入,即只要有键盘事件发生,就陷入系统内核进行解释,并根据其扫描码判断是否为“安全注意符”。q根据键入“安全注意键”的键盘事件来源,从当
16、前终端列表中找到当前活跃的终端或者X-Window。q根据进程标识符及进程家族关系,杀死当前活跃终端上的全部用户进程。这主要是基于“作为可信计算基组成部分的系统内核(具体体现为系统进程)肯定可靠,而用户进程则不一定可靠”的假设与考虑。 2022年4月23日星期六北京交通大学计算机学院 翟高寿372.2 操作系统安全概念操作系统安全概念 2.2.1 软件可信分类 2.2.2 标识、鉴别与可信通路 2.2.3 访问控制机制2.2.4 最小特权管理机制2.2.5 安全审计2022年4月23日星期六北京交通大学计算机学院 翟高寿38访问控制机制目标与任务q规范和控制系统内部主体对客体的访问操作,防止系
17、统资源的非授权访问,使系统在合法的范围内使用确定可存取访问客体的主体确定存取权限(RWE)实施存取操作2022年4月23日星期六北京交通大学计算机学院 翟高寿39存取访问控制q规范和控制各类主体访问本系统中客体的决策与实施过程q实现机制访问控制矩阵多级访问控制q存取访问控制策略自主访问控制 & 强制访问控制2022年4月23日星期六北京交通大学计算机学院 翟高寿40存取访问控制的一般模型 2022年4月23日星期六北京交通大学计算机学院 翟高寿41自主访问控制q客体的拥有者可以按照自己的意愿精确地指定系统中的其它主体对此客体的访问权q“自主”还指对某客体具有特定访问权限授予权的用户能够自主地将
18、关于该客体的相应访问权或访问权的某个子集授予其它主体q实现机制访问控制矩阵访问权限表访问控制表2022年4月23日星期六北京交通大学计算机学院 翟高寿42访问控制矩阵 客体 主体O1O2OmS1xr|wS2rwxSnx2022年4月23日星期六北京交通大学计算机学院 翟高寿43访问权限表q基于访问控制矩阵行的实现形式 q操作系统应为每个主体保存一张标明该主体可访问客体的权限明细表,查阅该表可以得到主体对客体的访问模式q主体可以很方便地通过将自己的访问权限拷贝给其它主体来传递对客体的访问权限;反之,也可以撤消其它主体的访问权限2022年4月23日星期六北京交通大学计算机学院 翟高寿44访问控制表
19、q基于访问控制矩阵列的实现形式 q操作系统应为每个客体附加一张可以对其进行访问的主体及访问权限明细表 q可访问客体的主体非常多时,实施效率将大大降低用户分组策略2022年4月23日星期六北京交通大学计算机学院 翟高寿45访问权限表与访问控制表的比较q策略实施时需要鉴别的实体不同q保存位置不同访问权限表存于系统的用户和文件相联系的位置访问控制表则一般依附于文件系统 q适用场合访问权限表多用于分布式系统中访问控制表多用于集中式系统中q优势访问权限表易于实现权限传递访问控制表易于实现访问权限的浏览与回收 2022年4月23日星期六北京交通大学计算机学院 翟高寿46强制访问控制q用于将系统中的信息从密
20、级和分类(或称为范畴集)两方面进行管理,并保证每个用户只能够访问那些被标明能够由它访问的信息q系统中的每个主体和每个客体都被赋予了相应的安全属性(一般指安全级和范畴两个方面)由特定的安全部门以手工方式或操作系统以自动方式,并按照严格的规则来进行设置,任何主体不能改变其自身或任何客体(包括其所拥有的客体)的安全属性q当一个主体访问某客体时,应通过比较主体和客体的安全属性并根据强制访问控制相关规则,从而确定是否允许该主体对相应客体的访问q用户不能通过简单地授权其它用户关于特定文件的存取权限来实现文件的共享,这即所谓“强制”的含义2022年4月23日星期六北京交通大学计算机学院 翟高寿47多级安全策
21、略(多级访问控制)q军事安全策略运用到计算机系统的数学描述和形式定义,为计算机系统内的所有信息实体分配相应的安全级和范畴集安全级按级别顺序从高到低可分为绝密、秘密、机密和公开等四个级别,而范畴集则与特定的系统应用领域及信息特征相关联 q规定了主体对客体合法存取访问的限制约束条件,也即“当且仅当主体与客体的安全级和范畴存在某种意义上的支配关系时,主体才可以对相应的客体进行特定方式的存取访问” 2022年4月23日星期六北京交通大学计算机学院 翟高寿48BLP安全模型q基本目标是详细描述计算机信息系统的多级操作规则q给定了两条最基本的存取访问控制规则 简单安全特性规则,即一个主体对客体进行读访问的
22、必要条件是主体的安全级不低于客体的安全级且主体的范畴集包含客体的范畴集,即主体只能向下读,不能向上读*特性规则,即一个主体对客体进行写访问的必要条件是客体的安全级不低于主体的安全级且客体的范畴集包含主体的范畴集,即主体只能向上写,不能向下写2022年4月23日星期六北京交通大学计算机学院 翟高寿49BLP安全模型中的多级访问控制2022年4月23日星期六北京交通大学计算机学院 翟高寿50BLP缺陷及其它安全模型q缺乏完整性控制,即不能控制“向上写”操作,而这类操作存在可能被用于构建隐蔽通道等潜在问题q引入了可信主体可信主体的概念,并将其定义为实际系统中为保证系统正常运行和管理而不受*特性约束的
23、主体,故存在可信主体访问权限过大和不符合最小特权原则最小特权原则的弊端 qBiba等在1977年提出用于保护信息完整性的伯巴模型q有鉴于关于特定应用安全需求的各种安全策略或安全模型的局限性,多安全策略支持框架成为存取访问控制的宏观解决方案Marshall Abrams和LaPadula提出的存取控制广义框架(Generalized Framework for Access Control,简称GFAC)2022年4月23日星期六北京交通大学计算机学院 翟高寿51自主/强制访问控制的比较q自主访问控制具有权限分配粒度较小、灵活性较高的优势,故普通用户计算机上的操作系统多采用自主访问控制策略q由于
24、强制访问控制的安全性要比自主访问控制提高不少,所以强制访问控制在军事和政府等关键部门计算机上的操作系统应用较多q二者均具有配置工作量大,效率低的缺点,这在具体系统实现过程中应引起特别关注并尽可能提供必要的自动配置工具或辅助配置工具q实际操作系统中,二者通常结合使用,一方面可以通过自主访问控制防止其它用户非法获取系统中的信息;另一方面,通过强制访问控制提供更强有力的安全保护方式,使用户不能通过意外事件和有意识的误操作逃避安全控制 2022年4月23日星期六北京交通大学计算机学院 翟高寿522.2 操作系统安全概念操作系统安全概念 2.2.1 软件可信分类 2.2.2 标识、鉴别与可信通路 2.2
25、.3 访问控制机制2.2.4 最小特权管理机制2.2.5 安全审计2022年4月23日星期六北京交通大学计算机学院 翟高寿53引入最小特权的必要性q在引入强制访问控制机制的同时,并未就传统操作系统关于超级用户与普通用户的简单分类体系进行任何改进,而是直接使用了所谓可信主体可信主体的概念,因而自然继承和遗留下超级用户或可信主体访问权限过大及系统安全难以保障的潜在问题。所以,在安全操作系统构建过程中必须要引入最小特权特权管理的实现机制,以防止由于滥用特权或特权账号被盗而可能带来的任何安全威胁。2022年4月23日星期六北京交通大学计算机学院 翟高寿54特权态和特权指令q计算机系统执行状态可分为特权
26、态(又称系统态或管态)和非特权态(又称用户态或目态),处于特权态下的程序可以调用和执行包括特权指令在内的任何指令,而处于非特权态的程序则只能调用和执行非特权指令;特权指令可以存取访问所有的寄存器和整个内存空间,而非特权指令则只能存取访问受限范围的寄存器和内存空间。2022年4月23日星期六北京交通大学计算机学院 翟高寿55特权q传统的Linux 或Unix操作系统通常把用户划分为超级用户和普通用户等两类,并规定超级用户拥有全部特权,而普通用户没有特权。此处的“特权”则指关于某些系统管理命令的执行权以及某些文件或文件目录等系统资源的访问权,其着眼于整个系统的配置维护、安全管理和正常运行。q对于传
27、统Linux操作系统的这种简单用户分类方法存在极大的安全缺陷和安全隐患。超级用户口令被盗取或超级用户身份被盗用 安装后门或发送病毒代码等盗窃资料、远程控制乃至瘫痪整个系统可信主体可信性同样面临系统漏洞、缓冲区溢出问题2022年4月23日星期六北京交通大学计算机学院 翟高寿56最小特权管理基本思想q在安全操作系统及信息安全领域须将“特权”的概念进一步细化和精确化,即把“特权”规定为某些执行体(如管理员或用户、会话、进程、线程等)所具有的违反系统安全策略的操作能力。举例来说,系统可以定义一个“超越强制访问写”的特权P_MACWRITE,即指拥有这种特权的“执行体”可以不受强制访问控制中只能“上写”
28、的写操作限制;若系统定义有一个“超越强制访问读”的特权P_MACREAD,即指拥有相应特权的“执行体”可以不受强制访问控制中只能“下读”的读操作限制。 2022年4月23日星期六北京交通大学计算机学院 翟高寿57最小特权原则q把系统的特权划分为一系列细粒度的特权,并在授予“执行体”特权时仅仅授予其完成任务所必需的特权,也就是说不授予其超过执行任务所需特权以外的特权。 取消超级用户特权细化和分组针对程序和命令授权,如规定提供文件共享服务的程序不能运行某些敏感进程等 2022年4月23日星期六北京交通大学计算机学院 翟高寿58最小特权管理实现机制q根据相关实现过程所基于主体主体的不同,可将其实现方
29、式划分为基于用户的最小特权管理机制、基于文件的最小特权管理机制以及基于进程特权状态的最小特权管理机制等若干种。需要指出的是,在具体的实现和实施过程中,经常把两种以上的最小特权管理方式捆绑到一起共同形成系统的特权管理机制。2022年4月23日星期六北京交通大学计算机学院 翟高寿59基于用户的最小特权机制q根据用户的标识符及账号来分配特权、检查特权和实施特权访问,同时把原“超级用户”级别的系统管理员所拥有的特权细化和分解为一组细颗粒度的特权,经重新整合后形成一系列分别完成特定系统管理功能所必需的不同的最小特权集合。在此基础上,为系统设置不同的系统管理员(或系统操作员),使分别承担特定的系统管理功能
30、并拥有相应的最小特权集合,在具体实施过程中应尽量杜绝对某一用户赋予多于一种以上的系统管理员职责。换句话说,用系统新设置的系统管理员群体替代了原有的“超级用户”级别的系统管理员。所以,在一定程度上可以减少由于超级用户口令丢失或因超级用户运行错误软件及执行误操作等带来的安全损失。2022年4月23日星期六北京交通大学计算机学院 翟高寿60超级用户分解策略举例q在系统中定义和设置如下几种系统管理员安全管理员,负责根据安全策略和安全习惯完成系统安全性相关的各种决定审计管理员,负责安全审计系统及审计归档的控制安全操作员,执行安全相关即可能影响安全级及可信计算基的日常例行操作网络管理员,负责网络通信及管理
31、远程管理员,拥有远程管理、控制及执行远程进程调试的特权与职责普通操作员,负责执行安全无关(即不会影响安全级及可信计算基)的日常系统管理例行操作2022年4月23日星期六北京交通大学计算机学院 翟高寿61举例说明:红旗Linux安全操作系统q取消了超级用户级别的系统管理员,同时根据系统管理任务及所谓的三权分立方式设置了三种管理员并赋予相应的特权,即系统管理员、安全管理员和审计管理员:系统管理员负责系统的安装、管理及日常的维护工作,安全管理员负责安全属性的设定与管理,审计管理员负责系统审计行为的配置和系统审计信息的管理。于是,三者之间可以互相制约、相互牵制。进一步说,如果黑客截获和破译了系统管理员
32、的口令,并随后利用系统管理员特权安装了后门,但其同时却因不能掌控审计管理员账号故而无法删除有关审计信息的前提条件下,审计管理员将可以从审计信息中找到黑客入侵的踪迹并为发现和拆除后门或采取其它应对措施提供安全保障。 2022年4月23日星期六北京交通大学计算机学院 翟高寿62基于用户的最小特权机制缺陷分析q即便是同一用户,在不同的时候所要完成的任务及所需的权限也往往可能不同,固定不变地使其始终保持拥有某些特权显然也可能诱发由于用户疏忽或误操作而可能带来的安全隐患,同时也会增大某些非法或敌对势力利用木马等黑客工具入侵成功的概率。进一步说,用户所完成任务通常是与相关进程所加载的可执行文件相关联的,因
33、此,基于可执行文件来细化用户特权便成为首要的可选途径。 2022年4月23日星期六北京交通大学计算机学院 翟高寿63基于文件的最小特权机制基本思想q在可执行文件及进程级别上构建和设置特权集,同时规定进程创建及加载可执行文件的特权传递与计算机制。换句话说,基于文件的最小特权管理机制实际上就是通过在可执行文件和进程级别上引入特权集从而将用户级别的特权主体进一步细粒度化的方式。在此基础上,即使拥有某些特定特权的用户不小心或“意外”运行了木马守护程序守护程序,也会由于没有赋予该木马守护程序相应特权而使其无法执行安全敏感操作和达到窃取机密信息等危害系统安全目的2022年4月23日星期六北京交通大学计算机
34、学院 翟高寿通常作为后台进程运行,且通常作为后台进程运行,且不属于任何终端会话,是许不属于任何终端会话,是许多系统服务如网络多系统服务如网络/打印服打印服务的实施模式。网络类守护务的实施模式。网络类守护程序一般需程序一般需“监听监听”想要更想要更多特殊网络服务的连接,并多特殊网络服务的连接,并处理所有被认为是套接字尝处理所有被认为是套接字尝试的临时连接的合法尝试。试的临时连接的合法尝试。64基于文件的最小特权机制实施要则q通常,基于文件的最小特权管理机制经常和基于用户的最小特权管理机制相结合共同使用。一方面,根据用户标识符及帐号来确定相应用户祖先进程的特权集;另一方面,基于所加载的可执行文件来
35、进一步确定子孙进程特权的增、减。综合这两方面,将可形成当前进程的最大/可继承/工作特权集。每当一个进程请求执行一个特权操作时,可通过判断该特权操作是否属于进程的工作特权集来决定是否准予执行对应特权操作。 2022年4月23日星期六北京交通大学计算机学院 翟高寿65基于文件的最小特权机制实现要领A A根据系统安全敏感操作类型进行特权划分和确定系统的特权总集。利用特权管理机制为系统每个合法用户帐号分配和设置用户的特权集。为每个可执行文件构建和设置两个互不相交的特权集,即固有特权集和可继承特权集。前者给出任何加载和执行该文件的进程即需具备和必须具备的特权类型,而后者则给出当且仅当对应父进程拥有且可继
36、承当前进程才可拥有的特权类型。二者均可为空集,且应根据程序的功能操作性质及安全影响因素来进行设置。固有特权集提供了用户或进程能够完成只有拥有其所不具备的某些特权方可实现的操作机制。2022年4月23日星期六北京交通大学计算机学院 翟高寿66基于文件的最小特权机制实现要领B B规定系统中的每个进程拥有三个特权集,一为最大特权集,指进程可能拥有的最大特权集合;二为可继承特权集,指当前进程拥有且可被其子孙进程继承的特权集;三为工作特权集,指当前进程可用即有效的特权集,代表着用户的当前特权能力。它们均根据其父进程的最大/可继承特权集及所加载可执行文件的固有特权集和可继承特权集共同决定。通常,可设定用户
37、的特权集作为用户始祖进程的最大/可继承/工作特权集;同时规定父进程通过fork()系统调用创建一个子进程时,其最大/可继承/工作特权集将会完整地传递给其子进程;但当一个进程通过exec()族系统调用来加载可执行文件时,其可继承/工作特权集将进行重新计算。2022年4月23日星期六北京交通大学计算机学院 翟高寿67基于文件的最小特权机制实现要领C C进程执行exec()族系统调用时,其特权计算公式为 Pinherit = Pinherit Pinheritable Pwork = Pmax(Pinherit Pinherent )在构建基于Linux的安全操作系统时,为支持相关最小特权管理机制,
38、应调整和修改Linux操作系统关于fork()和exec()族系统调用的原有程序代码(主要分布在源程序文件kernel/system_call.s、kernel/fork.c及fs/exec.c中),即在其中的copy_process()和do_execve()等函数中加入特权传递和计算相关的内容,同时构建可执行文件特权管理配置数据库(或简称为程序特权库)以存放系统中各可执行文件的固有特权集和可继承特权集。 2022年4月23日星期六北京交通大学计算机学院 翟高寿68基于文件的最小特权机制结构框架2022年4月23日星期六北京交通大学计算机学院 翟高寿69进程特权状态引入理由q在系统的实际使用
39、和运行过程中,即便是对于同一用户的同一进程,其在不同的时候所要完成的具体任务及所需的特权也往往会有所不同。鉴于此,可引入进程特权状态的概念及基于进程特权状态的最小特权管理机制,以实现特权主体的进一步细化及保证进程级别上的特权的按需分配和动态配置,从而更大程度地提高整个系统的安全系数。2022年4月23日星期六北京交通大学计算机学院 翟高寿70进程特权状态概念及机制实施要则q所谓进程特权状态,是指根据进程执行逻辑及特权申请与分配策略划分形成的不同的进程执行阶段,它反映和标志着进程特权的动态变化,从某种意义上可看作是对应着更细颗粒度的特权主体。进程特权状态的演化应与进程的执行逻辑保持一致q基于进程
40、特权状态的最小特权管理机制立足于以进程(程序)逻辑为中心来进行特权控制,并根据进程所处不同执行阶段及其执行逻辑来为进程分配不同的特权集。类似地,由用户特权及可执行文件特权所决定的进程工作特权集将作为对应进程在执行两次系统调用(包括执行一次exec()系统调用到进程运行结束的情况)期间的特权限制性约束。 2022年4月23日星期六北京交通大学计算机学院 翟高寿71文件传输服务程序进程特权状态划分q一个文件传输服务程序(如wu-ftp)可根据其执行逻辑和特权需求特点划分为三个执行阶段即三种进程特权状态 2022年4月23日星期六北京交通大学计算机学院 翟高寿72文件传输服务程序进程特权状态描述1q
41、连接登录状态文件传输服务程序启动运行后,便开始等待和监控用户的连接操作。一旦有连接发生,便为该连接创建一个新的服务进程,然后进行用户身份鉴别。其间,服务进程应该具有端口绑定、进程标识符设置等特权。而当用户通过身份鉴定为合法时,应及时设置服务进程的有效用户标识符为连接用户的真实标识符,并取消有关特权和转至下一执行阶段,即常规服务状态。2022年4月23日星期六北京交通大学计算机学院 翟高寿73文件传输服务程序进程特权状态描述2q常规服务状态用户连接和登录成功,便可以执行一般的文件传输服务操作。其间,服务进程通常不需要任何特权,且只能在系统相关存取访问控制安全策略的限制前提下支持连接用户展开文件传
42、输及存取操作。2022年4月23日星期六北京交通大学计算机学院 翟高寿74文件传输服务程序进程特权状态描述3q特殊服务状态在文件传输服务过程中,如果连接用户需要执行诸如文件归档tar、压缩compress之类的外部命令或改变文件属主、删除文件之类的敏感命令,将涉及到某些特权如文件属主修改、进程标识符设置、可执行文件加载等的使用。所以应设立要求特权支持的特殊服务状态,以与不具任何特权的常规服务状态相区别,且在文件传输服务过程中一旦发生此类特殊服务则应转换至特殊服务状态,并授予进程相关特权以支持有关特殊服务操作。进一步说,一旦此类特殊服务操作完成,还应及时取消相关特权后才予返回,从而保证再次转换至
43、常规服务状态。 2022年4月23日星期六北京交通大学计算机学院 翟高寿75文件传输中进程特权状态效果说明q一般而言,黑客通常是在连接成功后,利用文件传输服务程序存在的缓冲区溢出等漏洞来盗取系统特权身份或展开其它破坏活动的。但是,在基于进程特权状态的最小特权管理机制支持下,将使用户连接登录成功后进入一个没有任何特权的常规服务状态,而且相关特权服务操作完成后能及时取消特权和返回到常规服务状态,所以在整个文件传输服务进程生命周期中,既不可能盗取系统特权身份,也不可能执行非法操作得逞。 2022年4月23日星期六北京交通大学计算机学院 翟高寿76进程特权状态最小特权机制方式1 1q由Linux安全操
44、作系统提供关于特权集的申请与回收的系统调用,并辅以进程工作特权集作为处于不同特权状态的进程特权的限制性约束(即始终保证处于任何特权状态的进程所拥有的当前特权集不得超出其工作特权集的范畴)。同时,规定可信程序设计和编制过程中关于特权的按需申请、分配与及时回收的基本指导原则,并通过可信程序的安全测试与认证来确保有关指导原则的落实与执行。其间,进程特权状态直接表现为进程根据自身执行逻辑所需和动态申请而形成的当前特权集。在进程执行的过程中,每当发生进程执行特权操作的申请要求时,均应将对应特权操作类型与进程所拥有的当前特权集进行从属关系判定,进而裁决是否准予支持和完成相应操作。另外,每当进程根据自身的执
45、行逻辑和利用特权集申请系统调用进行特权申请的时候,应检查所申请特权集是否超出该进程的工作特权集,超出则应予拒绝。 2022年4月23日星期六北京交通大学计算机学院 翟高寿77进程特权状态最小特权机制方式2 2q在现有Linux操作系统的基础上,利用进程属性中的特权相关部分(如进程用户和组标识符集,包括uid、euid、suid、fsuid、gid、egid、sgid、fsgid)作为进程特权状态划分与辨识的基本依据,同时选用可能使进程特权相关属性发生改变的系统调用如exec()族系统调用和set*id()系统调用(包括setuid()、seteuid()、setsuid()、setfsuid(
46、)、setgid()、setegid()、setsgid()、setfsgid())等作为导致进程特权状态之间发生改变的所谓进程特权状态迁移事件集的构成元素,并完善系统特权划分、配置、计算及检查机制。另外,还应根据程序执行逻辑和特权需求情况进行可信程序的进程特权状态的划分并形成对应程序的进程特权状态及状态转换配置脚本,以指导进程执行过程中关于进程特权状态改变事件的监控、进程特权状态的演化及进程当前特权集的重新分配与计算等。 2022年4月23日星期六北京交通大学计算机学院 翟高寿78最小特权管理实现方式评述1q基于用户的最小特权管理机制立足于在用户层级上实现特权主体的细化分解,而基于文件的最小
47、特权管理机制和基于进程特权状态的最小特权管理机制则致力于进程层级上的特权的细化分解及授予控制。相对而言,基于用户的最小特权管理机制无论实现起来还是实施使用均要简便些,不过其应对系统潜在漏洞等问题带来的安全隐患的防御能力较低;基于文件的最小特权管理机制和基于进程特权状态的最小特权管理机制则相反,尽管可以凭借细粒度的授权方式更加有效地抵御系统漏洞带来的安全隐患及可能的黑客攻击,但鉴于授权配置工作量的急剧加大,将会使系统安全管理员的工作变得非常繁重并因此可能造成主观失误,所以系统实现难度和复杂度较大,易用性也较差2022年4月23日星期六北京交通大学计算机学院 翟高寿79最小特权管理实现方式评述2
48、q最小特权管理的三种实现机制之间并非绝对互相排斥,而是具有极强的继承性和兼容性;同时,有关最小特权管理机制的授权配置工作并非安全操作系统自身构建所必需,安全操作系统所必需完成的核心工作主要包括系统特权体系的组织形成、授权机制及存取检查机制的建立健全等。换句话说,可以在安全操作系统环境运行的可信程序层级上(根据对应可信程序的设计目标、应用场合及所涉信息的重要程度或对系统安全的影响程度)进行最小特权管理实现方式的灵活选择,且相关授权配置工作可以相对独立进行。为此,在构建安全操作系统时,应该采取集大成思想及同时融入最小特权管理的三种实现机制,并给出可信程序设计开发过程中包括最小特权管理实现方式选择在
49、内的安全策略指导建议与基本原则。特别地,通过可信程序的安全测试与可信认证环节的增强来保证整个计算机信息系统(安全操作系统与其上运行的可信程序)的安全。 2022年4月23日星期六北京交通大学计算机学院 翟高寿802.2 操作系统安全概念操作系统安全概念 2.2.1 软件可信分类 2.2.2 标识、鉴别与可信通路 2.2.3 访问控制机制2.2.4 最小特权管理机制2.2.5 安全审计2022年4月23日星期六北京交通大学计算机学院 翟高寿81安全审计的主要目标 q安全审计是安全操作系统的重要功能及组成部分,其旨在对系统中的安全相关活动进行记录、监视及审核,并及时检测和判定非法用户对计算机系统的
50、渗透或入侵行为。作为一种事后追查的手段,其通过构建和拥有足够精细颗粒度的安全审计记录以方便系统安全事故发生后的准确定位和有效处理;与报警功能相结合,则每当发生安全危害事件或执行系统安全相关操作时,还应能够进行及时的事故预测和报警提示。 2022年4月23日星期六北京交通大学计算机学院 翟高寿82安全审计事件 q通常,安全操作系统将所有要求审计或可以审计的安全相关的用户动作都归纳成一个个可区分、可识别及可标识的用户行为,以作为可记录的安全审计单位,即安全审计事件。简言之,安全审计事件是安全操作系统审计用户活动的最基本单位。q安全操作系统一般将安全审计事件划分为三类,即注册事件(主要涉及标识与鉴别