开源软件安全挑战依然存在但风险可控

  • 来源:计算机世界
  • 关键字:开源软件,安全,风险
  • 发布时间:2018-03-13 10:51

  使用开源组件节省了开发人员的时间和企业成本。换句话说,还是有市场的。本文简要介绍怎样提高开源代码的安全性。

  今年的Equifax泄露事件给我们敲响了警钟,开源软件和组件虽然有很多好处,但却给企业安全带来了巨大的风险,特别是在维护不当的情况下。

  所有纵向行业各种规模的企业现在都在使用开源软件。有开源操作系统、生产效率软件、管理员和开发人员的工具,以及企业用来开发自己的软件的代码库。甚至商业软件通常也是在开源代码的基础上开发的。

  Kudelski安全公司的首席技术官Andrew Howard表示:“我看到开源软件在企业中的应用越来越广泛。随着企业转向敏捷方法,开源变得更有价值,并且有很多可供使用的工具。您可以注意一下刚刚进入市场的软件开发新手,他们经过培训,非常适应开源技术。”

  开源代码的安全优势

  Howard说,开发人员非常依赖于开源软件,尤其愿意采用有大规模团队进行维护的大型开源项目。此外,还可以通过很多相关方来保证安全。他说:“这是使用开源软件的主要优势,而不仅仅是为了降低成本。理论上有更多的相关方关注它。”尽管他补充说,这不适用于小项目或者代码库,“有些软件还没有相关的社区。”

  开源软件的另一个安全优势是,如果有问题,企业可以立即打开它并进行修改。Synopsys公司的开源解决方案经理Mel Llaguno说:“如果代码是根据专有协议授权的,那企业通常必须等待供应商的回应。”

  为什么开源软件会带来安全威胁?

  Synopsys管理的Coverity是一项免费服务,用于扫描开源软件的漏洞。Llaguno说:“总体上,开源软件的质量一直在稳步提高。我们的扫描项目涉及到大约7.5亿行开源代码,发现了110万个漏洞——并且已经解决了65万个漏洞。”他补充说,很多项目,尤其一些小项目,都不会扫描它们的代码以发现潜在的安全漏洞。

  例如,Black Duck软件公司跟踪了55万多个项目中的100多亿行开源代码。而且这还不是全部。Linux基金会报告说,已经有310亿行代码被提交给了开源代码库。

  谁在使用所有这些开源代码?所有人。根据最新的Black Duck报告,目前96%的商业应用软件中都有开源组件。应用程序平均有147个不同的开源组件,67%的应用程序使用了含有已知漏洞的组件。

  美国政府资助了公共漏洞枚举(CVE)名录和国家漏洞数据库。2017年,CVE名录中新增了8千多个漏洞,创历史新高。

  那么,为什么企业要使用开源软件呢?Synopsys公司的Black Duck安全策略师Mike Pittenger指出:“在一般的应用软件中,三分之一以上的代码都是开源的。如果想替换这些三分之一的代码库,那么您将不得不增加开发团队的人手,开发时间会延长50%——在当今的环境下,我认为这不是可行的选择。”

  以伦敦的Skyscanner有限公司为例,该公司生产旅行搜索引擎。公司习惯于在.NET这样的私有封闭的平台上运行。Skyscanner的安全工程师Alex Harriss说,过去几年中,公司转向采用各种开发语言和技术,包括开源。他说:“这意味着我们的工程师现在可以参考多种开源库,几分钟内就能够部署好代码。”

  Harriss说,但这也带来了安全难题。他说:“我认为事实上有一种错误的导向,即作为开源,社区已经对这些库进行了安全漏洞检查。实际情况并非总是如此。”

  他说,很多文件齐全的库中都存在着已知的漏洞。由于工程师只需从这些库中提取代码并进行部署,因此这就带来了可见性问题。他说:“我们根本不清楚我们产品有多大的依赖性。”

  需要对开源软件安全进行详细的尽职调查

  并非Skyscanner一家是这样。据最新的Veracode报告,只有28%的企业进行定期分析,找出哪些组件被构建到了他们的应用程序中。随着开源代码使用的越来越多,风险面也在扩大。

  在开源代码中不断发现新的漏洞,很多项目还没有发现和修复问题的机制。据Snyk最近对开源代码维护人员的调查,44%的受访者从未进行过安全审计,只有17%的受访者说他们有高水平的安全技能。

  也没有标准的方法来记录开源项目的安全性。在GitHub上的40万个公共代码库中,只有2.4%有安全文档。

  那么,如果修复了问题,常常无法找到并通知老代码的所有用户。Black Duck的Pittenger说:“开源社区并不知道谁在使用他们的组件。”

  据Snyk调查,88%的开源代码维护人员在发布声明中添加了与安全相关的声明,34%的维护人员不赞成使用不安全的老版本。25%的维护人员表示,他们根本没有精力来通知用户有漏洞,只有10%的维护人员向CVE提交了文件。

  Snyk有限公司的首席执行官和联合创始人Guy Podjarny指出,很多人并不知道CVE过程是怎样工作的,或者没有时间去了解它。他说:“例如,在JavaScript中,我们跟踪的漏洞中只有13%的漏洞有一个CVE编码。其余的则只是被记录为缺陷。”

  Snyk的安全研究部门通过查找发布声明以及GitHub和Apache问题跟踪系统中的线索,来寻找开源库安全问题的迹象。研究结果发布在漏洞数据库中,并且可能的话,Snyk也会将其提交给CVE名录。

  然而,要获得CVE是一个比较复杂的过程,需要委员会同意提供详细的CVE,还需要与项目所有者达成协议。Podjarny说:“目前这种方法的运作方式还形不成规模。”

  最后,如果发现并修补了漏洞,并且公布了补丁,那么使用这些代码的企业也不一定知道自己是不是有漏洞,或者难以找到所有实例中的漏洞。例如,今年影响很大的Equifax泄露事件涉及到Apache Struts开源软件的一个漏洞。在泄露事件发生几个月之前就发布了补丁,Equifax虽然知道补丁,但仍然没有及时打上补丁。

  另一个问题是,有些公司还在运行老版本的代码,由于兼容性问题、合规或者其他原因,无法迁移到最新版本。据Snyk,只有16%的漏洞补丁能后向应用于其他版本。

  发现并修复

  在理想情况下,一旦有了安全补丁,应用程序能够在不需要任何干预的情况下立即更新安全补丁。然而,在实践中,并非总是如此。

  相反,企业需要有一种方法,找到其环境中的所有源代码实例,不断更新列表,帮助开发人员避免使用老的、不安全的库,最终在发现新漏洞后及时打上补丁。

  Skyscanner的Harriss说:“只有当您知道漏洞在哪里时,才能从自己的产品中去除漏洞库,而且在产品生命周期中,这项工作做得越早,成本就越低,也越容易。”

  很多公司转向Snyk、Black Duck和Veracode这样的供应商以寻求帮助。Skyscanner也是这样做的。Harriss说:“Snyk让我们看到在哪些项目中使用了哪些补丁包,这些项目有哪些漏洞,是怎样引入到我们代码中的。”此外,开发人员在编写代码时,Snyk会立即向他们提示哪里有漏洞,这样便可在代码投产之前解决这些问题。

  因为很难追踪正在使用的所有代码,因此把开源漏洞扫描功能集成到开发过程中对大型企业尤其重要。Veracode研究副总裁Chris Eng说:“和我们打交道的大多数公司都不知道他们所拥有的全部应用程序,这有点吓人。”

  当Veracode进行漏洞扫描时,公司会上传二进制代码,Veracode会参照国家漏洞数据库进行检查。为帮助公司发现哪些应用程序可能存在问题,Veracode还可以扫描公司的周界。Eng说:“不是要找到漏洞还没有被暴露的内部应用程序,而是那些由于发现了漏洞从而能降低风险的应用程序。”

  他还补充说,企业还可以使用一些网络工具来了解内部运行情况,但如果网络是分段的,则可能会出现盲点。公司还可以在端点设备上安装代理来跟踪运行情况。Eng说:“如果不在所有的设备上都安装代理,可能还会有盲点。没有万能的方法,这就是为什么这个问题非常棘手的原因。”

  对于Equifax来说,这肯定也是一个难题去年十月份,前首席执行官Richard Smith告诉国会,该公司的信息安全部门进行了扫描,寻找导致最终泄露事件的Apache Struts漏洞。他说,扫描“没有发现任何版本的Apache Struts受到这个漏洞的影响,这个漏洞在Equifax网络应用程序中存留的时间比预期要长得多。”

  Black Duck的Pittenger说:“必须确保这一工具能够扫描到环境中的所有服务器。”即使扫描是全面的,准确的,也会给企业带来大量的管理开销。如果开发过程中没有内置安全检查功能,那么必须持续进行这类扫描,分别检查而且还要不断检查应用程序是否有漏洞。

  开发人员不仅会在更新应用程序时引入新的漏洞库,而且还会在以前认为安全的老库中发现新漏洞。Eng说:“软件不像酒那样越老越香。而是像牛奶一样会变质。”

  Eng说,开发人员很少回头去检查他们在旧项目中使用的库。他说:“我下载当前的最新版本,把它集成到我的应用程序中,就再也不去想它了。”

  Black Duck这个月以5亿美元收购了Synopsys公司,充分说明了这一问题目前有多重要。Denim集团负责人John Dickson对如此大手笔的交易感到惊讶,他说:“我敢说,这是由市场决定的。我原以为这非常热门,没想到是如此的热门。此次收购真的是无人不知。”

  Maria Korolov过去20年一直涉足新兴技术和新兴市场。

  原文网址:

  http://www.csoonline.com/article/3157377/application-development/report-attacks-based-on-open-source-vulnerabilities-will-rise-20-percent-this-year.html

  作者/Maria Korolov 编译/杨勇

关注读览天下微信, 100万篇深度好文, 等你来看……