北京邮电大学-软件安全测评-03安全威胁建模

上传人:艾力 文档编号:36713977 上传时间:2018-04-01 格式:PDF 页数:91 大小:797.68KB
返回 下载 相关 举报
北京邮电大学-软件安全测评-03安全威胁建模_第1页
第1页 / 共91页
北京邮电大学-软件安全测评-03安全威胁建模_第2页
第2页 / 共91页
北京邮电大学-软件安全测评-03安全威胁建模_第3页
第3页 / 共91页
北京邮电大学-软件安全测评-03安全威胁建模_第4页
第4页 / 共91页
北京邮电大学-软件安全测评-03安全威胁建模_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《北京邮电大学-软件安全测评-03安全威胁建模》由会员分享,可在线阅读,更多相关《北京邮电大学-软件安全测评-03安全威胁建模(91页珍藏版)》请在金锄头文库上搜索。

1、软 件 安 全 测 评 北京邮电大学计算机学院 信息安全系 张淼 第三讲 安全威胁建模 威胁建模的基本概念 威胁模型建立的过程 威胁建模的基本观点是: 直到理解了所受的威胁之后才能创建安全的系统 威胁建模的基本观点 什么是威胁建模? 威胁模型是一种基于安全的分析,有助于人们确定给产 品造成的最高安全级别的安全风险,以及攻击是如何表现 出来的,其目标是确定需要缓和哪些威胁,如何来缓和这些 威胁. 威胁建模的重点是以一种相对正式的方式来考虑应用 程序的安全性,关于威胁有很多信息,但是威胁建模却少有 涉及,创建威胁模型必须认识到产品的什么地方最为危险, 因而会选择合适的技术来缓和威胁,这样就使得系

2、统更加 安全. 威胁建模 进行威胁建模还有其他作用: 威胁模型有助于更好的理解你的应用程序,因为你花时 间以一种相对结构化的方式分析了应用程序的组成 威胁模型可以帮助你测试应用程序查找bug 可能会通过威胁模型发现其他方式不能发现的复杂bug, 它们通常是由几个小故障结合而成的大灾难. 威胁模型可以帮助新的小组成员理解应用程序的细节, 它可能成为加速学习曲线的工具 威胁模型能帮助测试人员进行测试,有助于产生设计良 好的安全测试计划和产品 威胁建模 1) 成立威胁模型小组 2) 分解应用程序 3) 确定系统所面临的威胁 4) 以风险递减的方式给威胁排序 5) 选择应付威胁的方法 6) 选择缓和威

3、胁的技术 7) 从确定下来的技术中选择适当的技术 威胁模型建立过程 威胁模型建立过程 分解应用程序分解应用程序 确定威胁确定威胁 分级威胁分级威胁 缓和方案缓和方案 第一步是从产品小组中聚集一些人进行初 步的威胁分析过程。 确保每一个开发部门都至少有一个成员参加讨 论,包括设计、编程、测试和文档部门。 会议的目标不是解决问题,而是标识出应用程序 的组成部分,之间如何交互,找到尽可能多的安 全威胁 成立威胁建模小组 分解应用程序 分解应用程序分解应用程序 确定威胁确定威胁 分级威胁分级威胁 缓和方案缓和方案 成功的威胁建模需要一种更结构化的方法,而不 是简单的”想象威胁”。 对应用程序进行形式化

4、分解 DFD (Data Flow Diagram)是威胁分解的一种形式化分 解技术,能将应用程序分解为几个关键部分。 统一建模语言UML,特别是活动图,非常适合记录过 程,其方式和DFD相似。 UML活动图致力于过程之间的控制流,而DFD则是过 程间的数据流。 分解应用程序 DFD:Data Flow Diagram 数据流图 数据流图(Data Flow Diagram,DFD)是一种能 全面地描述信息系统逻辑模型的主要工具,它可 以用少数几种符号综合地反映出信息在系统中的 流动、处理和存储情况。 分类 一种是以方框、连线及其变形为基本图例符号来表示 数据流动过程。 一种是以圆圈及连接弧线

