2019-2020-1学期 20192426 《网络空间安全导论》第十周学习总结

百般思念 提交于 2019-12-10 17:15:32

第四章 系统安全

4.1 操作系统概述

1.计算机是由硬件、操作系统软件、应用软件共同构成的复杂系统。其中,一系列复杂的硬件是计算机的基础,多样的应用软件则为用户提供各种不同的应用服务,而操作系统则是整个计算机系统的“灵魂”。

我们常用的操作系统有 Windows、 Linux等计算机操作系统,以及安卓、iOS等智能移动终端操作系统。

2.操作系统(Operating System,OS)是一组管理与控全制计算机软、硬件资源,为用户提供便捷计算服务的计算机程序的集合。
3.计算机中的应用软件工作在操作系统之上,操作系统以进程管理的方式对应用软件的运行进行统一管理,一个应用软件运行时可以生成多个进程,由操作系统负责为每个进程分配内存空间和所需其他资源。
4.计算机操作系统的功能:

  • 进程管理:也称为处理器管理,主要负责对中央处理器(CPU)的时间进行合理分配、对处理器的运行进行有效的管理。
  • 内存管理:主要负责对计算机内存空间进行合理分配、保护和扩充,用于解决多道进程共享内存资源时的冲突,并通过有效的管理方式提高计算机内存空间利用率。
  • 设备管理:根据一定的分配原则对计算机的硬件设备进行调度与分配,使设备与计算机能够并行工作,为用户提供良好的设备使用效果。
  • 文件管理:负责有效地管理计算机磁盘的存储空间,合理地组织和管理文件系统,为文件访问和文件保护提供更有效的方法及手段。
  • 用户接口:用户操作计算机的界面称为用户接口或用户界面,通过用户接口,用户只需通过简单操作,就可以实现复杂的计算或处理。用户接口主要分为命令行接口、图形界面接口和程序调用接口( Application Programming Interface,API)几种类型。

5.传统的操作系统工作于计算机物理硬件系统之上,并对复杂的计算机硬件系统进行管理。但随着更加复杂多变的应用场景的增多,尤其是云计算的发展,使得对虚拟化技术的依赖程度越来越高,越来越多的操作系统运行于虚拟化的硬件环境之中,此时由于虚拟化环境位于操作系统的下层,因此虚拟化环境的安全问题也将对操作系统的安全性带来严重威胁。

4.2 操作系统安全

4.2.1 操作系统的安全威胁与脆弱性

1.操作系统的安全威胁
威胁计算机操作系统安全的因素有很多,主要有以下几个方面:
(1)非法用户或假冒用户入侵系统
(2)数据被非法破坏或者数据丢失
(3)不明病毒的破坏和黑客入侵
(4)操作系统运行不正常
2.操作系统的脆弱性
操作系统的脆弱性主要来自以下几方面:
(1)操作系统的远程调用和系统漏洞
操作系统要支持网络通信与远程控制,必然要提供RPC服务,即操作系统可以接收来自远程的合法调用和操作,黑客们正是使用了这一行为,通过远程调用来非法入侵系统和破坏正常的网络结构、黑客攻破防火墙,或者窃取、破译密码之后,畅通无阻地向远程主机上写入数据和调用系统过程,即遥控了该主机。
(2)进程管理体系存在问题
进程管理是操作系统的核心功能,计算机的工作最终要落实到进程的执行与管理上。这时,不法分子可能利用两种方式来进行破坏和攻击。第一种方式是,网络上的文件传输是在操作系统的支持下完成的,同时操作系统也支持网上加载程序,这就给黑客会大开方便之门。黑客会把间谋软件通过某种方法传输给远程服务器或客户机,并进一步植入操作系统之中,进而达到控制主计算机的目的。第二种方式是,黑客将人们感兴趣的网站、免费的资源甚至流媒体文件放在因特网上,用户下载到本地机器上并执行时,间谍软件就被安装到用户的系统,使黑客获取该用户对系统的合法权利。
3.操作系统的常见漏洞包括:

  • 空口令或弱口令:为了方便记忆,很多计算机用户将系统口令设置为空回令或复杂度很低的弱口令,如用“123456”、自己的姓名、生日等作为系统口令,这种空回令或弱口令可以很轻易地被黑客破解。访问口令是操作系统访问控制的关键环节,将口令设置为空或弱口令相当于直接向黑客敞开操作系统的大门,将严重威胁操作系统安全。因此应尽可能避免采用空口令或弱口令。
  • 数认共字密钥:预共享密钥是用于验证L2TPS连接的 Unicode字符串。可以配置“路由和远程访问”来验证支持预共享密钥的VPN连接。许多操作系统都支持使用预共享密钥,如果操作系统中配置使用了默认的或过于简单的预共享密钥,那么当操作系统连接到网络时将会带来严重的安全隐患。
  • 系统组件漏洞:软件开发过程中不可避免地会产生一些安全漏洞,对操作系统这样复杂的软件系统来说更是如此。操作系统中的系统组件,尤其是一些关键系统组件中存在的安全漏洞往往是黑客的重点攻击目标。因此操作系统用户应当时时关注操作系厂商发布的安全补丁,及时对操作系统漏洞以系统更新的方式进行修复。
  • 应用程序漏洞:操作系统中运行的应用软件中也经常存在安全漏洞,应用程序漏洞除了会给其用户数据与业务带来安全隐患外,也会对运行它的操作系统带来严重的安全威胁

