开源软件 (OSS) 非常出色,是全球各地企业加速发展的强大动力。然而,使用开源软件并非没有风险。本文将介绍您的软件开发人员在使用开源软件和库时可能遇到的一些常见攻击。
大多数流行的编程语言都有一个集中的开源库存储库,任何人都可以使用。Python 有 pypi.org,Node.js 有 npmjs.com,Rust 有 crates.io 作为各自的存储库。所有这些都允许人们自由地将他们的代码分发给任何想在他们的软件中使用它的人。
这些平台的用户可能容易受到各种类型的攻击,这些攻击可能会将不安全或恶意代码引入系统,从而导致灾难性的后果。此外,这些平台的开放性带来了一个额外的风险:它们对恶意行为者具有吸引力,恶意行为者可能会试图入侵流行的软件包或分发恶意的软件包。这使公司面临系统漏洞和数据丢失的风险。
对于开发人员来说,在使用 OSS 时保持警惕,并确保采取适当的措施来减轻潜在的威胁非常重要。现实情况是,网络攻击不会在短期内消失。因此,作为开源用户,我们有责任随时了解风险,以便我们能够继续享受和改进这些工具,而不会损害安全性。
以下是一些关于这些攻击、它们的执行方式以及它们如何危害您组织软件供应链的入门知识。
5 种常见的 OSS 网络安全攻击
1. 域名抢注 是一种网络威胁,它涉及创建域名略有更改的虚假网站,以诱骗用户提供个人信息或下载恶意软件。这种欺骗性策略利用了人为错误,因为许多人在输入网址时容易输错。
域名抢注者通常以流行的网站为目标,并使用外观相似的 URL 来引诱毫无戒心的访问者。例如,他们可能会创建一个类似于 www.amaz0n.com 或 www.amazone.com 的网站,而不是 www.amazon.com。网络安全专家警告说,域名抢注可能特别危险,因为它可能导致身份盗窃、金融诈骗和勒索软件攻击。
在软件开发领域,域名抢注通常以将恶意代码放入与流行的软件名称非常相似的软件包的形式出现。一个例子可能是有人欺骗流行的数据处理软件包“pandas”,使用名为“pandaz”或“padnas”的恶意软件包。如果有人错误地输入了软件包名称,然后安装了该软件包,那么这个简单的拼写错误可能会安装恶意代码!
2. 恶意软件 是一个术语,用于描述旨在破坏或损害计算机系统、网络和设备的恶意软件。它可以采取多种形式,如病毒、蠕虫、木马、勒索软件、广告软件、间谍软件等等。随着当今生活中技术使用的增加,越来越需要能够保护我们免受这些恶意攻击的网络安全措施。
网络安全至关重要,因为恶意软件对我们的个人信息、安全和隐私构成重大威胁,同时也影响组织的运营能力。恶意软件通过各种方法传播,包括伪装成合法文件或感染恶意软件脚本的网站的电子邮件附件或链接。恶意软件感染的后果从数据丢失和盗窃到网络犯罪活动(如窃取信用卡详细信息或登录凭据)造成的经济损失不等。
为了应对这种威胁,需要定期更新软件,并通过标准化的通用漏洞披露 (CVE) 流程披露已知的漏洞,以便在它们对个人或组织造成严重损害之前立即采取行动。
3. 依赖混淆 是一种网络安全漏洞,可能对企业构成重大威胁。当合法的软件包被恶意的软件包替换时,就会发生这种情况,从而导致安全漏洞和数据盗窃。黑客利用了开发人员经常在其编码过程中使用第三方库和依赖项这一事实,这为他们提供了一个机会,可以将恶意软件或其他恶意代码插入到这些存储库中,而不会引起怀疑。这方面的一个例子是 ctx 和 phpass 黑客攻击,其中恶意代码在短时间内被添加到流行的 Python 和 PHP 软件包中。
一旦安装在他们的目标系统上,攻击者就可以远程执行命令、窃取敏感信息,甚至获得对关键系统的未授权访问。对于组织来说,实施严格的安全措施(如代码审查、漏洞评估和定期软件更新)以降低依赖混淆攻击的风险至关重要。
随着网络威胁继续快速演变,各种规模和行业的组织都必须对这些潜在的漏洞保持警惕,以防范可能在经济上和组织声誉上都造成损害的有害攻击。
4. 作者冒充 是一种网络犯罪,涉及犯罪分子冒充合法作者进行恶意活动。网络安全专家警告说,作者冒充可能会造成重大危害,包括对真实作者的声誉损害和对毫无戒心的受害者的经济损失。
冒充者可能会在像 GitHub 这样的网站上创建具有欺骗性的个人资料,发送欺诈性电子邮件,或创建虚假的社交媒体个人资料,以欺骗人们分享敏感信息、下载恶意的“错误修复”或转移资金。在某些情况下,他们甚至可能入侵合法的开源开发人员的帐户,以获取机密数据或知识产权。
5. 代码注入 涉及将恶意代码插入应用程序或网站,以获取对敏感数据的访问权限或控制系统。这种类型的攻击可以通过各种方式进行,例如 SQL 注入、跨站脚本 (XSS) 和缓冲区溢出攻击。
一旦成功,黑客可能能够在目标系统上执行任意命令,并窃取有价值的信息,例如信用卡详细信息、开发人员凭据或个人身份信息。
确保 OSS 供应链安全的 5 项能力
组织必须通过定期更新软件并实施防火墙和防病毒软件等安全措施,对网络安全威胁保持警惕。对于使用 Python 或 R 的开发人员来说,拥有以下所有五种能力对于确保开源软件供应链的安全至关重要
- Python 和 R 开源软件包的受信任来源:寻找提供从源代码构建并在安全基础设施上私有托管的软件包的供应商,这样您就可以确信您的 OSS 供应链从一开始就是安全的。
- 软件物料清单 (SBOM):此功能是构成您使用的软件组件的成分清单。这是软件安全和供应链风险管理的关键要素。选择可以提供权威且可验证的 SBOM 的供应商。
- 用户访问控制:注重安全的组织希望能够使用令牌或类似的系统来控制对私有软件包和渠道的访问。如果平台允许您使用渠道向组织中的特定个人和组提供访问权限,那将是最好的。
- 可靠的 CVE 管理:您最好的选择是一个平台,它不仅扫描 CVE,而且拥有开源专家来管理它们,以减少误报的发生。
- 软件包过滤策略:寻找一个为您提供策略引擎的平台,您可以使用该引擎设置过滤器以排除有风险的软件包。这确保您的用户只能访问经过批准且安全的软件包用于他们的项目。
- 企业级支持:企业有独特的需要,并非所有供应商都能满足。寻找可以提供广泛支持的供应商,从解决操作错误到构建自定义软件包。最好是您的平台供应商提供有保证的正常运行时间服务级别协议 (SLA)。
→ 要了解更多关于开源安全的信息,请查看我们最近的博客文章,“为什么开源软件安全应该是您的首要任务。”
Anaconda 可以提供帮助
我们的客户包括 90% 的财富 500 强企业。十多年来,Anaconda 一直是企业组织寻求集中使用 Python 和 R 的首选平台。我们的企业从业人员可以更顺畅地构建和协作,他们的 IT 管理员拥有他们需要的基于角色的用户访问控制、策略引擎和安全功能来管理他们独特的 OSS 供应链。要了解更多信息,请立即安排您的企业 Anaconda 演示。