5、作为其基本符号来表示数据 流动过程。 这两种方法实际表示一个数据流程的时候,大同小异, 但是针对不同的数据处理流程却各有特点。 DFD中的关键数据流图符号 认证 数据 一个过程一个过程 转换或操作数据 多个过程多个过程 转换或操作数据 数据存储数据存储 存储临时数据或永久数据的地点 边界边界 机器,物理,地址空间或信任边界 交互者交互者 向系统输入 数据流数据流 描述来自数据存储,过程或交互者的数据流 分解的第一步是确定要分析的应用程序的边界或作用范围, 并了解可信任部分与不可信任部分之间的边界,DFD使用 一个高级上下文图表定义应用程序的可达范围 上下文图表只有一个过程,通常没有数据存储,使

6、用0级图 表,1级图表,2级图表,如图所示 分解应用程序 上下文上下文 0级级 1级级 2级级 撇开DFD理论不讲,我们先从一个范例应用程序开始,我们 使用简化的基于Web的工资表应用程序 分解应用程序 内联网内联网 数据中心数据中心 3.0 管理员 1.0 用户 2.0 Web开发者 4.0 审计员 0.0 工资表 应用程序 管理任务反馈 管理任务请求 工资表 请求信息 工资表 信息响应 更新后 的文件 审计实体 工资表范例应用程序的上下文数据流图 定义DFD的作用范围是,请考虑以下几点: 忽略应用程序的内部工作方式 工作方式无关紧要,要定义作用范围而非功能细节 哪些事情和请求是系统必须响应

7、的? 例如,工资表应用程序应接收工资表信息请求 程序将产生什么响应? 例如,工资表应用程序应提供工资表信息响应 标识出每次请求和响应相关的数据源 有些是永久性的(文件、注册表、数据库等) 有些是短期或暂时的(缓存数据) 确定每次响应的接受者 下面将前面的DFD图表进行分解,进入1级图表 分解应用程序 这里有一些在DFD中创建和命名实体时遵循的简单规则: 一个过程必须至少有一个数据流流入和一个数据流流 出 所有的数据流都从某个过程开始,到某个过程结束 数据存储通过数据流与过程相连 数据存储之间不能连接,他们必须通过过程相连 下面将前面的DFD图表进行分解,进入1级图表 分解应用程序 内联网内联网

8、 数据中心数据中心 2.0 管理员 1.0 用户 3.0 Web开发 人员 6.0 身份认证数据 更新后的认证数据 工资表 请求 工资表数据请求 内联网内联网 数据中心数据中心 管理任务 任务反馈 认证数据 更新后的 工资表数据 身份认证 状态 信任状 4.0 审计员 11.0 访问数据 12.0 工资表数据 9.0 强制工资 表策略 5.0 服务客户 端请求 14.0 强制管理 表策略 7.0 Web页面 8.0 Web服务代码 13.0 审计日志 新的认证数据 审计实体 工资表 响应 工资表 请求 工资表 响应 工资表 数据请求 工资表 数据 请求的 页面 请求的 代码 更新后 的文件 更

9、新后的 文件 最后,你会深刻理解应用程序的各个组成部分,一般来 讲,如果只是进行威胁建模,那么应当只需深入到两级,三级 或者四级,原则是,只要深入到足够理解你所受到的威胁就 行. 分解应用程序 确定威胁 分解应用程序分解应用程序 确定威胁确定威胁 分级威胁分级威胁 缓和方案缓和方案 1 使用STRIDE给威胁分类 提出一些安全相关的问题,如 未经认证的用户能否浏览秘密的网络数据? 不可信任的用户能否修改数据库中患者的记录数据? 是否有人能够拒绝合法用户获得应用程序的服务? 是否有人能够利用某些特性或组件将自己的特权提 升为管理员? 确定系统所面临的威胁 为了有助于回答这些问题,我们使用STRI

10、DE威 胁模型,它是下面这六种威胁类型的英文首字母的缩 写: 身份欺骗 Spoofing identity 篡改数据 Tampering with data 抵赖 Repudiation 信息泄露 Information disclosure 拒绝服务 Denial of service , DoS 特权提升 Elevation of privilege 确定系统所面临的威胁 身份欺骗允许攻击者冒充另一个用户,或者允许恶意服 务器冒充合法服务器,用户身份欺骗的一个例子是非法访问, 然后使用另一个用户的认证信息,例如用户名或口令. 举一个现实的例子,比如不安全的认证技术,像HTTP认证: 基本的

