开源代码能够为云环境带来灵活性和敏捷性。但是是否有任何的快速方法能够确保其安全性呢?
如今,大多数应用开发人员都整合使用来自于开源开发项目的代码来作为降低开发时间和提供整体代码品质的一种方法。该代码可以是一个实际云套件(例如OpenStack)或支持工具(从编译器到存储管理器)和各种各样的应用模块的一部分。
但是使用数以百计可用代码库作为开源代码来源,同时还试图挑选出最合适的开源代码,将是一个可能为恶意软件打开方便之门的复杂任务。除了代码有被黑的风险,代码还存在着可能的质量问题。为了确保用户正在使用着可靠的和安全的开源代码,应确认相关代码是精心设计和归档的,同时为广泛使用而严格测试的。
其他用户的共识往往是代码质量问题的最佳第一导向。开源社区对于这类问题一向是知无不言言无不尽的,整个社区都愿意警告用户远离低质代码。例如,OpenStack代码是经过高度审查和严密控制的;因为存在着围绕着OpenStack的庞大开发人员与用户群,所以任何问题都会很快地浮出水面。而发现代码质量问题的其他资源是Programmers Stack Exchange 或 Stack Overflow。
但是,对于恶意软件而言,那是完全不同的。有时,一个问题可能会在相当长的一段时间内处于休眠状态或未被发现。例如,一个流行的开源框架Ruby on Rails的一个未被发现漏洞就存在了六年。
为了确保用户部署安全的开源代码,我们应深入到引擎内部。使用最被认可和信任的开源代码库(例如GitHub和OpenStack的影像服务)作为资源。还有一些应用商店提供了来自于可信任供应商的签名代码,它们拥有在整个代码生命周期内检查代码签名的能力。
其次,应寻找使用常用代码而避免倾向尝试其他的代码,因为这是不同的。所谓“常用”意味着有很多测试人员已经运行过代码,同时代码能够按照规范正常运行。
但是,这一切都赶不上Ruby on Rails问题。使用常用开源代码跟踪开放网络应用安全项目中的应用程序漏洞列表。
版本管理也是很重要的,因为它可以确保开源代码的安全性。除非业内公认它是安全的,否则不要在用户云中实施新的代码版本。另一方面,请务必一起更新代码版本以确保关闭已知安全漏洞。一个版本管理器将有助于版本管理。
在过去的几年中,开源代码应用已走过了漫长的道路,它已经是如今的支柱发展了。它能够帮助开发团队更快地实施新的云应用,在小心应用下这些应用的安全性可媲美内部代码。
本文作者:Jim O’Reilly
来源:51CTO