一、什么是 STRIDE 威胁建模?

STRIDE 威胁模型由Microsoft安全研究人员于 1999 年创建,是一种以开发人员为中心的威胁建模方法,通过此方法可识别可能影响应用程序的威胁、攻击、漏洞,进而设计对应的缓解对策,以降低安全风险并满足公司的安全目标。

STRIDE为每一种威胁英文的首写字母,​​​​​​Spoofing欺骗、Tampering篡改、Repudiation否认、Information disclosure信息泄露、Denial of Service拒绝服务、Elevation of privilege特权提升。虽然 STRIDE 威胁建模本身对组织很有用,但它也是一种更广泛意义的威胁分析方法,可为安全团队提供一个实用的框架,用于定义安全要求、创建应用程序图、识别威胁、减轻威胁、并验证威胁已得到缓解

STRIDE具体描述及缓解

类别 描述 缓解方式

Spoofing

欺骗

涉及非法访问并使用其他用户的身份验证信息,例如用户名和密码。

Involves illegally accessing and then using another user's authentication information, such as username and password

Authentication

认证

Tampering

篡改

涉及恶意修改数据。示例包括对持久数据(例如数据库中保存的数据)进行未经授权的更改,以及数据在通过开放网络(例如 Internet)在两台计算机之间流动时的更改。

Involves the malicious modification of data. Examples include unauthorized changes made to persistent data, such as that held in a database, and the alteration of data as it flows between two computers over an open network, such as the Internet

Integrity

完整性

Repudiation

否认

与拒绝执行某项操作而其他方没有任何方式证明的用户相关联——例如,用户在缺乏追踪被禁止操作的能力的系统中执行非法操作。不可否认性是指系统对抗否认威胁的能力。例如,购买商品的用户可能必须在收到商品时签名。然后,供应商可以使用签名的收据作为用户确实收到包裹的证据。

Associated with users who deny performing an action without other parties having any way to prove otherwise—for example, a user performs an illegal operation in a system that lacks the ability to trace the prohibited operations. Non-Repudiation refers to the ability of a system to counter repudiation threats. For example, a user who purchases an item might have to sign for the item upon receipt. The vendor can then use the signed receipt as evidence that the user did receive the package

Auditability

审计

Information Disclosure

信息泄露

涉及将信息暴露给不应该访问它的个人——例如,用户读取他们无权访问的文件的能力,或者入侵者读取两台计算机之间传输的数据的能力。

Involves the exposure of information to individuals who are not supposed to have access to it—for example, the ability of users to read a file that they were not granted access to, or the ability of an intruder to read data in transit between two computers

Confidentiality

机密性

Dos

拒绝服务

拒绝服务 (DoS) 攻击拒绝向有效用户提供服务,例如,通过使 Web 服务器暂时不可用或无法使用。您必须防范某些类型的 DoS 威胁,以提高系统可用性和可靠性。

Denial of service (DoS) attacks deny service to valid users—for example, by making a Web server temporarily unavailable or unusable. You must protect against certain types of DoS threats simply to improve system availability and reliability

Availability

可用性

Elevation of privilege

特权提升

非特权用户获得特权访问,从而有足够的访问权限来破坏或破坏整个系统。特权提升威胁包括攻击者有效渗透所有系统防御并成为可信系统本身的一部分的情况,这确实是一种危险情况。

An unprivileged user gains privileged access and thereby has sufficient access to compromise or destroy the entire system. Elevation of privilege threats include those situations in which an attacker has effectively penetrated all system defenses and become part of the trusted system itself, a dangerous situation indeed

Authorization

授权

以上表格参考:Microsoft Threat Modeling Tool threats

二、STRIDE 威胁建模的六个要素

1、欺骗

欺骗攻击是指攻击者伪装自己的身份以成功冒充可信来源并获得对用户重要数据或信息的访问权限。欺骗经常使用社会工程来说服用户提供用户名和密码等信息。一旦他们获得信息,攻击者将使用它来访问应用程序并从那里感染网络。

欺骗攻击包括 cookie 重放攻击、会话劫持和跨站点请求伪造 (CSRF) 攻击。

由于欺骗是对用户身份验证的攻击,因此最好的预防形式是实施安全的用户身份验证方法,包括安全密码要求和多因素身份验证(MFA)。

2、篡改

篡改涉及故意修改系统以改变其行为。攻击者将尝试通过篡改目标参数或代码来破坏应用程序,以修改应用程序数据,例如用户凭据和权限,或应用程序中的其他关键项目。

跨站点脚本 (XSS) 和 SQL 注入等篡改攻击会破坏应用程序的完整性。为了防止篡改,应用程序应设计为验证用户输入并编码输出。在开发阶段和应用程序投入生产后,应使用静态代码分析来识别应用程序中的篡改漏洞。

