APP下载

怎样跟踪和保护企业中的开源软件

2017-06-08MaryBranscombe

计算机世界 2017年20期
关键词:安全漏洞开发人员开源

Mary+Branscombe

您的开发人员正在使用开源软件——即使您不了解它。本文介绍了怎样进行控制,为什么要这样做。

最近,SAS严肃地向企业发出呼吁,企业应限制其使用的开源项目的数量。在以SAS为主导的市场上,这看起来好像是在抗议数据科学和分析开源R编程语言的兴起。但是,在这种抗议中隐藏着很好的一点是:使用开源软件意味着知道您正在使用什么,这样您可以跟踪和维护它。

大多数企业并不知道开发人员使用多少开源软件,以及可能会暴露出什么样的漏洞。您无法对那些自己所依赖的、但是不熟悉的开源项目进行安全评估或者补丁管理。

Sonatype的2016年软件供应链研究发现,第三方组件占典型企业Java应用程序中的百分之八十至九十,而企业下载的十六个组件中就会有一个存在安全漏洞。老一些组件的安全漏洞是新版本的三倍之多,企业应用程序中一半以上组件的使用年限已经超过两年。在发现Heartbleed漏洞两年后,Cisco安全研究在2015年测试的一半以上的OpenSSL版本仍然很脆弱。

2014年,Veracode发现在其扫描的5,000个应用程序中,企业Web应用程序中使用的开源软件和第三方组件在每个应用程序中平均引入了24个已知漏洞。

开源软件监控和管理服务公司WhiteSource首席执行官兼联合创始人Rami Sass告诉CIO.com:“即使已经知道他们在使用开源软件的软件公司也需要通过工具来更好地进行管理。企业很少知道他们正在使用多少开源软件。现在,银行等企业、金融服务公司、媒体公司都有大型软件工程部门。他们通常会惊讶地发现,开源软件的应用非常广泛,而人工清查这些软件并对其进行跟踪的少之又少。平均来说,实际的组件数量是他们所认为的数量的三倍。有时候高达十倍。”

这并不是说,您不应该让开发人员使用开源软件,特别是如果您正在迁移到DevOps,因为在这一领域有许多可用的工具,如果您自己编写代码,其实很难胜过竞争对手。Sass说:“企业使用开源软件是有道理的,因为您希望开发人员专注于您的核心业务。您所需要的很多东西已经有了;您想重新使用已经经过测试而且有社区进行维护的代码,这样您就不用自己去做那些繁重的编程工作。这就是为什么每个人都喜欢开源软件的原因——但不幸的是,开源软件有其自身的问题。”

开源软件许可责任

过去,企业往往最关心开源软件的许可问题。Sass指出,“开源软件是免费的,但它附带了许多条款。”开源软件许可对于商业组织来说可能是雷区。越来越多的项目使用MIT和Apache许可之类的宽松许可,这些许可对代码重新分配的要求非常少,而其他许可的要求却很苛刻。谷歌最近关于如何使用开源软件的指导内容包括有关AGPL等许可在内部被禁止的说明,之所以如此是因为有发布衍生产品代码的要求。

即使是声称是公共域或者“免费使用”的软件项目,您都需要仔细考虑,因为把软件放在公共域并不是一件小事。如果您是商业企业,您应避免在非商业应用中使用免费的东西,其中包括许多知识共享许可。

这并不意味着您必须避免使用开源软件,而是要知道使用开源项目而接受其许可的后果。开源软件项目相互联系的特性可能会使其变得更加复杂,例如,许多使用npm软件包管理器的用户发现,在对软件包名称进行争论后,开发人员并没有发布其他数千个项目依赖的软件包。

Sass说:“一个开源组件会依赖于许多其他开源组件。每当一个开发人员处理开源软件组件时,他们都会带来其背后所依赖的所有关系树,而通常您根本不了解这些。您应该查看自己有多少开源组件,但大多数企业并不知情。”

采用所谓的“copyleft”许可,例如GPL,通常需要您发布对代码所做的任何修改。Sass说:“一般企业将使用一些有GPL许可的开源组件。在300个组件中,可能一两个或者三个是GPL。这对他们来说简直就是新闻。”

除了知道您使用的是什么样的开源软件之外,您还需要跟踪开发人员可能为其提供代码的开源项目。对此,一种方法是使用GitHub Business。虽然大多数企业认为GitHub Business是一种云服务,避免了他们在自己服务器上运行GitHub Business的麻烦,但它也可以让您控制自己企业中有哪些身份的开发人员使用GitHub存储库并对其有贡献。

GitHub产品设计高级总监Connor Sears告诉CIO.com:“我们的客户想要的是,更多的直接联系开发人员和项目、社区,这就是GitHub所做的。这么多的开源软件代码对我们的客户是有价值的。他们从中受益,他们也想对其做出贡献。他们希望使用我们合作伙伴贡献的各种平臺工具。”

