您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
基于EA进行威胁建模
 
作者:李澎涛(火龙果软件工程)
   次浏览      
 2020-9-14
 

什么是威胁建模

开始威胁建模过程之前,我们先了解下基本概念吧

威胁建模是一种结构化方法,它是分析系统可能存在的威胁漏洞,然后建立模型,根据模型,以量化的方式从下到上迭代的计算各个威胁值,然后根据威胁值进行系统分析评估。

为什么要进行威胁建模

随着计算机系统的广泛应用,在软件开发过程中,遭到越来越多的威胁,例如硬件系统被攻击或破坏,软件系统中的程序代码被篡改,用户隐私被泄露等问题,针对这些问题,进行威胁建模可以用来:

  • 尽早发现安全漏洞
  • 增加安全的防护
  • 设计和交付更安全的产品
  • 解决其他技术无法解决的问题
  • ......
  • 因此,进行威胁建模对用户有着重要意义,如下就是威胁建模示意图:


    如下是对图上的说明:

    1. 风险场景:指的是会遭受外部攻击的环境
    2. 资产损失:被攻击后造成的损失(根据资产的价值和数量来定义)
    3. 威胁群体:如果遭受攻击,哪些资产会受到威胁
    4. 威胁事件的频率:在给定时间范围内攻击者将对资产采取行动的可能性
    5. 威胁能力:攻击者能够对资产进行威胁的级别。
    6. 安全强度:如果遭受到攻击,安全性有多大
    7. 脆弱性:评估威胁发生的可能性

    EA中威胁建模有什么

    在EA中提供了风险分类技术,它包含丰富的风险分类元素,可以帮助用户对风险和威胁进行建模。

    下图是在EA中进行威胁建模的一个完整视图:


    在图中我们可以看到,要进行威胁建模,可以用到工具箱中的元素、关系。

    如下是威胁建模的元素列表

    元素列表  说明
    Asset Loss :资产损失
    Assumption:假设
    Contact Frequency:接触频率
    External Loss :外部损失
    Loss:损失
    Loss Event Frequency:损失事件频率
    Loss Magnitude: 损失量
    Organizational Loss:组织损失
    Probability Of Action:作用概率
    Resistance Strength:动作安全强度
    Risk Scenario:风险情景
    Risk:风险
    Risk Management Decision:风险管理决策
    Threat : 威胁
    Threat Agent: 威胁代理
    Threat Capability:威胁能力
    Threat Community:威胁群体
    Threat Event Frequency:威胁事件频率
    Threat Response:威胁响应
    Vulnerability:脆弱性


    如下是威胁建模的关系列表

    关系列表  说明
    Affect:影响
    Deny Access:拒绝访问
    Destruction:破坏
    Disclose:公开
    Loss Flow:敏感信息透露
    Misuse:滥用
    Modify:修改
    Unauthorized Access:未授权访问



    如何在EA中进行威胁建模

    在EA中可以通过两种方式创建威胁模型:

    1、 使用模型模板创建视图


    具体操作步骤如下:

    1. 首先打开模型向导
    2. 在模型向菜单中选择Strategy
    3. 在Strategy的下级菜单中选择Risk Analysis,显示Risk Analysis
    4. 选择Threat Community Pattern打开,如图3
    5. 创建模型图例,然后然后在此视图基础上进行编辑。

    2.以创建图表的方式创建威胁模型


    具体操作步骤如下:

    1.首先打开或新建一个模型
    2.在模型中添加图,类型选择Strategy
    3.在Strategy的下级菜单中选择Risk Analysis,然后找到对应的图类型创建
    4.创建元素时,可在Risk Analysis工具箱中选择元素进行创建

    在EA中进行威胁建模示例

    接下来看一下如何在EA中进行威胁建模呢?我们使用一个简单的用户登录网站的例子,分析下威胁建模过程,这里用如下四个步骤来介绍:

    1. 预设场景

    首先用户使用浏览器登录Web应用系统,登录时检查是否为HTTPS请求,用户提交用户名和密码到服务器,从后台数据库查询是否为正确的输入,如果用户名和密码正确,则认证成功,登录用户自己的首页界面。

    2. 图表化场景

    如下是使用EA中的数据流图对一个具体的场景进行描述,过程如下:


    如下是用户登录数据流图上的元素说明:

  • 外部实体:用户
  • 数据流:登录请求,HTTPS请求,用户名验证,用户密码查询,返回查询结果
  • 描述过程:检查是否是HTTPS请求,检查用户名是否存在,检查密码是否正确,登陆失败处理
  • 数据存储:数据库

  • 3.识别威胁:

    绘制完数据流图以后,就是对数据流中的每个元素可能面临的威胁逐个进行分析,我们使用EA中提供的“风险分类”技术对风险和威胁进行分析建模,如下图所示:


    如下是基于EA对威胁进行分析建模的元素说明:

    1.风险场景:指的是Web登陆系统
    2.资产损失:网站被植入木马入侵,造成网站系统故障
    3.威胁群体:用户或攻击者
    4.威胁事件频率:网站被入侵的频率为30%
    5.威胁能力:用户提交登陆信息时,可能存在威胁,攻击者可能伪造用户登录
    6.安全强度:用户登录安全强度为80%,其中包括攻击者故意在输入密码时植入错误参数,植入密码
    7.脆弱性:网站被植入密码,被攻击的脆弱性达到50%

    4.缓解措施

    威胁描述 缓解措施
    攻击者仿冒用户登录网站 1. 短信提醒
    2. 身份验证
    3. 指纹等其他认证方式
    攻击者绕过当前的认证方式,仿冒用户登录 1.增加图形验证码
    2.密码增加复杂度要求
    攻击者通过中间人窃取用户密码 1.登录请求HTTPS
    2.密码传输前先做一次加密
    攻击者窃取正常用户的会话,仿冒用户登录 web 网站 设置密码长度大于 24 位,通过安全随机数生成

    威胁建模在系统设计和软件设计过程中都是非常重要的,希望此文对大家了解和使用威胁建模起到帮助作用 。后续请继续关注我们,有更多文章,视频可供大家参考.

    如果您希望了解更多信息:

    下载 pdf版: 《基于EA进行威胁建模》

    本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp

     

    后记

    希望您读了此文后有所受益。

    如果您有经验乐于分享,欢迎投稿给我们。

    如果您对我们的培训、咨询和工具感兴趣:

  • 课程:基于UML和EA进行分析设计
  • 课程:MBSE(基于模型的系统工程)  
  • 课程:基于模型的需求管理)方法与实践
  • 课程:基于SysML和EA进行系统设计与建模  
  • 课程:企业架构建模
  • 课程:系统架构建模方法与案例
  • 课程:领域驱动的建模与设计
  • 课程:基于模型的设计
  • 课程:业务建模与业务分析
  • 建模工具:EA
  • 基于模型的需求管理工具:iSpace
  • 咨询方案:MBSE(基于模型的系统工程)
  • 咨询方案:基于UML的模型驱动的开发
  • 欢迎联系我们: 俎涛 Zutao@uml.net.cn

       
    次浏览       
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
    UML图解:对象图(object diagram)
    UML图解:顺序图( sequence diagram )
     
    相关文档

    模型跟踪:跟踪图、矩阵、关系(建模工具EA)
    自定义表格(Custom Table)在EA中的使用
    元素的详情浏览控制
    UAF 1.2规范解读(DMM 和 UAFML )
    EA中支持的各种图表
    EA中的界面原型建模
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于SysML和EA进行系统设计与建模
    基于模型的需求管理
    业务建模 & 领域驱动设计
    最新活动计划
    LLM大模型应用与项目构建 12-26[特惠]
    QT应用开发 11-21[线上]
    C++高级编程 11-27[北京]
    业务建模&领域驱动设计 11-15[北京]
    用户研究与用户建模 11-21[北京]
    SysML和EA进行系统设计建模 11-28[北京]
     
    最新文章
    iPerson的过程观:要 过程 or 结果
    “以人为本”的工程哲学
    企业架构、TOGAF与ArchiMate概览
    UML 图解:顺序图( sequence diagram )
    UML 图解:对象图( class diagram )
    最新课程
    基于UML和EA进行系统分析设计
    UML+EA+面向对象分析设计
    基于SysML和EA进行系统设计与建模
    UML + 嵌入式系统分析设计
    领域驱动的建模与设计
    更多...   
    成功案例
    某电信运营供应商 应用UML进行面向对象分析
    烽火通信 UML进行面向对象的分析设计
    西门子 UML与嵌入式软件分析设计
    航天科工某子公司 从系统到软件的分析、设计
    深圳某汽车企业 模型驱动的分析设计
    更多...