本文来自 企业网D1net公众号
近年来,供应链攻击总体上有所增加。Sonatype 2022年的报告发现,恶意软件组件导致供应链攻击增加了七倍。最新的Verizon数据泄露调查报告发现,与去年的数据相比,这些攻击有了巨大的增长。
最新的软件库被攻陷的案例涉及一个名为XZ Utils的文件压缩算法,这个库虽然不起眼但很受欢迎,这一事件显示了这些第三方组件在保护企业安全方面关系重大。上个月,一名黑客通过长期策略渗透到开源维护团队,并在工具中添加了一个含有恶意软件的后门。
令人不寒而栗的是攻击者如何获得团队的信任,并精确地插入后门以避免被发现。诚然,许多第三方供应链攻击可能更加粗暴,使用简单的暴力手段,但这些库被攻陷代表了安全管理人员面临的新挑战,尤其是因为它们结合了三种独立的趋势:第三方供应链攻击的增加,将恶意软件隐藏在复杂的开源软件工具中,以及使用第三方库作为GenAI软件模型和工具的潜在攻击向量,让我们分别分析这些项目。
供应链、第三方库和GenAI的风险
近年来,供应链攻击总体上有所增加。Sonatype 2022年的报告发现,恶意软件组件导致供应链攻击增加了七倍。最新的Verizon数据泄露调查报告发现,与去年的数据相比,这些攻击有了巨大的增长。Verizon呼吁企业“开始寻找更好的方法”来选择第三方软件供应商,“以免忽视供应链中的最薄弱环节”。
供应链问题现在已经永久融入了现代软件的编写和修改方式。应用程序每天甚至每小时都在使用新代码进行改进,这使得安全软件更难快速识别和修复任何编码错误,这意味着旧的、更加手动的错误检查方法注定会落后,无法彻底弥补漏洞。
但我们不能仅仅责怪第三方供应商,因为攻击者利用了当今软件供应链日益复杂的特点。Contrast Security的联合创始人兼CTO Jeff Williams表示,“这是一个需要软件行业多年才能解决的问题。与现代软件供应链相比,制药或制造供应链的复杂性简直相形见绌。字面上说,创建软件的每一个环节都可能引入恶意软件和漏洞。”他告诉记者,“你使用的每一块软件都依赖于成百上千的人,其中任何一个人都有途径将恶意软件引入你的代码,这还不算找到并利用漏洞的黑客。”
再加上使用开源软件的复杂性和依赖性。XZ Utils库攻击只是最近一系列类似攻击中的最新一次,这些攻击利用了开源社区成员的信任,比如libxmlsec库,它是多个ManageEngine工具的一部分,起源于Apache Santuario项目。2023年底,黑客发现了一个关键漏洞,Zoho花了几个星期才确认并修补。如果放任不管,它将提供一种远程执行代码并授予各种服务器管理访问权限的方法。
即使是常见的JavaScript框架,比如jQuery、React等,也不能免于库滥用和攻击。2019年的一篇博客文章指出,所有Michael Howard的客户在被调查时都大量依赖不安全的JavaScript库。ReversingLabs的创始人兼CEO Mario Vuksan最近在公司博客中写道,“结果很明显:软件供应链攻击正在增加,每次攻击的连锁反应越来越大。”
跟踪应用程序安全性的Veracode在其最新分析中指出,超过70%的应用程序包含至少一个开源漏洞,这一比例多年来几乎没有变化。
最后,还要考虑恶意代码在供应链中如何影响企业现在普遍使用的GenAI模型。在本月的Build大会上,微软安全专家Mark Russinovich谈到了多种在GenAI模型中投毒或添加恶意软件的方法,这也是第三方软件供应链攻击的另一种形式,这将成为防御者需要理解并制定各种保护措施的另一个难题。
降低第三方库风险的方法
有许多技术可以用来降低第三方库的风险。Veracode的CTO兼联合创始人Chris Wysopal告诉记者,他希望软件开发人员更加主动,“投资于找到并修复其软件供应链中的漏洞的正确工具,并立即进行修复,政府也必须承认开源软件对国家安全的潜在风险。”这是一种常见的呼声,早在他以黑客代号Weld Pond闻名并在国会作证时,他就提出过这一观点。
随着软件的复杂性增加,依赖的组件也越来越多,要检测编码错误变得越来越困难,无论这些错误是无意的还是恶意添加的,因为攻击者试图隐藏他们的恶意软件。
有一些方法可以帮助标记和消除这些不安全的库。2023年6月,网络安全和基础设施安全局(CISA)发布了一系列关于如何改进开发框架和编码管道以防止第三方攻击的建议。虽然该机构提到了第三方代码促进快速开发和部署的好处,但需要有一些控制措施,比如更好和加密更强的帐户凭据和限制不受信任的库等。
“任何单个开发人员都不应该在没有另一个开发人员审查和批准更改的情况下提交代码,”该机构在报告中写道。这是XZ Utils被攻陷的问题之一,单个开发人员获得了团队的信任,能够独立进行修改。一种方法是将传统的第三方风险管理程序与可以寻找并消除这些漏洞的专业顾问结合起来,例如PwC和ReversingLabs自动化工具的联合努力。
开源社区也没有静止不动。本月早些时候,开源安全基金会推出了一种名为Siren的工具,提供了一种让软件开发人员和安全研究人员分享战术、技术和程序以及与网络攻击相关的妥协指标的方法,它将提供一个早期预警系统,实时更新可能影响软件供应链的新兴威胁。
此外,GitHub列出了三个可以专门扫描代码中已知漏洞的开源项目,包括RetireJS、Retire-html-parser和Lokori。第一个项目以Chrome扩展的形式出现,每当您访问一个有漏洞的库时,它会从浏览器窗口内进行扫描。还有其他商业扫描工具,可以在你的代码开发管道和工作流程中动态检查编码错误。
安全产品本身无法解决问题
然而,如果没有企业安全管理人员和应用程序开发人员进行一些重大程序转变,所有这些工具都将无效。Howard在2019年的博客中写了一些建议,包括了解正在使用哪些库并跟踪发现的任何漏洞。“你们企业中的某个人需要跟踪这些,这是他们工作的一部分!”
Sysdig在其最近发布的《网络安全监管时代的实用云安全指南》报告中提出了一系列流程改进建议。“如果企业尚未正式化其开发生命周期,应当这样做。部分内容包括建立和标准化构建和发布流程。一般的经验法则是,特定的技术栈会导致一个构建管道。如果你的企业构建许多应用程序和系统,预计这个数量会显著增加。根据企业中开发的历史以及它在新技术方面的发展方向,你的管道数量可能会达到几十甚至上百。一些实体称其为‘安全软件构建工厂’,但这是确保交付足够安全的必要条件。”
今年早些时候,记者调查了几位安全专家,以提出管理第三方风险的最佳实践。其中一些直接适用于软件供应链,例如让执行团队特别关注第三方风险,保持对第三方软件供应商的持续和准确的普查,并进行分类以找到最重要的供应商进行评估和跟踪。
Wysopal说:“我们必须共同努力,强化我们的数字基础设施,并防止未来由开源漏洞带来的威胁,这是对开源软件用户的一个重大警示。”