| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> STRIDE 威胁建模:面向安全应用程序开发的威胁分析框架 -> 正文阅读 |
|
[开发测试]STRIDE 威胁建模:面向安全应用程序开发的威胁分析框架 |
一、什么是 STRIDE 威胁建模?STRIDE 威胁模型由Microsoft安全研究人员于 1999 年创建,是一种以开发人员为中心的威胁建模方法,通过此方法可识别可能影响应用程序的威胁、攻击、漏洞,进而设计对应的缓解对策,以降低安全风险并满足公司的安全目标。 STRIDE为每一种威胁英文的首写字母,??????Spoofing欺骗、Tampering篡改、Repudiation否认、Information disclosure信息泄露、Denial of Service拒绝服务、Elevation of privilege特权提升。虽然 STRIDE 威胁建模本身对组织很有用,但它也是一种更广泛意义的威胁分析方法,可为安全团队提供一个实用的框架,用于定义安全要求、创建应用程序图、识别威胁、减轻威胁、并验证威胁已得到缓解。 STRIDE具体描述及缓解
以上表格参考: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 ToolSTRIDE 威胁建模框架中考虑的六个威胁组侧重于应用程序中的不同安全元素,鼓励开发人员考虑可能影响应用程序或系统每个部分的威胁,实际使用中,可借助微软的威胁建模工具,软件不大,可下载至本地直接体验,具体操作可参考此链接: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 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 22:28:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |