第4章 系统安全
4.1 操作系统概述
计算机是由硬件、操作系统软件、应用软件共同构成的复杂系统。
常见的计算机操作系统:Windows、Linux、安卓、iOS。
操作系统(Operating System):一组管理与控制计算机软、硬件资源,为用户提供便捷计算服务的计算机程序的集合。
计算机操作系统的功能包括:进程管理、内存管理、设备管理、文件管理、用户接口。
操作系统的漏洞和虚拟化环境的安全问题将对操作系统的安全带来严重威胁。
4.2 操作系统安全
4.2.1 操作系统的安全威胁与脆弱性
操作系统的安全威胁包括:非法用户或假冒用户入侵系统、数据被非法破坏或者数据丢失、不明病毒的破坏和黑客入侵、操作系统运行不正常。
操作系统的脆弱性包括:操作系统的远程调用和系统漏洞和进程管理体系存在问题。
操作系统的常见漏洞包括:空口令或弱口令、默认共享密钥、系统组件漏洞和应用程序漏洞。
4.2.2 操作系统中常见的安全保护机制
进程隔离和内存保护
为了实现进程隔离与内存保护的机制,计算机操作系统中加入了内存管理单元模块(MMU),程序运行时,由MMU模块负责分配进程运行所需的内存空间,进程隔离与内存保护机制为每个进程提供相互独立的运行空间。
运行模式
现代CPU的运行模式通常分为内核模式与用户模式两种模式
1) 内核模式:也称为特权模式,在Intel x86系列中,称为核心层(Ring 0) 。
2) 用户模式:也称为非特权模式,或者用户层(Ring 3)。
用户权限控制
当前常用的操作系统通常将用户权限分为系统管理员用户、普通用户、访客用户等不同权限级别。
文件系统访问控制
典型的文件操作权限控制是对文件的读、写和执行三方面权限进行限制,分别对应对文件进行读取、修改和运行的操作。
4.2.3 操作系统的安全评估
TCSEC按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为A、B、C、D四类7个安全级别,共27条评估准则。
D类是最低的安全级别,经过评估、但不满足较高评估等级要求的系统划归到D级。
C类采用的安全措施是自主访问控制和审计跟踪。C类分为C1和C2两个级别:自主安全保护级和控制访问访问保护级。
B类为强制保护级别,主要要求是TCB(可信计算基)应维护完整的安全标记,并在此基础上执行一系列强制访问控制规则。B类分为三个级别:标记安全保护级(B1)、机构化保护级(B2)和安全区域保护级(B3)。
关于B3系统所支持的方面:
安全管理员职能
扩充审计机制
当发生与安全相关的事件时,发出信号
提供系统恢复机制
系统具有很高的抗渗透能力
A级为验证保护级,包括严格的设计、控制和验证过程。A类分为2个级别:验证设计级(A1级)和超A1级。
超A1级系统涉及的范围包括: 系统体系结构、安全测试、形式化规约与验证、可信设计环境。
4.2.4 常用的操作系统及其安全性
现代操作系统一般可分为普通计算机操作系统、移动终端操作系统、嵌入式操作系统等。
Windows系统安全
Windows系统的安全性以Windows安全子系统为基础,辅以NTFS文件系统、Windows服务与补丁包机制、系统日志等,形成完整的安全保障体系。
1)Windows安全子系统
Windows安全子系统位于Windows操作系统的核心层,是Windows系统安全的基础。
Windows由系统登录控制流程、安全账号管理器、本地安全认证和安全引用监控器所构成。
NTFS文件系统
NTFS文件系统自Windows NT版本开始被微软作为Windows系统的默认文件系统,该文件系统不但提高了文件系统的性能,更通过引入访问权限管理机制和文件访问日志记录机制大幅提高了文件系统的安全性。
NTFS文件的主要特点包括:
NTFS可支持的分区大小可到达2TB
NTFS是一个可恢复的文件系统
NTFS支持对分区、文件夹和文件的压缩及加密
NTFS采用了更小的簇,可以更有效率地管理磁盘空间
在NTFS分区上,可以为共享资源、文件夹以及文件设置访问许可权限
在NTFS文件系统下可以进行磁盘配额管理
NTFS文件系统中的访问权限是累积的
NTFS的文件权限超越文件夹的权限
NTFS文件系统中的拒绝权限超越其他权限
NTFS权限具有继承性
Windows服务包和补丁包
扫描和利用系统漏洞攻击是黑客常用的攻击手段,解决系统漏洞最有效的方法就是安装补丁程序。
微软公司有四种系统漏洞解决方案:Windows Update、SUS、SMS和WUS。
Windows系统日志
1)正确设置和管理系统用户账户
2)安全管理系统对外的网络服务
3)启用Windows系统的日志功能
Linux系统安全
Linux是完全免费使用和自由传播的、符合POSIX标准的类Unix操作系统,遵循公共版权许可证,源代码公开、自由修改、自由发布,是能在各类硬件平台上运行的多用户、多任务的操作系统。
(1)Linux系统的安全机制
1)PAM机制
2)加密文件系统
3)防火墙
(2)Linux系统安全防范及设置
1)Linux引导程序安全设置 2)防止使用组合键重启系统
3)安全登录、注销
4)用户账号安全管理
5)文件的安全
6)资源使用的限制
7)清除历史记录
8)系统服务的访问控制
9)系统日志安全
10)关闭不必要的服务
11)病毒防范
12)防火墙
13)使用安全工具
14)备份重要文件
15)升级
16)Rootkit安全防范
Rookit的组成:以太网嗅探器程序、隐藏攻击者的目录和进程的程序、一些复杂的Rootkit还可以向攻击者提供telnet、shell和finger、一些用来清理/var/log和/var/adm目录中其他文件的脚本。
防范Rootkit的手段:首先,不要在网络上使用明文传输密码,或者使用一次性密码。其次,使用Tripwire和aide等检测工具能够及时地发现攻击者的入侵,它们能够提供系统完整性的检查。另外,还可以使用chkrootkit(专门针对Rootkit的检测工具)来检查。
4.3 移动终端安全
目前主流的移动终端操作系统平台主要分为两大阵营:由苹果公司出品的iOS系统平台和谷歌公司出品的Android系统平台。
移动终端发展至今在安全防护上根基尚浅,而重视程度不高,是造成移动终端安全问题的最大原因。
4.3.1 移动终端的概念及其主要安全问题
移动终端是指可以在移动中使用的计算机设备。
移动终端的分类:
1)有线可移动终端:指U盘、移动硬盘等需要用数据线来和电脑连接的设备。
2)无线移动终端:指利用无线传输协议来提供无线连接的模块,常见的无线移动终端主要包括智能手机,POS机,笔记本电脑也属于无线移动终端。
移动终端中存在的安全问题可归纳为:敏感信息本地存储、网络数据传输、恶意软件、应用安全和系统安全问题等类型。
4.3.2 Android平台及其安全
Android系统是基于Linux的开源操作系统,无论是手机厂商还是个人开发者都可以在Android标准操作系统的基础上进行定制。
Android平台在系统架构上分为多个层次,其中比较重要的有应用层、框架层、运行时和Linux内核层。
Android平台由于其开放的特性,相对其他移动终端平台存在更大的安全风险。
Android手机ROOT之后最主要的一个影响就是不能通过官方进行系统升级了,不过可以下载大量的第三方系统固件,让手机具有更好的机身扩展性。
恶意软件可能会在用户不知情的情况下执行信息窃取、偷跑流量话费、后台静默安装其他应用等操作,对用户的隐私安全和财产安全造成威胁。
为了避免恶意软件侵害自己的移动终端设备,用户应当拒绝安装来源不明的应用,尽量通过官方渠道或可以信任的第三方应用市场下载应用。同时,可以选择安装杀毒软件增强移动终端的安全防护。
4.3.3 iOS平台及其安全
iOS是从苹果公司的桌面系统MacOSX精简变化而来,两款操作系统都基于名为Darwin的类UNIX内核。
iOS相较于Android的优点:封闭的开发环境和相对完善的安全机制使其系统的受攻击面大大缩小,可以较好的保护用户的数据,避免恶意软件的侵害,因此获得了众多用户的信赖。
在iOS众多安全机制中,具有代表性的有权限分离、强制代码签名、地址空间随机布局和沙盒。
沙盒机制的功能限制:无法突破应用程序目录之外的位置;无法访问系统上其他的进程;无法直接使用任何硬件设备;无法生成动态代码。
XcodeGhost造成的危害如下:
1)上传用户信息
2)应用内弹窗
3)通过URLScheme执行其他操作
XcodeGhost造成重要影响的原因:从开发环境入手在编译阶段植入恶意代码;没有审核应用中的恶意代码;开发者安全意识的缺失。
4.3.4 移动系统逆向工程和调试
逆向工程:通过反汇编、反编译等手段从应用程序的可执行文件中还原出程序原代码的过程。
逆向工程可以划分为系统分析和代码分析两个阶段。
在代码分析阶段,主要通过发现安全漏洞、检测恶意代码和病毒木马分析对程序的二进制文件进行分析。
逆向工程的两个重要作用:
1)攻破目标程序,拿到关键信息,可以归类于与安全相关的逆向工程。
2)借鉴他人的程序功能来开发自己的软件,可以归类于与开发相关的逆向工程。
apk文件所包含的文件:
1)AndroidMainifest.xml文件
2)res文件夹
3)classes.dex文件
4)Resources.arsc
5)META-INF文件夹
为防止应用软件被Android逆向工程,可以采用以下几种防护措施:
1)代码混淆:可以使用ProGuard对Java代码进行混淆,增加反编译后代码阅读的难度。
2)加壳:通过为apk增加保护外壳的方式,保护其中的代码,增加非法修改和反编译的难度。
3)调试器检测:在代码中添加检测动态调试器的模块,当程序检测到调试器依附时,立即终止程序运行。
常用的iOS逆向分析工具如下:
1)Dumpcrypt:对从AppStore中下载的应用进行脱壳操作。
2)class-dump:通常在逆向工程初始阶段使用class-dump。
3)IDAPro与HopperDisassembler:知名的反汇编工具,用于对可执行文件进行精确而细致的静态分析,转化为接近源代码的伪代码。
4)GDB与LLDB
5)Cycript
逆向工程已经成为保障系统安全的主要手段,通过逆向工程,能够进一步发现系统中的漏洞和安全隐患,更好地保证用户安全。
4.4 虚拟化安全
虚拟化是目前云计算重要地技术支撑,需要整个虚拟化环境中的存储、计算及网络安全等资源的支持。
4.4.1 虚拟化概述
计算机虚拟化技术是一种资源管理技术,它将计算机的各种物理资源,通过抽象、转换后呈现给用户。
4.4.2 虚拟化技术的分类
按应用分类:
1)操作系统虚拟化
2)应用程序虚拟化
3)桌面虚拟化
4)存储虚拟化、网络虚拟化等
按照应用模式分类:
1)一对多
2)多对一
3)多对多
按硬件资源调用模式分类:
1)全虚拟化
2)半虚拟化
3)硬件辅助虚拟化
按运行平台分类:
1)X86平台
2)非X86平台
4.4.3 虚拟化环境中的安全威胁
虚拟化系统中可能存在的安全问题:虚拟机逃逸、虚拟化网络环境风险、虚拟化镜像和快照文件的风险和虚拟化环境风险。
4.4.4 虚拟化系统的安全保障
Hypervisor在虚拟化系统中处于核心地位,它能控制并允许启动Guest OS、创建新Guest OS镜像、执行其他特权操作。
关于如何增强Hypervisor安全的建议:
1)安装厂商发布的Hypervisor的全部更新
2)限制Hypervisor管理接口的访问权限
3)关闭所有不用的Hypervisor服务
4)使用监控功能来监视每个Guest OS的安全
5)仔细地监控Hypervisor自身地漏洞征兆
关于对Guest OS自身的安全建议:
1)遵守推荐的物理OS管理惯例
2)及时安装Guest OS的全部更新
3)在每个Guest OS里,断开不用的虚拟硬件。
4)为每个Guest OS采用独立的认证方案
5)确保Guest OS的虚拟设备都正确关联到宿主系统的物理设备上
规划和部署的安全的主要措施:规划、设计(认证问题和密码问题)、实施(物理到虚拟的转化、监控方面、实施的安全性、运维)等方面。
7.2 云安全
7.2.1 云的相关概念
虚拟机:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,具有封装性、独立性、隔离性、兼容性,且独立于硬件。
云是一个计算资源池,通常为一些大型服务器集群,每一群包括了几十万台甚至上百万台服务器,是一种为提供服务而开发的整套虚拟环境。
从技术架构上可以分为三层:服务软件即服务、平台即服务和基础设施即服务。
从云面向的对象可以分为公有云、私有云和混合云。
云计算:一种计算方法,即将按需提供的服务汇聚成高效资源池,以服务的形式交付给用户使用。
云服务的提供的三种不同层次的模式:基础架构即服务、平台即服务、软件即服务。
云安全:一个从云计算衍生而来的新名词,是指云及其承载的服务,可以高效、安全的持续运行。
7.2.2 云面临的安全挑战
目前云面临的安全挑战主要集中在四个方面:
1)如何解决新技术带来的风险
2)如何规划资源、数据等带来的风险
3)如何落实政策、法规方面的各项要求指标的风险
4)如何去运维管理云及其资源的风险
新技术的安全风险主要集中在可控性、动态性和虚拟机逃逸等方面。
云面临的集中化安全挑战:
1)云数据中心安全防护方面存在网络结构的规划与设计,系统的识别与迁移,权限集中等问题
2)云平台管理员存在权限滥用风险
3)用户的安全隔离
4)资源池内用户抢夺资源和恶意攻击
云安全建设需要从六大层面考虑,包括物理层、网络层、主机层、应用层、虚拟化层和数据层:
1)物理安全方面需要考虑门禁、消防、温湿度控制、电磁屏蔽、防雷、环境监控系统等方面的信息安全建设防护。
2)网络安全的安全建设通过FW、IDS/IPS、DDoS、VPN等方式去实现。
3)主机安全需要考虑终端安全、主机安全、系统完整性保护、OS加固、安全补丁、病毒防护等方面的信息安全建设防护。
4)虚拟化安全建设可以通过虑虚拟化平台加固、虚拟机加固与隔离、虚拟网络监控、恶意VM预防、虚拟安全网关VFW/VIPS等多方面去进行技术实现。
5)应用安全建设可以考虑通过多因素接入认证、WAF、安全审计等技术实现。
6)数据安全可以从数据访问控制、DB-FW、镜像加密、数据脱敏、剩余信息保护、存储位置要求等方面进行信息安全建设防护