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

第4章 系统安全

4.1 操作系统概述

计算机是由硬件、操作系统软件、应用软件共同构成的复杂系统
操作系统(OS)是一组管理与控制计算机软、硬件资源,为用户提供便捷计算服务的计算机程序的集合。

计算机操作系统的主要功能有

  • 进程管理:也称为处理器管理,主要负责对中央处理器的时间进行合理分配、对处理器的运行进行有效的管理
  • 内存管理:主要负责对计算机内存空间进行合理分配、保护和扩充
  • 设备管理
  • 文件管理
  • 用户接口:主要分为命令行接口、图形界面接口和程序调用接口

    4.2 操作系统安全

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

    1. 操作系统的安全威胁

  • 非法用户或假冒用户入侵系统
  • 数据被非法破坏或数据丢失
  • 不明病毒的破坏和黑客入侵
  • 操作系统运行不正常

    2.操作系统的脆弱性

  • 操作系统的远程调用和系统漏洞
  • 进程管理体系存在问题

    操作系统的常见漏洞包括

  • 空口令或弱口令
  • 默认共享密钥
  • 系统组件漏洞
  • 应用程序漏洞

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

    1.进程隔离和内存保护

  • 由内存管理单元(MMU)负责分配进程运行所需的内存空间

    2.运行模式

  • 现代CPU的运行模式通常分为内核模式和用户模式
  • 1.内核模式,也称为特权模式 核心层
  • 2.用户模式,也称为非特权模式 用户层

    3.用户权限控制

  • 现代的操作系统具备支持多任务和多用户的能力
  • 系统管理员用户拥有对操作系统进行管理的全部权限
  • 普通用户只有执行、修改属于自己的应用软件和文件的权限
  • 访客用户只能访问系统管理员用户和普通用户共享出来的极少的文件和应用

    4.文件系统访问控制

  • 操作系统中的数据和程序通常以文件的方式存储在计算机的磁盘空间中

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

  • 可信计算机安全评估标准
  • 按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为A、B、C、D四类7个安全级别
  • D级(无保护级)
  • C类为自主保护级别,具有一定的保护能力,采用的安全措施是自主访问控制和审计跟踪
  • C1:自主安全保护级 C2:控制访问保护级
  • B级:强制保护级别
  • B1:标记安全保护级 B2:机构化保护级 B3:安全区域保护级

    B3级系统支持如下方面:
  • 安全管理员职能
  • 扩充审计机制
  • 当发生与安全相关的事件时,发出信号
  • 提供系统恢复机制
  • 系统具有很高的抗渗透能力

  • A级为验证保护级,包含严格的设计、控制和验证的过程
  • 验证设计级(A1级)、超A级

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

  • 现代的操作系统一般可分为普通计算机操作系统、移动终端操作系统、嵌入式操作系统等

    1.Windows系统安全

  • Windows系统的安全性以Windows安全子系统为基础,辅以NTFS文件系统、Windows服务与补丁包机制、系统日志等,形成了完整的安全保障体系

    (1)Windows安全子系统
  • 位于Windows操作系统的核心层,是Windows系统安全的基础
  • 1)系统登录控制流程:该模块主要负责接收用户的本地登录请求或远程用户的网络远程登录请求,从而和Windows系统之间建立联系
  • 2)安全账户管理器(SAM):SAM维护账号的安全性管理数据库,该数据库内包含所有用户和组的账号信息
  • 3)本地安全认证(LSA):LSA是Windows安全子系统的核心组件,它负责通过确认安全账号管理器中的数据信息来处理用户的登录请求,使登录生效并确定登录用户的安全访问权限
  • 4)安全引用监控器(SRM):以内核模式运行,负责检查Windows系统的存取合法性,以保护资源不被非法存取和修改

    (2)NTFS文件系统

  • 通过引入访问权限管理机制和文件访问日志机制大幅提高了文件系统的安全性
  • 可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB
  • 是一个可恢复的文件系统
  • 支持对分区、文件夹和文件的压缩及加密
  • 采用了更小的簇,可以更有效地管理磁盘空间
  • 在NTFS分区上,可以为共享资源、文件夹以及文件设置访问许可权限
  • 在NTFS文件系统下可以进行磁盘配额管理
  • NTFS文件系统中的访问权限是累积的
  • NTFS的文件权限超越文件夹的权限
  • NTFS文件系统中的拒绝权限超越其他权限
  • NTFS权限具有继承性

    (3)Windows服务包和补丁包

  • Windows Update是Windows操作系统自带的一种自动更新工具
  • SUS是微软公司为客户提供的快速部署最新的重要更新和安全更新的免费软件
  • SUS由服务器组件和客户端组成。服务器组件负责软件更新服务,称为SUS服务器
  • 服务器提供通过基于Web的工具管理和分发更新的管理功能
  • WSUS是微软新的系统补丁发放服务器。新增了改良的管理员控制处理,减少网络带宽影响和使用、发布剩余报告信息功能、对最终用户的优化、增加管理员管理等功能
  • SMS即系统管理服务器

    (4)Windows系统日志

    1)正确设置和管理系统用户账户,包括:
  • 停止使用Guest账户
  • 尽可能少添加用户账户
  • 为每个账户设置一个复杂的密码(如包含大小写字母、数字、特殊字符等)
  • 正确地设置每个账户的权限
  • 给系统默认的管理员账户改名
  • 尽量少用系统管理员账户登录系统等

    2)安全管理系统对外的网络服务
    3)启用Windows系统日志功能

    2.Linux系统安全

    (1)Linux系统的安全机制
  • PAM机制
  • 加密文件系统
  • 防火墙

    (2)Linux系统安全防范及设置
  • Linux引导程序安全设置
  • 防止使用组合键重启系统
  • 安全登录、注销
  • 用户账号安全管理
  • 文件的安全
  • 资源使用的限制
  • 清除历史记录
  • 系统服务的访问控制
  • 系统日志安全
  • 关闭不必要的服务
  • 病毒防范
  • 防火墙
  • 使用安全工具
  • 备份重要文件
  • 升级
  • Rootkit安全防范

    4.3 移动终端安全

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

    1.移动终端的概念

  • 移动终端(或者叫移动通信终端)是指可以在移动中使用的计算机设备
  • 我们可以将其大致划分为以下两大类:
  • 1.有线可移动终端:指U盘、移动硬盘等需要用数据线来和电脑连接的设备
  • 2.无线移动终端:指利用无线传输协议来提供无线连接的模块
  • 移动终端面临两方面的安全问题。一方面,任何一种系统或平台都有其自身的脆弱性;另一方面,移动终端上有大量应用没有经过严格的安全性检测

    2.移动终端面临的安全问题

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

    4.3.2 Android平台及其安全

    2.Android的平台特性

  • Android系统是基于Linux的开源操作系统
  • 在系统架构上分为多个层次
  • 应用层:即直接为用户提供服务的应用软件。
  • 框架层:Android系统的核心部分,由多个系统服务组成。
  • 运行时
  • 内核层:系统的最底层

    3.安全问题

  • 主要的安全威胁来源于ROOT和恶意软件

    4.ROOT的危害

  • 在Linux系统中,ROOT是拥有最高权限的用户
  • Andriod手机ROOT之后最主要的一个影响就是不能通过官方进行系统升级了,不过可以下载大量的第三方系统固件,让手机具有更好的机身扩展性
  • 可以随意删除系统的有些重要文件
  • 设备上的病毒、木马有更多机会破坏设备或利用系统达到其非法目的。

    5.恶意软件的威胁

  • 为了避免恶意软件侵害自己的移动终端设备,用户应当拒绝安装来源不明的应用,尽量通过官方渠道或可以信任的第三方应用市场下载应用。同时,可以选择安装杀毒软件增强移动终端的安全防护

    4.4.3 iOS平台及其安全

    1.认识iOS平台
  • iOS平台是苹果公司于2007年发布的专为初代iPhone使用的移动端操作系统

    2.iOS平台的安全机制
  • 权限分离:用户在执行iOS中的大部分应用程序时,身份被维持在权限较低的mobile用户,而系统中比较重要的进程则是由UNIX中最高权限的root用户来执行
  • 强制代码签名:所有应用的可执行文件和类库都必须经过可信赖机构的签名才会被允许在内核中运行
  • 地址空间随机布局:通过让对象在内存中的位置随机布局以防御攻击代码的措施
  • 沙盒:iOS上的应用程序在运行时,所有操作都会被会隔离机制严格限制,在一个与其他应用相隔绝的空间中运行
  • 沙盒机制的功能限制如下:
  • 1)无法突破应用程序目录之外的位置,无法知晓系统上安装的其他应用程序,无法访问文件系统
  • 2)无法访问系统上的其他进程,即使是具有同样UID的进程
  • 3)无法直接使用任何硬件设备,只能通过苹果收到约束的API来进行访问
  • 4)无法生成动态代码。系统底层的实现被修改,防止任何将可写内存页面设置为可执行的企图

    3.XcodeGhost事件分析
  • 造成的危害有如下几种:
  • 1)上传用户信息
  • 2)应用内弹窗
  • 3)通过URLScheme执行其他操作,例如发送短信、拨打电话、打开网页或打开其他应用

    4.3.4 移动系统逆向工程调试

    1.移动终端逆向工程概述

  • 逆向工程,顾名思义,是通过反汇编、反编译等手段从应用程的可执行(二进制)文件中还原出程序原代码的过程。
  • 逆向工程可以划分为系统分析和代码分析两阶段
  • 在系统分析阶段,通过观察程序正常运行的流程,分析程序各组件行为特征来建立对程序架构逻辑的初步框架
  • 在代码分析阶段,主要是通过以下几点,对程序的二进制文件进行分析。
  • 1)发现安全漏洞:在未知源代码的情况下,可以通过逆向工程对应用程序进行分析,发现应用中潜藏的安全漏洞和数据泄露风险
  • 2)检测恶意代码
  • 3)病毒木马分析
  • 逆向工程主要有两个作用:
  • 攻破目标程序,拿到关键信息,可以归类于与安全相关的逆向工程
  • 借鉴他人的程序功能来开发自己的软件 ,可以归类于与开发有关的逆向工程
  • 需要注意的是,在iOS系统中,应用程序的可执行文件为Mach-O格式
  • 在Android系统中,这个文件是dex文件格式

    2.Andriod平台逆向工程

  • 基于Android平台的应用软件经由开发者编写之后,会通过编译、压缩等过程生成一个apk安装包
  • 其中包含以下文件:
  • AndroidMainifest.xml文件:应用程序全局配置文件,包含了对组建的定义和应用程序的使用权限
  • res文件夹:用于存放资源文件的resources文件夹
  • classes.dex文件:Android系统中的应用程序可执行文件
  • Resources.arsc:经过编译的二进制资源文件
  • META-INF文件夹:存储签名相关的信息
  • 对classes.dex的简要分析方式:
  • 1)对可执行文件进行反汇编,分析生成的Darvik字节码
  • 2)使用Apktool或Baksmail生成smali文件进行阅读 smali语言是DEX文件进行反汇编后的代码
  • 3)使用DDMS等工具监控Android程序的运行状态,对Android程序进行动态调试
  • 为防止应用软件被Android逆向工程,可以采取以下几种防护措施
  • 1)代码混淆:可以使用ProGuard对Java代码进行混淆,增加反编译后代码阅读的难度
  • 2)加壳:通过为apk增加保护外壳的方式,保护其中的代码,增加非法修改和反编译的难度
  • 3)调试器检测:在代码中添加检测动态调试器的模块,当程序检测到调试器依附时,立即终止程序运行

    3.iOS平台逆向工程

  • 在iOS平台下也有对应的IPA文件
  • Info.plist是分析一个iOS应用的入口,记录了一个APP的基本信息,其中比较重要的内容为Executable file,即APP可执行文件的名称
  • 在iOS中,可执行文件为Mash-O格式
  • 在IPA文件目录下,还存放有resource(资源文件夹)、Iproj(语言国际化文件夹)、-CodeSignature(代码签名)和其他文件,对逆向分析有较大帮助
  • 常用的iOS逆向分析工具有以下几种:
  • Dumpcrypt:对从AppStore中下载的应用进行脱壳操作
  • class-dump:可以从Mash-O文件中获取应用程序的类信息,并生成对应的.h文件。通过此获取的信息,可以快速辅助搭建APP源代码的大致框架
  • IDAPro与HopperDisassembler:知名的反汇编工具,用于对可执行文件进行精准而细致的静态分析,转化为接近源代码的伪代码
  • GDB与LLDB:与静态分析相对应,这两款工具通过动态调试的方式对程序进行更深入透彻的分析
  • Cycript:通过进程注入的方式依附运行中的iOS程序,并可以使用JavaScript语法程序进行测试
  • 使用Reveal分析应用程序图形化界面,使用Charles截取网络数据传输进行截取,甚至可以使用TheOS进行越狱应用的开发

    4.4虚拟化安全

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

    4.4.1 虚拟化概述

  • 计算机虚拟化技术是一种资源管理技术,它将计算机的各种物理资源,如CPU、内存及存储、网络等,通过抽象、转换后呈现给用户。
  • 虚拟化技术可以支持让多个虚拟的计算机在同一物理设备上运行

    4.4.2 虚拟化技术的分类

    1.按应用分类

  • 操作系统虚拟化
  • 应用程序虚拟化
  • 桌面虚拟化
  • 存储虚拟化、网络虚拟化等

    2.按照应用模式分类

  • 一对多:将一个物理服务器划分为多个虚拟服务器的方式,这是典型的服务器整合模式
  • 多对一:其中整合了多个虚拟服务器,将他们作为一个资源池。这是典型的网格计算模式
  • 多对多:将两种模式结合在一起的方式

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

  • 全虚拟化:虚拟操作系统与底层硬件完全隔离。 无需更改客户端操作系统,兼容性好
  • 半虚拟化:在虚拟客户操作系统中加入特定的虚拟化指令
  • 硬件辅助虚拟化:在CPU中加入了新的指令集和处理器运行模式,完成虚拟操作系统对硬件资源的直接调用

    4.按运行平台分类

  • X86平台:
  • 非X86平台

    4.4.3 虚拟化环境中的安全威胁

  • 虚拟机逃逸:同一台物理服务器上的多个VM共享物理硬件(如CPU、内存和I/O设备),在某些情况下,在虚拟机操作系统里面运行的程序会绕过底层,利用宿主机做某些攻击或破坏活动
  • 虚拟化网络环境风险
  • 虚拟化镜像和快照文件的风险
  • 虚拟化环境风险

    4.4.4 虚拟化系统的安全保障

    1.Hypervisor安全

  • 1)安装厂商发布的Hypervisor的全部更新
  • 2)限制Hypervisor管理接口的访问权限
  • 3)关闭所有不用的Hypervisor服务
  • 4)使用监控功能来监视每个Guest OS的安全
  • 5)仔细地监控Hypervisor自身的漏洞征兆

    2.Guest OS安全

  • 遵守推荐的物理OS管理惯例
  • 及时安装Guest OS的全部更新
  • 在每个Guest OS里,断开不用的虚拟硬件
  • 为每个Guest OS采用独立的认证方案
  • 确保Guest OS的虚拟设备都正确关联到宿主系统的物理设备上

    3.虚拟化基础设施安全

  • 虚拟化提供了硬件模拟,如存储、网络

    4.规划和部署的安全

    (1)规划
  • 该阶段是组织在开始方案设计之前要做的工作,规划阶段需确定当前和未来需求,确定功能和安全的要求。
  • 规划阶段的一个关键工作是开发虚拟化安全策略,安全策略应该定义组织允许哪种形式的虚拟化以及每种虚拟化下能够使用的程序和数据

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

    (3)实施
  • 把解决方案变成实际的系统
  • 1)物理到虚拟的转化:现有的服务器和桌面需要迁移到Guest OS中
  • 2)监控方面:认证方面,确保每一层都需要认证,而且认证不能被旁路;连通性方面,用户只能连接到所有允许的资源,而不能连到其他资源,按照组织已经确立的策略对每个数据流进行保护
  • 3)实施的安全性
  • 4)运维

    第7章 大数据背景下的先进计算问题

    7.2 云安全

    7.2.1 云的相关概念

    1.云

  • 虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,具有封装性、独立性、隔离性、兼容性,且独立于硬件
  • 云是一种比喻说法,是一个计算资源池,通常为一些大型服务器集群,每一群包括了几十万台甚至上百万台服务器,是一种为提供服务而开发的整套虚拟环境。
  • 从不同维度可以有不同的云分类。
  • 从技术架构可以分为三层,即服务软件即服务、平台即服务和基础设施即服务;从云面向的对象可以分为公有云、私有云和混合云

    2.云计算

  • 是一种计算方法,即将按需提供的服务汇聚成高效资源池(包括网络、服务器、存储、应用软件、服务),以服务的形式交付给用户使用。、
  • 云计算通过互联网来提供动态、易扩展且经常是虚拟化的资源
  • 云计算是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡、热备份冗余等传统计算机和网络技术发展融合的产物

    3.云服务

  • 云服务是在云计算环境下的服务交付模式。云服务提供的资源通常是虚拟化的资源
  • 目前云服务提供三种不同层次的模式:基础架构即服务、平台即服务、软件即服务。

    4.云主机

  • 云主机是云计算在基础设施应用上的重要组成部分。
  • 云主机是一组集群主机虚拟出的多个类似独立主机,集群中每个主机上都有云主机的一个镜像,拥有自己的操作系统,完全不受其他主机的影响

    5.云安全

  • 指云及其承载的服务,可以高效、安全地持续运行。

    7.2.2 云面临的安全挑战

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

    1.新技术

  • 1)可控性
  • 2)动态性
  • 3)虚拟机逃逸:指利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的

    2.集中化

  • 云数据中心安全防护方面存在网络结构的规划设计,系统的识别与迁移,权限集中等问题
  • 云平台管理员存在权限滥用风险
  • 用户的安全隔离
  • 资源池内用户抢夺资源和恶意攻击等

    3.合规性

    4.运维管理

    7.2.3 云环境下的安全保障

    1.云安全标准

  • CSA(国际)
  • ENISA(欧盟)
  • NIST(美国)
  • OWASP(国际)
  • CPNI(英国
  • SANS(美国)
  • PCI-DSS(国际)

    2.云安全建设

    1)物理层
  • 物理安全方面需要考虑门禁、消防、温湿度控制、电磁屏蔽、防雷、环境监控系统等方面的信息安全建设防护

    2)网络层
  • 网络安全的安全建设通过FW、IDS/IPS、DDoS、VPN等方式去实现
  • FW:通过防火墙实现安全隔离
  • IDS/IPS:部署入侵防护系统,通过日志监控、文件分析、特征扫描等手段提供账号暴力破解、WebShell查杀等防入侵措施
  • DDoS:防DDoS清洗系统可抵御各类基于网络层、传输层及应用层的各种DDoS攻击,并实时短信通知网站防御状态
  • VPN:建立安全通道,保证用户访问数据的信息进行保密性、完整性和可用性

    3)主机层
  • 主机安全需要考虑终端安全、主机安全、系统完整性保护、OS加固、安全补丁、病毒防护等方面的信息安全建设防护

    4)虚拟层
  • 虚拟化安全建设可以通过虑虚拟化平台加固、虚拟机加固与隔离、虚拟网络监控、恶意VM预防、虚拟安全网关VFM/VIPS等多方面去进行技术实现

    5)应用层
  • 应用安全建设可以考虑通过多因素接入认证、WAF、安全审计等技术实现
  • WAF:Web应用防火墙安全防护
  • 安全审计:制定并持续优化信息安全审计规则

    6)数据层