4.2.2操作系统中常见的安全保护机制

针对上述操作系统面临的安全威胁和脆弱性,开发人员为操作系统设置了如下几种安全保护机制:
1.进程隔离和内存保护
2.运行模式
为了安全起见,现代CPU的运行模式通常分为内核模式与用户模式两种运行模式:

  • 内核模式:也称为特权模式,在Intel x86系列中,称为核心层(Ring 0)。
  • 用户模式:也称非特权模式,或者用户层(Ring 3)

如果CPU处于特权模式,那么将允许执行一些仅在特权模式下可以执行的特殊指令和操作。操作系统通常运行在特权模式下,其他应用程序则运行在普通模式,即用户模式下。

3.用户权限控制
现代的操作系统具备支持多任务和多用户的能力。
4.文件系统访问控制

  • 操作系统中的数据和程序通常以文件的方式存储在计算机的磁盘空间中。操作系统通过对文件的操作权限进行限制来实现文件的访问控制机制。
  • 典型的文件操作权限控制是对文件的读、写和执行三方面权限进行限制,分别对应对文件进行读取、修改和运行的操作.

4.2.3 操作系统的安全评估标准

1.1985年,美国国防部提出“可信计算机系统评估标准TCSEC(通常被称为橘皮书),该标准一直被视为评估计算机操作系统安全性的一项重要标准。
2.TCSEC按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为A、B、C、D四类7个安全级别、共27条评估准则。随着系统可信度的增加,风险逐渐减少。

  • D类(无保护级)是最低的安全级别,经评估但不满足较高评估等级要求的系统划归到D级、只具有一个级别,这种系统不能在多用户环境下处理敏感信息。MS-DOS就属于D级。
  • C类为自主保护级别,具有一定的保护能力,采用的安全措施是自主访向控制和审计跟踪。一般只适用于具有一定等级的多用户环境。C类分为C1和C2两个级别:自主安全保护级(CI级)和控制访间保护级(C2级)。
  • B级为强制保护级别,主要要求是TCB(可信计算基)应维护完整的安全标记,并在此基础上执行一系列强制访问控制规则。B类分为三个级别:标记安全保护级(B1级)、机构化保护级(B2级)和安全区域保护级(B3级)。
  • A级为验证保护级,包含严格的设计、控制和验证过程。A类系统的设计必须经过数学层面的验证,必须进行隐蔽通道和可信任分布的分析,并且要求它具有系统形式化技术解决隐蔽通道问题等。A类分为2个级别:验证设计级(AI级)、超AI级。

当前主流操作系统的安全性远远不够,如UNIX系统、 Windows NT内核的操作系统都只能达到C2级,安全性均有待提高。

4.2.4 常用的操作系统及其安全性

现代的操作系统种类繁多,一般可分为普通计算机操作系统、移动终端操作系统嵌入式操作系统等。
1.Windows系统安全
Windows系统的安全性以Windows安全子系统为基础,辅以NTFS文件系统Windows服务与补丁包机制、系统日志等,形成了完整的安全保障体系。

(1) Windows安全子系统
Windows安全子系统位于 Windows操作系统的核心层,是 Windows系统安全的基础。
(2)NTFS文件系统
NTFS(New Technology File System)文件系统自Windows NT版本开始被微软作为Windows系统的默认文件系统。NTFS文件系统可以对文件系统中的对象设置非常精细的访问权限,其主要特点包括NTFS可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB。而Windows2000中的FAT32支持的分区大小可达到32GB。

