系统安全基础
可信计算基:把计算机中所有与安全保护有关的功能独立出来的结果,防止其它软硬件造成破坏。
一个系统是由相互作用或相互依赖的元素或成分构成的某种类型的一个整体。
整体论与还原论:整体与部分
系统的宏观特性可以分为涌现性和综合特性(前者不可分解的特性,后者可分解为各部分之和,因此还原论着重于综合特性,整体论着眼于涌现性)
系统安全思维重视整体论思想,强调从系统的全生命周期衡量系统的安全性,主张通过系统安全工程措施建立和维护系统的安全性。
系统安全原理
- 基本原则
- 限制性原则
- 最小特权原则
- 失败-保险默认原则
- 完全仲裁原则
- 特权分离原则
- 信任最小化原则
- 简单性原则
- 机制经济性原则
- 公共机制最小化原则
- 最小惊讶原则
- 方法性原则
- 公开设计原则
- 层次化原则
- 抽象化原则
- 模块化原则
- 完全关联原则
- 设计迭代原则
- 着手方式(威胁建模)
- 事前预防(安全控制)
- 访问策略1
- 访问策略2
- 访问策略3
- 事后补救(安全监测)
- 入侵检测
- 主机入侵检测系统
- 网络入侵检测系统
- 基于特征的入侵检测
- 基于异常的入侵检测
- 保障措施(安全管理)
- 最小特权原则 :执行任务的实体只拥有完成该任务所需的最小特权集合。
- 失败-保险默认原则:对访问采取默认拒绝方案。
- 完全仲裁原则:安全机制的授权覆盖任何一个访问操作。
- 特权分离原则:授权或其他安全相关行动,增加分离的条件因素。
- 信任最小化原则:建立在尽量少的信任假设的基础上(包含用户和行为)。
- 机制经济性原则:把安全机制设计的尽可能简单短小。
- 公共机制最小化原则:尽可能减少两个以上用户共用的机制。
- 最小惊讶原则:尽可能符合逻辑,提高用户的易接受程度。
- 公开设计原则:在公开安全机制设计方案的前提下,借助容易保护的特定元素增强系统的安全性,有助于安全机制接受广泛的审查。
- 层次化原则:采取分层的方法设计和实现系统,某层的模块只与紧邻的上下层模块进行交互。
- 抽象化原则:在分层的基础上,屏蔽每一层的内部细节,只公布该层的对外接口。
- 模块化原则:把系统设计成相互协作的组件的集合;每个模块的接口就是一种抽象。
- 完全关联原则:把系统的安全设计与实现与该系统的安全规格说明联系。
- 设计迭代原则:必要时可以改变设计,但是改变对安全性的影响降到最低。
- 威胁建模:标识潜在的安全威胁并审视风险缓解途径的过程。其目的是在明确了系统的本质特征、潜在攻击者的基本情况、最有可能的被攻击角度、攻击者最想得到的好处等情况,为防御者提供分析采取的控制或防御措施的机会。
- 安全控制:防止系统中出现不按规矩对资源进行访问的事件。(s主体,o客体,p操作:read、copy、modify、execute )。确认主体身份的过程称为身份认证,常基于口令(账号密码)、生物特征认证(人脸)、物理介质认证(门卡)。
- 访问策略1:通过给访问控制矩阵M(s和o分别作行和列,对应的元素为p)中的元素赋值。该策略给每一个主体授权。
- 访问策略2:设计角色分配方案f,依旧矩阵M赋值,按方案给每个用户分配角色。(u,o,p),f(u)=r,u对应的权限为M中(r,o)。
- 访问策略3:设计主体分配方案f1,客体分配方案f2,设计主体等级与客体密级的对比方法cmp,设定操作x的执行条件con(p),若cmp(f1(s),f2(o))满足con(p),则执行.后两个相当于把第一个普遍化,第一个是一个一个赋值,二是一个一个群体赋值,三是按标签来。
- 主机入侵检测系统HIDS,监测流入和流出主机或设备的数据包。
- 网络入侵检测:对网络中所有设备的流出和流入流量进行监测,对流量进行分析。
- 基于特征的入侵检测:与已知入侵模式进行对比。
- 基于异常的入侵检测:与已知的可信行为进行对比,差异较大则被判定为攻击行为。
- 安全管理指把一个组织的资产标识出来,并制定、说明和实施保护这些资产的策略和流程。安全风险管理是其中的重要内容,指把风险管理原则应用到安全威胁管理中,包括标识威胁、评估现有威胁控制措施的有效性、确定风险的后果、基于可能性和影响的评级排定风险优先级、划分风险类型并选择合适的风险策略或风险响应。
系统安全结构
计算机有硬件和软件组成,固化在硬件上的软件称为固件。硬件是软件的载体。
硬件为软件提供的安全支持
- 保护操作系统(用户态/内核态功能)
内核态给操作系统用、用户态给其他程序用,规定用户态程序不能干扰内核态程序。内核态程序可以看到所有的指令和地址空间,用户态只能看到部分。
恶意程序若进入内核态危害严重。应对篡改的措施之一:检测篡改的发生,通过计算程序的摘要并与原始摘要进行对比。但是恶意程序也可能更改原始摘要。于是诞生了基于硬件的加密技术用硬件辅助或代替软件实现数据加密。但是硬件木马还是无法解决。
操作系统安全
应用程序和硬件加密之间的可信的交互路径只能由操作系统帮助建立,保证硬件设备的加密机制能顺利启动,保证硬件设备的加密机制不被滥用。
操作系统对应用安全的支持
- 对用户进行管理
- 建立用户档案
- 利用双方都享有而别人无法提供的信息建立用户与人之间的关联
- 对用户进行分组
- 用户身份标识与认证
- 自主访问控制
数据库系统安全
数据库系统是提供通用数据管理功能的软件系统,又数据库管理系统和数据库应用构成。关系数据库的访问和应用开发通常采用结构化查询语言(SQL)。查询(select)、修改(update)、插入(insert)、删除(delete)、授权(grant)、撤销权限(revoke),目前安全堪忧。
应用系统安全
跨站脚本攻击在Web应用安全威胁占有最大比重,网站可能会传播恶意脚本
安全生态系统
- 域名和地址分配
- 开放标准开发
- 全球共享服务和运营
- 用户
- 教育和能力建设
- 地方、地区、国家和全球政策制定