文摘,原文地址:https://msdn.microsoft.com/zh-cn/magazine/cc163519.aspx

威胁建模的本质:尽管通常我们无法证明给定的设计是安全的,但我们可以从自己的错误中汲取教训并避免犯同样的错误。



    首先需要知道什么样的设计是“安全的”,安全设计原则:

        开放设计——假设攻击者具有源代码和规格。

        故障安全预设值——出故障时自动关闭,无单点故障。

        最低权限——只分配所需的权限。

        机制经济性——保持简单、易懂的特性。

        分离权限——不允许根据单一条件执行操作。

        总体调节——每次检查所有内容。

        最低公用机制——注意保护共享资源。

        心理可接受性——他们将使用它吗?



    更进一步,设计完的系统应具有哪些安全相关的属性?

        机密性——数据只应限具有权限的人员访问。

        完整性——数据和系统资源只限适当的人员以适当的方式进行更改。

        可用性——系统在需要时一切就绪,可以正常操作。

        身份验证——建立用户身份(或者接受匿名用户)。

        授权——明确允许或拒绝用户访问资源。

        认可——用户无法在执行某操作后否认执行了此操作。



    使用STRIDE方法来进行威胁建模,确保应用具有这些安全属性。STRIDE是指:

        Spoofing(假冒) 对应 身份验证。

        Tampering(篡改) 对应 完整性。

        Repudiation(否认) 对应 认可。

        Information Disclosure(信息泄露) 对应 机密性。

        Denial of Service(拒绝服务) 对应 可用性。

        Elevation of Privilege(提升权限) 对应 授权。

使用数据流关系图(DFD)来辅助STRIDE分析,将系统分解成部件,并证明每个部件都不易受相关威胁攻击。DFD正确是确保威胁模型正确的关键所在。FDF包含如下元素:

        数据流:通过网络连接,命名管道,RPC通道等移动的数据。

        数据存储:表示文件,数据库,注册表项以及类似项。

        进程:计算机运行的计算或程序。

        交互方:系统的端点,例如人,web服务器和服务器。

        信任边界:表示可信元素与不可信元素之间的边界。

在应用STRIDE进行威胁建模分析时,需要注意的问题点:

        1、客户可能从来不会明确提出某些安全性的要求,因此,设计人员必须找到问题描述中内在的安全性要求。

        2、不仅必须从一个攻击者的角度来看待风险问题,还必须“同时”从所有的攻击者的角度来全盘考虑安全问题。

        3、DFD是否切合实际的常规判断依据:

            第一,数据不是凭空臆造的,确保对于每个数据存储,都有读取者或写入者。

            第二,注意数据传输过程的灵魂作用,确保始终有一个进程读取和写入数据。

            第三,将单个信任边界内的相似元素收缩为单个元素,以便于建模。

            第四,注意信任边界任一侧的建模细节,尝试显示更详细的信息。

       4、信任边界的真正定义——不相信另一端的任何事物。

5、你根本想象不到其他人为何需要你的数据,你只需认为有人需要你的数据。

       6、你与客户相距越远,就越难以知道客户对于不同风险的承受程度。不要对客户的情形或风险承受程度做过多的假设。

       7、攻击者可能是内部人员,而不是外部人员。他们可能具有合法的访问权限,可以访问数据库以完成自己的工作。

       8、针对每个威胁和DFD中的每个元素进行分析:针对所有数据流和数据存储解决了篡改、信息泄露和拒绝服务威胁;针对所有进程解决了所有STRIDE威胁;针对所有交互方解决了假冒和否认威胁;并解决了影响信任边界的独特威胁。

       9、STRIDE模型很好的一点在于,它能让你洞察你所需的抑制措施的本质。

       10、使用预构建的威胁树可以确保不会忽略已知的攻击。



    总结:对于任何挑战,一个好的策略是将问题分解成若干更易于解决的小问题。关键一点是找到适合你的方法,较早将其应用于设计中,记住任何组件都可能失败,并进行必要的研究,以确保你已考虑了已知的攻击模式