(3) Windows服务包和补丁包
微软公司会不定期发布对已经发现的 Windows问题和漏洞进行修补的程序,这些被称为服务包或补丁包的程序为终端用户完善系统安全、运用并管理好服务包,进而保障系统安全提供了重要手段。
微软公司有四种系统漏洞解决方案Windows Update、SUS、SMS和WUS。

(4) Windows系统日志

  • 日志文件(log)记录着Windows系统及其各种服务运行的每个细节,对增强Windows的稳定和安全性,起着非常重要的作用。
  • Windows系统用户可以通过以下手段提升Windows系统的安全性:
    1)正确设置和管理系统用户账户
    2)安全管理系统对外的网络服务,如关闭不需要的服务,只保留必须的服务等。
    3)启用 Windows系统日志功能,并对日志文件进行保护。

2.Linux系统安全
Linux是完全免费使用和自由传播的、符合POSⅨ标准的类Umx操作系统,遵循公共版权许可证(GPD),源代码公开、自由修改、自由发布,是能在各类硬件平台上运行的多用户、多任务的操作系统。
(1)Linux系统的安全机制
Linux是一个开放式系统,在网络上有许多可在 Linux系统上运行的程序和工具,这既方便了用户,也方便了黑客,他们通过这些程序和工具潜入Liux系统,或者盗取Linux系统上的重要信息。
Linux采取了许多安全技术措施,有些是以“补丁”的形式发布的:

  • PAM机制:插件式鉴别模块(PAM)机制是一种使用灵活、功能强大的用户鉴别机制,采用模块化设计和插件功能,在应用程序中插入新的鉴别模块,而不必对应用程序做修改,从而使软件的定制、维持和升级更加轻松。
  • 加密文件系统:加密文件系统就是将加密服务引入文件系统,从而提高计算机系统安全性的手段。
  • Linux防火墙:可以提供访问控制、审计、抗攻击、身份验证等功能,通过防火墙的正确设置可以大大提高系统安全性。

(2)Linux系统安全防范及设置

  • Liux引导程序安全设置
  • 防止使用组合键重启系统
  • 安全登录、注销
  • 用户账号安全管理
  • 文件的安全
  • 资源使用的限制
  • 清除历史记录
  • 系统服务的访问控制
  • 系统日志安全
  • 关闭不必要的服务
  • 病毒防范:
  • 防火墙
  • 使用安全工具
  • 备份重要文件
  • 升级
  • Rootkit安全防范
    Rootkit是可以获得系统root访问权限的一类工具。实际上,Rootkit是攻击者用来隐藏自己踪迹和保留root访问权限的工具,主要的表现形式就是修改正常的程序来实现自己的目的。

4.3 移动终端安全

随着移动互联网的飞速发展,作为操作系统的一种,移动终端操作系统也得到了广泛的应用。目前主流的移动终端操作系统平台主要分为两大阵营:由苹果(Aple)公司出品的iOS系统平台,和谷歌( Google)公司出品的 Android(安卓)系统平台。

4.3.1移动终端的概念及其主要安全问题

1.移动终端(移动通信终端):指可以在移动中使用的计算机设备。类别:有线可移动终端,无线移动终端
2.移动终端面临的安全问题

  • 敏感信息本地存储
  • 网络数据传输
  • 应用安全问题
  • 恶意软件

    恶意软件是指在安装运行之后会对用户造成危害的软件。

  • 系统安全问题

4.3.2 Android平台及其安全

1.认识 Android平台
Android系统的第一个商业版本在2008年发布,至今, Android系统已经成为世界范围内广泛使用的移动端操作系统。
2.Android的平台特性

  • Android系统是基于Linux的开源操作系统,无论是手机厂商还是个人开发者都可以在Android标准操作系统的基础上进行定制。正是由于此项特性,使得 Android,成为广受欢迎的移动端操作系统,也是 Android与iOS系统的最大区别。
  • Android平台在系统架构上分为多个层次,其中比较重要的有应用层、框架层、运行时和 Linux内核层

3.Android平台的安全问题
Android平台由于其开放的特性,相对其他移动终端平台存在更大的安全风险。主要的安全威胁来源于ROOT和恶意软件。
4.ROOT的危害

  • 在Linux系统中,ROOT是拥有最高权限的用户。
  • 用户在使访问文件系统用手机的时候能够获得ROOT权限。虽然ROOT能为部分用户带来使用时的便利,但同时也会带来部分安全隐患。比如,在ROOT之后,病毒将绕过 Android系统的权限限制,直接在ROOT权限下运行。

5.恶意软件的威胁

  • 由于 Android系统的开放性,用户可以随意地从网络上或第三方应用市场下载应用并安装,这为恶意软件的传播带来了便捷的渠道。
  • 恶意软件可能会在用户不知情的情况下执行信息窃取、偷跑流量话费、后台静默安装其他应用等操作,对用户的隐私安全和财产安全造成成胁。

4.3.3 iOS平台及其安全

1.认识iOS平台
iOS平台是苹果公司于2007年发布的专为初代 iphone使用的移动端操作系统。最初名为iPhone Os,后更名为iOs。
2.iOS平台的安全机制
在iOS众多安全机制中,具有代表性的有权限分离、强制代码签名、地址空间随机布局和沙盒。

  • 权限分离
  • 强制代码签名
  • 地址空间随机布局:地址空间随机布局( Adddress Space Layout Randomization)是通过让对象在内存中的位置随机布局以防御攻击代码的措施。
  • 沙盒( Sandbox)):沙盒是OS另外一种重要的安全机制。

3.Xcodeghost事件分析
Xcodeghost的攻击方式是修改Xcode配置文件。
Xcodeghost造成的危害有如下几种:
1)上传用户信息
2)应用内弹窗
3)通过 UrlScheme执行其他操作

4.3.4 移动系统逆向工程和调试

1.移动终端逆向工程概述
逆向工程,顾名思义,是通过反汇编、反编译等手段从应用程序的可执行(二进制)文件中还原出程序原代码的过程。在OS和 Android系统中,破坏者通常会利用逆向工程的手段分析系统,进而实施攻击。作为防护方,我们也必须了解移动终端的逆向工程知识,以便更好地保护系统。

逆向工程主要有两个作用:
1.攻破目标程序,拿到关键信息,可以归类于与安全相关的逆向工程。
2.借鉴他人的程序功能来开发自己的软件,可以归类于与开发相关的逆向工程。

2.Android平台逆向工程
3.iOS平台逆向工程
常用的iOS逆向分析工具有以下几种:

  • Dumpcrypt:对从Appstore中下载的应用进行脱壳操作。
  • class-dump:使用该工具可以从Mach-O文件中获取应用程序的类信息,并生成对应的.h文件。通过 class-dump获取的信息,可以快速辅助搭建APP源代码的大致框架。
  • IDAPro与HopperDisassembler:知名的反汇编工具,用于对可执行文件进行精准
    而细致的静态分析,转化为接近源代码的伪代码。
  • GDB与LDB:与静态分析相对应,这两款工具通过动态调试的方式对程序进行更深入透彻的分析。
  • Cycript:通过进程注入的方式依附运行中的OS程序,并可以使用 Javascript语法程序进行测试。

    针对OS逆向不同环境下的特殊需求,可以选择使用多种辅助工具进行逆向工程。

4.4 虚拟化安全

虚拟化是目前云计算重要的技术支撑,需要整个虚拟化环境中的存储、计算及网络安全等资源的支持。

4.4.1 虚找化概述

计算机虚拟化(Virtualization)技术是一种资源管理技术,它将计算机的各种物理资源,如CPU、内存及存储、网络等,通过抽象、转换后呈现给用户。

4.4.2虚拟化技术的分类

1.按应用分类

  • 操作系统虚拟化:包括 Vmware的 vSphere、 Workstation;微软的 Windows Server with Hyper-v、 Virtual PC;IBM的 Power VM、zVM; Citrix的Xen。
  • 应用程序虚拟化:包括微软的APP-V、Citrix的 Xen APP等。
  • 桌面虛拟化:包括微软的MED-V、VDI; Citrix的 Xen Desktop; Vmware的 Vmware view;IBM的 Virtual Infrastructure Access等。
  • 存储虚拟化、网络虚拟化等。

2.按照应用模式分类

  • 一对多
  • 多对一
  • 多对多

3.按硬件资源调用模式分类

  • 全虚拟化
  • 半虚拟化

