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