开源能够引起很多安全漏洞,开源多少算是太多? DevOps可以救我们吗?
你知道你的代码从哪儿来的么?
从安全方面来说,这是一个比开发人员意识到的更重要的因素。在最近的安全漏洞事件中,如2017年的Equifax失败,突显了开源软件的重要性;黑客们通过Apache Struts使用了一个已知的漏洞来访问超过1.43亿美国人的敏感信息。
开源有利也有弊。由于其开放性和协作性,开放允许很多人来查看代码并发现问题和错误。这些错误是公开发布的。从理论上讲,每个人都会去更新他们的代码,但是事实并非如此。
糟糕的维护或纯粹的业务往往使程序员无法更新代码。当漏洞被公开发布时,黑客们会测试各种组织,看是否有人在一段时间内没更新他们的代码。
多少算是太多开源?
首先,我们鼓励发放源码。
但是,在安全性的形势中,多少是太多又变成了问题? 在利用开源并维护应用程序和组织安全之间存在一中紧张关系。
据2017年“软件安全报告”报告,约75%的应用代码由开源组件组成。 这是引起关注的一个原因,特别是当只有28%的组织跟踪和监视其应用程序的组件。
令人震惊的是,Veracode的报告指出,“大多数开源组件一旦被内置到软件中,就不会被修补”。 更令人震惊是,88%的Java应用程序在组件中至少存在有一个缺陷。
▲Veracode2017年软件安全报告状态图
同样,这个问题的关键在于,一旦发现漏洞或新版本发布,开发人员就不会在生产中修复组件。
一线希望
好消息是情况有所好转。 Veracode的报告指出,许多 “成熟的项目正在对其漏洞密度上取得了稳定的进展”。
坏消息是,目前这样的项目并不多,而且在改善行业的安全问题上还有很长的路要走。
▲Veracode2017年软件安全报告状态图
过去的一年里,40%以上的缺陷仍未解决。近30%花了90天才能解决。不到10%的缺陷在8天内得到解决。
我们应该何去何从?
我们不会放弃开源,这是现代互联网的基石。但是我们需要更加注意我们的代码来自哪里,可以做得更好。
组织机构和企业要在安全和更新方面投入更多时间。防患于未然。没有人想成为大规模安全漏洞的下一个受害者。