GitHub Business与您现有的身份管理工具相集成,无论是Azure Active Directory、Okta还是其他SAML和SCIM兼容的身份系统,例如OneLogin和Shibboleth。这意味着如果您企业的开发人员下载开源软件代码,并反过来为项目做出贡献,或者将其分配给一个内部项目,即使他们离职,不是从他们的个人GitHub登录,而是从官方公司账户登录,您也要继续对其控制。

开源软件安全

使用开源软件的另一个关键问题是在发现安全问题后一定要更新。Sass说:“当开发人员采用了有漏洞的开源组件,并将其置入到软件中时,那么您会很容易受到攻击,您的客户也容易受到攻击。”

然而,真正的问题并不在于有漏洞,因为总是存在漏洞,关键是没有打补丁。“您总会找到过时的库,总是会发现有的组件有漏洞,几乎总是会找到企业不打算使用的许可。”

“开源的好处是,一旦知道这些问题,问题就很容易解决。通常不需要花费大量的精力去更新组件,尽管有时会出现兼容性问题。通常来说,开源社区的人们已经在努力解决这些问题了。”

系统地应用这些补丁意味着跟踪和管理您所使用的开源软件,就像您的供应链中的任何其他部分一样,而手动进行这些工作的效率非常低。软件组合分析工具,例如WhiteSource、Black Duck、Palamida(最近被Flexera收购)、Sonatype Nexus、Synopsys或者Veracode都能够帮助您自动完成这些工作。

例如,WhiteSource拥有Visual Studio Team Services和Jenkins等流行源代码管理工具和服务的插件,并且内置到Visual Studio 2017中,因此可以自动收集开发人员使用的开源组件的详细信息,并生成报告,显示发现了哪些安全漏洞,以及您需要做什么工作来解决这些问题。您还可以获取这些组件所使用的许可的报告,甚至根据许可问题或者安全漏洞来设置政策。

Sass说:“您可以同时拥有许可的黑名单和白名单;客户经常会有像GPL这样的许可黑名单,以及像MIT这样的宽松许可白名单。您还可以制定有关安全漏洞的政策。如果开发人员引入了一个有已知漏洞的新的开源库,那我们可以阻止他。我们还可以主动给您发送推送通知,提醒您正在使用的库中新发现了漏洞;我们不用等您去运行报告。”

通过开发服务器或者通过与像Git、GitHub、JIRA和Artefactory这样的系统进行集成,该政策可以直接置入到您现有的开发人员工作流程中。“如果您正在进行集成,并且开发人员引入了使用GPL许可或者具有影响非常严重的安全漏洞的新库,那么该政策会生效;开发将失败,开发人员将收到关于问题库的通知。当有人尝试向存储库中添加新代码时,您可以对照政策并阻止他。如果您添加了安全漏洞影响程度中等或者较低的库,我们可以将通知发送给安全主管,这样会有更多的人参与到决策过程中。”

“我们可以把它看作是监管转移,所以会更早地出现在开发过程中,自动执行合规中涉及的一些工作。我们能够尽早找到一个问题;我们可以阻止组件进入到您的环境中。”

WhiteSource还有一个浏览器插件,旨在帮助开发人员更好地选择要采用哪些开源组件。当开发人员访问引用开源组件的网页时,该插件将它们与WhiteSource的数据库相匹配,并显示一个弹出窗口,其中包含许可的详细信息,任何已知的漏洞以及公司的政策。Sass说:“我们根据您企业的政策进行测试,并告诉开发人员是否将获得批准。我们还列出了组件在企业中应用到了哪些地方;您可以看到是否有另一个团队使用相同的版本,或者您正在查看的组件的其他版本。”

如果您要遵守受监管的财务标准,例如PCI-DSS或者FS-ISAC指南,则需要制定关于使用开源软件和第三方组件的政策。还没有像其他行业中企业广泛采用的开源软件的标准政策,但Sass认为很快就会有,特别是美国政府已经开始为自己制定这些政策。他建议:“政府应进入开源领域。他们现在应公开他们有多少比例的代码是开源的,他们应通过某种政策来进行规范。一旦这样做,大企业就会紧随其后。”

首席信息官不可能对企业开发人员使用的大量开源组件视而不见。相反,他们应该开始跟踪和管理,以确保有关许可和安全的问题都在掌控之中。Sass說:“好处远远超过了缺点。您只需要对此进行管理,就可以使用开源软件,利用它提高您的生产效率,而不必有所担心。”

而对于SAS限制开发团队使用开源软件数量的呼吁呢?“管他呢。”

Mary Branscombe是一位自由撰稿人,二十多年来一直致力于技术写作,主题涵盖从编程语言、Windows和Office的早期版本,到最早的网络以及消费类小工具和家庭娱乐等各个方面。

原文网址:

http://www.cio.com/article/3191889/open-source-tools/how-to-track-and-secure-open-source-in-your-enterprise.html

猜你喜欢

安全漏洞开发人员开源
五毛钱能买多少头牛
Semtech发布LoRa Basics 以加速物联网应用
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
基于安全漏洞扫描的校园网告警系统的开发与设计
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究
后悔了?教你隐藏开发人员选项
安全漏洞Shellshock简介
NSFOCUS 2010年2月之十大安全漏洞