3、否认

拒绝攻击是对应用程序上操作的有效性和完整性的攻击。否认攻击利用缺乏正确跟踪和记录用户操作的控制,利用这种缺乏来操纵或伪造新的、未经授权的操作的标识、删除日志或将错误数据记录到日志文件中,并拒绝操作或接收服务(例如,实施欺诈)。

开发人员可以通过在提供操作证明的应用程序中加入数字签名或确保有完整的、防篡改的日志来建立不可否认性,或确保某人不能否认操作的有效性。

4、信息泄露

信息泄露是指应用程序无意中泄露了可能被攻击者用来破坏系统的应用程序信息。

信息泄露可能来自应用程序中留下的开发人员评论、提供参数信息的源代码或包含过多细节的错误消息、泄露用户数据、敏感的商业或业务数据以及有关应用程序及其基础架构的技术细节.

然后,攻击者可以使用此信息来强制访问收集有关客户信息的应用程序,这些信息可用于进一步犯罪,或者获得特权,从而可以访问应用程序的更敏感区域。

开发人员是防止应用程序信息泄露漏洞的核心:

  • 错误消息、响应标头和背景信息应尽可能通用,以避免泄露有关应用程序行为的线索。
  • 应制定适当的访问控制和授权,以防止未经授权访问信息。
  • 应该从用户的角度检查应用程序本身,以验证开发人员的评论和其他信息没有在生产环境中显示。

5、拒绝服务

拒绝服务 (DoS) 攻击使目标流量泛滥,触发崩溃,然后将其关闭为合法流量。DoS 攻击通常会耗费时间和金钱,但不会对其受害者造成其他损害。最常见的 DoS 攻击形式是缓冲区溢出攻击,它只是向应用程序发送过多的流量。其他攻击利用漏洞导致系统崩溃。

DoS 攻击可以针对网络层或应用程序层。通过配置防火墙来阻止来自某些来源(例如保留、环回或私有 IP 地址或未分配的DCHP DHCP客户端)的流量,或者引入速率限制来管理流量,可以保护应用程序免受 DoS 攻击。

6、特权升级

权限提升攻击利用应用程序中的漏洞和错误配置来获得对提升或特权的非法访问。权限提升攻击可能会利用凭证和身份验证过程,破坏代码和设计中的漏洞,利用错误配置,或使用恶意软件或社会工程来获取访问权限。

应在开发阶段将防止特权升级的保护内置到应用程序中。这包括管理身份生命周期、对所有用户强制执行最低权限原则、通过配置更改强化系统和应用程序、删除不必要的权限和访问、关闭端口等等。

三、STRIDE 威胁建模的好处

尽早发现漏洞

一旦开发了所有或大部分应用程序,许多公认的漏洞识别方法(静态代码分析、渗透测试、漏洞赏金等)就会发挥作用。但是,在开发周期中修复漏洞比在实时产品中修复漏洞更便宜、更容易。

STRIDE 威胁建模是一种以开发为中心的方法,用于评估可能影响应用程序的威胁。STRIDE 可用于形成安全软件开发生命周期的清单,支持开发人员在更便宜且更容易缓解或补救时及早发现潜在弱点。

采取安全第一的方法

STRIDE 威胁建模是围绕威胁构建的,鼓励开发人员思考所考虑的每个威胁如何攻击应用程序的不同部分。此外,它挑战假设,使开发人员和信息安全团队质疑他们的假设,并测试它们的有效性和安全性。

STRIDE 威胁建模练习的结果可以与 DREAD 风险评估模型(损害潜力Damage potential、可再现性Reproducibility、可利用性Exploitability、受影响的用户Affected users、可发现性Discoverability)相结合,以评估每个风险的影响,并确定漏洞的优先级以进行补救。

STRIDE 威胁建模可以反复进行

STRIDE 威胁建模是一个框架,允许定期进行威胁建模练习,以使安全团队能够掌握快速发展的威胁形势,并确保到位的保护能够抵御新旧威胁。

四、STRIDE 建模软件工具-Microsoft Threat Modeling Tool

STRIDE 威胁建模框架中考虑的六个威胁组侧重于应用程序中的不同安全元素,鼓励开发人员考虑可能影响应用程序或系统每个部分的威胁,实际使用中,可借助微软的威胁建模工具,软件不大,可下载至本地直接体验,具体操作可参考此链接:Getting Started - Microsoft Threat Modeling Tool - Azure | Microsoft DocsLearn how to get started using the Threat Modeling Tool. Create a diagram, identify threats, mitigate threats, and validate each mitigation.https://docs.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-getting-started

《完》

参考:

1、STRIDE Threat Modelling: Six Steps to a Secure Application

2、Getting started with the Threat Modeling Tool

