`

我们能使操作系统安全可靠吗?(一)

阅读更多

 

下文是美国电气与电子工程师学会计算机学会《IEEE Computer》2006年第5期的一篇论文“Can We Make Operating Systems Reliable and Secure”,作者Andrew S. Tanenbaum、Jorrit N. Herder、Herbert Bos。

 

长期以来微内核体系结构由于其性能较单核结构逊色而被人忽视。如今微核结构有可能由于其潜在的高可 靠性而重新风光,因为现在许多研究人员把可靠性看得比性能更为重要。

 

您什么时候碰到过一台电视机出现系统崩溃或者需要您去网络上下载什么紧急的软件升级补丁?除非那是一台极为老久的机器(即使如此也不会麻烦您去软件升级,只不过需要更换零部件罢了-译者注)。而一台新的电视机只不过是一个由一颗处理器、一个大屏幕监视器、一些解调无线电信号的模拟电子部件、一些特殊的(相对于一般计算机而言)读写(I/O)设备:遥控器、内置卡式录像带机或DVD驱动器以及ROM里的一些软件组成的计算机而已。

 

这一问,触及到计算机界人士讳莫如深的一个难堪的“秘密”,为什么电视、DVD录像机、MP3播放器、移动电话和其他软件驱动的电子设备都十分可靠、安全,而计算机却做不到呢?当然有许多“解释”,比如计算机是可变的、计算机可以允许用户改变软件、信息技术产业还不成熟等等。但是,当我们步入一个绝大部分的计算机用户是非专业技术人员的时代时,上述理由对于他们来说,就看起来越来越像是毫无说服力的借口。

 

消费者对于计算机的期待和对电视机一样:买了以后,插上电源,就能完美地工作10年。作为信息技术的专业人员,我们必须面对这个挑战,并且尽量使计算机像电视机 一样可靠安全。

 

要做到可靠和安全,最大的障碍就是操作系统。虽然应用程序也存在着许多缺陷,但是如果操作系统没有毛病,应用程序中的缺陷只能产生有限的破坏。因此我们将集中讨论操作系统。

 

然而,在进入细节之前,有必要先说明一下可靠与安全之间的关系。这两个方面的问题一般都是由相同的原因造成的,即软件中的缺陷。一个缓冲区溢出错误会导致系统崩溃(可靠性问题),也会让精心编写的病毒或蠕虫接管计算机(安全性问题)。尽管我们主要关注可靠性,但在改善可靠性的同时也会提高安全性。

 

系统为什么不可靠?

 

当前的操作系统有两个特征使得它不可靠、不安全:一是规模巨大,二是故障隔离的性能很差。Linux内核拥有超过250万行的代码。Windows XP的内核则是前者的2倍还多。

 

一项关于软件可靠性的研究表明:每1000行可执行代码中会包含6~16个缺陷[1],而另一项研究则估计可执行代码的缺陷密度(fault density)为每千行2~75个[2]。按照每1000行代码中有6个缺陷的保守估计,Linux内核大约存在15000个缺陷,而Windows XP中的缺陷至少是它的2倍。

 

更糟糕的是,通常大约70%的操作系统带有设备驱动程序,而这些驱动程序的失效密度是普通代码的3~7倍,所以上面提到的缺陷数可能在总体上被低估了[3]。显然,发现并修正所有的缺陷是根本不可行的,更何况缺陷的修补经常会引入新的缺陷。

 

当前操作系统的巨大规模意味着没有人能够理解其全部情况。显然,在没有人真正很好理解一个系统的情况下要将其工程化是极为困难的。

 

这给我们提出了第2个议题:故障隔离。没有哪个人能弄懂航空母舰的全部零件是如何工作的,但其子系统都实现了彼此很好地隔离,这样就不至于产生厕所阻塞影响到导弹发射子系统的问题。

 

操作系统的各个部件没有这种隔离。现代操作系统包含成百上千个链接在一起的过程,作为一个独立的二进制程序以内核的形式运行。在这几百万行内核代码中,每一行都能够重写与之无关的组件使用的关键数据结构,从而以很难检测到的方式造成系统崩溃。此外,如果病毒或者蠕虫感染了一个内核过程,我们也无法阻止它快速蔓延至其他子程序并控制整台机器。

 

回到舰船的例子。现代舰船的船壳内分成许多隔间。如果某一个隔间出现了裂缝,只有这个隔间漏水,不会影响整个船体。当前的操作系统就像隔间发明之前的船只,每一个漏缝都能使整只船沉没。

 

所幸研究人员正在研究构建更可靠的操作系统。下面我们根据方法的“彻底性”按照从最保守到最激进的次序介绍四种不同途径。(待续)

 

 

0
0
分享到:
评论

相关推荐

    操作系统安全:操作系统安全定义.pptx

    操作系统安全定义;操作系统安全是从各种不同角度分析操作系统安全性,无论任何操作系统,从计算机访问到用户策略等的一套规范的、可扩展的安全定义;操作系统安全服务类型;通过交互式登录和网络身份验证方式等方式...

    1计算机操作系统.pdf

    写出一款常用操作系统并简述其主要特点 Liunx 模块化程度高、安全性及可靠性好、完全兼容 unix.(开源) Windows 不开源、用户界面友好、多任务 (PS:两者任选其一) 5.简述多道程序系统运行机理 在多道程序设计环境下...

    国调中心关于印发Windows操作系统安全加固指导手册的通知 调网安[2017] 169号.pdf

    近年来,国内外因Windows操作系统涓洞而产生的网络安全 事件频发, 巳造成较大的...《Windows操作系统安全加固指导手册》, 现予印发。 请各单位据此做好Windows主机的安全加固工作,确保电力监控系统安全可靠运行。

    安全可靠的操作系统内核设计.pptx

    安全可靠的操作系统内核设计.pptx

    网络操作系统安全概述(PPT-119页).pptx

    第 2章 网络操作系统安全 网络操作系统安全概述(PPT-119页)全文共120页,当前为第1页。 本章有三小节 2.1 常用的网络操作系统简介 2.2 操作系统安全与访问控制 2.3 网络操作系统的安全设置实例 网络操作系统安全概述...

    操作系统课设-文件管理系统

    一个操作系统文件管理的小课设,采用javafx做的UI 大佬写的我扒过来用,大家可以自己改改 概述 文件的逻辑结构 ( 顺序文件,索引文件,索引顺序文件,直接文件和哈希文件 ) 外存分配方式 文件目录管理 文件存储空间...

    嵌入式系统安全

    本书提供了一个关于安全法则、安全...当设计安全可靠的嵌入式系统时,系统架构、操作系统、管理程序、网络、存储以及加密,这些都必须被作为研究课题。这是嵌入式系统和安全从业人员必读的一本书,无论是新手还是专家。

    《计算机操作系统教程》习题详解(第二版)

    答:便于设计安全可靠的操作系统。管态和目态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而引入的两种状态。通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目态下运行,只能执行非特权...

    D2 吴翔 零念科技 共建高安全可靠的智能汽车操作系统-v1.0

    D2 吴翔 零念科技 共建高安全可靠的智能汽车操作系统-v1.0

    Sun opensolaris__安全可靠的操作系统的源码分析

    Sun公司的Solaris操作系统曾经是小型机的霸主,由于其与Sun公司的硬件捆绑,高价使其束于大学和公司单位,而自2000来逐渐开源,形成opensolaris

    计算机操作系统教程(第三版)_答桉

    答:操作系统的职能是管理和控制汁算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理...

    另一个用Rust编写的操作系统-Rust综述

    Redox OS: Redox OS是一个完全从头开始编写的类Unix操作系统,使用Rust语言开发,旨在提供更好的安全性、可靠性和性能。它的灵感来源于UNIX、MINIX、Plan 9和BSD等操作系统,并采用了微内核架构。 Tock OS: Tock...

    详细的操作系统教程讲解课件

    除此之外,它还为用户使用计算机提供一个方便灵活、安全可靠的工作环境。 学习并掌握计算机操作系统的基本原理和操作方法,不仅对计算机专业的学生和研究人员是必要的,而且对一般计算机应用人员也是非常有益的

    Linux文件系统安全可靠机制的研究与实现.pdf

    Linux文件系统安全可靠机制的研究与实现.pdf

    网络安全原理与应用:操作系统安全简介.pptx

    操作系统安全简介一、操作系统安全的基本概念操作系统是整个计算机系统的基础,它控制着系统中所有软、硬件资源的存取。其他软件,无论是系统软件还是应用软件,都是建立在操作系统之上的,都要通过操作系统来完成对...

    Windows操作系统安全(自学).pdf

    在Windows系统安全中,以下是几个重要的概念: 用户账户管理:Windows系统使用用户账户进行用户身份验证和访问控制。合理的用户账户管理包括分配适当的权限、设置强密码策略、启用多因素身份验证等,以防止未经授权...

    Linux-Study-记录Linux和操作系统的学习.rar

    一、操作系统 1、什么是操作系统(OS)? 用来管理计算机硬件与软件资源的计算机程序,是计算机的核心和基石。 是连接用户和计算机的媒介 是所有硬件设备组装后的第一层软件,能够让用户使用硬件设备的软件。 2、...

    网络操作系统提纲

    网络操作系统是保证安全可靠资源共享的网络用户和计算机网络之间的一个接口,向网络计算机提供网络通信和网络资源共享功能,并为网络用户提供各种网络服务。 2、网络操作系统最主要关注两方面 数据传输、资源共享 ...

    操作系统期末复习测试题

    安全可靠 B. 资源利用率 C. 及时响应 D. 快速处理 参考答案: B 2.判断题: 编译程序需要直接使用OS的程序接口.(燕山大学,2006) 正确 错误 参考答案: 正确 3.单选题: 批处理系统的主要缺点是 . A. CPU...

Global site tag (gtag.js) - Google Analytics