用心打造
VPS知识分享网站

进入点威胁多个开源生态系统

虽然当前的工具在检测利用开源软件包的常用策略方面已经有所改进,但有一个功能仍然被人们忽视:进入点。

Checkmarx的安全研究人员发现了攻击者如何利用多个编程生态系统中的进入点(尤其是 PyPI)来诱骗受害者运行恶意代码。这种方法虽然不会立即导致系统被攻陷,但却为耐心的攻击者提供了一种更巧妙的方法来入侵系统,从而有可能规避标准的安全措施。

进入点威胁多个开源生态系统

进入点用于公开软件包功能的强大功能,在各种生态系统中都容易受到攻击,包括 PyPI(Python)、npm(JavaScript)、Ruby Gems、NuGet(.NET)、Dart Pub 和 Rust Crates。攻击者可以利用这些入口点在运行特定命令时执行恶意代码,从而造成大范围的风险。

研究人员发现了几种攻击方法,包括“命令劫持”——冒充流行的第三方工具和系统命令——以及通过恶意插件和扩展针对开发过程的各个阶段。每种方法都有不同程度的潜在成功和检测风险。

一种特别阴险的技术是“命令包装”。它不是简单地替换命令,而是创建一个进入点,作为原始命令的包装器。当用户调用命令时,会触发恶意进入点,在使用用户的所有参数调用合法命令之前,默默执行攻击者的代码。这种方法特别危险,因为它保持了正常操作的表象,使得攻击很难通过正常使用被发现。

研究人员演示了恶意 pytest 插件如何破坏整个测试过程的完整性。通过操纵 pytest 的断言处理,攻击者可以让所有相等性检查都通过,而不管其实际值如何,从而导致测试结果出现误报,并允许有缺陷或易受攻击的代码在不被注意的情况下通过质量检查。

同样,像 Flake8 这样的流行开发工具也可能成为攻击目标。攻击者可能会创建伪装成有用的 linting 规则的恶意扩展,从而允许他们在受害者的系统上执行有害操作、向代码中注入恶意“修复程序”或操纵 linting 结果以隐藏或创建问题。

研究人员还指出,Python wheel(.whl 文件)的日益普及带来了独特的挑战。虽然 .whl 文件在安装过程中不会执行 setup.py,这让攻击者传统上更难实现任意代码执行,但进入点攻击方法为这一限制提供了一种解决方法。

研究人员解释道:“许多安全工具专注于分析安装过程中预安装脚本的执行情况,这些脚本通常与 .tar.gz 文件相关联。因此,它们可能会错过以 .whl 文件形式分发的软件包中的恶意代码,尤其是当恶意行为是通过进入点而不是立即执行触发时。”

研究人员强调了制定全面的安全措施以应对进入点利用的重要性。通过了解和解决这些风险,业界可以努力打造更安全的 Python 打包环境,保护个人开发人员和企业系统免受复杂的供应链攻击。

赞(0)
未经允许不得转载;国外VPS测评网 » 进入点威胁多个开源生态系统
分享到