11、摘要访问认证(RFC2671).如果Fletcher可以在HTTP 认证头里看到Blake的用户名和口令,他就可以使用此用户名 和口令访问受保护的数据,如同他就是Blake. 服务器欺骗的例子包括DNS欺骗和”DNS缓存中 毒”(DNS cache poisoning). 身份欺骗 Spoofing identity 数据篡改包括有恶意的修改数据. 这样的例子包括在未授权的情况下,修改永久性的数据, 例如数据库中的数据,以及当数据通过一个开放网络(如因特 网)在两台计算机直接传输时,更改数据. 现实的例子包括改变目标计算机中以弱ACL保护的文件 数据,如Everyone用户的完全控制权限. 篡

12、改数据 Tampering with data 与抵赖威胁相关的是用户拒绝承认从事过的一 项活动,并且其他方面没有任何办法可以证明他是 在抵赖. 例如,一名用户在系统中做了非法的操作,这个 系统有缺少跟踪被禁止操作的能力。防抵赖 (Nonrepudiation)是系统对抗否认威胁的能力,就 像如果用户购买了一件商品,他必须在收据上签字, 厂商就可以用这个签了字的收据来证明用户确实 收到了包裹,可以想象,对于电子商务应用程序来说, 认可是极其重要的. 抵赖 Repudiation 信息泄露威胁包括,信息被暴露给不允许对它访问的人. 例如,用户可以读到非授权访问权限的文件,入侵者可以 读到在两台计

13、算机之间传输的数据,前面讲到的欺骗的例子也 是一个信息泄露的例子,因为要重放Blake的证书,Fletcher必 须首先看到证书. 信息泄露 Information disclosure 拒绝服务攻击将拒绝对合法用户的服务. 例如,使Web服务器暂时不可用或无法使用,你必须提高 系统的可用性和可靠性,来防止受到某些类型的DoS威胁,关 于拒绝服务的非常真实的例子包括各种分布式拒绝服务攻击 (DDoS),如Trinoo和Stacheldraht. 拒绝服务 Denial of service , DoS 在这种类型的威胁下,一名没有特权的用户获得访问特权, 从而有足够的能力损坏或摧毁整个系统,特

14、权提升威胁包括这 样的情况,一名攻击者已经有效的穿透了所有的防御系统,并 且成为了受信任的系统自身的一部分,这确实是一个非常危险 的状态. 举个例子:一个脆弱的计算机系统允许攻击者将可以执行 代码放置在磁盘上,并等待下一个人登录系统,如果下一个用 户是管理员,那么这些恶意代码也就会以管理员身份运行. 特权提升 Elevation of privilege 确定系统所面临的威胁 2 建立威胁树 建立威胁树,系统地分析所开发的应用程序中的威胁 和漏洞。 众所周知,在硬件领域中有种识别可能故障模式的方 法,成为“故障树”,同样的方法也适用于计算机系 统领域的安全问题。 威胁树的思想是, 应用程序是有

15、威胁目标组成的,每 个目标都有漏洞,任一漏洞受到攻击都可能破坏整个 系统。威胁树描述了攻击者破坏各组件所经历的决策 过程。 工资表范例中的流图 用户的工资数据是从WEB服务器计算机传 向职工的计算机的。或者说是从服务客户 过程传输的 工资信息是保密的,这意味着必须保护工 资数据。 存在信息泄露的可能,具体威胁见下图。 简单威胁树的示例 这棵威胁树描述了攻击者 如何浏览另一个用户的秘 密工资数据. 威胁威胁#1 在线浏览秘密 工资表数据(1) 与 与 1.1 HTTP通信 不受保护 1.2 攻击者浏览 通信数据 1.2.1 使用协议分析器 嗅探网络通信 1.2.2 监听路由器 流通数据 1.2.3 破坏交换机 1.2.2.1 路由器 不受保护 1.2.2.4 各种交换机 攻击 1.2.2.2 破坏路由器 1.2.2.3 猜测路由器 口令 增加威胁树的可读性 可以向威胁树添加几个附件,显示最有可 能的攻击向量。 用虚线表示最不可能的攻击点 用实线表示最可能的攻击点 在最不可能的攻击节点下放置圆圈,说明 攻击为什么会减弱。 威胁威胁#2 上传恶意 Web页面 与 2.1 身份认证 不安全 2.1.2 管理安全 性错误 默认情 况下是 安全的 2.4.1 服务器 未打补丁 2.2 授权不安全 2.3 贿赂已授权的Web 开发

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号