Python、npm和开源生态系统中的入口点可用于发动供应链攻击

admin 2024年10月16日18:26:17评论12 views字数 1366阅读4分33秒阅读模式

Python、npm和开源生态系统中的入口点可用于发动供应链攻击聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

Python、npm和开源生态系统中的入口点可用于发动供应链攻击
网络安全研究员发现入口点可在多个程序生态系统,如 PyPI、npm、Ruby Gems、NuGet、Dart Pub 和 Rust Crates 中被滥用于发动软件供应链攻击。

Checkmarx 公司的研究员 Yehuda Gelb 和 Elad Rapaport 在一份报告中提到,“攻击者可利用这些入口点在特定命令运行时执行恶意代码,从而为开源生态系统造成大规模风险。”

研究人员发现,此类入口点攻击可导致威胁行动者获得更加隐秘和持久的系统攻陷方法,绕过传统的安全防御措施。编程语言如 Python 中的入口点是指封装机制,可使开发人员将某种功能暴露为命令行封装器(console_scripts)。或者它们也可加载增强包特性的插件。

研究人员提到,虽然入口点是改进模块化的一种强大方式,但该特性也可被滥用于将恶意代码分发给不知情的用户,如为多款工具和框架进行命令劫持和创建恶意插件。

Python、npm和开源生态系统中的入口点可用于发动供应链攻击
命令劫持
Python、npm和开源生态系统中的入口点可用于发动供应链攻击

当假冒程序包使用模拟流行第三方工具和命令(如AWS和容器)的入口点,在开发人员安装程序包时,甚至是当它们作为 wheel (.whl) 文件进行分发时,收割敏感信息,就会发生命令劫持。一些使用广泛的第三方命令可成为命令劫持的潜在目标,如npm、pip、git、kubectl、terraform、gcloud、heroku 和 dotnet。当威胁行动者使用合法的系统命令名称(如 touch、curl、cd、ls和mkdir)作为入口点来劫持执行流时,也可能进行命令劫持。

研究人员认为,“这种方式的成功主要取决于PATH顺序。如果包含恶意入口点的目录出现的时间早于系统目录时,恶意命令而非系统命令就会被执行。这种情况更可能发生在本地包目录被优化的开发环境中。”

不止如此。研究人员还发现可通过更加隐秘的技术即“命令封装”来改进命令劫持的效果,涉及创建入口点作为原始命令的封装器而非完全取而代之。这种方法之所以奏效,是因为它在调用原始、合法的命令并返回执行结果的同时,悄悄执行恶意代码,从而导致其不易被发现。研究人员解释称,“由于合法命令仍在运行而其输出和行为得到保存,因此不会立即出现妥协指标,使得通过正常使用极其难以检测到这种攻击。这种隐秘方式可使攻击者维持长期访问权限,并在不引起怀疑的情况下提取敏感信息。”

Python、npm和开源生态系统中的入口点可用于发动供应链攻击
创建恶意插件
Python、npm和开源生态系统中的入口点可用于发动供应链攻击

另外一种入口点攻击技术是指为能够获得对代码库广泛访问权限的开发者工具,创建恶意插件和扩展,从而使恶意人员有机会更改程序行为或者篡改测试流程,使代码看似按预期运行。

研究人员表示,“开发针对入口点利用的全面安全措施十分重要。通过了解和解决这些风险,我们能够创建更安全的Python 封装环境,保护个体开发人员和企业系统免受复杂供应链攻击。”

前不久,Sonatype 公司发布软件供应链现状报告并指出,自2023年11月起,已经在Java、JavaScript、Python 和 .NET 开源生态系统中发现超过512847个恶意包,同比增长156%。该公司提到,“传统的安全工具通常无法检测到这类新型攻击,使开发人员和自动化构建环境非常易受攻击,从而导致新一轮的下一代供应链攻击活动,它们直接绕过已有的防御措施攻击开发人员。”

原文始发于微信公众号(代码卫士):Python、npm和开源生态系统中的入口点可用于发动供应链攻击

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月16日18:26:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python、npm和开源生态系统中的入口点可用于发动供应链攻击https://cn-sec.com/archives/3272535.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息