写点什么

构建敏捷的安全开发生命周期 QClub 活动总结

2010 年 9 月 30 日

在 9 月 18 日 InfoQ 与微软合作的 QClub 活动中,我们邀请到了来自中国海关的架构师王翔以及澳洲视窗北京研发部负责人、资深软件架构师徐磊来和大家分享威胁建模和敏捷的安全开发两个话题。本文为大家整理了他们的主要演讲内容,并为大家提供了他们演示文档的下载。

威胁建模在软件开发中的重要性

在王翔的演讲中,他介绍了威胁建模在团队开发中应如何应用。主要内容包含以下几点:

  • 威胁建模的概念:威胁来自哪里?我们应该怎样去认识它;威胁在开发过程中的重要性。
  • 处理威胁的方法:怎样在威胁建模过程中完善模型,如何在开发过程中避免威胁,验证规则。
  • 举例:在开发过程中应该如何进行威胁分析。

在对威胁的认识上,王翔通过比喻给出了详细的介绍。他总结说威胁是必然存在的,永远都不可能把威胁清除干净,所有的开发都一样。我们所能做的是尽可能地把威胁降到最低限度,以满足系统的需求。随后他通过一个简单的模型来为大家解释了“威胁来自哪里”,例如来自 Hacker 的,或者来自用户体验中引发的问题等等。

而在如何建立威胁建模这个问题上,王翔也给出了几种方法。首先通过类数据流图来分析威胁出现在哪里。有很多在开发过程中大家默认为必定正确的地方,其实都是可能出现威胁的。这类威胁如果不能及时被发现和解决的话,很可能在今后的开发、用户体验、交互过程中引发出更多的问题。

在处理威胁这个问题上通常可以采取以下方法来处理威胁:

Spoofing

Authentication

Tampering

Integrity

Repudiation

Nonrepudiation

Information

Confidentiality

Denial of Service

Availability

Elevation of Privilege

Authorization

在介绍这些方法的同时,王翔也给出了很多实例,请读者自行参照本文所提供的 Slides(下载)。。

演讲的最后,王翔介绍了 SDL Threat Modeling Tool 以及 Threat Analysis and Modeling 两款在 SDL 过程中常用来分析威胁的工具,通过它们可以很快的了解到在整个开发过程中,可能或必然会遇到的一些威胁。

安全敏捷开发--微软敏捷的安全开发周期

另外一名演讲嘉宾徐磊是来自澳洲视窗公司的中国区首席代表,同时也是微软 Regional Director(中国 2 名,全球 <150 名)、微软最有价值专家 MVP、Mirosoft ALM。在 SDL 以及 Agile 方面都有很深的研究。他演讲的主要内容包括:

  • 为什么要使用安全开发
  • 微软 SDL 开发的起源
  • 从细节上简化 SDL
  • SDL 在现有的开发过程中如何应用
  • SDL 是否适合敏捷,怎样去结合他们?
  • 在 MSF 中敏捷结合 SDL 的流程模板
  • 团队开发中如何应用敏捷的安全开发周期

在徐磊的介绍中,提到 Windows 7 是微软一款完全使用 SDL 开发的系统,在漏洞这一项 Windows 7 比 Winows XP 减少了 91% 的漏洞。随后他介绍了微软 SDL 从 2002 年 Bill Gates 提出的“安全计算”到现在逐渐成型的完整体系。

SDL 是一个很典型的瀑布软件开发流程,与普通开发流程的区别在于它在头、尾加入了培训和反馈,具体如下:培训-需求-设计-实施-审核-发布-反馈。培训的目的是让整个团队明确什么样的错误是要避免的,从而统一要求,避免在以后开发过程中的错误。反馈是在软件开发的最后通过一个团队来对安全性问题提出建议。

