操作系统/虚拟化安全知识域:操作系统安全原则和模型

admin 2023年1月6日10:40:37评论16 views字数 3029阅读10分5秒阅读模式

操作系统安全原则模型

由于操作系统/或虚拟机管理程序是系统中所有高级组件安全性的基础因此经常听到他们的设计根据安全原则SaltzerSchroeder以及安全模型Bell-LaPadulaBiba访问模型接下来几个小节的主题虽然SaltzerSchroeder的安全原则可以说是最著名的但我们应该提到其他人已经添加到列表中例如我们在本文中讨论的重要补充包括最小化可信代码量原则可信计算基础和有意原则使用

操作系统/虚拟化安全知识域:操作系统安全原则和模型

表2:Saltzer&Schroeder的安全原则

 操作系统中的安全原则

从安全角度来看,不同安全域之间的墙应该尽可能高和尽可能厚,这是完美的隔离。域之间的任何交互都应遵循完全调解原则进行严格的调解,并且安全域应具有尽可能少的共同机制(尤其是涉及全局变量等共享状态的机制),并遵守最小公共机制原则。例如,在将带有全局变量的共享过程添加到操作系统内核和使其在每个进程以隔离方式运行的用户空间库中可用之间进行选择,我们应该选择后一个选项,假设它不会过多地增加代码大小或违反任何其他原则或约束。此外,中介应遵循故障安全默认值原则:决定域是否可以访问其他域的资源的策略应为:否,除非。换句话说,只有明确授权的域才能访问资源。最小通用机制和机制经济原则还建议我们应该最小化应该信任的代码量,即可信计算基础(TCB)。由于研究表明,即使是优秀的程序员,每1000行代码也会引入16个错误,假设代码的复杂性相似,因此TCB这意味着更少的错误,更小的攻击面以及更好的机会自动或手动验证TCB相对于正式规范的正确性。

关于图中的设计1、我们注意到,如果只有一个域,TCB包括系统中的所有软件,包括应用程序。所有机制都是通用的,几乎没有故障安全默认值或严格执行调解的概念。对于单片操作系统设计,情况要好一些,因为至少操作系统与应用程序和应用程序彼此隔离。但是,操作系统本身仍然是单个安全域,继承了Figure的缺点。1a)段。多服务器操作系统的极端分解更适合强制实施安全性:我们可以在具有故障安全默认值的最小尺寸mi-crokernel中的各个操作组件之间强制执行调解。在其他设计中,操作系统安全域中的许多代码(如驱动程序代码)不再是TCB的一部分。Unikernels是一种有趣的替代方法:原则上,操作系统代码和应用程序在单个域中运行,但libOS代码尽可能小(机制经济)和不同应用程序通用的机制被最小化。资源分区也可以完全在单内核级别进行调解。对于单内核应用程序,TCB仅包含底层虚拟机监控程序/外内核及其决定使用的操作系统组件。此外,实现操作系统组件的库仅在此应用程序的TCB中,因为它不被其他人共享。

另一个原则,即开放式设计原则,可能更具争议性。特别是,关于开源(这是坚持原则的一种方式)与闭源及其在安全性方面的优点和缺点的讨论已经无休止。开放式设计的优点是任何人都可以研究它,从而增加了发现一般错误,特别是漏洞的可能性3.AugusteKerckhoffs对加密系统也提出了类似的观察,并且经常被翻译为人们不应该通过默默无闻来依赖安全性。毕竟,默默无闻不太可能永远持续下去,当坏人在好人之前发现弱点时,你可能会遇到真正的问题。相反的论点是,在开放式设计中,他们发现错误的可能性更高。

