• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 休闲生活 > 正文

    计算机可信操作系统的保证

    时间:2020-10-18 07:56:33 来源:达达文档网 本文已影响 达达文档网手机站

    [摘 要] 计算机操作系统存在着典型的缺陷,一旦了解系统中潜在的漏洞,就可以应用保证技术来找出漏洞,从而消除其影响。通常有三种保证技术:测试、验证和证实。

    [关键词] 计算机 可信 操作系统 保证

    计算机操作系统存在着典型的缺陷,一旦了解系统中潜在的漏洞,就可以应用保证技术来找出漏洞,从而消除其影响。通常有三种保证技术:测试、验证和证实。

    一、操作系统的典型缺陷

    1、I/O处理是操作系统最大的薄弱点。这是由于:

    ①由于I/O是通过独立的、智能的硬件系统来完成的。这些自主部件通常位于OS的安全内核和安全限制之外。

    ②执行I/O的代码比计算机系统其他部件的代码复杂得多,并且更依赖于特定的硬件设备。因此,检查I/O设备的驱动程序、访问代码以及服务程序的正确性就比较困难,更不用说是形式化验匪它们。

    ③为/快速传播数据,I/O活动有时会绕过操作系统的其他功能,如页面地址和段地址的转换。因此,有可能避开与这些功能相关的保护特性。

    ④I/O操作通常是面向字符的。同样,为了快速传递数据,OS设计者在数据传输期间限制系统执行的指令数目。有时被省略的指令正是在传输字符的过程中实施安全策略的指令。

    2、OS突出的弱点是实施策略的二义性。这主要是隔离和共享之间的区别并不是很明确。一方面,对各个用户进行隔离保护他们各自的资源;另一方面.用户需要共享库文件、实用程序、公共数据以及系统表格。这样,在实施的过程中,也就不能严格地区分。

    3、不完全检查是OS受攻击的潜在的问题。我们要求操作系统在每一次的访问请求都要经过权限检查。但是,不少系统对每次I/O操作、进程执行、机器周期间隔只做一次访问权限检查。这种机制可用来实现完全保护,但关于何时调用该机制的决策并不完善。因此,在没有明确要求的情况下,系统设计者采用了“最有效”机制,即使用最少的机器资源。例如,在分页的系统中,I/O操作开始时用户数据就占用了一个页面。然而,在操作执行过程中,系统有可能不通知I/O子系统就将贞面分配给另一个用户。完全检查就能够阻止这类攻击。

    4、通用性是OS的公开弱点。尤其在大型计算机系统的操作系统中,操作系统实现者

    允许用户自定义操作系统的安装,并且允许安装其他公司编写的软件包。这样,作为OS一个部分,一些软件包必须拥有和OS一样的访问权限才能被执行。例如,与现有OS的标准控制相比,有的软件包提供更加严格的访问控制。他们通过“钩”(hook)来安装软件包,然而,这些“钩”也成为任何想要入侵OS的用户的陷门。

    二、保证的方法

    一旦了解系统中潜在的漏洞,就可以应用保证技术来找出漏洞,从而消除其影响。通常有三种保证技术:测试、验证和证实。

    1、测试。它是被广泛应用的保证技术。测试结果基于正被评估的现实产品,而不是产品的某些抽象。现实性具有安全优势。然而,有必要对基于测试的结论进行限制,这是因为:

    ①测试能证明问题的存在性,但粗略的测试并不能证明不存在某些问题。

    ②在有限的时间和精力下,测试很难达到全面覆盖的要求,因为大量的输入和内部状态使测试变得非常复杂。

    ③测试仅仅是基于可观察到的结果,而不是基于产品的内部结果,因此,不能保证其程度完善。

    ④基于产品内部的测试涉及通过增加代码来修改产品,以提取和展示内部状态。但这样会影响产品的性能,而且可能会引入新的漏洞或掩盖其他漏洞。

    ⑤在实时系统的测试中,很难记录所有的状态和事件。因此,很难重建和分析测试人员

    在测试过程中报告的问题。

    测试通常有功能测试、系统测试、接收测试、回归测试和渗透测试等。从开发者的角度考虑测试:先测试单个模块,然后在进行总体测试,以确保模块功能组合正确。功能测试是为了确定一个给定功能的各方面是否正确,系统测试是为了将硬件和软件结合起来。同样,回归测试是确定系统中某个部分的改变会不会降低其他部分的性能。

    接收测试的目的是验证客户收到的和预定的需求是否一致。尤其是对应用和安全等级是否能满足客户的需求。渗透测试是常用的一种计算机安全性测试策略。在该测试中.测试者熟知操作系统和计算机系统的典型漏洞方面的知识。因此,测试者利用真实环境和知识来发现其他测试所忽略的缺陷。

    2、验证。是确保系统正确性的通用方法,有许多方法可以说明某系统中每一项功能都能正确地运行。而形式化验证是验证的—个特例。也是分析安全性最精确的方法。

    形式化验证是运用数学逻辑规则来证明一个系统具有某种安全特性。在形式化验证中操作系统被模型化,其原理被描述为一些断言。模型和断言的集合被归结为一个“定理”,然后证明它。该定理断言此操作系统是正确的,即形式化验证确认该操作系统仅仅提供了它应具有的安全特性。

    3、证实。证实(validation)和验证相互对应,确保系统开发者实现所有的需求。因此,证实保证了开发者开发的是正确的产品(根据规格说明书),然后由验证检查实现的质量。对操作系统进行证实有以下几种方法。

    ①需求检查。根据系统的源代码或系统执行时的行为对操作系统的每项需求进行交叉检查。目标是证实系统完成了功能需求中所列出的每一件事。但是,很难保证“不做”它不应该做的事。

    ②设计和代码审查。重点放在系统正确性上,审查者仔细检查设计和代码,以确保从每一个需求到设计和代码部分都可被追踪,并记录此过程中出现的问题(包括缺陷、不正确的假设、不完整的或者不一致的行为、错误的逻辑)。这个过程的成功取决于严格的审查。

    ③系统测试。测试者选择数据来检查系统的正确性。数据可以像接收测试那样来组织。用数据在系统中的实际运行来证实系统的行为和期望得到的数据。通过仔细地检查可确保系统的完善性。

    实际上,保证技术和方法是排除系统设计和实现中的潜在漏洞和错误,使系统的设计和实现能正确无误地反映用户对操作系统安全的需求,使系统成为用户心目中的可信系统。

    参 考 文 献

    [1]王炽鸿。计算机辅助设计[M]。北京:机械工业出版社,1998。

    [2]丁剑洁,基于度量的软件维护过程管理的研究[D],西北大学,2006■

    相关热词搜索: 可信 操作系统 保证 计算机

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网