2020—2021—1学期20202408董怡文《网络空间安全导论》第十一周学习总结

2020—2021—1学期20202408董怡文《网络空间安全导论》第十一周学习总结

4.1 系统安全概述

4.1.1 系统安全的演变

经过前面的学习,我们已经了解到了网络空间是人类活动的第五大疆域,人类所触及的空间已经不局限于海、路、空、天四个领域,随着计算机、网络、人工智能的技术发展,在今天,提起系统安全联想到操作系统安全是合情合理的。

21世纪以来,新的数字化设备不断催生出新的应用,自互联网普及以来,网络的渗透不断增加,网络空间生态系统的影响越来越明显,网络空间种的系统,从大型主机到网络化系统,再到网络空间生态系统,其形态不断演变,其内涵不断丰富,其影响不断深入。与此同时,系统所面临的挑战更加严峻,系统安全的探索全景广阔,意义深远

4.1.2 系统与系统安全

一个系统是由相互作用或相互以来的元素或成分构成的的某种类型的一个统一的整体,其中的元素完整的关联在一起,它们之间的这种关联关系有别于他们与系统外其他元素之间可能存在的关系。

系统的边界有时候是明显的,有时候是模糊的,人的生命系统就有明显的血肉边界,一个手机能看得见外壳,能触碰到屏幕,但是一个操作系统,既看不见也摸不到,操作系统的边界很难划分。系统的边界也不是唯一的、一成不变的,随着观察角度的不同,可能会发生变化。但是不管怎么样,系统存在着边界。

4.2 系统安全原理

4.2.1 基本原则

①最小特权原则: 系统中执行任务的实体(程序或用户)应该只拥有完成该项任务所需特权的最小集合;如果只要拥有n项特权就足以完成所承

担的任务,就不应该拥有n+1项或更多的特权。

②失败-保险默认原则:安全机制对访问请求的决定应采取默认拒绝方案,不要采取默认允许方案;也就是说,只要没有明确的授权信息,就

不允许访问,而不是,只要没有明确的否定信息,就允许访问。

③完全仲裁原则:安全机制实施的授权检查必须能够覆盖系统中的任何一.个访问操作,避免出现能逃过检查的访问操作。该原则强调访问

控制的系统全局观,它除了涉及常规的控制操作之外,还涉及初始化、恢复、关停和维护等操作,它的全面落实是安全机制发挥作用的基

础。

④特权分离原则(Separation of Privilege): 对资源访问请求进行授权或执行其他安全相关行动,不要仅凭单一条件做决定,应该增加分离的条

件因素;例如,为一把锁设两套不同的钥匙,分开由两人保管,必须两人同时拿出钥匙才可以开锁。

⑤信任最小化原则:系统应该建立在尽量少的信任假设的基础上,减少对不明对象的信任;对于与安全相关的所有行为,其涉及的所有输人和

产生的结果,都应该进行检查,而不是假设它们是可信任的。

简单性原则包括机制经济性原则、公共机制最小化原则和最小惊讶原则。

①机制经济性原则:应该把安全机制设计得尽可能简单和短小,因为,任何系统设计与实现都不可能保证完全没有缺陷;为了排查此类缺陷,检

测安全漏洞,很有必要对系统代码进行检查;简单、短小的机制比较容易处理,复杂、庞大的机制比较难处理。

②公共机制最小化原则 :如果系统中存在可以由两个以上的用户共用的机制,应该把它们的数量减到最少;每个可共用的机制,特别是涉及共

享变量的机制,都代表着一-条信息传递的潜在通道,设计这样的机制要格外小心,以防它们在不经意间破坏系统的安全性,例如信息露。

③最小惊讶原则(Least Astonishment):系统的安全特性和安全机制的设计应该尽可能符合逻辑并简单,与用户的经验、预期和想象相吻

合,尽可能少给用户带来意外或惊讶,目的是提升它们传递给用户的易接受程度,以便用户会自觉自愿、习以为常地接受和正确使用它们,

并且在使用中少出差错。

方法性原则包括公开设计原则、层次化原则、抽象化原则、模块化原则、完全关联原则和设计迭代原则。

①公开设计原则:不要把系统安全性的希望寄托在保守安全机制设计秘密的基础之上,应该在公开安全机制设计方案的前提下,借助容易保

