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

这篇具有很好参考价值的文章主要介绍了STRIDE 威胁建模:面向安全应用程序开发的威胁分析框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是 STRIDE 威胁建模?

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

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

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

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

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

《完》 

参考:

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

2、Getting started with the Threat Modeling Tool文章来源地址https://www.toymoban.com/news/detail-452468.html

到了这里,关于STRIDE 威胁建模:面向安全应用程序开发的威胁分析框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 保护您的Android应用程序:Android应用程序安全一览

    我们都知道Android是为所有人设计的——开放、面向开发者、面向用户,这种开放性为今天和明天的移动技术提供了很多便利。然而,开放性也带来了需要妥善处理的安全风险。 安全是我们所有人都关注的重要问题。无论是我们的个人数据、电子邮件、电话号码、凭证、服务

    2024年02月03日
    浏览(72)
  • C++中的网络编程和安全性:实现安全的Web应用程序和网络应用程序

    作者:禅与计算机程序设计艺术 《67. C++中的网络编程和安全性:实现安全的Web应用程序和网络应用程序》 1.1. 背景介绍 随着互联网的快速发展,网络应用程序在人们的生活和工作中扮演着越来越重要的角色,网络编程和安全性也成为了现代应用程序的重要组成部分。在网络

    2024年02月16日
    浏览(52)
  • Web应用程序安全

    Web应用程序是现代互联网应用的重要组成部分,但是由于其广泛性和复杂性,常常存在各种安全漏洞和风险,如跨站脚本攻击、SQL注入攻击、信息泄露等。为了保障Web应用程序的安全性,需要进行安全性评估,以发现和修复可能存在的安全漏洞和风险。本文将介绍Web应用程序

    2024年02月21日
    浏览(55)
  • 软件安全设计(威胁建模实现)

    目录 一、实验目的 二、实验软硬件要求 三、实验预习 四、实验内容(实验步骤、测试数据等) 实验步骤 确定安全目标 创建在线学习系统概况图 分解在线学习系统 确定威胁 威胁评估 确定威胁缓解计划或策略 验证和记录威胁 熟悉软件安全需求分析方法,掌握软件安全分析

    2024年02月07日
    浏览(48)
  • 云中企业应用程序安全的最佳实践

    文章首发微信公众号:网络研究院,关注获取更多。 对于许多企业来说,将应用程序迁移到公共云是一个有吸引力的提议,可以带来很多好处。 它可以加快上市时间,企业可以在几秒钟内启动新实例或停用它们,从而使开发人员能够通过快速部署来加速开发。这支持更大的

    2024年02月10日
    浏览(51)
  • 应用程序已被Java安全阻止

    运行kvm.jnlp文件时弹出警告窗: 应用程序已被Java安全阻止 出于安全原因,应用程序现在必须满足“高”或“非常高”安全设置的要求或属于“例外站点”列表的一部分才允许运行。 解决方法: 控制面包 - Java - 安全 - 编辑站点列表 - 添加“例外站点”列表 -添加自己信任的网

    2024年02月16日
    浏览(36)
  • 系统安全设计的方法--威胁建模

        一个IT系统是复杂的,随着提供更多的业务功能它会变得越来越复杂。这意味着一个IT系统的设计决策需要考虑到越来越多的情况,包括安全的情况。因此催生了DevSecOps、SDL的发展,以期规避可能导致影响业务结果的潜在安全威胁。这时除了要对IT系统进行功能建模、性能

    2023年04月19日
    浏览(41)
  • 【容器化应用程序设计和开发】2.5 容器化应用程序的安全性和合规性考虑

    往期回顾: 第一章:【云原生概念和技术】 第二章:2.1 容器化基础知识和Docker容器 第二章:2.2 Dockerfile 的编写和最佳实践 第二章:2.3 容器编排和Kubernetes调度 第二章:2.4 容器网络和存储 容器化应用程序是将应用程序和其依赖项打包到一个独立的、可移植的容器中,以便在

    2024年02月15日
    浏览(52)
  • ZA303学习笔记六管理应用程序的安全(密钥保管库,托管标识,管理应用程序,CA证书)

    密钥保管库和 VM 必须位于同一 Azure 区域和订阅中。 Azure Key Vault是一个用于安全地存储和访问机密的工具。机密是你希望严格控制对其的访问的任何东西,例如API密钥、密码或证书。保管库是机密的逻辑组。 租户:租户是拥有和管理特定的Microsoft云服务实例的组织。它通常用

    2024年02月04日
    浏览(84)
  • 如何使用代码混淆技术保护移动应用程序安全

    在移动应用开发过程中,代码保护一直是一个重要的议题。为了保护应用程序免受黑客攻击和逆向工程师的破解,开发人员使用各种方法来加强应用程序的安全性。其中,代码混淆是一种常用的技术,可以通过对代码进行混淆、压缩和重命名等操作,使得应用程序的代码难以

    2024年01月17日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包