最新消息:

PyPI 中新出现了一类新型混淆攻击

别人经典渗透过程学习 admin 2382浏览 0评论

针对恶意包的新型混淆技术可以在图像中隐藏代码。

Check Point 研究团队最近在 PyPI 上检测到一个新的、从未见过的恶意包,PyPI 是 Python 编程语言的软件库。恶意包被设计用来隐藏图像中的代码 ( 基于图像的代码混淆——隐写术 ) ,并通过 Github 上的开源项目感染 PyPI 用户。这些发现反映了攻击者严密的攻击计划,证明了 PyPi 上的混淆技术已经进化。

常见恶意软件包结构

开源域上的恶意软件包通常包括 3 个主要组件:

恶意代码:负责下载和运行病毒可执行文件,向攻击者打开远程 shell,或者只是收集并发布它能找到的所有 PII。

运营商代码:负责注入恶意代码。通常,它将是一个合法的包,其中包含作为安装代码一部分的恶意代码段(如 PyPI 中的 setup.py 或 NPM 中的安装后脚本)。运营商代码通过混淆处理被隐藏,或者可以在安装过程中从诸如 pastebin.com 之类的源动态下载。

感染软件包:首先吸引受害者安装恶意软件包,一种常见的技巧是与普通合法名称相似的包名。

攻击者通常会仔细命名包名称。选择过于普通的包名可能会导致恶意应用程序被快速检测到 ( 对 PyPI 用户具有很高的可见性 ) 。选择一个小众名称可导致包的下载量较少,这将降低成功感染的潜在数量,需要开发商通过积极与潜在用户接触,让他们安装受感染的包来填补这一空白。在大多数情况下,攻击者似乎喜欢规模化攻击,即模仿常见的包名,假设高下载量将保证至少发生一些感染,即使潜在的软件包寿命更短。有些情况包括更独特和更重要的恶意代码设计选择。Apicolor 似乎使用的就是该方法,它有一个小众且不受欢迎的软件包,但会积极尝试让 GitHub 用户安装该应用程序。

Apicolor

Check Point 研究团队检测到的恶意包名为 “apicolor”。乍一看,它似乎是 PyPI 上许多开发包中的一个。它是相当新的,最初发布于今年 10 月 31 号,有一个大致的描述和一个混淆的标题,说明这是一个 “REST API 的核心库 “。普通恶意包的观察者几乎不会注意到这些。

在深入研究了包安装脚本之后,研究人员注意到开头有一个奇怪的、重要的代码部分。它首先手动安装额外的需求 ( 不是通过更常见的需求部分 ) ,然后从 web 下载一张图片,使用新安装的包处理图片,并使用 exec 命令触发处理生成的输出。代码片段与我们通常在一般 setup.py 安装脚本中看到的代码片段有很大不同。

手动安装的两个包是 request ( API 使用中非常流行的帮助包 ) 和 judyb。judib 包的细节最初看起来像一个 ” 正在进行中 ” 的包,有一个空的描述和一个混淆的标头,说明这是 ” 一个纯 Python judyb 模块 “。深入研究发现,judyb 与 apicolor 首次发布的时间大致相同。

judyb 代码原来是一个隐写术模块,负责隐藏和揭示隐藏在图片中的信息。研究人员怀疑在 apicolor 安装过程中下载的图像可能包含其内部的隐藏部分。

现在回到 apicolor 安装代码,第一步是观察从网上下载的图片。这似乎是合法的,没有什么异常。

将 judyb 的 ” 揭示 ” 方法应用于这张图片,显示了一条隐藏的信息,从该图像中发现。该消息似乎包含一个 base64 混淆的 Python 代码,这是恶意软件包隐藏其恶意代码的常用做法。

使用 base64 对该代码段进行去混淆处理揭示了我们非常熟悉的常见恶意代码模式;从 web 下载恶意 exe 并在本地运行。

在发现 apicolor 软件包的恶意和载体部分后,接下来就应该介绍如何安装这些软件包以及这些感染是如何被引发的?

主动感染

研究人员搜索使用这些包的代码项目,使团队能够进一步了解它们的感染技术及进程。通过这一搜索,很明显 apicolor 和 judib 非常小众,在 GitHub 项目上有少量使用。

只有三个 GitHub 用户似乎在他们的代码中包含了这些包。将它们作为 ( 超级冗余的 ) 需求添加到其公开可访问的 GitHub 项目中。不出所料,这三个用户都是 GitHub 的新用户。

隐性感染

感染过程如下:

当用户在网上搜索合法的项目时,会遇到这些 GitHub 开源项目,并在本地安装它们,他们并不知道其中含有恶意的包。需要注意的是,代码似乎有效。在某些情况下,存在空的恶意包。从安装程序的角度来看,他们正在尝试一个来自 GitHub 的开源项目,并不知道其中隐藏了恶意木马程序部分。

细心的用户只会考虑热门的开源项目,而上述项目似乎符合这一标准。

向 PyPI 披露

一旦这些包被识别出来,Check Point Research 就会提醒 PyPI 它们的存在,之后 PyPI 就会进行删除。

供应链攻击旨在利用组织和外部方之间的信任关系。这些关系可能包括合作伙伴关系、供应商关系或使用第三方软件。攻击者会破坏一个组织,然后向供应链的上游移动,利用这些受信任的关系来访问其他组织的环境。近年来,这类攻击越来越频繁,影响也越来越大,因此开发人员必须确保自己的操作安全,反复检查正在使用的每个软件成分,特别是从不同存储库下载的软件,尤其是那些不是自己创建的软件。

研究人员发现了一种新型的有组织的攻击,他们不仅会模仿一个常见的包,隐藏其恶意代码,还会直接针对特定类型的用户组织发起攻击,将感染阶段从高度关注的 PyPI 平台转移到 GitHub,这使得检测此类恶意包变得更加困难。

参考及来源:https://research.checkpoint.com/2022/check-point-cloudguard-spectral-exposes-new-obfuscation-techniques-for-malicious-packages-on-pypi/

转自:https://mp.weixin.qq.com/s/OXXvEitOYJNHusCxBcmCqg

转载请注明:jinglingshu的博客 » PyPI 中新出现了一类新型混淆攻击

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址