作者是黑鸭子软件公司(Black Duck Software)的***工程执行副总裁行副总裁。
现在很多公司越来越明白这一点:开发质量更好的创新软件的关键在于使用开源软件(OSS)。在当今产品生命周期所需的速度和成本约束下,仅仅使用商业代码和将软件投放市场几乎是不可能的。如果你不能选择和整合同类***的OSS,一些最好的产品想法可能永远不会出现。
然而,使用开源也带来了一系列不同的挑战。虽然您的团队可以获得速度和敏捷性,但通常更难找到代码的真正来源,以确保代码的安全性和可靠性。
正如OpenSSL Heartbleed安全漏洞证明,如果你不知道你的应用程序或最终产品中使用了什么代码,它可能会造成严重的安全威胁,需要投入大量的精力来弥补这些威胁,这是非常耗时的。另一方面,如果你知道你使用了什么OSS组件和版本在哪里使用?OSS组件和版本有助于快速应对和补救安全漏洞。
里面的代码很重要
Heartbleed软件错误提醒大多数开发人员和企业的安全有多重要。虽然之前有关于专有软件或开源软件更安全的广泛争论,但这一争论基本上毫无意义。事实上,代码缺陷存在于大多数软件中,无论代码来自专有软件还是开源软件,一些代码缺陷都会影响安全。
当开源与内部专有代码集成时,安全挑战可能特别复杂。除了未合理管理许可证合规的明显风险外,整个企业可能很快就很难组织跟踪代码的来源和使用。
要真正准确地了解贵公司面临的潜在安全漏洞,必须了解三个问题:
1.贵公司目前的产品和应用程序中有哪些代码?
2.在开发过程的早期阶段使用了哪些代码?开发人员从哪里获得这些组件?
3.开发过程后期使用了哪些代码?在部署代码之前需要在哪里验证?
评估形势
所有公司都应该检查自己的代码,常见的安全漏洞数据库,如美国标准和技术研究所(NIST)国家安全漏洞数据库(NVD)。像NVD这些资源可以跟踪安全漏洞,给出严重程度,帮助企业确保各自的代码安全***。
如果您的企业以前从未检查过自己的代码与安全漏洞数据库进行比较,这可能是一项艰巨的任务。幸运的是,一些工具可以充分利用这些数据库,定期自动识别所有开源安全漏洞,报警并跟踪受影响的组件在哪里使用和需要补救。
密切关注代码库有助于确保识别未知代码、查明代码来源和许可信息***并快速标记未来的安全漏洞,以便尽快解决。如果您的企业找到了使用的代码,就很容易找到安全性较弱的代码并进行补救,以确保您的业务和客户处于安全状态。
预防未来的问题
大多数开发人员之所以被开发人员接受OSS吸引的原因在于OSS易于访问和随意获取通常使他们放弃正式的采购流程。然而,尽管许多开发公司对开源使用有相应的政策或标准,但这些政策或标准并不总是实施,往往没有得到合理的监控。重要的是要找出哪些代码进入贵公司,代码是否被允许使用,以及它在贵公司的哪个部门使用。
一旦您知道您所拥有的代码,您需要建立治理机制。通过在整个开发过程中实施管理系统,可以确保代码的准确描述,消除代码在哪里,代码是否***问题。人工管理的过程几乎是不可能的,这就是为什么在同类中***在自动化代码管理和审计解决方案的帮助下,公司积极管理开源软件的使用。
虽然每个公司和每个开发团队都有不同的情况,但事实证明,以下流程可以帮助大大小小的企业管理和保护OSS:
•自动审批并列入目录――记录和跟踪自动扫描、审批和清点过程OSS组件的所有相关属性,评估许可证的合规性,并审查可能存在的安全漏洞。
•维护更新的代码版本――评估代码质量,确保贵公司的产品使用***开发版本代码。
•验证代码――所有使用的评估OSS;审查代码,评估安全性、许可证或导出风险,并补救任何问题。
•确保合规――制定和实施开源政策,制定一套自动合规流程,确保整个企业遵守开源政策、法规和法律义务。
积极管理是关键
随着软件在各行各业的普及,开源将继续开发***在创新产品和服务中发挥着至关重要的作用。为了防止在这个日益复杂的环境中出现安全漏洞,公司必须积极管理整个企业的开源流程,制定流程,定期检查安全漏洞数据库的代码,以便快速、轻松地补救。
原文地址:http://www.linux.com/news/software/applications/782953-how-to-achieve-better-security-by-proper-management-of-open-source