护的特定元素,如密钥、口令或其他特征信息等,增强系统的安全性;公开设计思想有助于使安全机制接受广泛的审查,进而提高安全机制的

鲁棒性。

②层次化原则:应该采用分层的方法设计和实现系统,以便某层的模块只与其紧邻的上层和下层模块进行交互,这样,可以通过自顶向下

或自底向上的技术对系统进行测试,每次可以只测试一层。

③抽象化原则:在分层的基础上,屏蔽每一层的内部细节,只公布该层的对外接口,这样,每一层内部执行任务的具体方法可以灵活确定,

在必要的时候,可以自由地对这些方法进行变更,而不会对其他层次的系统组件产生影响。

④模块化原则:把系统设计成相互协作的组件的集合,用模块实现组件,用相互协作的模块的集合实现系统;每个模块的接口就是一种抽象。

⑤完全关联原则: 把系统的安全设计与实现与该系统的安全规格说明紧密联系起来。

⑥设计迭代原则:对设计进行规划的时候,要考虑到必要时可以改变设计;因系统的规格说明与系统的使用环境不匹配而需要改变设计时,

要使这种改变对安全性的影响降到最低。

为了使全生命周期的整体安全保障思想落到实处,系统的设计者和开发者在设计和实现系统的过程中,应该深人理解、正确把握、自觉遵守

以上原则。

4.3 系统安全结构

4.3.1硬件系统安全

网络空间是个计算环境,它主要由各式各样的计算机通过网络连接起来构成。这里所说的计算机并非只是常见的笔记本电脑、台式机、服务

器、平板计算机、手机等,还有很多藏在嵌人式设备或物联网设备等之中不易被看到的东西,它们的关键特征是都有处理器。

计算机由硬件和软件组成,尽管有些软件因为固化在硬件上而被称为固件。计算机提供的丰富多彩的功能,不管是拍照,还是播放音乐,或是

别的,都是通过计算实现的。硬件负责计算,软件负责发布计算命令。硬件是软件的载体,软件在硬件之上工作。

在系统安全的背景下观察硬件安全,主要是观察它能给软件提供什么样的安全支持,如何帮助软件实现想要实现的安全功能。同时,也观察

它自身可能存在什么安全隐患,会给系统安全带来什么样的影响。

在硬件为软件提供的安全支持功能中,最平凡的一-项是用于保护操作系统的功能。之所以说平凡,是因为这项功能太常用了,以致很多

人甚至想不起来能把它和安全挂上钩,那就是用户态/内核态功能。

处理器硬件定义了用户态和内核态两种状态,内核态给操作系统用,用户态给其他程序用,规定用户态的程序不能干扰内核态的程序。这

样,在免受其他程序破坏的意义上,操作系统受到了硬件的保护。

以通俗的方式说得更具体一点,硬件把指令和内存地址空间都分成了两大部分,内核态程序可以看到所有的指令和地址空间,用户态程序只

能看到其中一个部分的指令和地址空间。用户态程序看不到的那部分指令称为特权指令,看不到的那部分地址空间称为内核地址空间。看

不到的意思就是不能使用,就是说,用户态程序不能执行特权指令,不能访问内核地址空间。因为操作系统程序存放在内核地址空间,用

户态程序不能往内核地址空间写东西,因此,就无法篡改或破坏操作系统程序.操作系统由此得到保护。

对于用户程序破坏操作系统程序这样的威胁模型,用户态/内核态策略是有效的。可是,实践证明,黑客有办法把恶意程序插到内核地址空间

中,让它在内核态运行。这样一来,恶意程序就有了篡改操作系统程序的能力,情况变得糟糕很多。能篡改操作系统程序意味着篡改应用程

序就更不在话下,换言之,所有程序都有被篡改的风险。

4.3.2 操作系统安全

操作系统是直接控制硬件工作的基础软件系统,它紧贴在硬件之上,介于硬件与应用软件之间,这样的特殊地位决定了它在系统安全中具有

不可替代的作用。没有操作系统提供的安全支持,应用系统的安全性无法得到保障。不妨以常用的加密功能为例考察这个问题。

假设某应用程序需要利用加密技术对数据进行加密保护.系统配备了硬件加密设备。硬件加密设备能够正确实现所需的加密功能,加密所

