当收购一家公司,尤其是软件公司时,有一点非常重要:找到高效、可靠的方式来评估包括软件代码在内的知 识产权的质量和源头。如果目标公司的软件代码中存在严重问题,收购进度将极其缓慢,甚至搁置。因为解决这些问题费时费力,甚至不可修复。执行开源和代码质量审计已成为了很多企业在并购时尽职调查的一个标准组成部分。
开源无处不在。研究人员发现开源组件的使用多年来一直处于增长的状态。由于开源现在如此普及,他们越来越关注构建在开源组件基础上的应用程序的安全性。除了手动跟踪开源组件的使用,企业只能通过软件组件分析(SCA)工具以确定其代码库中的开源组件。调研机构451 Research公司将软件组件分析定义为“对已经内置到应用程序中的库的识别,并且这个库主要用的是第三方开源组件”。此识别功能可帮助企业发现未修补的代码,许可问题以及由于使用开源而可能存在于代码库中的潜在安全漏洞。
为什么要使用软件组件分析?
软件组件分析最常见的用途是公司用来监控和识别自己使用的开源组件和框架。但经过详细研究和案例收集,451 Research发现,软件组件分析主要用途是在兼并和收购(M&A)领域。
很多初创公司会迅速将新应用推向市场,他们使用越来越多的开源组件。因此,在并购交易中,收购方要承担软件安全性的责任,由于开源管理仍然相对不成熟,他们需要借助工具分析被收购方的产品潜在的风险以及这些代码库中的知识产权。
清楚了解在企业应用程序中开源组件的使用
有很多统计数据显示在典型软件应用程序中有多少开源组件。但是,这些数据可能并不全面,会产生误解。为了更清楚地了解企业使用开源组件的增长趋势,我们应该考虑新应用程序中开源的百分比。
新思科技公司发布的《2018 年开源代码安全和风险分析》(OSSRA)报告指出平均每个代码库由57%的开源组件。该报告分析了2017年经过审计的1,100多个商业代码库中的匿名数据。这就意味着我们扫描的每个代码库中有一半以上是由开源组件组成的。值得一提的是,黑鸭开源审计重要的案例包括并购交易的尽职调查。有鉴于此,OSSRA报告中的数据可以成为并购交易中开源趋势的关键参考。
更快交付软件产品意味着更多的开源组件
正如451 Research在其简报中指出的那样,应用程序需要更快推出市场,迭代更加频繁,这种趋势将持续下去。在这些应用程序中使用开源组件已经屡见不鲜。现在的开发人员在软件开发生命周期的任何阶段都可以方便地使用到第三方编写好的免费代码, 可以尽快交付软件成品。
然而这种趋势在并购交易中会有双重的担忧:公司必须了解他们并购回来的软件中使用了哪些开源组件及其数量,以评估是否存在知识产权风险;另外,他们必须了解交易前的风险状况,以保护投资回报率,并计算交易后所需的补救成本。
OSSRA报告显示了:
• 96%被扫描的应用中存在开源组件,每个应用中平均有 257个开源组件
• 2017年经过审计的代码库中有85%存在许可证冲突或者未知许可证
• 78% 被检查的代码库中至少包含一个漏洞,每个代码库平均包含 64个已知漏洞
安全漏洞产生的实际成本
举个例子会更加清楚这一点。想象一下,有家公司在收购Equifax,但是没有进行开源检测,那后果会怎样?Equifax由于安全漏洞问题导致了超过1.4亿人的个人数据遭到泄露,这已经不是什么秘密。这是由于Apache Struts框架中未修补的开源漏洞造成的后果。到目前为止,这个安全漏洞已经让Equifax蒙受超过4亿美元的损失,并且负面影响远不止于此。现在,我们再大胆想象一下: GDPR(《通用数据保护条例》)生效后,如果欧洲发生这种情况怎么办?那么这次收购对投资回报率会有怎么样的影响?
黑鸭子软件和451 Research公司的研究都一致指出:开源的增长势头在短时间内不会放缓。因此,并购方评估所收购的软件是否安全的难度加大,在全面了解投资风险上也面临更大的挑战。