我的威胁建模交流和心得

本贴最后更新于 2237 天前,其中的信息可能已经时过境迁

简单记录对安全设计、威胁建模的实践和心得,部分资料来自于大神 @code01x:
类似 coding 只占开发中的一个步骤,现在的安全测试不应使用 burpsuite 就去测试。此处为了实现在渗透测试、修复方案做出资源权衡,交付应用程序满足安全目标。举一个测试 src 新上线例子的金币兑换业务,步骤应为 1、确定安全目标为,新上线功能不发生资金、隐私、内网网络突破风险等,并进行排序;2、同设计、需求、研发人员沟通输入各项文档、部署图,用例、场景,创建和分解应用程序结构,确定资产,画出金币、用户数据的流向,积分、订单、发货各系统间信任边界;3、详细识别应用场景遇到的威胁,认证攻击、逻辑攻击、枚举威胁。依优先级发现各接口的弱点,识别风险确定漏洞,使用威胁列表分类避免遗漏。最终采用对策来改进开发和需求过程中的薄弱点,归类新业务场景的威胁至知识库。输出威胁和漏洞列表,帮助人员了解潜在的设计、实现缺陷。识别设计阶段对默认配置或伪随机数算法使用不当的威胁;发现诸如在竞争条件下的订单重复取消导致金币退还问题、sql 注入漏洞,开始动手解决威胁。这里注意到各阶段的参与人员不同,列为看官需要将角色向应用生命周期前移。这个关系就像各安全文档是消防制度、安全漏洞修复是灭火器,甲方的主动测试为烟雾报警器。目前是问题驱动尽量前移,愿景是通过安全赋能或者优雅的自动化来实现。安全人员正是可以在与相干人的问与答之间权衡安全风险级别。以上说的是基于判断安全测试的范围和流程来说的威胁建模,不涉及设计阶段。
工具方面基本都是这基本上都是差不多,external,store,process,trust boundary 组成。微软提供了建模工具 threat modeling tool,根据 Threat modling 的结果去创建对应的 security test cases。尝试使用该工具画数据流图,但是由于是默认的模板,实在是不好用。突出问题有三:1、默认的 process、dataflow 有限,导致产生的报告基本是错的。2、bi-Directional connect 两个由标签构成,其实也只是两个连接线放在一起了,可以随意拖动不好用。解决的办法是用单向流向表示,因为风险已经发生在从 A-B 的,那么 B-A 已经是风险。不考虑什么 wifi、udp 的场景了。有时候放具体的东西较容易,比如某个请求中有那些数据,返回中却是不同的数据,可以分别列上去。工具提供的都是非常 general 的,具体自己用的时候具体灵活发挥。3、没有子系统的表示方式。攻击树又是另外一个问题了,构建合适 and 的 or 模型很麻烦,思维导图倒是有不少,工具方面 seamonster 已经不维护了,但是创建攻击树的体验非常好。

https://en.wikipedia.org/wiki/Misuse_case 另外还这种“基于错误案例的”建模方法。。

参考资料:

https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647894(v=pandp.10)

威胁建模还有多少用武之处 | 爱尖刀

https://msdn.microsoft.com/zh-cn/library/ms978518.aspx

https://www.synopsys.com/content/dam/synopsys/sig-assets/ebooks/threat-modeling-misconceptions.pdf

实际产出报告:
NA

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 355 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 261 关注
  • CodeMirror
    1 引用 • 2 回帖 • 129 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22352 引用 • 89434 回帖 • 1 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 203 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 462 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 742 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    123 引用 • 74 回帖
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 385 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 629 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 3 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖 • 2 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 1 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 530 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    944 引用 • 943 回帖
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    90 引用 • 899 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖 • 1 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 629 关注