如何扩展应用程序安全计划 - 第一部分

本文分享了作者在微软IE浏览器安全团队的经验,探讨了应用程序安全计划的重要性、成本论证、常见误区,并强调了工具与流程结合的必要性,为构建可扩展的安全程序提供实用见解。

如何扩展应用程序安全计划 - 第一部分

图片来源:Pexels

作者:Jason Taylor
发布于:2020年5月12日
阅读时间:5分钟

在20世纪90年代末,我曾为Internet Explorer的安全团队工作。事实上,我是微软为应对浏览器安全漏洞激增而聘用的第一位员工。我亲眼目睹了当开发团队被严重到需要响应的安全问题轰炸,却没有处理流程时的情景。早期,我们每周至少会遇到一个新的漏洞。每次响应的成本超过一百万美元——每个漏洞!每次发生这种情况,我们都必须停止开发,理解问题,理解修复方案,测试修复,然后发布给客户。一个由四百多名开发人员和测试人员组成的团队经常被迫停滞。你只能这样做一段时间,然后意识到必须有所改变。在Internet Explorer团队中,我们开发了一套新的流程、技能和工具,使我们能够应对挑战。我们在敌人的持续火力下做了必须做的事情来解决问题。最终,我们构建并扩展了一个应用程序安全计划,不仅适用于Internet Explorer,也适用于微软的其他产品开发。今天,这个过程被称为微软SDL(安全开发生命周期)和可信计算。

每个人都有权使用他们信任的软件来保护敏感数据并避免个人伤害。多年来,我与数百家公司交谈过,从未遇到过任何人想要伤害他们的用户。然而,用户继续被他们依赖的技术所伤害。如果开发团队始终抱有最好的意图,为什么这种伤害仍在继续发生?

我曾经认为我们可以像对待性能、可靠性或其他软件质量指标一样对待安全。我现在意识到我错了。安全从根本上不同,因为它是唯一一个质量方面,其中有一个对手在另一边与你竞争。如果你赢了,你的软件按预期运行。如果对手赢了,你的企业将付出代价。

应用程序安全计划是你反击的最佳机会。它是一个有纪律的软件工程过程,你利用所有可用的工具来增加将可信软件交付给用户手中的几率。外面的黑客数量远超你的想象,他们似乎有无限的时间来寻找缺陷。你无法雇佣足够的开发人员和安全专业人员来在数量上竞争,所以你必须在其他地方弥补。你拥有而他们没有的是纪律、流程、工具和知识。应用程序安全计划在这些领域的基础上构建,最大化你的效率,同时最小化成本。

第一个需要克服的障碍是证明成本的合理性。你可能知道投资可信软件是值得的,但你必须说服预算负责人这些钱值得花。从他们的角度来看,这是一个艰难的销售。你花在构建产品安全上的每一美元,都是你不能花在新功能、测试、产品管理、营销、销售以及其他许多可以直接为公司带来更多收入的领域上的美元。不仅如此,安全有时还会与用户体验相悖。有些功能无法实现,或者至少无法按预期方式实现,而不损害你正在开发的产品安全性。因此,这些美元不仅从其他有价值的领域被抽走,有时你花得更多却做得更少。你如何在内部推销这一点?

最容易的情况是你的公司已经成为重大漏洞的受害者,并看到了脆弱的代价。一朝被蛇咬,十年怕井绳。如果没有这种情况,你可以指出一个被击中的竞争对手,并画出明显的相似之处。最好在不幸降临到你身上之前从别人的不幸中学习。如果没有好的例子,或者你需要更多弹药,那么是时候讨论我们为什么首先应该关心安全的所有原因。我们关心最终用户,我们关心他们的数据。通常是因为我们必须满足立法合规性或标准要求。其他时候是因为失去用户信任和商业声誉比重新获得它容易得多。预算和时间表也常常被安全漏洞破坏。即使没有完全漏洞,一个感兴趣的安全研究人员的公开披露也足以需要响应。如果你没有投资安全,你的产品将面临因突然漏洞和需要响应而延迟的风险,有时甚至是无限期延迟。

根据经验,我知道一旦安全研究人员发现你的代码库充满漏洞,更多的人会像秃鹫一样扑向你。一个安全良好的代码库可能会出现一两个必须响应的意外漏洞,但不安全的代码库可能导致在数月或数年内向你交付数百个漏洞。痛苦可能强烈且持续。我在产品开发团队工作时亲身经历过这种情况,每次最终结果都是尝试通过应用程序安全计划来止血。你可以在需要之前主动构建你的计划,或者在火炼中被强制实施。

好消息是,通往有效应用程序安全计划的路径是众所周知的。不该做什么也是众所周知的。我见过许多公司试图走捷径,以减少对其开发组织的感知干扰或节省资金。最终,捷径只会延迟进展。最常见的捷径是从工具供应商那里购买自动化解决方案,并相信问题已经解决。这是一个容易犯的错误,因为购买工具感觉像是勾选了一个框。工具供应商可能向你承诺这是一个完整的解决方案,并且在许多其他技术领域,购买和部署工具是解决主要问题所需的一切。不幸的是,在应用程序安全中,工具更多地扮演支持角色而不是主要角色,不能单独替代完整应用程序安全计划的需求。

在本系列的第二部分,我将讨论我所见过的有效方法,以及如何成功构建你自己的可扩展计划。

阅读本系列第二部分此处。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计