搜索
您的当前位置:首页正文

基于数据流图的架构安全分析工具的设计与实现

来源:易榕旅网
信息技术 SOtENCE&TECHN0L0GY 一201 2 NO.03皿圆 基于数据流图的架构安全分析工具的设计与实现 (1.孝感学院计算机与信息科学学院 湖北孝感 陈晓文 , 童小刚 432000;2.中国信息安全测评中心 北京 1 00085) 摘要:随着软件产品的结构不断复杂化,软件的安全问题也软件架构安全也成为了今年学术界关注的重点。本文基于数据流图构建了 软件的架构模型,在此基础上进行受攻击面分析,并将架构分析的结果与受攻击面 析的结果影响软件源代码白盒安全测试的结果,减轻 了源代码安全审计的工作量,提高了代码审计的效率。 关键词:威胁建模 受攻击面分析 威胁树 架构安全 中图分类号:TP393 文献标识码:A 文章编号:1 672-379l(2012)o1(c)一O01 9—02 近几年来,随着软件产品结构不断复 杂化以及基于因特网的Web应用不断增 方法、威胁建模方法、风险分析方法。 重要组成部分。对应用程序进行形式化分 限于篇幅,本文不对上述方法做详细 解,自顶向下,逐层细化,在分解过程中关 多,学术界和产业界对软件质量的认识发 探讨,该框架从安全描述能力、层次式建 注过程之间的数据流。数据流图包括顶级 生了改变,除了要考虑软件产品功能和性 模、工具支持、应用情况、可扩展性及使用 数据流图(系统整体数据流图)和子模块的 能外,还要考虑产品的可靠和安全。因此, 如何减少软件开发过程中的缺陷,成为软 条件等几个方面来评价这些方法,具体评 数据流图。数据流图由外部实体、数据存 价项的内容如表1所示。 储、简单过程、复杂过程和数据流组成。由 用户输入有关数据流程的实体、内部过程 件工程和信息安全共同的研究课题。软件 安全开发生命周期(SDL)提出了在软件开 发生命周期的各个阶段增加一系列针对安 全的关注和改进,以利于在开发过程中尽 可能早地检测并消除安全隐患。在软件设 从上表可以看出以下几点。 (1)形式化方法的主要优点是分析过程 及数据流等信息,数据流图用dot作为文件 自动化程度较高,其主要缺点是应用程度 格式,采用Graphviz生成图形并进行展示。 较差,且大多为实验室产品。 (2)工程化方法的主要优点是实用性较 (3)模型分析。 架构分析工具采用sTRIDE的威胁分类 计阶段进行架构安全分析可以有效地从源 高,但这些方法没有自动化的工具支持,而 方法来识别各种威胁。sTRIDE从攻击者的 头上减少漏洞发生的可能,降低软件维护 且在分析过程中,软件架构分析人员的经 成本。同时,架构安全分析可以指导软件发 验对分析的结果至关重要。 布前的白盒安全测试,对架构分析得出的 重点资产及核心业务模块进行重点审计, 减轻业务人员的安全审计工作,保障软件 的质量。 角度考虑威胁,分别指存在的六种威ll办,即 假冒、篡改、否认、信息泄露、拒绝服务、提 升权限。数据流图元素与威胁的对应关系 2架构分析工具的设计与实现 架构分析工具采用威胁建模的方法来 如下表2所示。 (4)威胁确认及审计。 威胁确认过程中可以根据系统预置的 进行架构分析,主要模块有模型基本信息 采集、模型构建、模型分析、威胁确认及审 威胁树进行辅助判断,威胁树从攻击者的 1软件架构分析方法介绍 现有的软件架构分析方法主要有两 类:一类是形式化的方法,一类是工程化的 应用方法。形式化的方法主要有:UMLsec 计、攻击库。其处理流程如下图l所示。 角度也称“攻击树”。从入口到出口,跟踪应 架构分析步骤如下。 用程序的数据输入通过应用程序。这样可 (1)模型基本信息采集主要定义系统的 以了解应用程序如何与外部系统和客户端 应用场景,并收集外部依赖,定义安全假 进行交互,以及内部组件之间如何交互。要 设。 方法、SAM方法、DTMC(Discrete Time Markov Chains)方法、进程代数方法、 ACME方法、Secure xADL方法。工程化的 特别注意跨信任边界的数据流,以及如何 在信任边界的人口点验证这些数据。还要 (2)模型构建包括威胁建模和受攻击面 建模两部分组成。威胁建模使用DFD(数据 密切注意敏感数据项,以及这些数据如何 流过系统、它们通过网络传递到何处以及 方法主要有:场景分析方法、错误用例分析 流图)描述威胁模型,作为分析应用程序的 表1 架构安全分析工具对比 方法名称 UMLsec SAM DTMC 进程代数方法 ACME SecurexADL 场景分析 安全描述能力 强 较强 较弱 较弱 较强 较弱 一般 层次式建模 工具支持 否 是 是 是 否 否 否 应用情况 有一定的实际应用 研究型方法 研究型方法 研究型方法 有一定的实际应用 研究型工具 实用方法 可扩展性 使用条件 强 强 较强 较日日 强 强 强 自动化工具 自动化工具 半自动化工具 自动化工具 半自动化工具 自动化工具 无 有UML基础 必须具备形式化的理论知识 必须具备形式化的理论知识 必须具备形式化的理论知识 需要ACME研究基础 需要xADL研究基础 依赖安全分析经验 错误用例 威胁建模 风险分析 一般 一般 一般 否 是 否 无 一定的自动化工具 无 实用方法 实用方法 实用方法 强 较强 较强 依赖安全分析经验 依赖安全分析经验 依赖安全分析经验 科技资讯SCIENCE&TECHNOLOGY INFORMATION 1 9 CHN0L0GY INFORMATl0N 信息技术 (6)报告导出。 确认的过程中采用了威胁树的思路来对威 探讨了软件架构分析与源代码安全风险的 关系。进一步的研究方向为受攻击面分析 架构分析结果和源代码缺陷信息导 胁进行确认,并提出了受攻击面分析,最后 出。 在什么地方保留。定义受攻击面为一条从 人口到数据存储或外部实体的一条可达路 径。对威胁进行确认后可以针对每个威胁 给出相应的消减措施。 (5)源码缺陷等级修正。 结合威胁建模及手攻击面分析的结 3结语 中入13点、通道、出口点的权值如何选取, 本文对架构安全分析方法做了基本介 架构分析的风险等级与源代码安全等级的 果,将源代码缺陷检测的结果导入到该架 绍,在此技术上对架构安全分析工具的分 关系,架构安全分析与源代码安全分析在 构分析工具中,可以对源代码缺陷等级进 析流程和关键技术作了深入的分析,本文 威胁分类及解决方案上的对应关系也是值 行修正。 基于数据流图构建了威胁模型,在对威胁 得研究的课题。 参考文献 【1]何可.可扩展的安全软件开发环境中的 威胁建模工具的设计与实现[D】.北京: 天津大学,2007:14~16. [2】易锦,郭涛,马丁.软件架构安全性分析 方法综述[J].VARAO9:312~3l 8. 【3]The Microsoft SDL Threat Modeling Too1.http://msdn.microsoft.com/en- us/security/dd20673 1.aspx. [4】Cigita1.http://www.cigita1.com/ ̄一 sOurces/securitv. 图1 架构分析工具处理流程 表2 数据流图元素与威胁对应关系 元素 外部实体 数据流 数据存储 过程 × 假冒S 篡改T 否认R 信息泄露I × × × × × 拒绝服务D 提升权限E X × × × × × X × 2O 科技资讯SCIENCE&TECHNOLOGY INFORMATION 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top