AWS教你如何做威胁建模

这篇具有很好参考价值的文章主要介绍了AWS教你如何做威胁建模。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 写在前面

  • 准备威胁建模

    • 组建虚拟团队

    • 四个阶段的结构化思考

  • 车联网威胁建模例子

    • 1、我们在做什么?为车辆登记功能创建系统模型

    • 2、会出什么问题?识别功能威胁

    • 3、我们要怎么做?确定威胁的优先级并选择缓解措施

    • 4、我们做得足够好吗?评估威胁建模过程的有效性

  • 附录

    • 威胁建模模板

    • 参考资料

AWS教你如何做威胁建模

写在前面

    最近的“AWS re:Inforce 2022”介绍了众多的安全、身份和合规的产品和服务,笔者整理亚马逊相关资料一步一步介绍威胁建模环节该怎么做。

    这里严厉批评某些公司所谓的“轻量级威胁建模”,其实本质就是需求表格的自查,不要指望技术同学用简单的checklist就能做,想轻量级那就不是威胁建模!

    因为威胁建模的本质是----“有经验的安全专家和业务团队关于威胁的头脑风暴”,欢迎自动化、欢迎复用、欢迎标准流程,但威胁建模活动一定是以沟通、协作和以人为主导的专业知识为中心的。

准备威胁建模

组建虚拟团队

    威胁建模需要听取多种不同观点和经验才能进行,每个团队成员的意见都需要重视,最终在安全、交付、业务之间取得权衡。不能仅仅是安全和技术参与,checklist,卡点反而是阻碍威胁建模效果的瓶颈。具体来说需要五个角色:

  • 威胁建模专家:是一次威胁建模活动的主导者,经验丰富、洞察威胁建模的过程和控制讨论边界,这个主持人、教练、顾问要参与一线,最终总结材料文档,平时同时兼职攻击者和防守者两个角色。

  • 攻击者:发现设计类安全缺陷,类似于沙盘方式设身处地从攻击角度进行头脑风暴。

  • 防守者:避免安全防御措施过度设计,设计威胁控制措施。

  • 开发人员:主力模块开发者或者系统架构师,有了解当前服务具体如何设计和实现的背景,负责清楚明白威胁和缓解措施。

  • 产品经理:类似于交付经理,避免安全措施导致产品需求无法实现,达到安全、效率和体验的平衡。

威胁建模的四个阶段

    通过在不同的阶段尝试结构化思考回答四个问题:

  1. 我们在做什么?

参与者:全部虚拟团队成员

交付和设计更安全的软件

会出什么问题?

参与者:攻击者、开发者

STRIDE助记符、内部人员风险、OWASPTop10、数据安全风险、组织内部的威胁列表

我们要怎么做?

参与者:防守者、开发者、产品经理 

代码控制方案、引入纵深防御、借助云服务的安全措施,评估改进后的方案不影响需求。

我们做得足够好吗?

参与者:威胁建模专家,开发人员

威胁建模是对风险的分析,这个判断是否足够好的阶段区分:

  1. 威胁建模专家审核威胁已经“足够全”,认可缓解措施;

  2. 开发者交付缓解措施,进行再次code review;

  3. 威胁建模专家评估验收标准,根据威胁建模的结果引入安全测试、结项;

  4. 威胁建模专家归档建模结果、更新知识库,整合各项缓解措施到平台级别的安全基线中,与SDLC工具深度集成。

注册功能威胁建模例子

    接下来以在AWS上的一个车联网服务解决方案为例解答如何创建系统模型和威胁模型,以及评估模型的有用性。车联网解决方案通常包括物联网车辆、驾驶员、车辆登记、遥测数据等多种模块,这是一个复杂的系统,所以要分解到功能、应用服务模块进行建模,而不是一开始为整个系统创建威胁模型。

    本次的例子拆分到story维度,简化为“作为⻋队经理,我想注册现有的物联⽹连接⻋辆以使其投⼊使⽤。”,具体场景技术设计上,⻋队经理将使⽤标准 Web 浏览器访问 Web ⻔⼾、进行⾝份验证,并能够将新⻋辆注册到系统中并投⼊使⽤。

AWS教你如何做威胁建模
车辆注册模块流程图

1、我们在做什么?为车辆登记功能创建系统模型

1.1、首先将准备创建数据流图表示上述车辆登记功能的元素,以及它们之间的数据流。

    需要的工具就可以是白纸、白板,或者是draw.io或者PlantUML。根据上述系统设计图中了解到系统以AWS Amplify托管前端静态资源,Amazon Cognito集成做身份验证,由 AWS Lambda 和 Amazon API Gateway 提供的基于 REST 的 API,后端通过DynamoDBTable和S3进行存储。

