2019-2020-1学期 20192406《网络空间安全专业导论》第十周学习总结
第4章 系统安全
4.1 操作系统概述
- 操作系统(Operating Systen=m,OS):是一组管理与控制计算机软件、硬件资源,为用户提供便捷计算服务的计算机系统的集合。
计算机的功能:
- 进程管理
- 内存管理
- 设备管理
- 文件管理
- 用户接口
4.2 操作系统安全
4.2.1 操作系统的安全威胁与脆弱性
1.操作系统的安全威胁
(1)非法用户或假冒用户侵入系统
(2)数据被非法破化或者数据丢失
(3)不明病毒的破坏和黑客入侵
(4)操作系统运行不正常
2.操作系统的脆弱性
操作系统的脆弱性主要来自以下几方面:
1)操作系统的远程调用和系统漏洞
2)进程管理体系存在的问题
操作系统的常见漏洞包括:
1)空口令或弱口令
2)默认共享密钥
3)系统组件漏洞
4)应用程序漏洞
操作系统中常见的安全保护机制
1.进程隔离和内存保护
2.运行模式
CPU的运行模式:
(1)内核模式:也称为特权模式,在Intel x86系列中,称为核心层(Ring 0)
(2)用户模式:也称为非特权模式,或者用户层(Ring 3)
3.用户权限控制
4.文件系统访问控制
4.2.3 操作系统的安全评估标准
美国国防部提出“可信计算机系统评估标准”————TCSEC(橘皮书),被认为是一项重要标准。TCSEC按处理信息的等级和采用的响应措施,将计算机安全从高到低分为A、B、C、D四类七个安全级别,共27条评估准则。
- D类(无保护级)是最低的安全级别,这种系统不能在多用户环境下处理敏感信息。
- C类为自主保护级别,具有一定的保护能力,采用的安全措施是自主访问控制和审计跟踪。C类分为C1和C2两个级别:自主安全保护级别(C1级)和控制访问保护级别(C2级)。
- B级为强制保护级别,主要要求是TCB应维护完整的安全标记,并在此基础上执行一系列强制访问控制规则。B类分为三个级别:标记安全保护级(B1级)、机构化保护级(B2级)和安全区域保护级(B3级)。
B3级系统支持如下方面:- 安全管理员职能
- 扩充审计机制
- 当发生与安全相关的事件时,发出信号
- 提供系统恢复机制
- 系统具有很高的抗渗透能力
- A类分为2个级别:验证设计级(A1级)、超A1级。
超A1级系统涉及的范围包括:系统体系结构、安全测试、形式化规约与验证、可信设计环境。
4.2.4 常用的操作系统及其安全性
1.Windows 系统安全
Windows是目前全球范围内得到广泛应用的操作系统。
(1) Windows 安全子系统
- 系统登录控制流程(Winlogon)
- 安全账号管理器(SAM)
- 本地安全认证(LSA)
- 安全引用监控器(SRM)
(2) NTFS 文件系统
NTFS文件系统可以对文件系统中的对象设置非常精细的访问权限,其主要特点包括:
- NTFS可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB。而Windows2000中的FAT32支持的分区大小可达到32GB。
- NTFS是一个可恢复的文件系统。
- NTFS支持对分区、文件夹和文件的压缩及加密。
- NTFS采用了更小的簇,可以更有效率地管理磁盘空间。
- 在NTFS分区上,可以为共享资源、文件夹以及文件设置访问许可权限。
- 在NTFS文件系统下可以进行磁盘配额管理。
- NTFS文件系统中的访问权限是累积的。
- NTFS的文件权限超越文件夹的权限。
- NTFS文件系统中的拒绝权限超越其他权限。
- NTFS权限具有继承性。
(3) Windows 服务器和补丁包
微软公司有四种系统漏洞解决方案:Windows Update、SUS、SMS和WUS。
(4) Windows 系统日志
日志文件(log)记录着Windows系统及其各种服务运行的每个细节,对增强Windows的稳定和安全性,起着非常重要的作用。
Windows系统用户可以通过以下手段提升Windows系统的安全性。
- 正确设置和管理系统用户账户
- 安全管理系统对外的网络服务
- 启动Windows系统日志功能,并对日志文件进行保护
2.Linux系统安全
Linux是完全免费使用和自由传播的、符合POSIX标准的类Unix操作系统,是能在各类硬件平台上运行的多用户、多任务的操作系统。
(1)Linux系统的安全机制
- PAM机制
- 加密文件系统
- 防火墙
(2)Linux系统安全防范及设置
- Linux引导程序安全设置
- 防止使用组合键重启系统
- 安全登录、注销
- 用户账号安全管理
- 文件的安全
- 资源使用的限制
- 清除历史记录
- 系统服务的访问控制
- 系统日志安全
- 关闭不必要的服务
- 病毒防范
- 防火墙
- 使用安全工具
- 备份重要文件
- 升级
- Rootkit安全防范
- Rootkit的组成
一个典型Rootkit包括以下部分:
(1) 以太网嗅探器程序
(2) 隐藏攻击者的目录和进程的程序
(3) 一些复杂的Rootkit还可以向攻击者提供telnet、shell和finger等服务
(4) 一些用来清理/var/log和/var/adm目录中其他文件的脚本
LRK工作集包含有:
(1)Fix,用于改变文件的timestamp(时间戳)和checksum (校验和),它用来把篡改过的程序的timestamp和checksum变更为和原先的系统中的程序相同。
(2)Linsniffer:窃取特定网络信息(ftp/telnet/imap..) 的sniffer。
(3)Sniffchk:检测Linsniffer是否在运行。
(4)Wted:查阅或移除wtmp中指定的栏位。
(5)Z2:移除某个使用者最后的utmp/wtmp/astlog记录。 - 防范和发现Rootkit
要防范Rootkit,可以采用以下手段:首先,不要在网络上使用明文传输密码,或者使用一次性密码。其次,使用Tripwire和aide等检测工具能够及时地发现攻击者的入侵,它们能够提供系统完整性的检查。另外,如果怀疑自己可能被植人Rootkit,可以使用chrootkit来检查(chkrootkit 是专门针对Rootkit的检测工具)。
4.3 移动终端安全
目前主流的移动终端操作系统平台主要分为两大阵营:由苹果(Apple)公司出品的iOS系统平台,和谷歌(Google)公司出品的Android(安卓)系统平台。
4.3.1 移动终端的概念及其主要安全问题
1.移动终端的概念
移动终端(移动通信终端)是指可以在移动中使用的计算机设备。大致分两类:
1)有线可移动终端:指U盘、移动硬盘等需要数据线来和电脑连接的设备。
2)无线移动终端:指利用无线传输协议来提供无线连接的模块。
2.移动终端面临的安全问题
(1)敏感信息本地存储
(2)网络数据传输
(3)应用安全问题
(4)恶意软件
(5)系统安全问题
4.3.2 Android平台及其安全
1.认识Android平台
Android系统已经成为世界范围内广泛使用的移动端操作系统。
2.Android的平台特性
Android系统是基于Linux的开源操作系统,无论是手机厂商还是个人开发者都可以在Android标准操作系统的基础上进行定制。这也是Android与iOS系统的最大区别。
Android平台在系统架构上分为多个层次
- 应用层:即直接为用户提供服务的应用软件。
- 框架层:Android系统的核心部分,由多个系统服务组成。
- 运行时:Android平台的运行时由Java核心类库与Dalvik虚拟机共同组成。
- 内核层:Linux内核层是Android系统的最底层。
3.Android平台的安全问题
Android平台由于其开放的特性,相对其他移动终端平台存在更大的安全风险。
4.ROOT的危害
在Linux系统中,ROOT是拥有最高权限的用户。
Android手机ROOT之后最主要的一个影响就是不能通过官方进行系统升级了,不过可以下载大量的第三方系统固件,让手机具有更好的机身扩展性。系统重要文件获取ROOT权限前不能删除,但ROOT后可以随意删除。设备上的病毒、木马有更多机会破坏设备或利用系统达成其非法目的。
5.恶意软件的威胁
恶意软件可能会在用户不知情的情况下执行信息窃取、偷跑流量话费、后台静默安装其他应用等操作,对用户的隐私安全和财产安全造成威胁。
4.3.3 iOS平台及其安全
1.认识iOS平台
iOS平台是苹果公司于2007年发布的专为初代iPhone使用的移动端操作系统,最初名为iPhone OS,后更名为iOS,并开始使用在iPod Touch、iPad等苹果公司出产的其他产品上。
2.iOS平台的安全机制
- 权限分离
- 强制代码签名
- 地址空间随机布局
- 沙盒
沙盒机制的功能限制如下:
- 无法突破应用程序目录之外的位置。
- 无法访问系统上其他的进程,即使是具有同样UID的进程。
- 无法直接使用任何硬件设备,只能通过苹果受到约束的API来进行访问。
- 无法生成动态代码。
3.XcodeGhost事件分析
XcodeGhost造成的危害有如下几种:
- 上传用户信息
- 应用内弹窗
- 通过URLScheme执行其他操作
4.3.4 移动系统逆向工程和调试
1.移动终端逆向工程概述
- 逆向工程:通过反汇编、反编译等手段从应用程序的可执行(二进制)文件中还原出程序原代码的过程。
逆向工程可以划分为系统分析和代码分析两个阶段。
- 在系统分析阶段,通过观察程序正常运行的流程,分析程序各组件行为特征来建立对程序架构逻辑的初步框架。
- 在代码分析阶段,主要是通过以下几点,对程序的二进制文件进行分析。
- 发现安全漏洞
- 检测恶意代码
- 病毒木马分析
逆向工程主要有两个作用:
- 攻破目标系统,拿到关键信息,可以归类于与安全相关的逆向工程。
- 借鉴他人的程序功能来开发自己的软件,可以归类于与开发相关的逆向工程。
在iOS系统中,应用程序的可执行文件为Mach-O格式;在Android系统中,这个文件是dex文件格式。
2.Android平台逆向工程
基于Android平台的应用软件经由开发者编写之后,会通过编译、压缩等过程生成一个Android Package,即通常所说的apk安装包。
将一个apk文件的后缀改为.zip,解压缩后即可看到apk中所包含的内容。一般情况下,apk文件包中会包含以下文件:
- AndroidMainifest.xml文件:应用程序全局配置文件,包含了对组建的定义和应用程序的使用权限。
- res文件夹:用于存放资源文件的resources文件夹。
- classes.dex文件: Android 系统中的应用程序可执行文件。
- Resources.arsc: 经过编译的二进制资源文件。
- META-INF文件夹:存储签名相关的信息。
AndroidPackage中的文件是对Android平台应用进行安全审计的基础。
对classes.dex的简要分析方式:
- 对可执行文件进行反汇编,分析生成的Davik字节码。
- 使用Apktool或Baksmali生成smali文件进行阅读。
- 使用DDMS等工具监控Android程序的运行状态,对Android程序进行动态调试。
为防止应用软件被Android逆向工程,可以采用以下几种防护措施:
- 代码混淆:可以使用ProGuard对Java代码进行混淆,增加反编译后代码阅读的难度。
- 加壳:通过为apk增加保护外壳的方式,保护其中的代码,增加非法修改和反编译的难度。
- 调试器检测:在代码中添加检测动态调试器的模块,当程序检测到调试器依附时,立即终止程序运行。
3.iOS平台逆向工程
与AndroidPackage对应,在iOS平台下也有对应的IPA文件。IPA文件本质上是个zip压缩包。
IPA文件包含的内容:
- Info.plist 是分析一个iOS应用的人口,记录了一个APP的基本信息。
- Executablefile,即APP可执行文件的名称。
可执行文件是IPA的核心文件,也是逆向工程的主要分析目标。在iOS中,可执行文件为Mach-O格式。Mach-O是iOS系统以及MacOSX系统中主要的可执行文件格式。在IPA文件目录下,还存放有resource(资源文件夹)、.Iproj(语言国际化文件夹)、_CodeSignature(代码签名)和其他文件,对逆向分析有较大的帮助。
常用的iOS逆向分析工具有以下几种:
- Dumpcrypt: 对从AppStore中下载的应用进行脱壳操作。由于大部分iOS应用只有AppStore作为唯一的下 载渠道,因此对ios应用进行脱壳比较简单。
- class-dump:通常在逆向工程初始阶段使用class-dump。使用该工具可以从Mach-O文件中获取应用程序的类信息,并生成对应的.h文件。通过class dump获取的信息,可以快速辅助搭建APP源代码的大致框架。
- IDAPro 与HopperDisassembler:知名的反汇编工具,用于对可执行文件进行精准
而细致的静态分析,转化为接近源代码的伪代码。 - GDB与LLDB:与静态分析相对应,这两款工具通过动态调试的方式对程序进行
更深入透彻的分析。 - Cycript: 通过进程注人的方式依附运行中的iOS程序,并可以使用JavaScript语法程序进行测试。
4.4 虚拟化安全
4.4.1 虚拟化概述
计算机虚拟化技术是一种资源管理技术,它将计算机的各种物理资源,如CPU、内存及存储、网络等,通过抽象、转换后的呈现给用户。
4.4.2 虚拟化技术的分类
1.按应用分类
- 操作系统虚拟化
- 应用程序虚拟化
- 桌面虚拟化
- 存储虚拟化
2.按照应用模式分类
- 一对多
- 多对一
- 多对多
3.按硬件资源调用模式分类
- 全虚拟化
- 半虚拟化
- 硬件辅助虚拟化
4.按运行平台分类
- X86平台
- 非X86平台
4.4.3 虚拟化环境中的安全威胁
安全问题:
- 虚拟机逃逸
- 虚拟化网络环境风险
- 虚拟机镜像和快照文件的风险
- 虚拟化环境风险
4.4.4 虚拟化系统的安全保障
1.Hypervisor安全
Hypervisor在虚拟化系统中处于核心地位,Hypervisor 的访问和控制级别比Guest OS高,它能控制并允许启动Guest OS、创建新Guest OS镜像、执行其他特权操作。
Hypervisor的管理通信应当被保护,一种方法是采用带外管理,通过专门的管理网络,它们与其他网络独立,仅能被授权的管理员访问;另一种方式是采用加密技术在不信任的网络上对管理通信做加密保护,例如VPN加密通信。
对增强Hypervisor安全的建议:
- 安装厂商发布的Hypervisor的全部更新。
- 限制Hypervisor管理接口的访问权限。
- 关闭所有不用的Hypervisor服务。
- 使用监控功能来监视每个GuestOS的安全在虚拟化环境中,网络的监控尤为重要。
- 仔细地监控Hypervisor自身的漏洞征兆,可以使用Hyerisor提供的自身完整性监控工具和日志监控与分析工具完成上述工作。
2.Guest OS安全
对Guest OS自身的安全建议:
- 遵守推荐的物理OS管理惯例。
- 及时安装Guest OS的全部更新。
- 在每个Guest OS里,断开不用的虚拟硬件。
- 为每个Guest OS采用独立的认证方案。
- 确保Guest OS的虚拟设备都正确关联到宿主系统的物理设备上。
3.虚拟化基础设施安全
4.规划和部署的安全
(1)规划
该阶段是组织在开始方案设计之前要做的工作,规划阶段需确定当前和未来需求,确定功能和安全的要求。规划阶段的一个关键工作是开发虚拟化安全策略。
(2)设计
该阶段决定使用哪种类型的虚拟化技术并设计安全解决方案。这一阶段里,需明确虚拟化解决方案和相关组件的技术特征,包括认证方式和保护数据的加密机制。
对于设计虚拟化方案,需考虑的安全性技术如下:
- 认证问题:认证涉及决定在虚拟化解决方案的哪一层需要独立认证机制以及选择、实施、维护这些机制。
- 密码问题:与密码相关的决策包括选择在虚拟化通信中进行加密和完整性保护的算法、为支持多密钥长度的算法设定密钥强度。
(3)实施
虚拟化解决方案设计好以后,下一步就是把解决方案变成实际的系统,涉及的方面如下:
- 物理到虚拟的转化
- 监控方面
- 实施的安全性
- 运维
7.2 云安全
7.2.1 云的相关概念
1.云
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,具有封装性、 独立性、隔离性、兼容性,且独立于硬件。
云是一种比喻说法,是一个计算资源池,通常为一些大型服务器集群,每一群包括了几十万台甚至上百万台服务器,是一种为提供服务而开发的整套虚拟环境。
从不同维度可以有不同的云分类。
从技术架构可以分为三层,即服务软件即服务( SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS);
从云面向的对象可以分为公有云、私有云和混合云。
2.云计算
云计算(CloudComputing)是一种计算方法,即将按需提供的服务汇聚成高效资源池(包括网络、服务器、存储、应用软件、服务),以服务的形式交付给用户使用。
云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡( Load Balance)、热备份冗余( High Available) 等传统计算机和网络技术发展融合的产物。
3.云服务
云服务是在云计算环境下的服务交付模式,是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展的资源,云服务提供的资源通常是虚拟化的资源。
目前云服务提供三种不同层次的模式:基础架构即服务(IaaS)、 平台即服务( PaaS)、 软件即服务( SaaS)。
未来将会出现各种各样的云产品。通常所说的云服务,其实就是指上述三种层次的云服务中的一种。
4.云主机
云主机是云计算在基础设施应用上的重要组成部分,处于云计算产业链金字塔的底层。云主机是在一组集群主机上虚拟出的多个类似独立主机,集群中每个主机上都有云主机的一个镜像,拥有自己的操作系统,完全不受其他主机的影响。
云主机整合了计算、存储与网络资源的IT基础设施能力租用服务,能提供基于云计算模式的按需使用、按需付费能力的服务器租用服务。在云环境里面,类似云主机的主体还有云存储、云应用、云数据库、云桌面等。
5.云安全
云安全(Cloud Security)是一个从云计算衍生而来的新名词,是指云及其承载的服务,可以高效、安全的持续运行。
云安全类似传统领域安全,涵盖云环境所涉及的物理安全、网络安全、主机安全、数据库安全、应用安全等,云安全在传统安全的基础上还增加了虚拟安全等方面的安全防护。
在安全设备上也可以实现虚拟化安全设备的部署,比如云保垒、云WAF等。
7.2.2 云面临的安全挑战
目前云面临的安全挑战主要集中在四个方面:
- 如何解决新技术带来的新风险。
- 如何规划资源、数据等带来的风险。
- 如何落实政策、法规方面的各项要求指标的风险。
- 如何去运维管理云及其资源的风险。
1.新技术
新技术带来的安全风险:
- 可控性
- 动态性
- 虚拟机逃逸
2.集中化
集中化安全挑战:
- 云数据中心安全防护方面存在网络结构的规划与设计,系统的识别与迁移,权限集中等问题。
- 云平台管理员存在权限滥用风险。
- 用户的安全隔离。
- 资源池内用户抢夺资源和恶意攻击等。
3.合规性
4.运维管理
7.2.3 云环境下的安全保障
1.云安全标准
2.云安全建设
云安全建设需要从六大层面考虑, 包括物理层、网络层、主机层、应用层、虚拟化层和数据层。
1)物理安全方面需要考虑门禁、消防、温湿度控制、电磁屏蔽、防雷、环境监控系统等方面的信息安全建设防护。
2)网络安全的安全建设通过FW、IDS/IPS.DDoS、VPN等方式去实现,举例说明产品功能如下:
- FW:通过防火墙实现安全隔离。
- IDS/IPS: 部署入侵防御系统,通过日志监控、文件分析、特征扫描等手段提供账号暴力破解、WebShell查杀等防入侵措施。
- DDoS:防DDoS清洗系统可抵御各类基于网络层、传输层及应用层的各种DDoS攻击,并实时短信通知网站防御状态。
- VPN:建立安全通道,保证用户访问数据的信息进行保密性、完整性和可用性。
3)主机安全需要考虑终端安全、主机安全、系统完整性保护、OS 加固、安全补丁、病毒防护等方面的信息安全建设防护。
4)虚拟化安全建设可以通过虑虚拟化平台加固、虚拟机加固与隔离、虚拟网络监控、恶意VM预防、虚拟安全网关VFW/VIPS等多方面去进行技术实现。
VFW/VIPS是虚拟化防火墙与虚拟化入侵防御系统,能提供全方位的云安全服务,包括访问控制、流量及应用可视化、虚机之间威胁检测与隔离,网络攻击审计与溯源等。
5)应用安全建设可以考虑通过多因素接人认证、WAF、安全审计等技术实现,其中:
- WAF: Web应用防火墙安全防护,能有效拦截SQL注人、跨站脚本等类型的Web攻击,提供高危0day漏洞24小时快速响应服务。
- 安全审计:制定并持续优化信息安全审计规则,依此对信息系统及应用操作进行
记录和审计,对违规行为和异常操作进行分析和预警,生成安全审计报告。
6)数据安全可以从数据访问控制、DB-FW、镜像加密、数据脱敏、剩余信息保护、存储位置要求等方面进行信息安全建设防护。
DB-FW解决数据库应用侧和运维侧两方面的问题,是基于数据库协议分析与控制技术的数据库安全防护系统。它能实现数据库的访问行为控制、危险操作阻断、可疑行为审计等功能。