- 操作系统安全的重要性
- 操作系统面临的安全威胁
- 操作系统机密性威胁
- 操作系统完整性威胁
- 操作系统可用性威胁
- 操作系统安全的脆弱性
- 系统漏洞分类
- 操作系统安全的紧迫性
- 操作系统安全中的基本概念
- 什么是安全操作系统?
- 安全操作系统的研发的方式
- (1)完全自主研发
- (2)操作系统及逆行安全修改和安全增强,以期达到特定的安全等级要求
- 从安全角度划分软件
- 主体(subject):
- 客体(object):
- 安全属性:
- 安全策略:
- 安全模型:
- 安全机制:
- 安全内核:
- 可信计算基
- 操作系统安全策略与安全模型
- 安全策略
- 军事安全策略
- 商业安全策略
- 实现安全策略常用的访问控制模型
- 自主访问控制模型
- 强制访问控制模型
- BLP 模型:
- Biba 模型
- “写”和“执行”的安全规则:
- “读操作”的规则
- 安全模型
- 非形式化安全模型
- 形式化安全模型
- 操作系统安全机制
- 认证机制(用户表示与鉴别)
- 操作系统鉴别用户的过程
- 授权机制
- 特殊授权机制(最小授权原则)
- 访问控制机制
- 自主存取控制机制
- 强制存取控制
- 加密机制(数据加密技术)
- 加密机制功能
- 审计机制
- Windows 操作系统安全分析
- 安全机制
- (1)安全登录机制
- (2)识别与认证机制
- (3)本地安全管理机构
- (4)安全支持提供者及其接口
- (5)认证包
- (6)网络登录
- (7)安全账号管理者
- (8)其他的安全机制
- Windows 的安全加固方法
- 账户管理的安全加固
- 口令的安全加固
- 授权安全加固
- 日志配置的安全加固
- 文件权限的安全加固
- 其他方面的安全加固
- Android 操作系统安全分析
- Android 操作系统的三大安全机制
- 用户标识与鉴别
- Android 系统的权限管理机制
- Android 系统的签名机制
- 包(package)扫描阶段
- 权限创建阶段
- Android 系统面临的安全威胁
- Android 系统安全存在的不足
- Android 用户如何提高 Android 系统的使用安全性
操作系统安全的重要性
- 操作系统是计算机资源的管理者
- 计算机软件的基础和核心
- 所有应用软件运行的载体
若没有操作系统的安全性,就没有主机系统的安全性,也没有网络系统的安全性。操作系统安全是整个网络空间安全的基石。
操作系统面临的安全威胁
- 机密性威胁
信息的机密性:是指实现原始信息隐藏的能力,让原始信息对非授权用户呈现不可见状态。
机密性威胁:指可能导致机密信息和隐私信息发生泄漏的意图、事件、策略、机制、软硬件等。
- 完整性威胁
信息的完整性:系统中所使用的信息与原始信息相比没有发横变化,未遭受偶然或恶意的修改、破坏,称信息具备完整性。
- 可用性威胁
可用性:指系统能够正常运行或提供必要服务的能力,是系统可靠性的一个重要因素。
操作系统机密性威胁
- 窃听,也成窃取或嗅探(sniff):操作系统中的窃听是指窃听软件在主机系统上,对数据信息进行非法获取的行为。
例如发给朋友的照片呗别人嗅探窃取
- 后门(backdoor):也叫天窗,是指能够绕过操作系统安全控制体系,而获取对系统或程序访问权的方法。通常由木马程序来开启。
木马程序:也叫后门程序,指潜伏在主机能够利用后门等安全弱点,达到远程监听机密信息或远程控制主机目的的恶意代码。
- 间谍软件(Spyware):通常能够在用户不知情的情况下,在其电脑上安装后门、收集用户信息的软件。间谍软件通常为木马程序提供信息服务。
- 隐蔽通道(Convert channel):是指操作系统中两个程序之间不受安全策略控制、违法安全策略的信息泄漏路径。
操作系统完整性威胁
- 计算机病毒:计算机病毒式最常见的安全威胁之一。计算机病毒往往会对信息内容进行修改或破坏,是威胁信息完整性的重要来源。
- 计算机欺骗:是指故意产生虚假的数据信息,导致用户或程序作出错误的反应,多属于来源完整性威胁。
操作系统可用性威胁
- 拒绝服务攻击 DoS:利用网络协议或操作系统的权限直接通过野蛮手段恶意地耗尽被攻击主机的系统资源(如网络带宽、系统内存等),使得被攻击计算机无法正常与逆行或无法提供有质量的应用服务,甚至出现停止响应或系统崩溃等严重的安全。
操作系统安全的脆弱性
操作系统的安全脆弱性,也称为安全弱点或安全漏洞(vulnerability),是指操作系统中存在的可能被安全威胁利用造成损害的缺陷或薄弱点。
这些安全漏洞又可能是由于技术缺陷造成的,也又可能是人为留下的(后门、天窗)。
安全漏洞会造成严重的安全问题,有时候我们无法用简单的脆弱性、缺陷和 bug 等概念来包含它,而安全漏洞更应该是这些概念的集合,或超集。
漏洞不等同于 bug。
大部分操作系统中的 bug 会影响系统中的功能性,并不涉及系统的安全性,也就不构成漏洞。
同时大部分的漏洞又来源于 bug,但并不是全部,他们之间可能存在一个很大的交集。
从操作系统面临的安全威胁类型对这些系统漏洞进行分类。
系统漏洞分类
- 可能导致获取系统控制权的漏洞
该类漏洞一旦被利用可能导致程序执行流程被劫持,进而转向执行文件攻击者指定的任意的指令或命令,达到控制操作系统的目的。
- 可能导致获取隐私信息的漏洞
导致程序访问被劫持,使得隐私信息资源泄露给攻击者,严重影响系统的机密性
- 可能导致收到拒绝服务攻击的漏洞
导致被攻击系统影响或永久失去正常提供服务的能力,严重威胁系统的可用性。
操作系统安全的紧迫性
- 恶意代码、木马、间谍软件、病毒等多种安全威胁呈现相互渗透、相互叠加的趋势,将大大增加风险识别和消除的难度。
- 操作系统中已发现且已公开安全漏洞已超过 1w 个,且近年来称倍数级增长态势。
- 已发现但未公开的操作系统漏洞也具有一定数量,尤其是零日漏洞(0 day) 多被黑客在地下黑市以巨额资金购买,并加以利用,造成的威胁极大。
- 危害绝大的勒索病毒不断出现新变种,并且有与蠕虫病毒结合的迹象,一旦二者紧密结合,将给网络空间安全带来极其严重的威胁,甚至可以达到摧毁级。
操作系统安全中的基本概念
什么是安全操作系统?
安全操作系统是按照特定的安全目标设计实现的操作系统,和符合标准的安全等级相对应。
- 基础:分析操作系统安全性
- 依据:特定的安全等级标准
- 采用:安全策略、安全模型、安全机制
- 功能:有效消除可能的安全风险保证操作系统安全运行
安全操作系统的研发的方式
(1)完全自主研发
- 不依赖任何已有操作系统
- 对开发技术要求高
- 花费周期长
- 研发成果完全自主可控
(2)操作系统及逆行安全修改和安全增强,以期达到特定的安全等级要求
- 基于开源的 Linux 操作系统
- 研发难度较低
- 研发周期短
从安全角度划分软件
- 可信软件
保证能安全运行,但系统安全仍然依赖于对软件的无错操作
- 良性软件
并不确保安全运行,但不会出现有意地违反规则,其出现的错误被视为偶然性的,通常不影响系统安全。
真正的可信软件:
由可信人员根据严格的标准开发,通过现今的软件工程技术证明。
主体(subject):
操作系统中主动的实体称为主体,即某种行为的发起实体,包含用户,用户组、进程等。
客体(object):
操作系统中被动的实体,是主体行为的接收者,包括信息实体、设备实体和进程等。
安全属性:
主体和课题的与安全相关的特定敏感标记,这些安全标记是实施访问控制的基础。
安全策略:
有关如何管理、保护与分发敏感信息的法律、规定、条例和实施细则的集合,通常由一组安全规则描述。
安全模型:
对安全策略所表达的安全需求进行简单、抽象和无歧义的描述。
安全机制:
实现安全策略的具体方法及过程,通常在安全模型指导下设计实现。
安全内核:
安全操作系统中实现安全策略的技术。
组成:
可信计算基
操作系统的安全性依赖一些具体实施安全策略的可信的软件和硬件,它们与负责系统安全管理的人员一起组成系统的可信计算基。
- 操作系统安全内核
- 具有特权的程序和命令
- 处理敏感信息的程序
- 与可信计算基实施安全策略有关的文件
- 其他有关的固件、硬件和设备
- 负责系统管理的人员
- 保障固件和硬件正确的程序和诊断软件
下图所示操作系统均不属于安全操作系统
操作系统安全策略与安全模型
安全策略
安全策略是对系统的安全需求,以及如何设计和实现安全控制有一个清晰的、全面的理解和描述。通常是描述一组规则。
军事安全策略
军事安全策略是以保护信息机密性为主。
商业安全策略
商业安全策略以保护信息完整性为目标。
实现安全策略常用的访问控制模型
从权限控制角度出发,访问控制模型可分为
自主访问控制模型
能够按客体属主(拥有者)用户自己的意愿来确定系统中用户对该客体的访问权限。
强制访问控制模型
系统为每个主体和客体都赋予一个许可敏感性标记,表示访问许可界别或安全级别;
系统对每一次的访问请求,将强制通过比较主、客体的安全级别来决定是否允许这个访问请求。
BLP 模型:
BLP 模型最早适用于军事安全策略的安全模型,主要用来防止机密信息的泄露。
BLP 模型制定了两种安全策略:
使用一个访问矩阵表示,用第 i 行第 j 列的元素存储登记主题 i 对客体 j 的许可访问权限表吗,即主体智能按访问矩阵中的许可权限对客体进行访问。
- 强制安全策略
1.简单安全特性
简单安全特性规则:规定”读“操作的规则,一个主体对客体进行”读访问“的必要条件,是主体的安全级别不小于客体的安全级别;即主体只能向下读,不能向上读。
2. 特性*
规定”写“规则,一个主体对客体进行写访问的必要条件是客体的安全级别不小于主体的安全级别,即说主体只能向上写,不能向下写。
Biba 模型
一种典型的描述商业安全策略的安全模型。该模型主要用来保证信息的完整性,也是保护信息完整性的第一个安全模型。
定义主体和客体的完整性级别,并给出”写、执行”和“读”的规则。
“写”和“执行”的安全规则:
(1)当且仅当客体完整性级别 ≤ 主体完整性级别时,主体才可以写客体。
(2)当且仅当主体 1 完整性级别 ≤ 主体 2 的完整性级别,则主体 S1 才能够执行主体 S2
(3)主体和客体拥有相同的完整性级别时,主体可以同时对客体进行“读”和“写”操作
“读操作”的规则
- 最低点规则(Low-Water-Mark)
即当一个客体完整性级别是系统中最低级别时,任一个主体都可以“读”该客体,该主体“读”操作后,其完整性级别被调整为最低级别。
- 环规则模型(Ring)
不管完整性级别如何,任何主体都可以读任何客体。
- 严格的完整性模型(Strict Integrity)
在满足最低点规则的基础上,当且仅当主体的完整性级别 ≤ 客体完整性级别时,主体才可以读客体。
当且仅当主体和客体拥有相同的完整性级别时,主体可以同时对客体进行“读”和“写”操作。
Biba 是严格的完整性模型
安全模型
安全模型是对安全策略所表达的安全需求的精确、无歧义抽象描述,在安全策略与安全实现机制之间提供一种框架。
非形式化安全模型
非形式化安全模型仅关注系统安全功能,从安全需求出发,推出功能规范,再实现安全系统,主要才哟呵论证与测试技术保证安全性。
形式化安全模型
形式化安全模型,首先要使用数学模型来精确描述安全性及其在系统中使用的情况,建立抽象模型,并推出形式化规范,通过证明方法来实现安全系统。
操作系统安全机制
安全机制是指安全策略的设计实现,是知道操作系统安全内核开发的重要依据。
认证机制(用户表示与鉴别)
- 标识是指操作系统能够通过内部识别码或标识符正确识别用户的身份。
- 将用户标识符与用户联系的过程称为鉴别
操作系统鉴别用户的过程
- 用户管理和登录
- 核对用户申请的安全级、计算特权集等。
授权机制
检查其是否拥有使用本机资源的权限以及有哪些访问权限。
授权机制的功能是授权和确定存取控制。
- 授权:
是指确定给予哪些主体存取哪些客体的权限,并实施这些存取权限。
确定具体存取权限有哪些,通常包括:读、写、执行、删除、追加等存取方式
特殊授权机制(最小授权原则)
定义一个特权就是定义一个可违反安全策略的操作能力。
最小授权原则的意识是说:
系统中每个主体只能拥有其操作相符的必须的最小特权集,特别是不应给超级用户超过执行任务所需特权以外的特权。
最小授权原则是约束权限的滥用,或超越权限的违规操作。
访问控制机制
自主存取控制机制
在自主控制机制下,一个客体的属主可以按照自己的意愿灵活而精确地指定系统中的其他用户对该客体的访问权。
自主存取控制机制实现方式举例如下四种:
强制存取控制
强制存取控制,用于将系统中的信息分密集和范畴进行管理,保证每个用户只能够访问那些被标明能够访问由他访问的信息的一种访问约束机制。
系统中每个主体如进程,每个客体如文件、消息队列、信号量级、共享存储区等都被赋予相应的安全属性,这些安全属性由相应的系统或安全管理员按照严格的规则设定而不能由用户或用户程序直接或间接的进行修改。
加密机制(数据加密技术)
加密机制功能
- 机密性
解决信息泄露问题,防治非法的信息接收者接收信息并窃取信息
- 鉴别性
鉴别性也称为真实性,即鉴别发送者的真实性身份,信息接受者能够确认信息来源。即此信息确实是由合法的发送者传送而非他人伪造。
- 完整性
解决信息被修改或者损坏问题,信息接受者能够验证信息没有被修改也不可能被假消息所替代
发送者在事后不可能虚假的否认其发送的信息,这种功能也常称为数字签名。
审计机制
审计(auditing):对系统中有关安全的活动进行完整记录、检查及审核。
目的:检测和组织非法用户侵入系统,显示合法用户的误操作,进行事故发生前的预测和报警,提供事故发生后分析处理的依据。
如违反系统安全相关规则的事件所发生的地点 、时间类型、过程、结果和所涉及的主体、客体以及他们的安全级别。
作为一种事后追踪手段,来保证系统的安全性也是对付计算机犯罪者的利器。
Windows 操作系统安全分析
Windows 内核中包含一种构成 Windows 安全模型的安全组件,我们称之为 WIndows 的安全子系统。
这些组件确保了应用程序不能在没有身份验证的和授权的情况下对资源进行访问。
安全机制
(1)安全登录机制
该机制确保用户交互式登录时输入的信息被系统所接受而不会被其他程序所截获。
(2)识别与认证机制
它提供一个交互式的界面为用户登录提供认证请求被设计成一个独立的模块,这样允许开发人员使用一个更强有力的认证方式来替换默认的认证方式。比如常见的 USBKey、指纹、视网膜等。
(3)本地安全管理机构
它是安全系统的核心功能模块 ,主要功能是检查用户登录信息并依据安全策略为用户生成系统访问令牌也就是用户的访问权限表。
(4)安全支持提供者及其接口
安全支持提供者以驱动形式安装来实现一些附加的安全机制,其接口提供一些安全服务的 API 调用函数为应用程序和服务提供安全认证的请求方法。
(5)认证包
认证包可以为合法的用户提供认证并返回用户的认证信息给本地安全管理机构,然后将其存放在该用户的访问令牌中
(6)网络登录
网路登录服务在用户通过认证后建立一个安全的通道
(7)安全账号管理者
它是存取账户信息的数据库,为本地安全管理机构提供认证服务
(8)其他的安全机制
- 安全套接层服务
- Kerberose 认证
- 文件加密
- 磁盘加密
- 指纹识别
Windows 的安全加固方法
账户管理的安全加固
- 禁用系统默认 Guest 账户
2.定期检查禁用或删除其他无用账户
建议先对无用账户禁用一段时间后没有问题再删除,因为某些软件或特定的账户可能需要特定的账户。
3. 按照用户类别设置好用户的类型
如 管理员、设计用户、标准用户等。
口令的安全加固
- 设置密码复杂度
(最短密码长度要求 8 个字符,且符合复杂度要求,应该
包括英语大写字母、英语小写字母、阿拉伯数字和非字
母字符至少两类以上的字符,其中非字母字符可以使用
标点符号,如 @,#,* 等。)
- 设置用户口令的最长留存期不应超过 90 天
- 配置帐户锁定策略
授权安全加固
- 关机授权
- 授权账户登录
日志配置的安全加固
- 审核登录
对用户登录情况进行记录,如记录用户登录使用的账户登录是否成功、登录时间、以及远程登录使用的 IP 地址等
- 审核策略更改情况
成功和失败操作都需要审核
- 审核系统事件
系统事件的成功和失败都需要审核
- 审核账户管理操作
成功和失败操作都要审核
- 日志文件大小的安全加固
根据磁盘空间尽量增大日志文件大小,记录的日志越多越好
设置日志文件当达到最大时,按轮询方式记录日志,保留有效的最近日志记录。
文件权限的安全加固
- 在非安全域内,关闭 Windows 的硬盘上的某个逻辑分区的默认共享
- 配置每个共享文件夹的共享权限,只允许授权的账户拥有共享此文件夹的权限。
其他方面的安全加固
- 设置从屏幕保护恢复时需要输入密码,并将屏幕保护自动开启时间设定为 5 分钟。
- 对于远程登录账号,设置不活动超过一定时间自动断开连接,比如 15 分钟。
- 操作系统补丁管理、及时更新安装必备的系统补丁
- 开启系统自带的病毒软件、防火墙软件等,或安装配置第三方提供的防病毒软件、防火墙软件。
- 安装第三方系统安全管理软件,定期检查系统的安全状态
- 对于第三方软件,要保证这些软件应该属于良性软件范畴,安装前应进行必要的安全审查。
Android 操作系统安全分析
Android 操作系统的三大安全机制
用户标识与鉴别
Android 是一个权限分离的系统为每一个应用分配不同的用户 Uid 和用户组的 Gid,使得不同用户之间的访问和持有数据达到相互隔离的目的。
Android 系统的权限管理机制
Android 提供的权限管理机制主要是用来对应用可以执行的某些具体操作进行权限的细分和访问控制,一个应用程序如果没有与其相关联的权限,意味着它不能做影响用户体验或设备中数据的有害操作。用户的敏感数据也就不会被未被授权的应用程序所损害。
Android 系统的签名机制
Android 系统中的系统和应用都需要签名机制,签名的主要作用是限制对于程序的修改使其仅来自于同一个来源。
包(package)扫描阶段
包扫描阶段需要对其完整性和证书 进行验证
权限创建阶段
权限创建阶段主要对包进行权限的创建
Android 系统面临的安全威胁
2009 年 11 月 10 日第一个恶意间谍软件出现以来,Android 相关的恶意软件与 Android 的市场份额一样呈爆炸式增长。
目前 Android 相关的恶意代码种类多样,危害方式及特点各异。
恶意扣费是国内最为常见的恶意代码。
总的来说,Android 正面临着巨大的挑战与威胁,严重威胁着用户的使用安全。
Android 系统安全存在的不足
- 开发模式带来的脆弱性
Android 除了自带的应用市场 Google play 可以分发应用软件之外还允许第三方应用商店提供应用程序的安装。
Android 自有的 Android 市场之外的应用市场强制应用安全检查没有得到很好的执行。
这种过度开放的开发模式给了恶意代码开发者入侵 Android 手机的机会。
- 权限许可机制的问题。
在其安卓系统的安全模型中应用程序的权限在其安装时要进行声明 ,权限列表将会在用户面前呈现,并让用户判断这些权限是否许可。
这一系统性权限许可似乎很好的限制了恶意程序对用户手机的访问,但这种简单依赖于用户的权限管理显然不合适也不合理。
因为大多数用户并不是开发者,因此他们对于这些权限安全机制并不了解,并不清楚应用程序应该具有哪些权限,用户的过度授权或者随意授权则导致权限控制问题非常严重。
- 操作系统漏洞造成的攻击
Android 系统存在很多漏洞,漏洞被恶意代码利用可能会突破虚拟机地址,获取用户手机的 ROOT 权限也就比较容易了。
同时用户为了使用方便或其他目的会主动 root 手机,root 权限的开启和应用也为恶意代码提供了更多的访问权限,隐私数据泄露也再所难免。
还有用户的刷机行为,刷机软件很可能将恶意代码直接装入手机 ROM 空间,会导致整个系统内核都在恶意代码的控制之下,甚至会成为肉鸡。
可以说刷机行为对系统安全最为严重。
- 应用软件漏洞带来的攻击
软件漏洞也可能被恶意代码利用,从而导致移动终端受到威胁。
Web 浏览器是其中最为危险的存在漏洞的软件。
因为移动浏览器的开发通常会根据移动终端的固件版本相对应,这样漏洞的的升级补丁会很慢。
Android 用户如何提高 Android 系统的使用安全性
- 具有很好的安全意识
- 学习相关安全权限管理等知识
- 配置应用程序的权限许可
- 及时安装第三方安全防护软件