随后徐磊重点对如何让敏捷更好地与 SDL 融合给出了他自己的看法,在结合的过程中出现了很多问题,比如敏捷是没有阶段的,而 SDL 有明确的七个阶段等。接着他提出了两个设想:把 SDL 的要求和任务放到 Product Backlog 里面,这样做的优点是够敏捷,但是在需求不断改变的过程中无法保证在每个迭代里都要去实现,所以不够安全。反过来把整个 SDL 放到一个敏捷的迭代中去,这样会很安全,但是会很繁琐。在详细分析了每个设想后,徐磊最后给出的方法是将 SDL 里的任务分为三类:

  • 每个迭代周期的需求——在敏捷的每个迭代中都要做的任务;
  • 一次性的需求——如在 SDL 中的需求或设计阶段,会要求建立 Bug 跟踪系统,类似这样的工作只做一次就可以了;
  • 桶状需求(Bucket Requirements)——优先级比较低的需求,在某个时间段内完成即可的任务。

依照上面的分类对这些任务做优先级的排序,从而在项目的不同阶段、不同的时限内完成了 SDL 的需求。

在提问环节中徐磊对与会者提出的有关 SDL 开发成本与效率问题也给出自己的看法,他强调说 SDL 只是一种方法,微软做的不一定就是对的,也不一定只有这一种方式,每个团队在使用 SDL 的时候都需要根据自己团队的情况而作出自身的的改变。

关于两位演讲嘉宾的更多细节内容,请下载他们的演讲幻灯片,随后 InfoQ 中文站还会发布他们的演讲视频,敬请期待。

2010 年 9 月 30 日 17:01808

评论

发布
暂无评论
发现更多内容

软件架构设计实战

andy

十二周总结

水浴清风

关于坚持的思考

.

28天写作

架构师设计大作业二

小诗

「架构师训练营第 1 期」

上链智能合约系统开发|上链智能合约APP软件开发

开發I852946OIIO

系统开发

Week12作业

lggl

案例研究之聊聊 QLExpress 源码 (二)

小诚信驿站

源码分析 小诚信驿站 28天写作 QLExpress源码 聊聊源码

Week12总结

lggl

DAPP智能合约APP开发|DAPP智能合约软件系统开发

开發I852946OIIO

系统开发

软件架构知识树

andy

OpenLookeng连接器-Clickhouse connector性能测试报告

Galaxy数据平台

数据库 数据分析 Clickhouse

解密Android开发常见误区!耗时两个礼拜,8000字安卓面试长文,详细的Android学习指南

欢喜学安卓

android 程序员 面试 移动开发

联想小新潮7000安装CentOS8.8步骤

莫问

从代码到部署微服务实战(一)

Kevin Wan

go 微服务 microservice go-zero

十二周作业

水浴清风

大作业二

golangboy

架构师训练营第 1 期

供应链产品溯源介绍

无誉

区块链 产品 电商 供应链 盘点2020

架构师训练营第 1 期 大作业一

李循律

赫拉利其人其书之我见(1)

石君

科技 简史 社科

架构师训练营第 1 期 - 第 13 周 - 学习总结

wgl

「架构师训练营第 1 期」

架构入门感悟之十二

莫问

第十二周课后练习

落朽

架构师训练营第 1 期 大作业二

李循律

解析底层原理!2021年移动开发者未来的出路在哪里,论程序员成长的正确姿势

欢喜学安卓

android 程序员 面试 移动开发

架构师训练营第二周作业

架构师训练营 4 期

架构师训练营第 1 期 - 第 13 周 - 命题作业

wgl

「架构师训练营第 1 期」

极客时间 架构大作业,快递平台架构搭建

博古通今小虾米

极客时间 架构

一款基本靠谱,略微出圈的2021十大科技预测

脑极体

数字货币合约交易系统软件APP开发

开發I852946OIIO

系统开发

他们说飞机很安全,你信吗?

心理学 概率 28天写作

第十二周课后练习

晴空万里

架构师训练营第2期

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

构建敏捷的安全开发生命周期QClub活动总结-InfoQ