1.2、绘制系统元素、数据流和信任边界
AWS教你如何做威胁建模
数据流要素

    在元素之间,通过绘制箭头来表示数据如果通过车辆登记功能流动,箭头的方向就是数据流的方向,对于http、rpc请求意味着必然会向调用者返回响应,不必添加返回箭头,存储和查询可以是单向的。

AWS教你如何做威胁建模
数据流箭头
1.3、绘制信任边界

    确定车辆注册功能的哪些区域和元素组可以被认为是同等受信任的,化为同一信任域,在每个区域周围绘制虚线框来显示信任边界的未知,并添加标签来显示信任域的用途,以下绘制完成的车辆注册功能数据流图。

AWS教你如何做威胁建模
完整数据流图

2、会出什么问题?识别功能威胁

    开始你的威胁建模头脑风暴,没有错误的答案,我们的目标是尽可能完整得涵盖可能的威胁,不预设可能已经会被缓解的威胁。
2.1 使⽤ STRIDE-per-Element 查找对⻋辆登记功能的威胁

    每个元素,即人类参与者、外部实体、流程、数据存储和数据流可以被对应到不同的STRIDE威胁。

AWS教你如何做威胁建模
STRIDE-per-Element

2.1.1 外部实体的威胁由于是注册功能,所以有外部实体User,从上述的STRIDE-per-Element图表中,我们看到会有 Spoofing(欺骗)和 Repudiation (否认)威胁,这里不再详述。

2.1.2 对Process的威胁:

欺骗:进程的⾝份欺骗是指与其连接的每个元素,比如在同Amazon S3通信时可以假装(欺骗)为Lambda的身份,恶意连接数据库。

篡改:如果进程的代码、配置或执行环境(如内存空间)以意想不到的⽅式被修改,则可能会篡改进程。考虑如何篡改⻋辆登记功能中的流程。例如是否可以向 Lambda 函数提供输⼊以修改函数的行为?

否认:Lambda 函数是否可以在不⽣成审计跟踪条⽬的情况下删除存储桶对象,从⽽不归因于执行了该操作?

信息泄露:Lambda 函数如何返回对错误 S3 对象的引⽤?

拒绝服务:⾮常⼤的对象是否会导致 Lambda 函数出现问题?

权限提升:车辆注册一般不存在普通用户和管理的区别,这里忽略威胁。

2.1.3 对数据存储的威胁:数据存储可能面临篡改、信息泄露和拒绝服务的风险。

拒绝:如果系统设计中没有对系统日志进行存储,应该不会有拒绝威胁。 否认:系统本身没有日志记录,所以没有否认威胁。

泄露泄露:恶意人员如何从DynamoDB 表中读取数据,或读取存储在 Amazon S3 存储桶内的对象中的数据?

拒绝服务:恶意人员如何从 Amazon S3 存储桶中删除对象?

2.1.4 数据流:当数据流过可能被恶意破坏的通道时比如共享⽹络、中间人,该数据可能会在传输过程中被修改。

信息泄露:当敏感数据流经不被认为是完全可信的⽹络(如共享⽹络)时,该数据可能会泄露给⾮预期的接收者。

拒绝服务:数据流也可能是拒绝服务威胁的⽬标,通常表⽰为影响连接的事件,例如⽹络隔离事件或严重的数据包丢失,阻⽌⽤⼾与 API Gateway 通信。

2.2、确定优先级

    检查完威胁是否存在重复或者漏过的情况后,通过估算与影响相比的缓解成本来分高、中、低优先级,威胁发生的影响*可能性=风险程 度,OWASP Risk Rating Methodology提供类似于DREAD的风险判断方法。

AWS教你如何做威胁建模
OWASP的风险评估模型

3、我们要怎么做?确定威胁的优先级并选择缓解措施

    通过一些安全设计原则和最佳实践将⻛险缓解资源集中在特定服务的威胁上。采用一些基础的安全服务如AWS IAM、CLoudWatch Log、CloudTrail、SecurityHub、KMS、加密SDK等。

    如果不能解决,选择是减轻⻛险、接受⻛险或将两者结合起来。 如果由于缓解的成本或复杂性⽽⽆法合理缓解⻛险,那么接受⻛险是唯⼀的选择,无论风险大小时,接受风险要取得上级的审核,不同管理层对安全的态度是不一样的。

4、我们做得足够好吗?评估威胁建模过程的有效性

    威胁建模是一项“安全社交活动”,结尾通过以下问题思考威胁建模过程对组织的有效性:

    1、我们知道我们在做什么吗?--是否有合适的资源、工具、流程、文化来执行威胁建模?

    2、我们知道会出什么问题吗?--发现的威胁数量是否符合预期?发现的威胁是否⽐预期的更多、相同或更少?

    3、我们做了什么?--缓解措施是否充分缓解了发现的威胁?

    4、我们执行得好吗?--威胁建模过程是否可以改进?能否真正改进了“车辆登记功能”的安全性?今后是否会为其他功能模块进行威胁建模?

    总而言之,威胁建模是一项投资——在笔者看来,这是一项很好的投资,因为与以后发现威胁相比,在功能的设计阶段发现和缓解威胁可以降低缓解的相对成本。随着时间的推移,持续实施威胁建模也可能会改善组织的安全状况。