4.按运行平台分类

  • X86平台
  • 非X86平台

4.4.3 应找化环境中的安全威胁

虚拟化系统可能会存在如下安全问题:

  • 虚拟机逃逸
  • 虚拟化网络环境风险
  • 虚拟机镜像和快照文件的风险
  • 虚拟化环境风险

4.4.4 虚拟化系统的安全保障

1.Hypervisor安全
Hypervisor在虚拟化系统中处于核心地位,Hypervisor的访问和控制级别比Guest OS高,它能控制并允许启动 Guest Os、创建新 Guest OS镜像、执行其他特权操作。
2.Guest OS安全
虚拟环境中运行的 Guest OS和真实硬件上运行的OS几乎一样。真实硬件上运行的OS的所有安全考虑都可以应用到 Guest OS上。此外, Guest OS还有一些额外的安全考虑。
3.虚拟化基础设施安全
虚拟化提供了硬件模拟,如存储、网络。基础设施对于虚拟 Guest OS的安全来说重要,就如同真实的硬件设施对于它上面运行的物理机器一样重要。许多虚拟系统都支持对虚拟硬件,特别是存储和网络的访问控制,虚拟硬件的方问应当被限制在使用它的Guest OS上。
4.规划和部署的安全
实施一个安全的虚拟化系统的关键在于安装、配置和部署之前进行慎重地规划,许多虚拟化的安全问题和性能问题都是因为缺乏规划和管理控制而造成的。
(1)规划
该阶段是组织在开始方案设计之前要做的工作,规划阶段需确定当前和未来需求,确定功能和安全的要求。
(2)设计
一且组织建立了虚拟化安全策略、确定了虚拟化需求、完成了其他准备工作,下一步就是决定使用哪种类型的虚拟化技术并设计安全解决方案。

对于设计虚拟化方案,需考虑的安全性技术如下:
1)认证问题:认证涉及决定在虚拟化解决方案的哪一层需要独立认证机制以及选择、实施、维护这些机制。
2)密码问题:与密码相关的决策包括选择在虚拟化通信中进行加密和完整性保护的算法、为支持多密钥长度的算法设定密钥强度。

(3)实施:虚拟化解决方案设计好以后,下一步就是把解决方案变成实际的系统。

小结

  • 计算机操作系统的功能
  • 计算的脆弱性和主要威胁
  • 常用计算机操作系统以及移动智能终端操作系统的安全机制
  • 虚拟化安全

7.2 云安全

7.2.1 云的相关概念

1.

  • 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,具有封装性、独立性、隔离性、兼容性,且独立于硬件
  • 云是一种比喻说法,是一个计算资源池,通常为一些大型服务器集群,每一群包括了几十万台甚至上百万台服务器,是一种为提供服务而开发的整套虚拟环境。

2.云计算
云计算(Cloud Computing)是一种计算方法,即将按需提供的服务汇聚成高效资源池(包括网络、服务器、存储、应用软件、服务),以服务的形式交付给用户使用。
3.云服务
云服务是在云计算环境下的服务交付模式,是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展的资源,云服务提供的资源通常是虚拟化的资源。
4.云主机
云主机是在一组集群主机上虚拟出的多个类似独立主机,集群中每个主机上都有云主机的一个镜像,拥有自己的操作系统,完全不受其他主机的影响。
5.云安全
云安全(Cloud Security)是一个从云计算衍生而来的新名词,是指云及其承载的服务,可以高效、安全的持续运行。

7.2.2 云面临的安全挑战

目前云面临的安全挑战主要集中在四个方面:

  • 如何解决新技术带来的新风险
  • 如何规划资源、数据等带来的风險。
  • 如何落实政策、法规方面的各项要求指标的风险。
  • 如何去运维管理云及其资源的风险。

7.2.3 云环境下的安全保障

1.伴随云技术的风起云涌,云安全也受到越来越多的关注目前有七大主流云安全标准可作为云平合层的安全体系的参考标准:

  • CSA(国际):CAS Guide
  • ENISA(欧盟)
  • NIST(美国):SP 800-145
  • OWASP(国际):OWASP TOP 10、TOP 10 Cloud RISK
  • CPNI(英国)
  • SANS(美国)
  • PCI-DSS(国际)

2.云安全建设
云安全建设需要从六大层面考虑,包括物理层、网络层、主机层、应用层、虚拟化层和数据层。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!