看三家不同企业如何令开发与安全团队无缝协作:微软、威瑞森和 Pokémon Company(口袋妖怪公司)。
开发团队与安全团队之间的关系总是容易引发论战。安全团队会在涉及数据和系统防护的问题上将开发人员视为惹麻烦的人,而开发人员则常常把安全团队当成打断自己工作流的人。
如果公司没能创建开发和安全团队之间的协作环境,没能为安全和开发团队树立共同目标,那二者互相看不顺眼再正常不过。缺乏为共同目标协作的文化,两支团队难免彼此冲突。
DevSecOps 是安全成为开发过程组成部分的一种方式。该方式要求开发人员和安全人员相互理解和尊重各自团队的工作。成功的 DevSecOps 过程会减少两支团队的压力,避免漏洞被无意间引入代码。
本文分析的三家公司,微软、威瑞森和口袋妖怪公司,都有各自不同的商业模式和安全需求。但三者均得益于在内部开发过程中采取了 DevSecOps 方法。
威瑞森开发者仪表板提供漏洞可见性
向云端迁移的过程中,威瑞森 IT 部门的 AppSec 团队需要一种方法来推动安全 DevOps 操作。他们还想要在公司内部驱动企业文化的改变。应用安全 IT 总监 Manah Khalil 解释道:
我们需要更可持续性的东西,可以帮助我们的中心化团队构筑更大影响力,同时又不会给 IT 应用团队增加太多负担。
为完成这些目标,他们采用了 DevSecOps 方法,但依然需说服开发者接受这种方法。为推进此方法和培育安全文化,威瑞森创建了开发者仪表板程序。该程序将漏洞管理的技术方面与个人责任相结合,帮助将安全思维灌注到公司开发人员脑中。
开发者仪表板是对威瑞森业务应用中漏洞引入方式的集中式实时记录。该程序监视 2,100 个程序(万行代码级),跟踪记录扫描频率、结果和每个应用中漏洞的类型及密度。开发生命周期中漏洞引入的位置和引入者均可由此呈现。
通常,你可以测量软件中的漏洞数量和密度,但这些东西怎么与安全文化关联起来?你手上的仪表板太多了:有关注构建质量的,有观测代码质量的,有查看新构建生成、测试和部署频率的……但这些很大程度上不过意味着待办事项列表。我们试图将之作为寻求改变和安全文化转变的一种方式。
该仪表板从多个源头拉取信息,包括资产管理、学习管理系统 (LMS)、版本控制、代码分析、集成开发环境工具、第三方扫描工具、配置数据和 Web 及防火墙日志。Khalil 认为,我们在该开发者仪表板中打造的每一样东西都是为了做出改变,然后量化该变动的。
此开发者仪表板能够提供威瑞森漏洞风险的综合视图,就可能给业务引入的风险为开发者提供近实时反馈。还有助于为个人和公司带来更长期性的改变。
经验:找办法增加能让开发人员变得更好的自主权和机会。命令开发人员修复漏洞不是可持续的方法,仅仅短期内有所帮助。持续给予开发人员即时反馈能使他们找出提升技术的方法。
口袋妖怪公司从设计上拥抱安全,保护儿童隐私
2016 年《口袋妖怪 Go》手游的大获成功给口袋妖怪公司同期带来了责任问题。看到 8 亿下载量,而且其中很多还是儿童下载的,该公司知道:自己不仅必须遵从欧盟《通用数据保护条例》(GDPR) 等隐私标准,还必须向忧虑的父母展现出能够守护好孩子个人数据的可信赖感。这意味着必须创建通行整个公司的安全文化,包括开发部门。
《口袋妖怪 Go》由拆分自谷歌的 Niantic 开发。游戏运营由两家公司共同承担。口袋妖怪公司国际的信息安全总监兼数据保护官 John Visneski 称:他们控制应用上执行的东西,控制一定比例的后端,我们控制《儿童在线隐私帮助法案》(COPPA) 合规相关的一点后端。
但这只是数据拼图的一部分。不仅仅是《口袋妖怪 Go》,该公司其他应用、实体交易卡牌游戏的当面对战、某些视频游戏等也会收集用户数据。
目标不是我可以说 ‘好的,我们可以收集这些’,或者 ‘不行,我们不能收集那些。’ 而是要在整个公司内树立起安全文化。最终,员工不知不觉中就成为了隐私和安全专家。
Visneski 觉得这比简单地让安全充当反对者更能被公司里其他部门的人接受,参与度更高。他说:我们的安全哲学是:首先是业务促进者,然后才是安全专业人员。
我们试图确保提出的第一个问题不是关于风险的;这不是什么威胁或花哨工具的问题。我们首先想的是公司需要什么、业务目标是什么,我们的技术团队怎样让业务更有效、更高效?
这种思维方式可以防止安全人员仅仅被视为阻止业务人员做这做那的人,让安全团队成为业务人员想要在会议上看到,能够帮助他们达成目标的人。
该公司启用 Sumo Logic 就是安全成为业务促进者的一个样例。该日志管理与分析提供商主要是为安全分析功能而引入的,但现在整个公司都在用,包括 DevOps 在内。Visneski 称:我们的第二大用户是在我们游戏工作室干活的那些人。这就让我们得以将数据安全集成到全公司,切实驱动业务流程。
经验:安全需被开发者视为驱动力和合作伙伴。如果安全团队与开发团队都具备 “从业务出发” 的思维方式,那他们就更有可能在开发和漏洞测试过程中协同。
共享信息、最佳实践将微软的开发与安全拧在一起
软件巨头微软认为自己在开发与安全运营上达成了共同目标,而这一共同目标为其内部及商业软件和服务构筑了更好的安全。
微软的方法很简单,建立在持续的良好培训和沟通上。但执行该方法并不简单。该方法的执行需要两支团队的认同、持续的培训、有效沟通,以及最重要的,得到高管层的认可。
微软 CISO Bret Arsenault 表示,最初,他们提出了安全开发生命周期,就是在盒装产品中做威胁建模和代码质量保障的方法论。然后,2008 年,开始做在线服务。现在,他们的安全工程团队既做运营安全,也做服务和产品安全。而且每月都对每个团队进行安全审查,确保安全无处不在。
这些团队在红区 (Red Zone) 会议上分析安全最佳实践。Arsenault 称:我们相互采用对方的[最佳实践],既有技术,也有经验和能力。
缺乏理解和糟糕的沟通会给安全和开发团队之间的关系蒙上阴影。两支团队需要共享知识,需觉得能相互帮助达成共同目标。为此,微软创建了 Strike 培训项目。微软云和 AI 部门安全工程副总裁 Bharat Shah 表示,改变并推动文化——改变 DNA,是通过教育和一系列行为与评估达成的。
微软从三个角度看待该改变。首先,通过业务执行标准培训所有员工,其中总是包含安排培训。紧接着就是微软所谓的 “安全地基”,让他们能在更深层次上为所有员工解决安全问题。
第三层添加了专为所有微软工程师设计的 Strike 培训。这是闭门培训,带领微软工程师了解攻击者所作所为,帮助他们理解全局威胁态势。
这些 Strike 培训让开发人员和工程师理解微软安全事件背后的原因、黑客使用的技术和战术,以及自己可用的工具。其目标是帮助他们打造一张同事与资源网,让他们能够用来确保安全嵌入到自己所做的每件事中。
你怎么确保你的代码、身份、密码和其他所有东西都做对了?我们是非常规范的。
Arsenault 将培训视为把 IT 和安全黏合到一起的关键因素,但运营团队月度审查、微软管理和评估风险的方式,以及该风险评估如何从工程师上报至董事会和风险管理委员会,才是让这一切有效运作的东西。
每月一次,我老板会审查安全记分卡,每张都指导并推动你认为对团队来说重要的东西。这是一种由上至下的文化,培训则在由下至上层面上的。
Shah 团队中的安全保障专家查看代码中的错误和缺陷,查阅所有核心审查。然后他们会将自己看出的东西转至工程团队其他成员,某些情况下有助于清除整理漏洞。Shah 表示,有时候,他们会把发现的东西推回工具组或编译组,甚至推回静态分析之类的东西里,仅仅是为了在更大的范围里捕获这些漏洞。
Shah 及其团队所做的很大一部分工作是为微软的工程师构建安全服务,让他们能够将安全 “融入” 他们的工程过程和系统里。
最重要的是,我们构建这些高精度的服务帮助我们的工程师做对安全。
这些服务中有一个是解决漏洞管理和扫描的。Shah 称,Azure 上超过 90 个数据中心,几百万台虚拟机。自己不可能一次扫描一台虚拟机,所以他们构建了大规模漏洞扫描基础设施,只要有必要,可以一天大范围扫描两次、三次乃至四次。这使得微软的工程师可以快速找出并修复未打补丁的虚拟机或服务。
Shah 团队里的工程师就像其他微软团队里的工程师一样构建大规模服务。站在这个角度上说,安全变得有点令人讨厌,也更能理解。再加上安全人员分享的威胁风险,工程团队能够明白为什么他们需要带着安全思维开发。
经验:安全和开发对各自所做工作相互了解越深,开发过程中他们的共情和协作就会越好。最终产品中的漏洞会更少,修复也会更快。