附录

威胁建模模板

1、威胁假设
ID 描述
假设-1


2、威胁模型
优先级 威胁ID 标题 细节 潜在的威胁措施 选定的威胁措施 是否有缓解措施(是/否)

威胁用户 1 攻击者将合法用户的身份欺骗到API网关 未经⾝份验证的攻击者可以通过向 API Gateway 发出请求来列出、存储、检 索或搜索⽂档。



威胁-KMS-1 攻击者伪造KMS的身份 lambda 攻击者可以伪装成 KMS,例如通过篡改 DNS,以诱骗 Lambda 使⽤它来加 密/解密对象⽽不是真正的 KMS









参考资料

  1. https://www.youtube.com/watch?v=Yt0PhyEdZXU&ab_channel=AdamShostack

  2. https://github.com/adamshostack/4QuestionFrame

  3. https://www.youtube.com/watch?v=GuhIefIGeuA&ab_channel=AWSEvents https://github.com/michenriksen/drawio-threatmodeling

  4. https://owasp.org/www-community/Application_Threat_Modeling

  5. https://owasp.org/www-community/OWASP_Risk_Rating_Methodology文章来源地址https://www.toymoban.com/news/detail-476735.html

到了这里,关于AWS教你如何做威胁建模的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微软威胁建模工具 STRIDE

    what are we woking on  what can go wrong what are we going to do about this did we do a good enough job 说到threat modeling 不得不提的就是微软的STRIDE 微软也提供了工具来做这个工作 Microsoft Threat Modeling Tool overview - Azure | Microsoft Learn 工具提供模板来建模,分析威胁,算是简单易上手的。 画出产品服务

    2024年02月07日
    浏览(37)
  • SDL—威胁建模STRIDE

    专门拎出来一片来学习威胁建模的详细内容,主要是关注不同的威胁建模方法以及威胁建模实际落地的情况。这里特指的软件安全流程。本篇只针对STRIDE以及它的一个补充进行描述。 威胁建模指的是通过分析和思考,识别目标可能出现的漏洞和风险,实际上威胁建模的目的就

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

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

    2024年02月07日
    浏览(49)
  • ToBeWritten之IoT 威胁建模

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知识星球 感谢大家一直以来对我CSDN博客的关注和支持,但

    2023年04月09日
    浏览(41)
  • 常见威胁建模框架分析与比较

    威胁建模的方法最初是为了帮助开发更多的安全的操作系统,但已经开发的大量威胁建模方法,有些只关注软件发展,有些仅涵盖业务或组织的风险和威胁,另有一些可能是技术性的,不同的威胁模型都在基于不同的目的而开发和使用的。 美国国土安全部( DHS )的下一代网

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

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

    2023年04月19日
    浏览(42)
  • 为AWS认证做好准备:一份全面的备考指南

        随着云计算的快速发展,越来越多的专业人士选择获取AWS(亚马逊网络服务)认证。这个认证不仅可以证明你对AWS的理解和专业技能,还有助于你在云计算领域获得更好的工作机会。 以下是一份全面的备考指南,帮助你为AWS认证做好准备。 备考题库 IT认证题库大全 - 涵

    2024年02月10日
    浏览(43)
  • 【SDL实践指南】微软威胁建模工具

    文章前言 威胁建模(Threat Modeling)是一个不断循环的动态模型,它可以帮助企业确定对应用程序造成影响的威胁、攻击、漏洞和对策,企业可以使用威胁建模来形成应用程序的设计、实现企业的安全目标以及降低风险 工具介绍 Microsoft Threat Modeling Tool是由微软在2018年9月作为GA发

    2024年04月26日
    浏览(28)
  • 超好用的devsecops工具(威胁建模工具)

    目录 1Microsoft-Threat-Modeling-Tool 工具详情 2Threat Modeling Platform - Version 4 试用链接:IriusRisk V4 Threat Modeling Platform 公司简介 产品特点 3ThreatMoeler 试用链接:Threatmodeler - ThreatModeler 工具特点 工具对比 Microsoft Threat Modeling Tool 概述 - Azure | Microsoft Docs IriusRisk是业界领先的应用程序安全

    2024年02月17日
    浏览(65)
  • 提高安全投资回报:威胁建模和OPEN FAIR™风险分析

    对大多数人和企业来说,安全意味着一种成本。但重要的是如何获得适合的量,而不是越多越好。然而,你如何决定什么时候可以有足够的安全性,以及你如何获得它?则完全是另一回事。 该篇文章是 由The Open Group安全论坛主办,微软和Kyndryl等企业的安全专家以及其他安全

    2024年03月19日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包