第四章 系统安全
4.1 操作系统概述
1.计算机是由硬件、操作系统软件、应用软件共同构成的复杂系统。操作系统则是整个计算机系统的“灵魂”。
- 我们常用的操作系统有 Windows、 Linux等计算机操作系统
- 以及安卓、iOS等智能移动终端操作系统。
2.操作系统是一组管理与控全制计算机软、硬件资源,为用户提供便捷计算服务的计算机程序的集合。
3.计算机中的应用软件工作在操作系统之上,操作系统以进程管理的方式对应用软件的运行进行统一管理
4.计算机操作系统的功能:
- 进程管理
- 内存管理
- 设备管理
- 文件管理
- 用户接口
5.传统的操作系统工作于计算机物理硬件系统之上,并对复杂的计算机硬件系统进行管理,虚拟化环境的安全问题也将对操作系统的安全性带来严重威胁。
4.2 操作系统安全
4.2.1 操作系统的安全威胁与脆弱性
1.操作系统的安全威胁
威胁计算机操作系统安全的因素有很多,主要有以下几个方面:
- 非法用户或假冒用户入侵系统
- 数据被非法破坏或者数据丢失
- 不明病毒的破坏和黑客入侵
- 操作系统运行不正常
2.操作系统的脆弱性
- 操作系统的脆弱性主要来自以下几方面:
- 操作系统的远程调用和系统漏洞
- 进程管理体系存在问题
3.操作系统的常见漏洞包括:
- 空口令或弱口令
- 数认共字密钥
- 系统组件漏洞
- 应用程序漏洞
4.2.2操作系统中常见的安全保护机制
针对上述操作系统面临的安全威胁和脆弱性,开发人员为操作系统设置了如下几种安全保护机制:
- 进程隔离和内存保护
- 运行模式
为了安全起见,现代CPU的运行模式通常分为内核模式与用户模式两种运行模式:
内核模式:也称为特权模式,在Intel x86系列中,称为核心层(Ring 0)。
用户模式:也称非特权模式,或者用户层(Ring 3)
3.用户权限控制
- 现代的操作系统具备支持多任务和多用户的能力。
4.文件系统访问控制
- 操作系统通过对文件的操作权限进行限制来实现文件的访问控制机制。
- 典型的文件操作权限控制是对文件的读、写和执行三方面权限进行限制,分别对应对文件进行读取、修改和运行的操作.
4.2.3 操作系统的安全评估标准
- TCSEC按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为A、B、C、D四类7个安全级别、共27条评估准则。随着系统可信度的增加,风险逐渐减少。
- D类(无保护级)是最低的安全级别,经评估但不满足较高评估等级要求的系统划归到D
- C类为自主保护级别,具有一定的保护能力,采用的安全措施是自主访向控制和审计跟踪。C类分为C1和C2两个级别:自主安全保护级(CI级)和控制访间保护级(C2级)。
- B级为强制保护级别。B类分为三个级别:标记安全保护级(B1级)、机构化保护级(B2级)和安全区域保护级(B3级)。
A级为验证保护级。A类分为2个级别:验证设计级(AI级)、超AI级。
4.2.4 常用的操作系统及其安全性
现代的操作系统种类繁多,一般可分为普通计算机操作系统、移动终端操作系统嵌入式操作系统等。
1.Windows系统安全
- Windows系统安全性以Windows安全子系统为基础,辅以NTFS文件系统Windows服务与补丁包机制、系统日志等,形成了完整的安全保障体系。
(1) Windows安全子系统
- Windows安全子系统位于 Windows操作系统的核心层,是 Windows系统安全的基础。
(2)NTFS文件系统
- NTFS文件系统自Windows NT版本开始被微软作为Windows系统的默认文件系统。NTFS文件系统可以对文件系统中的对象设置非常精细的访问权限
(3) Windows服务包和补丁包
- 为终端用户完善系统安全、运用并管理好服务包,进而保障系统安全提供了重要手段。
(4) Windows系统日志
日志文件(log)记录着Windows系统及其各种服务运行的每个细节,对增强Windows的稳定和安全性,起着非常重要的作用。
Windows系统用户可以通过以下手段提升Windows系统的安全性:
- 1)正确设置和管理系统用户账户
- 2)安全管理系统对外的网络服务,如关闭不需要的服务,只保留必须的服务等。
- 3)启用 Windows系统日志功能,并对日志文件进行保护。
2.Linux系统安全
Linux是完全免费使用和自由传播的、符合POSⅨ标准的类Umx操作系统。
(1)Linux系统的安全机制
Linux是一个开放式系统
Linux采取了许多安全技术措施,有些是以“补丁”的形式发布的
- PAM机制
- 加密文件系统
- Linux防火墙
(2)Linux系统安全防范及设置
- Liux引导程序安全设置
- 防止使用组合键重启系统
- 安全登录、注销
- 用户账号安全管理
- 文件的安全
- 资源使用的限制
- 清除历史记录
- 系统服务的访问控制
- 系统日志安全
- 关闭不必要的服务
- 病毒防范:
- 防火墙
- 使用安全工具
- 备份重要文件
- 升级
- Rootkit安全防范
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与iOS系统的最大区别。
3.Android平台的安全问题
Android平台由于其开放的特性,相对其他移动终端平台存在更大的安全风险。主要的安全威胁来源于ROOT和恶意软件。
4.ROOT的危害
在Linux系统中,ROOT是拥有最高权限的用户。
用户在使访问文件系统用手机的时候能够获得ROOT权限。虽然ROOT能为部分用户带来使用时的便利,但同时也会带来部分安全隐患。
5.恶意软件的威胁
恶意软件可能会在用户不知情的情况下执行信息窃取、偷跑流量话费、后台静默安装其他应用等操作,对用户的隐私安全和财产安全造成成胁。
4.3.3 iOS平台及其安全
1.认识iOS平台
iOS平台是苹果公司于2007年发布的专为初代 iphone使用的移动端操作系统。最初名为iPhone Os,后更名为iOs。
2.iOS平台的安全机制
在iOS众多安全机制中,具有代表性的有权限分离、强制代码签名、地址空间随机布局和沙盒。
- 权限分离
- 强制代码签名
- 地址空间随机布局
- 沙盒( Sandbox))
Xcodeghost的攻击方式是修改Xcode配置文件。
Xcodeghost造成的危害有如下几种:
- 1)上传用户信息
- 2)应用内弹窗
- 3)通过 UrlScheme执行其他操作
4.3.4 移动系统逆向工程和调试
1.移动终端逆向工程概述
逆向工程,顾名思义,是通过反汇编、反编译等手段从应用程序的可执行(二进制)文件中还原出程序原代码的过程。
逆向工程主要有两个作用
- 1.攻破目标程序,拿到关键信息,可以归类于与安全相关的逆向工程。
- 2.借鉴他人的程序功能来开发自己的软件,可以归类于与开发相关的逆向工程。
2.Android平台逆向工程
3.iOS平台逆向工程
常用的iOS逆向分析工具有以下几种:
- Dumpcrypt:对从Appstore中下载的应用进行脱壳操作。
- class-dump:使用该工具可以从Mach-O文件中获取应用程序的类信息,并生成对应的.h文件。
- IDAPro与HopperDisassembler:知名的反汇编工具,用于对可执行文件进行精准而细致的静态分析,转化为接近源代码的伪代码。
- GDB与LDB:与静态分析相对应,这两款工具通过动态调试的方式对程序进行更深入透彻的分析。
- Cycript:通过进程注入的方式依附运行中的OS程序,并可以使用 Javascript语法程序进行测试。
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在虚拟化系统中处于核心地位它能控制并允许启动 Guest Os、创建新 Guest OS镜像、执行其他特权操作。
2.Guest OS安全
虚拟环境中运行的 Guest OS和真实硬件上运行的OS几乎一样。真实硬件上运行的OS的所有安全考虑都可以应用到 Guest OS上。
3.虚拟化基础设施安全
虚拟化提供了硬件模拟许多虚拟系统都支持对虚拟硬件,特别是存储和网络的访问控制。
实施一个安全的虚拟化系统的关键在于安装、配置和部署之前进行慎重地规划,许多虚拟化的安全问题和性能问题都是因为缺乏规划和管理控制而造成的。
(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.云安全建设
云安全建设需要从六大层面考虑
- 物理层
- 网络层
- 主机层
- 应用层
- 虚拟化层
- 数据层