相比之下,毫无疑问,具有严格分解的设计比具有严格分解的设计符合最小特权原则和特权分离原则其中大多数代码在单个安全域运行具体而言,整体式系统没有真正分离不同操作系统组件的权限并且操作系统始终以所有权限运行。换句话说,负责获取当前进程的进程标识符的操作系统代码运行时具有修改页表、创建根目录的电源帐户,修改磁盘上的任何文件,读取和写入任意网络数据包,并在认为合适的任何时间使整个系统崩溃。多服务器系统非常不同,可能会限制单个操作系统组件可以进行的调用,从而将它们的权限限制为所需的权限以完成他们的工作,遵守最小权限原则POLA),不同组件具有不同的权限特权分离原则)。Unikernels为处理此问题提供了一种不同且有趣的可能性。虽然大多数组件单个域中运行(没有特权分离或POLA),操作系统被精简为仅部分需要运行应用程序,而Unikernel本身可以仅以为此目的所需的权限运行。

当然,无论安全性多么重要,心理可接受性原则说,最终系统仍然应该可用。鉴于操作系统安全性的复杂性,这并非微不足道。虽然SELinuxQubesOS等安全强化操作系统比许多其他操作系统具有明显的安全优势,但很少有普通用户使用它们,甚至更少有人有信心自己配置安全设置。

操作系统中的安全模型

操作系统中的一个重要问题涉及信息流谁可以读取和写入哪些数据传统上我们在所谓的访问控制模型中描述系统范围的策略

例如Bell-LaPadula模型是一种安全访问模型用于保护信息的机密性最初是为美国政府创建的1970年代美国军方面临这样一种情况即许多具有不同许可级别的用户都将使用相同的大型计算机这需要一种称为多级安全性的解决方案他们如何确保敏感信息永远不会泄露给未经授权的人员如果遵循David BellLeonard La Padula设计的模型系统可以处理多个级别的敏感信息例如未分类机密绝密和多个许可级别例如访问未分类和机密的许可但不是顶级的秘密数据并控制敏感信息的流动Bell-LaPadula通常被描述为向下阅读向上书写换句话说具有许可级别机密的主体可以创建机密或绝密文件但不能创建非机密文件因为这会有泄露机密信息的风险同样用户只能读取其自身安全级别或低于其安全级别的文档解密或降低安全级别例如将数据从绝密复制到机密文档只能由特殊的可信明确完成科目严格执行此模型可防止敏感信息泄露给未经授权的用户

Bell-LaPadula只担心保密性相比之下Biba模型安排访问模式以确保数据完整性就像在Bell-LaPadula中一样对象和主体具有多个级别的完整性该模型确保较低级别的主体无法修改较高级别的数据这通常被描述为向上阅读写下来Bell-LaPadula完全相反

Bell-LaPadulaBiba是操作系统在调解对资源如内存中的数据或磁盘上的文件的访问时应用的访问控制模型具体来说它们是强制访问控制MAC模型其中系统范围的策略确定哪些用户具有读取或写入哪些特定文档的许可级别并且如果没有适当的许可级别用户将无法向其他用户提供信息无论多么方便不太严格的访问控制模型称为自由访问控制DAC),其中有权访问对象的用户对其他人有权访问该对象有一定的发言权例如DAC可能会根据用户或进程标识或组成员身份限制对对象的访问更重要的是DAC允许对对象具有访问权限的用户或进程将这些权限转移给其他用户或进程只有这种基于组的DAC使得很难以结构化的方式控制系统中的信息流但是可以通过让用户和程序在MAC策略施加的约束内自由地将访问权限转移给其他人来组合DACMAC

为了完整起见我们还提到了基于角色的访问控制RBAC),它根据可能基于工作职能的角色限制对对象的访问虽然直观简单RBAC允许同时实现DACMAC访问控制策略

原文始发于微信公众号(河南等级保护测评):操作系统/虚拟化安全知识域:操作系统安全原则和模型

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月6日10:40:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   操作系统/虚拟化安全知识域:操作系统安全原则和模型https://cn-sec.com/archives/1502374.html

发表评论

匿名网友 填写信息