为什么左移安全性测试很重要?

您是团队软件安全工作的致命弱点吗?

想一下。

我们在新闻中听到的许多软件漏洞都可以追溯到安全漏洞和由开发和设计不良的软件引起的问题。

在2020年,我认为在软件开发中发展正确的心态是至关重要的,因为它涉及到软件开发中的安全性。

要诚实;如果你像我一样,你可能希望有一个自动化的工具可以帮助解决这个大问题。

但如果不是技术问题,而是人的问题呢?

那么,如何让您的公司关注安全性测试呢?

让我们深入研究为什么左移安全性测试对安全专家Kevin E. Greene如此重要。

2020年安全测试

目标是让整个团队考虑黑客攻击您的软件的方式。

必须开始考虑正式的威胁建模、误用和滥用案例,并让开发人员和架构师仔细考虑他们预先做出的设计决策。

Kevin E. Greene认为,安全需求需要成为收购策略或解决方案的一部分。

尝试将安全性的所有方面都编入到获取和需求中,这样当您开发或获取系统时,就可以测试那些已经内置的需求。这将有助于减少风险,以及减少已知的与软件开发应用程序安全性相关的攻击面。

整个团队的安全测试工作

最关键的方面是让整个团队把产品作为一个整体来讨论。

这种“整个团队”方法应该包括产品所有者、产品经理、开发人员、工程师、测试人员——您希望每个人都考虑安全性。这将确保每个人在如何改进安全方面分担责任。

看出不同了吗?

为每个人提供安全保护不仅仅是安全组织或团队的工作。它是集体思考安全和建立正确的心态。技术是次要的。

拥有这种“安全”心态很重要,因为你无法建立安全。类似地,您不能将可测试性构建到一个从一开始就没有设计为可测试的系统中。

目标是适当地制定与可靠的设计原则相关联的安全需求,并使用这些设计原则来开发体系结构或系统设计。

开发人员安全代码

开发人员必须了解安全性和设计原则,以便在编码时了解编码或重构对日常活动的影响。

另外,不要忘记关于防御性安全编程的开发人员培训,并了解攻击者试图攻击特定应用程序或系统的方式。

您希望开发人员真正理解安全编码原则。

现在的大多数开发与其说是硬核编码,不如说是把东西粘在一起。

让我们诚实一点:没有太多的软件开发正在进行。

它更多的是混合和匹配现有的开源组件和框架来开发和设计一个系统。

安全环境

因此,了解组件的安全状况是非常重要的。

这包括了解这些组件如何潜在地暴露可能导致安全漏洞的攻击载体或表面。

您的开发团队需要了解如何在良好的安全环境条件下开始一个良好的组件。

通常情况下,人们根据常见漏洞和暴露(CVE)评分或国家漏洞数据库的报告条目进行卫生保健。

但是Kevin建议更进一步,尝试强调开发人员和组织需要关注这些组件和软件的缺陷和攻击率。

你可以得到一个有相当良好的卫生记录的组件,就与之相关的问题和漏洞的数量而言,但这并不一定意味着在未来6个月内它将保持这种水平的卫生。

有必要知道如果您选择这个组件将会发生什么。在系统生命周期的整个过程中,维护它的上层工作是什么?

在开发软件时,一定要记住这些要点。

不要成为你团队的致命弱点

听起来很容易,但不幸的是,在处理安全问题时,人们可能成为自己前进的绊脚石。

我们的团队成员可能在我们自己的安全开发过程中成为累赘,因为他们抗拒变化。总的来说,他们没有做正确的事情来确保我们开发出好的实践,以及人们可以信任和依赖的好的系统。

认为我夸大其词吗?

这样看。

如果你的团队中有人侵犯了你客户的隐私,会发生什么?

或者提供一个后门或其他容易被攻击者利用来攻击您的系统的方法?

我们必须避免成为软件安全工程的致命弱点。

在SDLC中将安全性向左移动

凯文的最后一条建议是,我们都应该树立一种心态,意识到把安全移到左边意味着什么。

在左倾方面,我们必须从持续集成一直到收购。

虽然许多人认为左移只是一个容易记住的短语,但我相信它是一种强调在软件开发生命周期的所有阶段都需要考虑安全性的思维方式。

例如,你是否通过收购将正确的语言引入到合同中?您是否确保在授予奖项时,您正在获得优秀的供应商,这些供应商拥有良好的系统记录,其中包括质量和安全性?

您应该构建需求并将这些需求转换为良好的设计。然后,您应该采用该设计并正确地实现编写安全代码的设计。

幸运的是,您拥有可以建模的工具来帮助您的团队寻找那些最重要的问题。

遵循此方法将帮助您的团队快速交付安全软件。

这是实现这一点的一种方法,同时又不会阻塞CI/CD管道,使人们甚至不会测试他们的软件。

这是促使人们在软件开发生命周期中尽早考虑所有阶段的安全性的动机。

“左移”必须演变成某种东西,而不仅仅是一句口号。

它需要成为整个产品团队的心态;每个人都应该思考软件被攻击、误用或滥用的可能途径。

如果你做到了这一点,你就可以改善驱动我们生活方方面面的软件的整体卫生和健康——汽车、医院、银行——你能想到的。

让他们明白这一点。

如果我们不认真对待我们的软件开发,那么我们的职责就是寻找和测试安全性和其他可能影响世界的问题。

如果我们能以正确的心态左移,我相信我们将会看到软件使用的整体信心方面的显著改善,以及将会产生的许多其他好处。