供应链上的漏洞,MongoDB如何保护?
2020年底,随着Solar Winds网络攻击的发现,软件供应链漏洞成为全国性新闻。一年后,仿佛是为了给这个问题加上一个惊叹号,Log4j安全漏洞被发现。
在这些事件发生之前,网络安全的头条新闻通常集中在勒索软件和网络钓鱼攻击上,而企业则通过增加防御措施、将网络安全扩展到外围,并强制进行安全意识培训来应对。然而,保护组织免受供应链漏洞的影响是一项更复杂的工作。
透明度和测试

很少有组织对软件供应链有完全的透明度。软件供应链包括直接参与开发应用程序的所有组件--第三方依赖、开源脚本、承包商和其他杂项组件和驱动。当与十几个供应商、应用程序和服务提供商打交道时,很难了解构成你的组织的软件供应链的所有元素。
作为一个扎根于开源的后端解决方案供应商,MongoDB敏锐地意识到软件供应链的安全性和透明度的需要。早在供应链漏洞成为国家新闻之前,我们就实施了许多保障措施,以确保我们的产品在整个软件开发生命周期(SDLC)中的安全性。
例如,在计划阶段,我们从攻击者的角度来看待我们的软件,试图找到绕过认证和获得未授权访问的方法。在冲刺阶段,我们每周进行数千个CPU小时的测试,并在数千个计算节点上24小时不间断地运行每个主要硬件平台、操作系统和软件语言的不同组合的构建。而在部署阶段,我们进行了数百小时的自动化测试,以确保每个源代码提交的正确性。
我们还邀请MongoDB社区和其他第三方提交在我们的产品中发现的错误报告,包括开源和企业软件包。最后,我们定期进行Bug猎取活动,并对通过改进版本做出贡献的社区成员进行奖励。
确保第三方软件的安全
企业最不了解的领域可能是对第三方库的使用。几乎所有的应用程序都使用了由其他人编写的软件。根据一些行业估计,第三方库在典型的应用程序中占30%到90%。
在MongoDB,所有的第三方库在并入MongoDB产品之前,都要经过安全团队的评估和审核。我们还使用安全工具来扫描源代码,识别已知的安全漏洞,并根据政府的基准,如共同漏洞和暴露(CVE)和共同弱点列举(CWE),以及私人实体的框架,如SANS研究所的软件漏洞列表进行测试。
如果我们发现了一个漏洞,我们会使用IETF负责任的漏洞披露程序来评估和缓解问题,与我们的用户群沟通,并进行事后评估。详细情况也会连同发布说明和修复描述一起发布到MongoDB警报页面。
使用SBOMs
为了鼓励软件供应链中更多的透明度,我们一直处于推动软件材料清单(SBOM,发音为 "S-Bomb")的最前沿。软件材料清单是一个应用程序所使用的成分清单,包括构成一个应用程序的所有库和组件,无论它们是第三方的、商业现成的(COTS),还是开放源代码的。
通过提供对所有单个组件和依赖关系的可见性,SBOMs被视为改善软件供应链安全的一个重要工具。MongoDB的首席信息官Lena Smart最近与一些网络安全专家进行了小组讨论,讨论了在乔-拜登总统关于供应链安全的行政命令之后对SBOMs的需求。
软件中的漏洞将永远存在,而恶意行为者的决心意味着其中一些漏洞将被利用。MongoDB认为,安全的数字体验始于安全的软件开发。这意味着要有适当的控制措施,不断探测弱点,并保持CI/CD管道的透明度。