STRIDE 威胁建模:面向安全应用程序开发的威胁分析框架相关推荐

  1. SDL安全设计工具,一款支持多人协作实施威胁建模的微信小程序

    SDL安全设计工具,一款支持多人协作实施威胁建模的微信小程序楔子痛点威胁建模活动组织方法道具使用方法要点使用示例多人单人Q&A其他游戏参考阅读致谢 Shingle,音[ˈʃɪŋɡl],是世界上 ...

  2. SDL介绍----3、STRIDE威胁建模方法

    文章目录 一.什么是威胁建模 二.STRIDE威胁建模介绍 2.1.STRIDE的六类威胁 三.威胁建模流程 3.1.数据流图 3.2.识别威胁 3.3.提出缓解措施 3.4.安全验证 一.什么是威胁 ...

  3. 【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框架及UI小部件

    Webix是Javascript库 一种软件产品 用于加速Web开发的 JavaScript UI库和框架 Webix用于跨平台Web应用程序开发的JS框架,为您提供102个UI小部件和功能丰富的CS ...

  4. python的web应用程序开发(Django框架)

    python的web应用程序开发(Django框架) 1.安装Django并开启网页服务器 pip install django # 安装Django包 django-admin startproje ...

  5. 摩拜单车小程序开发实践与框架分析

    以打造内容全.技术新.可实操的小程序小册为目标,整本小册共包含 21 节,不仅讲述了小程序开发的一些基础知识,也通过摩拜单车业务案例深入小程序开发,此外,还加入了主流框架的使用对比和深入的技术细节分析 ...

  6. 微信小程序开发原生与框架对比

    1.为什么使用框架 (1) 原生微信小程序工程化差.不支持node (2) 原生微信小程序语法比较奇怪还需要我们学习新的一套语法. (3) 微信小程序的开发者工具开发体验较差. (4) 使用框架可以使 ...

  7. 微信小程序开发引入vant框架(步骤详细,供学习的同学们参考)

    一.安装nodejs 参考网址 下载node的网址:http://nodejs.cn/download/ node安装及配置的网址:https://blog.csdn.net/JingYan_Chan ...

  8. 抖音SEO搜索和源码程序开发及系统功能框架分析

    抖音SEO搜索,首先需要明白什么是抖音seo,以下内容共同学习: 1.抖音搜索具体的来说你可以把它理解成更细分.更垂直的一个短视频搜索引擎.就像豆丁网一样,它就是垂直定位于中文文档的搜索引擎,也可以这 ...

  9. 微信小程序开发入门——uni-app框架

    uni-app (Union Application) 是一个基于Vue.js的前端框架:开发规范借鉴了微信小程序 前端技能点: 前后端分离,后端给接口和API文档,注重前端 用uni-app框架 作 ...

最新文章

  1. think in Java 第五章之垃圾回收类型
  2. gcc编译参数[转]
  3. oracle 连续次数,如何求字段连续出现的次数?
  4. 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )
  5. linux tr 字符串,linux tr命令-转换或删除输入的字符的
  6. Python中怎么读写图像
  7. Visual studio代码行数统计
  8. LeetCode (合集)合并链表和数组
  9. 大数据学习笔记14:MR案例——招聘数据分析
  10. 颜色空间YUV、RGB理解(二)
  11. pytorch保存.pth文件
  12. 轻松一刻,python乌龟绘图-小猪佩奇,可爱乌龟,新冠病毒
  13. 8086汇编语言:8086CPU寄存器的相关介绍
  14. 七夕超多表情包入侵 - 100%提升博客美感(六千粉丝福利)!
  15. 英语快照1---英语正能量
  16. 看linux centos版本信息,Linux CentOS查看操作系统版本信息
  17. IT领域唯一的国家级证书,积分落户、评职称、抵个税...
  18. 你炒的肉丝为何又柴又老又难吃?
  19. java awt 玫瑰图形
  20. 手机进水开机android,手机进水?别怕,一个软件就能自救!

热门文章

  1. ueditor编辑器插入的图片宽高超过了编辑器的宽高就会有个超出范围的外边线
  2. Springboot 2.0默认连接池HikariCP详解(效率最高)
  3. 微信分享自定义标题和图片,开发者工具没问题,真机调试失败
  4. 开运算、闭运算及其所用
  5. 【vue生成二维码】1.将后端返回的二维码字符串生成二维码;2.下载功能
  6. 【论文阅读|深读】DANE:Deep Attributed Network Embedding
  7. Transformer技术在机器翻译中的应用研究
  8. FSB、BIS和IMF三大国际金融机构
  9. 5个FSB亚洲成员国的加密货币监管政策
  10. php sha512解密,PHP加密函数 sha256 sha512 sha256_file() sha512_file()