需的密钥可以在硬件加密设备中安全地生成。在硬件的保护下,加密算法和密钥既不会泄露也不会被破坏,这方面可以完全摆脱对操作系统

的依赖。在这样强有力的假设前提下,如果没有操作系统提供相应的功能,应用程序完成加密任务依然存在薄弱之处。

第一个弱点是无法保证硬件设备的加密机制能够顺利启动。攻击者可以利用恶意程序干扰该应用程序启动加密机制的操作。由于都在用户

地址空间,恶意程序比较容易篡改该应用程序。具体地说,恶意程序可以篡改该应用程序中启动加密机制的代码,使该代码根本不发出启

动加密机制的命令,然后,冒充加密机制与该应用程序交互。虽然该应用程序并没有启动加密机制,但它以为加密机制已经启动了,在后续

的工作中,当它把待加密数据传给加密机制时,实际上数据都由恶意程序代收了。该弱点之所以存在,主要是因为应用程序与硬件加密机

制之间缺乏一条可信的交互路径,这样的可信交互路径只能由操作系统帮助建立,应用程序自身无法把它建立起来。第二个弱点是无法保证

硬件设备的加密机制不被滥用。滥用硬件加密机制的意思是当合法应用程序启动了该加密机制之后,其他应用程序有可能使用该加密机制,

包括使用其中的算法和密钥。当合法应用程序A启动了硬件加密机制H之后,就建立起了一个A 与H之间的会话s,就好比接通了一个电话-一

样。 此后,A是在会话S中使用H的功能的。由于硬件加密机制本身无法区分不同的应用,如果期间有恶意程序B利用会话S使用H的功能,

那是有可能的,正如你正在打电话,有人跑到你身边向对方喊话一样。

4.3.4 应用系统安全

这自从有了网络空间中的各种应用,人类的生活便变得更加绚丽多彩。床头路边的即时聊天,都市乡间的抬手自拍,菜市场里的扫码付

款,停车场上的杆起杆落,不管人们有没有留意,都有应用系统在提供服务。基于Web的应用(简称Web应用)是典型的常见应用之一,本小

节以该类应用为例,考察应用系统的安全现象。

Web应用的一大特点是借助浏览器的形式,打破了异构设备之间的差异屏障,使得多种多样的设备都可以用来连接同一个应用系统,扩大

了应用系统的适应性,提升了用户选择的灵活性。浏览器是Web应用系统的前端,是用户进人应用系统的接口,用户只需要使用浏览器就

可以使用Web应用系统提供的功能。用户通过浏览器访问Web应用系统,但是,Web应用系统的主要功能并不是浏览器提供的,而是藏在

幕后的服务器提供。通常,用户无法知道服务器在哪里,不过不要紧,只 要知道服务器的网址(术语是URL)就可以了。服务器那一端称为服务

端,用户这一端 称为客户端。客户端的浏览器使用一一种称为HTML的语言按照HTTP与服务端的服务器进行交互,把服务端提供的Web应

用功能展现在用户面前。Web应用展现在用户面前的是各种网页。过去的网页大多是静态的,现在的网页嵌人了很多动态的元素,增强了

用户体验的喜悦感,提升了Web应用与用户互动的能力。Web应用与用户交互的功能通过在HTML中嵌入各种脚本来实现,称为

JavaScript的 脚本就是其中一种非常常用的类型。常言道:鱼与熊掌不可兼得。在网页中嵌人JavaScript脚本让用户获得了与Web应用交

互的强大功能,同时,也带来了不可忽视的安全隐患。一种称为跨站脚本(Cross-site scripting, XSS)攻击的安全威胁就是其中格外引人瞩目

的一种,它在Web应用安全中占有最大比重,远远超过其他安全威胁。

Web应用与用户的交互通过输人输出功能实现,用户通过输人向应用系统发服务请求,应用系统以输出的形式给用户提供响应结果。例如,用

户在搜索页面的输入框中输人搜索关键词,系统给用户输出查找结果页面。在XSS攻击中,攻击者想办法把恶意脚本藏在Web应用的输人

和输出之中,实现攻击目的。

posted @ 2020-12-29 11:22  shdhrd  阅读(104)  评论(0编辑  收藏  举报