软件安全 == 人员 && 流程 && 技术
Mark Curphey 在此。我负责 Server & Tools Online 的订阅工程团队,我们构建面向客户的复杂网站,如 MSDN 和 TechNet,支持数百万用户。在过去的 15 年里,我一直担任安全角色,最近在微软领导信息安全工具团队,以构建静态代码分析工具和托管代码的 Web 保护库而闻名。
在微软工作的一个好处是,你有机会找到能在公司产生最大影响的地方。去年年底,我与我的老板(微软的 CISO)坐下来,告诉他我想探索我对 Web 工程、用户体验和开发实践的热情。他完全支持,但告诉我必须首先将我学到的所有关于安全的内容写在一页纸上。如果这听起来容易,我会提醒你 Blaise Pascal 的评论(我转述):“我很抱歉这封信这么长——我没有时间让它变短。”经过几天、几支笔和多次白板修订,我终于回到了我大学毕业后第一次看到的简单维恩图(以及一组附注)。
几周前,我有机会去阿根廷参加南美首届 BlueHat 会议,并决定围绕我为老板准备的幻灯片进行演讲。我想传达的信息是,你必须拥有人员、流程和技术,才能运行可持续和可扩展的软件安全程序。
BlueHat 是一次很棒的体验。除了享受国家和文化(探戈,有人感兴趣吗?)并品尝一些美食外,我还有机会见到一些我通过电子邮件联系并关注多年的人。我谈到的许多内容都回到了一个简单的事实:软件风险管理是人员、流程和技术的结合,在微软,我们有一个关于流程的可扩展故事,称为安全开发生命周期(SDL)。
我谈到了敏捷开发实践如何已经成为主流。尽管存在一些流行的误解,但要成为一个有效的敏捷团队,你需要有纪律,这实际上与思考安全性很好地结合在一起。
在演讲之前,两位开发人员与我合作,探索是否可以为 OSVD 构建一个前端,以便我们可以覆盖有趣的数据点,如开发框架的重大更改或重大黑客攻击。不幸的是,我们发现这些数据根本不在网络上(或者至少不是我们可以经济地消化的形式)。
这导致了会议上关于指标和数据的讨论。为什么软件安全人员不痴迷于统计和“怪诞经济学”?为了找到因果关系,我们需要更好地捕获相关数据,并用它来驱动明智的决策。
我还谈到了架构的重要性,尽管它并不总是一个时髦的话题,并放大了一个沙堡的高分辨率图像,以说明当你从微观层面看架构时,你通常认为事情很好,但当你理解上下文时,你可能有不同的看法。
Joey Yoder 的架构模式总是很棒的参考,并且高度适用于为什么架构以多种方式影响安全性。
- 大泥球 -(又名,棚户区,意大利面条代码)
- 一次性代码 -(又名,快速黑客,纸巾代码,可丢弃代码,脚本,杀手演示,永久原型,繁荣小镇)
- 零碎增长 -(又名,城市蔓延,迭代增量开发)
- 保持工作 -(又名,活力,婴儿步骤,每日构建,首先不造成伤害)
- 扫到地毯下 -(又名,切尔诺贝利,大扫除,漂亮面孔,隔离,藏在床下,康复)
- 重建 -(又名,完全重写,拆除,计划扔掉一个,重新开始)
- Foote 和 Yoder - http://www.laputan.org/mud/
BlueHat 是我们向安全研究人员和客户学习以及分享我们学习成果的好方法。
在行业 15 年后,我的电梯演讲确实是软件安全全是关于人员、流程和技术的。
保重!
- Mark 博客 http://www.curphey.com Twitter http://www.twitter.com/curphey 发布内容“按原样”提供,不提供任何保证,也不授予任何权利。