这可能是一个难以理解的问题,但是您知道您的代码来自哪里吗?
在安全方面,这是比开发人员可能认为更重要的因素。 最近的安全漏洞(如2017年的Equifax惨败)凸显了谨慎使用开源软件的重要性。 正如我们在本周早些时候讨论的那样 ,黑客利用Apache Struts的一个已知漏洞来访问超过1.43亿美国人的敏感信息。
(我们必须提到,此问题是在同一天通过安全修补程序宣布的。Equifax可能因为不更新其代码而不是Apache而导致了错误。)
而且这还没有涉及今年早些时候WannaCry和Petya勒索软件攻击的漏洞。
开源有很多优点和缺点。 由于开源具有开放性和协作性,开放源代码使人们可以一目了然地查看代码并发现问题和错误。 这些错误已公开发布。 从理论上讲 ,那么每个人都会去更新他们的代码。 但是,经验告诉我们,情况并非总是如此。
不良的维护或纯粹的业务常常使程序员无法更新其代码。 而且,当这些漏洞公开发布后,黑客就可以发挥作用,测试各种组织,看看有人是否有一段时间没有更新他们的代码,这是孩子的玩法。
首先是第一件事。 我们这里的JAXenter喜欢开源 。 很喜欢 (我们来赞美开源,而不是埋葬它。)
但是,在这种安全情况下,问题变成多少是太多? 在利用开源与维护应用程序和组织安全之间存在紧张关系。
根据2017年软件安全状况报告, 大约75%的应用程序代码由开源组件组成。 这是一个令人担忧的问题,尤其是当只有28%的组织跟踪和监视其应用程序的组件时。
令人震惊的是 , Veracode的报告指出“大多数开放源代码组件一旦内置到软件中,就不会打补丁”。 令人震惊的88%的Java应用程序在组件中至少存在一个缺陷。
同样,此问题的症结在于,一旦发现漏洞或发布新版本,开发人员就不会在生产中修补组件。 尽管他们确实有一些不这样做的充分理由(兼容性问题,时间,扑灭系统中的其他火灾),但这却导致了安全隐患。
好消息是情况正在好转。 Veracode的报告指出,有许多“正在逐渐完善其漏洞缺陷密度的成熟程序”。
坏消息是,这些程序起步并不多,要改善行业的安全问题,还有很长的路要走。
下图特别具有启发性:
在一年的时间内,仍有40%以上的缺陷尚未解决。 近30%的受访者花费了90天以上的时间来解决问题。 在不到8天的时间内,不到10%的缺陷得以解决。 人民,这不是很好。 (请记住,Equifax的脆弱期为60天。)
但是,得益于另一个毫无问题的爱好:DevOps,进展尤其显着。 与进行纯策略扫描的组织相比,经常通过沙箱扫描进行测试的DevOps组织的修复率提高了48%。
我们不会放弃开源。 这是现代互联网的基石。 但是我们可以做得更好,并且可以更加注意代码的来源。
组织和企业应将更多时间用于安全性和更新。 一盎司的预防值得一磅的治疗。 没有人愿意成为大规模安全漏洞的下一个大受害者。 因此,停止玩弄烫手的土豆,踢出这种安全感就可以了,希望下一次大规模的突破会越过您。
赔率对您不利。
您可以在此处下载 Veracode的2017年软件安全状况报告。