文摘:威胁建模(STRIDE方法)的更多相关文章

  1. 【安全测试】安全测试威胁建模设计方法STRIDE

    背景 目前安全测试一般都存在如下问题: 安全测试人员不懂业务,业务测试人员不懂安全,安全测试设计出现遗漏是无法避免的 安全测试点繁多复杂,单点分析会导致风险暴露,不安全 目前的状态: TR2阶段测试人 ...

  2. STRIDE威胁建模

    一.什么是威胁建模 简单的来说,威胁建模就是通过结构化的方法,系统的识别.评估产品的安全风险和威胁,并针对这些风险.威胁制定消减措施的一个过程. 威胁建模是一个非常有用的工具,它的核心是“像攻击者一样 ...

  3. SDL 威胁建模工具入门 threat modeling tool

    http://msdn.microsoft.com/zh-cn/magazine/dd347831.aspx threat modeling tool 威胁建模工具 minifuzz 文件模糊工具 c ...

  4. 三维建模:方法之CSG与B-Rep比较

    源自于百度百科:实体造型--- 三维模型特征表示方法: 计算机中表示三维形体的模型,按照几何特点进行分类,大体上可以分为三种:线框模型.表面模型和实体模型.如果按照表示物体的方法进行分类,实体模型基本 ...

  5. 【网络安全】——客户端安全(浏览器安全、XSS、CSRF、Clickjacking)

    ​ 近在学习网络安全相关的知识,于是先从业内一本系统讲Web安全的书<白帽子讲Web安全>系统学习Web安全的相关知识.在此整理书中的知识层次,不求详尽,只求自己对整个Web安全梗概有所了 ...

  6. 应急响应-PDCERF模型 (转)

    目录 应急响应流程 防御模型 SDL 应急响应流程 很多人认为应急响应就是脸上被黑的机器去查查什么情况,是不是被中了botnet病毒.是不是被人中了rootkit等,是不是被挂了webshell等.应 ...

  7. hive建模方法

    转自:https://www.jianshu.com/p/8378b80e4b21 概述数据仓库这个概念是由 Bill Inmon 所提出的,其功能是将组织通过联机事务处理(OLTP)所积累的大量的资 ...

  8. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL

    以下内容,是关于软件建模的方法与思路. UML与OWL都是基于本体论的建模语言. 本体论(哲学) 本体论(信息科学) UML(统一建模语言) more info 参考:[设计语言][统一建模语言][软 ...

  9. 我的四轴专用PID参数整定方法及原理---超长文慎入(转)

    给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情. 首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么'只 ...

随机推荐

  1. OD调试学习笔记7—去除未注册版软件的使用次数限制

    OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...

  2. UVa 679 小球下落 简单模拟题,树

    题目大意:给你一个完全二叉树,并且给他们编号,编号规则为左子树为2*k,右子树为2*k+1,每一个节点 上都有一个开关,初始时开关都处于关闭状态,小球碰到节点就会改变该点的开关的状态.然后给你I个小球 ...

  3. hdu 5671 矩阵变换

    Matrix Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Su ...

  4. C++第二课(2013.9.27 )

    //引用的作用:代码简洁 //形参和实参同地址,实现的方式和指针的一样 //引用和指针没有本质的区别 //强转引用 float f = 3.14f; cout<< hex << ...

  5. python文件_目录

    #! /usr/bin/env python #coding=gbk import os import time #设置文件的默认路径,当指定的目录不存在时,引发异常:WindowsError:[er ...

  6. HDU 4010 Query on The Trees(动态树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4010 题意:一棵树,四种操作: (1)若x和y不在一棵树上,将x和y连边: (2)若x和y在一棵树上, ...

  7. IP防护等级

    IP(INGRESS PROTECTION)防护等级系统是由IEC(INTERNATIONAL ELECTROTECHNICAL COMMISSION)所起草,将电器依其防尘防湿气之特性加以分级.这里 ...

  8. Friendly number

    Friendly number Long numbers can be made to look nicer, so let’s write some code to do just that. Yo ...

  9. 返回本机的外网ip地址

     ;             );             string ip = tempip.Replace("]", "").Replace(" ...

  10. Linux用户基础

    http://itercast.com/lecture/21 操作系统通过用户.组概念来管理使用计算机的人 用户代表一个使用计算机的使用者,操作系统通过用户概念限制一个使用者能够访问的资源 组用来组织 ...